이런 종류의 반원 선언에서 유형의 반복을 피할 방법이 있습니까?클래스 멤버 초기화 프로그램에서 유형 반복을 피 하시겠습니까?
Dictionary<string, int> myDict = new Dictionary<string, int>();
이런 종류의 반원 선언에서 유형의 반복을 피할 방법이 있습니까?클래스 멤버 초기화 프로그램에서 유형 반복을 피 하시겠습니까?
Dictionary<string, int> myDict = new Dictionary<string, int>();
아니요, 로컬 변수에는 var
만 사용할 수 있습니다. 근본적으로 당신은 반복과 함께 붙어 있습니다, 나는 두려워합니다.
에릭 리 퍼트 (Eric Lippert)는 위대한 blog post on this입니다.
흥미로운 점은주의해야 할 : 자바는 암시 적 입력 및 유형 추론 당신이에 을 할당하려는 내용에 따라 라운드 다른 방법을 수행합니다. 이는 합법적임을 의미합니다.
// Note: This is Java, not C#!
class CollectionHelpers
{
public static <T> List<T> newList()
{
return new ArrayList<T>();
}
}
// In another class (doesn't have to be static)
static List<String> names = CollectionHelpers.newList();
확실한 VB.NET. 그것은 질문에 직접 관련이없는 비록)
myDict as New Dictionary(Of String, Integer)()
은, 어떤 사람들은 당신이 수집 초기화를 사용하여 C# 3에서이 작업을 수행 할 수있는 관심이있을 수 :
var myDict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3}
};
작곡가의 질문에 따라 수업에 참여할 수 없습니다. –
방금 일부 사람에게 유용 할 수 있다고 생각했습니다. Ho hum. –
@ Dan, 여기서 문제는 객체 이니셜 라이저 목록이 아닙니다. 그 기능은 꽤 굉장합니다. :) 문제는 클래스 멤버에게'var' 키워드를 사용할 수 없다는 것입니다. 사전 타입으로 바꾸면 게시물이 흥미롭고 정확합니다. :) –
HTTP : //blogs.msdn. com/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx –
내 대답을 삭제했습니다. 나를 고쳐 주셔서 고마워요. –