2008-08-27 2 views
4

CodeDOM을 사용하여 하나의 명령문에서 정적 필드를 선언하고 초기화합니다. 어떻게해야합니까?.NET CodeDOM을 사용하여 하나의 명령문에서 필드 선언 및 초기화

// for example 
public static int MyField = 5; 

나는 정적 필드를 선언하는 방법을 알아낼 수 있고, 나중에 그 값을 설정할 수 있습니다,하지만 위의 효과를 얻을 수없는 것.

@lomaxx, Naw, 정적 만하고 싶습니다. 나는 const를 원하지 않는다. 이 값은 변경 될 수 있습니다. 나는 선언의 단순함과 하나의 init'ing이 급습에 빠졌 으면 좋겠다. 코드 솜 세상의 모든 것이 단순한 것처럼. 모든 유형 이름은 20 자 이상이며 이러한 거대한 표현 나무를 구축하게됩니다. 내 눈을 괴롭히다. 나는 resharper의 재구성 덕분에 오늘은 살아있다.

답변

8

정적 필드를 나타 내기 위해 CodeMemberField 인스턴스를 만든 후에는 필드를 채우는 데 사용할 표현식에 InitExpression 속성을 할당 할 수 있습니다.

1

This post Omer van Kloeten이 원하는대로 할 것 같습니다. 출력에는 다음 줄이 표시됩니다.

private static Foo instance = new Foo(); 
+0

링크가 작동하지 않습니다. 새로운 기능은 다음과 같습니다. https://msdn.microsoft.com/en-us/library/system.codedom.codememberfield.initexpression(v=vs.110).aspx – makhdumi

0

원하는 것은 정적이 아닌 const입니다. 당신이 원하는 것은 정적 인 읽기 전용을 갖는 것입니다. 그래서 당신은 항상 값이 5가되기를 원합니다.

에서 # const는 읽기 전용 정적과 똑같이 취급됩니다.

From the c# docs

:

상수 정적 멤버, 일정 - 선언을 고려하지 둘 필요도 정적 수정을 허용 되더라도

.

관련 문제