2010-02-22 5 views
0

유형이 "MyType"이라고 지정할 수 있습니다. List (Of MyType)이 있습니다. 여기 내가하는 일이 있습니다 :VB.Net 및 람다 식의 유추 추론?

MyList.Sum(Function(x) x.MyFieldToTotal) 

"MyFieldToTotal"은 10 진수입니다. 내 인생에서 나는 왜 x가 "MyType"유형이 아닌 객체인지를 알 수 없습니다. 이 경우 Inferencing을 입력하면 안됩니까? VB.Net으로, X

dim MyVar as new list(Of System.IO.FileStream) 
MyVar.Sum(Function(x) x. 

List<System.IO.FileStream> MyVar = new List<System.IO.FileStream>(); 
MyVar.Sum(x=>x. 

했다 : 심지어 인텔리의 난

내가 다음 않았다 C# & vb.net의 차이를 테스트하려면 "진수로 (합니다 MyType의) System.Func로 선택"을 얻을 Object 형식의 C# x는 FileStream 형식입니다. 그렇다면 왜 vb.net이 아닌 C#으로이 유형의 작동이 형 태로 작동합니까? 또한

은 "옵션 완전 추론은"

+0

에서 고정 Visual Studio/VB.Net의 버전을 사용하고 있습니까? – jeroenh

+0

나는 VS 2010으로 지금 시도해 보았고 작동한다고 말할 수 있습니다. VS 2008 가지 마. VS 2008 버그와 같습니다. – coding4fun

답변

1

유형의 추론이 컴파일러 수준에서 작동 ON 떨어져 있음을 알아,하지만 (단지 VS2008에서 재판)이 인텔리 엔진을 따기되지 않는 것 같다. 당신이 문을 완료 한 후

, VS는 ... FileStream 객체 (툴팁을 참조)

Dim MyList = New List(Of System.IO.FileStream)() 
    Dim result = MyList.Sum(Function(x) x.Length) 

편집을 인식하지 : 그것은 단지 VS2008의 버그입니다; VS2010 RC

+0

네 오른쪽. VS 2008 버그와 같습니다. 많은 사람들이 겪어 보지 못한 것을 놀라게했습니다. 매우 놀랐습니다. 나는 아마도 내가 resharper를 사용하고 있었기 때문에 그것이 아니라고 생각했다. – coding4fun

+0

이것에 대해 정말 짜증나는 것은 당신이 인텔리 센스를 얻지 못한다는 것입니다. – coding4fun

+0

@ user127954 VS2010에서 수정되었습니다. – jeroenh