Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Witam,

Mam coś takiego:

Public Class cKlasa1
Private mstrWłaściwość As String

Property pWłaściwość1() As String
Get
pWłaściwość1 = mstrWłaściwość
End Get
Set(ByVal value As String)
mstrWłaściwość = value
End Set
End Property
End Class

Interface IKlasa2
Sub Test1()
End Interface

Public Class cKlasa2
Inherits cKlasa1
Implements IKlasa2

Public Sub Test1() Implements IKlasa2.Test1
MsgBox("Test1")
End Sub
End Class

Public Class cKlasa3
Sub Test2()
Dim cKlasa2 As IKlasa2 = New cKlasa2
cKlasa2.Test1()
cKlasa2.pWłaściwość1 ???
End Sub
End Class


Czy można to napisać tak, żeby pWłaściwość1 z cKlasa1 znalazła w interfejsie IKlasa2?Bartosz Borczyk edytował(a) ten post dnia 12.03.11 o godzinie 16:34
Jakub Gutkowski

Jakub Gutkowski Software
Developer/Architect
Microsoft MVP

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

z tego co wiem to w VB.NEt nie ma implicit interface implementation - wiec odpowiedz brzmi nie.

a skoro interface ma miec ta sama wlasciwosc to moze warto by klasa1 implementwala interfejs.
Zygmunt Rynduch

Zygmunt Rynduch .NET/Sharepoint
Developer, (nie
szukam pracy ale jak
się ...

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Wyczerpująca odpowiedź jest wg mnie tutaj:
http://stackoverflow.com/questions/2607884/vb-net-clas....

Swoją droga zaciekawił mnie ten problem, bo VB tykam tylko w historycznych projektach i rzadko z własnej woli. Przez to nie interesowałem się jak działa kompilator VB.NET.

A tutaj jako bonus twój przykładowy kod w C#:


public class Klasa1
{
private string _wlasciwosc;

public string Wlasciwosc
{
get
{
return _wlasciwosc;
}

set
{
_wlasciwosc = value;
}
}
}

public interface IKlasa2
{
void Test1();

string Wlasciwosc
{
get; set;
}
}

public class Klasa2 : Klasa1, IKlasa2
{
public void Test1()
{
Console.WriteLine("Klasa2.Test1()");
}
}

public class Klasa3
{
public void Test2()
{
IKlasa2 k2 = new Klasa2();

k2.Test1();

k2.Wlasciwosc = "Klasa3.Test2()";

Console.WriteLine(k2.Wlasciwosc);
}
}


ps. wg mnie dziwny zwyczaj używac polskie znaki w nazwach zmiennychZygmunt Rynduch edytował(a) ten post dnia 13.03.11 o godzinie 22:01
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Dlaczego dziwny?
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Chyba jednak można. Mały sukces nie-informatyka.


Interface IWłaściwość
Property pWłaściwość1() As String
End Interface

Public Class cKlasa1
Implements IWłaściwość
Private mstrWłaściwość As String

Property pWłaściwość1() As String Implements IWłaściwość.pWłaściwość1
Get
pWłaściwość1 = mstrWłaściwość
End Get

Set(ByVal value As String)
mstrWłaściwość = value
End Set
End Property
End Class

Interface IKlasa2
Inherits IWłaściwość
Sub Test1()
End Interface

Public Class cKlasa2
Inherits cKlasa1
Implements IKlasa2

Public Sub Test1() Implements IKlasa2.Test1
MsgBox("Test1")
End Sub
End Class

Public Class cKlasa3
Sub Test2()
Dim cKlasa2 As IKlasa2 = New cKlasa2
cKlasa2.Test1()
MsgBox(cKlasa2.pWłaściwość1)
End Sub
End Class

konto usunięte

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Mi się polskie wyrazy kłócą z angielską składnią języka. Ciężko się to później czyta. Taki ponglisz.

Edit: To czysto subiektywne stwierdzenie :)Jarosław D. edytował(a) ten post dnia 13.03.11 o godzinie 20:24
Jakub Gutkowski

Jakub Gutkowski Software
Developer/Architect
Microsoft MVP

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Bartosz Borczyk:
Chyba jednak można. Mały sukces nie-informatyka.

ee ale to nie o to o co pytales. zrobiles za to to co zaproponowalem bys mial interfejs dla klasy bazowej. zas w klasie dziedziczacej implementujesz inna metode i wlasciwosc nie pochodzi z interfejsu IKlasa2 tylko z IWlasciwosc

Zas co do polskich znakow - prosto, wystarczy ze przypadkiem zmieni Ci sie kodowanie pliku i juz masz duzy problem - a to przypadkiem jest spowodowane przez VS, notepad czy jakikolwiek inny edytor tekstu. Dodatkowo robisz kod czytelny tylko dla jednej osoby - siebie.
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Dla mnie to wystarczy. Dziękuję za pomoc i uwagi.

konto usunięte

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Bartosz Borczyk:
Dla mnie to wystarczy. Dziękuję za pomoc i uwagi.

Bartosz muszę Ci przyznać rację jeżeli chodzi o język polski i kod programu (przynajmniej częściowo;) Ktoś mi dzisiaj uświadomił jedną ważną rzecz. Są sytuacje, w których nazewnictwo klas modelu zawiera specjalistyczne zwroty i słowa, które ciężko się przekłada na angielski. Dodatkowo taka podróż polski > angielski > polski, od tego co pisał kod do tego, który go później czyta może niejednokrotnie zmienić lub wypaczyć jego znaczenie. Łatwiej i lepiej w takich przypadkach używać polskiego. Biczuje się i cofam ten ponglisz :DJarosław D. edytował(a) ten post dnia 16.03.11 o godzinie 21:37
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

uzywanie polskich wyrazow != używanie polskich znaków

konto usunięte

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Norbert Maziarz:
uzywanie polskich wyrazow != używanie polskich znaków

Ja wcześniej "przyczepiłem się" do polskich wyrazów, zaś Jakub zwrócił uwagę na polskie znaki.
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Składowa z klasy dziedziczonej w interfejsie klasy (?)

Dokładnie i popieram Was obu - używanie polskiego jak najbardziej (jeżeli jest faktyczna potrzeba) polskie znaki już nie bardzo z wymienionych względów.



Wyślij zaproszenie do