1. 클래스 객체 배열 선언 후 접근 문제
Class 객체를 배열로 생성 하고 사용 하려면 값 타입 배열 생성과 다르게 배열 요소에 접근 하게 되면 null 에러가 발생 한다.
class SomeClass
{
public int Value = 0;
}
SomeSomeClass[] aaa = new SomeClass[10];
aaa[0].Value = 99; // 에러 발생 null exception
여기에서 aaa[0].Value 와 같이 0번째 배열에 접근 하려면 null 포인터 예외가 발생 한다.
SomeClass[] aaa = new SomeClass[10];
for (int i = 0; i < aaa.Length; i++)
{
aaa[i] = new SomeClass();
}
aaa[0].Value = 99; // 에러 없이 성공
위와 같이 new로 각각 할당 해줘야 하는데 매번 저렇게 하면 코드도 지저분해지고 귀찮다.
2. Extension Method 이용
public static class Untility
{
public static void InitializeArray(this T [] array) where T : class, new()
{
for (int i = 0; i < array.Length; i++)
{
array[i] = new T();
}
}
public static T[] InitializeArray( int length ) where T : class, new()
{
T[] array = new T [ length ];
for (int i = 0; i < array.Length; i++)
{
array[i] = new T();
}
return array;
}
}
위와 같이 Extension Method와 Generic Method를 사용 하면 편하게 사용 할 수 있다.
“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"
3. 사용법
class SomeClass
{
public int Value = 0;
}
public class Test
{
public void Run()
{
SomeClass[] aaa = new SomeClass[10];
aaa.InitializeArray();
SomeClass[] bbb = Untility.InitializeArray(10);
}
}
c# point array initializec# point array initialize
c# initialize pointf array
c# initialize array of points
c# initialize array with null values
c# initialize array without new
c# initialize array with new objects
c# initialize array null
c# initialize array new
c# how to initialize array of objects
unity3d initialize array c#
unity c# initialize array
c# initialize array of custom class
c# initialize array object
c# generic where t new()
arrays as objects
c# initialize array of objects default constructor
'개발언어 > C#' 카테고리의 다른 글
[C#] Dictionary 사용법. 기본,응용 (0) | 2021.08.23 |
---|---|
[C#] Dictionary의 Value 값으로 Key 찾기 (0) | 2021.08.23 |
[C#] Listview Checkbox 에 checked된 목록 가져오기 (0) | 2021.08.11 |
[C#] 리스트뷰 Column Header에 체크박스 추가 및 전체선택/해제 기능 (0) | 2021.08.11 |
[C#] ListView Column Header에 체크박스 삽입 (0) | 2021.08.11 |