반응형
|
동적배열을 만들기 위해서 방법을 정리해 보았다. 컨트롤을 동적으로 생성할 필요가 있었다.
vb의 redim 처럼 배열의 크기를 재지정 하는 함수가 없는걸로 알고 있었다. 그런데 resize 함수가 있어 지정할 수 있다.
간단하게 작성해보았다. 아래 사이트에 자세한 정보와 msdn을 참고해라.
간단히 작성한 함수다. LinkLable의 컨트롤의 배열을 동적으로 늘리는 방법이다.
LinkLable[] lb2 = new LinkLable[0]; // 일단 배열 선언. 크기는 1개.
static void RearrLinklbl(ref LinkLabel[] ob)
{
int i = ob.Length + 1;
Array.Resize(ref ob, i);
ob[i - 1] = new LinkLabel();
}
// 방법2
RearrLinklbl(ref _lb2);
_lb2[i].Text = i.ToString();
ref로 주소를 넘겨 해당 컨트롤의 resize을 지정할 수 있도록 하였다.
You didnt set the return type to the setLenght method. You have to change the code to:
C# Syntax (Toggle Plain Text)
static void Main() { int[] myArray = new int[4]; myArray = setLength(myArray, 8); } static int[] setLength(int[] myArray, int length) { Array.Resize(ref myArray, length); return myArray; }
or you can use ref keyword, to return, but I would suggest you to use upper example:
C# Syntax (Toggle Plain Text)
static void Main() { int[] myArray = new int[4]; setLength(ref myArray, 8); } static void setLength(ref int[] myArray, int length) { Array.Resize(ref myArray, length); }
참고사이트 :
http://www.daniweb.com/software-development/csharp/threads/388701
http://msdn.microsoft.com/ko-kr/library/bb348051(v=vs.95).aspx
http://www.source-code.biz/snippets/csharp/1.htm
|