08. februar 2005 - 20:36
Der er
13 kommentarer og 1 løsning
get og set på en string array - howto
Hej har et lille problem med at få skrevet min klasse færdig. klassen ser sådan ud og visual studio brokker sig over min skrivemåde på min property: public class BuyerParty { private string[] buyerContact = new string[4]; public BuyerParty(){} public string[] buyerContact[index] { get{return buyerContact[index];} set{buyerContact[index] = value;} } } Hvad gør jeg forkert ??
Annonceindlæg fra 7N A/S
08. februar 2005 - 20:40
#1
skal public string[] buyerContact[index] ikke være public string this[index] ?
08. februar 2005 - 20:57
#2
ja det er jo lige det, har fundet et eksempel hvor de skriver sådan, men som jeg kender "this", så peger det jo på en instans af klassen, altså BuyerParty og det er jo ikke den der skal kunne modtage et index som parameter......
08. februar 2005 - 20:58
#3
Med den konstruktion kan du skrive: BuyerParty bp = new BuyerParty(); bp[2] = "abc"; er det ike det du vil ?
08. februar 2005 - 21:03
#4
nej, jeg vil gerne have mulighed for at have 4 buyerContacts på hver instans af min BuyerParty
08. februar 2005 - 21:11
#5
Er det så ikke fordi du bruger samme navn til din private variabel og din property ? Prøv: public class BuyerParty { private string[] buyerContact = new string[4]; public BuyerParty(){} public string[] BuyerContact[index] { get{return buyerContact[index];} set{buyerContact[index] = value;} } }
08. februar 2005 - 21:15
#6
->> driis Det skyldes en stavefejl fra min side, jeg har skrevet det i VS som du har :-), beklager...
08. februar 2005 - 21:46
#7
Hvilken compilerfejl får du ?
08. februar 2005 - 22:10
#8
Er det så: public string[] BuyerContact { get{return buyerContact;} set{buyerContact = value;} } og BuyerParty bp = new BuyerParty(); bp.BuyerContact[2] = "abc"; du leder efter ?
08. februar 2005 - 22:10
#9
Du kan jo ikke have: public string[] BuyerContact[index] <---- returnerer string[] { get{return buyerContact[index];} <---- returnerer string
08. februar 2005 - 22:19
#10
jeg får denne compiler fejl: Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier
08. februar 2005 - 22:33
#11
using System; public class V1 { private string[] s = new string[2]; public string this[int index] { get { return s[index]; } set { s[index] = value; } } } public class V2 { private string[] s = new string[2]; public string[] S { get { return s; } set { s = value; } } } public class TestClass { public static void Main(string[] args) { V1 v1 = new V1(); v1[1] = "abc"; Console.WriteLine(v1[1]); V2 v2 = new V2(); v2.S[1] = "def"; Console.WriteLine(v2.S[1]); } }
10. februar 2005 - 13:06
#12
kan desværre ikke bruge arne_v's eksempel, så jeg har besluttet mig til at bruge et arraylist i stedet for: public ArrayList BuyerContact { get{return buyerContact;} set{buyerContact.Add(value);} }
10. februar 2005 - 22:14
#13
Om det er ArrayList eller array er vel næsten lige meget. Den form du viser ser da lidt farlig ud. Dine get og set er ikke symmetriske, så du kan ende op med en ArrayList som indeholder ArrayList's.
11. februar 2005 - 07:22
#14
det har du da ret i arne_v - det ændrer jeg da lige.....
Kurser inden for grundlæggende programmering