2012-04-30 3 views
0

필자가 작성한 프로그램은 여러 가지 요인에 따라 다양한 구조체를 가지고 있습니다. 요점은 이러한 구조체가 얼마나 많은지 예측할 수 없기 때문에 프로그램이 생성된다는 것입니다 그들 자신.동적으로 구조체를 명명하는 C#

구조체는 다음과 같습니다.

public struct boardState 
    { 
     public int structid; 
     public char[] state; 
    } 

어떻게 명시 적으로 이름을 부여 나없이 이러한 구조체의 이름을 할 수있는 프로그램을 얻을 수 있나요?

이상적으로 structNum이라는 int가있을 것입니다.이 structNum은 structNum의 수를 추적하여 structNum의 값에 따라 새 구조체의 이름이 지정됩니다. 그러나 이것이 가능한지 확실하지 않습니다. 완료, 방법이 있습니까 또는 더 나은 방법을 제안 할 수 있습니까?

감사합니다.

+0

이해가 결함이있다. – leppie

답변

1

정확한 값의 수를 알 수없는 경우 임의의 긴 값을 보유 할 수있는 List<boardState>을 사용할 수 있습니다. 런타임에 동적으로 이름을 지정하는 것은 .NET의 기능이 아닙니다. 컴파일 한 후에는 실제로 이름이 없습니다.

var theList = new List<boardState>(); 
// add 
theList.Add(new new boardState()); 
// get one 
int id = theList[0].structid; 
// iterate 
foreach(var s in theList) 
    // do something 
int cnt = theList.Count; 
+0

그게 가장 좋은 해결책 인 것 같지만, 어떻게해야할지 모르겠습니다. 나는 이것 같이 시도했다; int x = loseList.Count; loseList.Add (x); loseList [x] .state = sentstate; 하지만 작동하지 않는 것, 어떻게해야합니까? –

0

리플렉션을 사용하지 않고 런타임에 동적 변수 이름을 처리 할 수 ​​없습니다.

간단한 솔루션은 List 또는 유사한 컬렉션의 구조체를 유지하는 것입니다 : 값 형식의

List<boardState> boardStates = new List<boardState>(); 
관련 문제