2009-08-13 3 views
1

C# 자동 속성을 사용하여 개체의 새 인스턴스를 만들 수 있습니까? C#에서 C#에서 자동으로 개체의 새 인스턴스를 반환하는 방법

는 내가이 작업을 수행 할 수있는 방법을 사랑 :

public string ShortProp {get; set;} 

먼저 인스턴스화 할 필요가 목록과 같은 개체에 대해이 작업을 수행 할 수 있습니까?

예 : 당신은 생성자에서 초기화해야합니다

List<string> LongProp = new List<string>(); 
public List<string> LongProp { 
    get { 
     return LongProp ; 
    } 
    set { 
     LongProp = value; 
    } 
} 

답변

8

당신은 생성자에 백업 필드를 초기화 할 수 있습니다? 난 당신의 코드를 잘 모르겠지만, 어쩌면 당신은 당신의 클래스 '속성의 덜 노출해야합니다

public class MyClass { 
    public List<object> ClinicalStartDates {get; private set;} 
    ... 
    public MyClass() { 
     ClinicalStartDates = new List<object>(); 
    } 
} 
+0

@Downvoter : 답을 개선하는 방법에 대한 제안이 있으십니까? 너 그것에 대해 맘에 안들니? –

1

:

class MyClass { 

    public MyClass() { 
    ShortProp = "Some string"; 
    } 

    public String ShortProp { get; set; } 

} 
0

내가 클래스 해상력의 변수를 선언하고 싶지 않았다. 생성자에서 수행하십시오.

그래서 논리에 따라 클래스 생성자에서 ShortProp을 상속 할 수 있습니다.

0

이렇게 할 수있는 유일한 방법은 생성자입니다.


public List<ClinicalStartDate> ClinicalStartDates { get; set; } 

public ObjCtor() 
{ 
    ClinicalStartDates = new List<ClinicalStartDate>; 
} 

아마도 듣고 싶지 않았을 것입니다.

public class MyClass { 
    public List<object> ClinicalStartDates {get; set;} 
    ... 
    public MyClass() { 
     ClinicalStartDates = new List<object>(); 
    } 
} 

을하지만 ... 당신은 공공 세터로이 목록을 속성을 만드는 방법에 대한 확신 :

0

C# 3.5 자동 등록의 자동 초기화를 지원하지 않습니다.
그렇습니다. 은 생성자을 사용해야합니다.
귀하의 질문은 입니다. duplicate입니다.

+0

C# 6.0에는이 기능이 있습니다. – nawfal

관련 문제