2014-11-18 2 views
0

기본 Foo 클래스를 만들려고하는데 Color가 작동하는 방식을 복제하고 싶지만 그 주위에 머리를들이는 데 문제가 있습니다. 예, 내 푸에정적 클래스 자체 참조

Color color = Color.Red; 

...이 기능을 얻을, 그리고 관련 메모에

Foo x = Foo.y; 

을 쓰고, 나는이 제대로 이해한다면,

string s = "..."; 

string s = new string("...".ToCharArray()) 

내 숨어과 동일 estions는 내가 그런 행동을하고 행동하는 유형을 정의 할 수 있도록 내가 비슷한 것을 가질 수 있도록

Bar w = 1; 이는 Bar w = new Bar(1)과 같을 것이다.

+0

음, 언어는 무엇입니까? (저는 C#을 추측하고 있습니다 만, 그렇게 말하면됩니다 ...) –

+0

아니요, 문자열 리터럴을 사용하는 것은 그 선언을 통과 할 때마다 새 문자열을 만드는 것과 동일하지 않습니다. 당신의'Foo' 부분을 그냥 정적 필드 또는 속성을 만들 ... –

+0

죄송합니다 - 예, 죄송합니다 C# – peedurrr

답변

1

질문의 첫 부분은 정적 필드 또는 속성을 원하는 것처럼 들립니다. 그것은 동일한 문자열 참조마다 재사용 때문에 리터럴 스트링을 사용하여 두 번째 부분에 대한

public class Foo 
{ 
    // A field... 
    public static readonly Foo MyFunkyFooField = new Foo(...); 

    // A property - which could return a field, or create a new instance 
    // each time. 
    public static Foo MyFunkyFooProperty { get { return ...; } } 
} 

new string(...) 전화 등 하지이다. 그렇게 쉽게 자신 만의 행동을 내놓을 수는 없습니다.

Bar x = 1; 

가 작동 할 수 있도록

당신 , int에서 Bar에 사용자 정의 암시 적 변환을 만들 수 있습니다 ...하지만 난 그렇게 대해 두 번 생각합니다. 암시 적 변환은 숨기기 동작으로 코드 가독성을 손상시킵니다.

+0

좀 더 걸릴 수 있습니다 (두 부분) 예 :'Color x = Color.Red; x는 Color ref 유형이므로 Color.Red도 해당 유형이어야합니다 (예 : enum no?). 사용자 지정 암시 적 변환을 만드는 방법을 보여주십시오. 고맙습니다. – peedurrr

+0

@peedurrr : "of type Color ref"란 무엇을 의미합니까? 그냥'Color' 타입입니다. 'Color'가 열거 형일 때, 필드/속성의 값은 그 열거 형의 값입니다. 'Color'가 클래스 인 경우 값은 참조입니다. 상당히 모호한 예제를 선택하는 데 도움이되지 않습니다. 프레임 워크에 많은 '색상'유형이 있습니다. 어느 쪽을 언급하셨습니까? 사용자 지정 암시 적 변환의 경우 온라인에서 많은 예제가 있습니다 (예 : http://msdn.microsoft.com/en-us/library/z5z9kes2.aspx 참조). (또한, * 하나의 질문 * 게시물 당 * 좀 더 명확하게 끝납니다.) –

+0

에 의해 색상 심판 나는 새로운 것을 사용하여 색상의 인스턴스로 설정할 수있는 것과 같은 색상 심판을 의미합니다. msdn 링크를 이용해 주셔서 감사합니다. 내가 원했던 것. 다시 질문의 두 번째 부분을 다시 게시합니다. 다시 한 번 감사드립니다. – peedurrr