2013-08-12 5 views
1

내가 해결할 수없는 정말 간단한 문제 - 나는 C#을 함께 시작하고 있는데 예를 들어, 게터/세터 방법으로 배열에 값을 추가해야합니다게터 세터 아마 배열

public partial class Form1 : Form 
{ 
    string[] array = new string[] { "just","putting","something","inside","the","array"}; 


    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Array = "gdgd"; 
    } 

    public string[] Array 
    { 
     get { return array; } 
     set { array = value; } 
    } 
} 

}

+1

그리고 문제는 무엇입니까? –

+0

문제를 알려주십시오 : D – Sebi

+4

어쨌든 배열에 * 값을 추가 할 수 없습니다 ... –

답변

10

이 결코 일을하려고하지 않습니다하십시오 string[] 속성에 string 값을 할당하려고 그

Array = "gdgd"; 

. 배열이 만들어지면 크기가 고정되므로 배열의 요소를 추가하거나 제거 할 수 없습니다. 아마 당신은 사용해야합니다 List<string> 대신 :

public partial class Form1 : Form 
{ 
    List<string> list = new List<string> { 
     "just", "putting", "something", "inside", "the", "list" 
    };  

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     List.Add("gdgd"); 
    } 

    public List<string> List 
    { 
     get { return list; } 
     set { list = value; } 
    } 
} 

같은 클래스 내에서 액세스하는 것처럼 대중을 갖는 것은, 어쨌든 여기에 관련이 있습니다 - 당신은 단지 필드 사용할 수 있습니다

private void button1_Click(object sender, EventArgs e) 
{ 
    list.Add("gdgd"); 
} 

또한 당신이 자동으로 구현 된 속성을 사용할 수있는이 같은 "사소한"속성 참고 : 귀하의 set 메소드 내부

public partial class Form1 : Form 
{ 
    public List<string> List { get; set; } 

    public Form1() 
    { 
     InitializeComponent(); 
     List = new List<string> { 
      "just", "putting", "something", "inside", "the", "list" 
     };  
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     List.Add("gdgd"); 
    } 
} 
+0

좋은 답변입니다. 내 대답보다 훨씬 낫네 – Malachi

+0

아니면 큰 배열 문자열 [] array = new string [1000]을 만들고 다른 인덱스를 설정하여 값을 추가해야한다. 그러나 목록 의 솔루션은 10 배 더 똑똑합니다.) – Sebi

+0

괜찮습니다. 답변에 감사드립니다. 어떤 문제없이 값을 추가하기 위해 배열과 같은 엔딩이없는 목록을 사용합니다. –

1

당신이 코드를 추가 할 필요가 그래서 특정 배열 위치에 추가 할 수 있습니다. 배열을 보내지 않는 한, 해당되는 경우 작동해야합니다.

문자열을 보내려면 배열 위치를 지정해야합니다. 당신이 값을 포함하는 목록을 사용하여 문자열 변수가 아닌 배열

0

에 할당하는 것처럼

Array[index] = "gdgd" 

그렇지 않으면 보인다. 배열을 반환해야 할 때 List.ToArray()를 사용하십시오.