2011-06-13 11 views
4

Visual Basic.Net 코드를 프로젝트의 C#으로 변환하고 있습니다. 하지만 Visual Basic 기본 속성을 C#으로 변환하는 방법에 대해서는 의문의 여지가 있습니다. 나에게 가장 먼저 떠오르는 옵션은 인덱서입니다. C#을이 변환 된 Visual Basic의Visual Basic 기본 속성 대 C# 속성

Public Class MyClass 
Dim MyHash as Hashtable 

Public sub New() 
    MyHash = New Hashtable() 
    MyHash.Add("e1",1) 
    MyHash.Add("e2",2) 
    MyHash.Add("e3",3) 
End Sub 

Defaul Propery MyDefProp(ByVal key as string) as Object 
    Get 
    Return MyHash(key) 
    End Get 

    Set(ByVal ObjectToStore As Object) 
    MyHash(key) = ObjectToStore 
    End Set 
End Property 

에 다음 코드를 생각하자 :

public class MyClass 
{ 
    private Hashtable MyHash; 

    public MyClass() 
    { 
     MyHash = new Hashtable(); 
     MyHash.Add("A1",1); 
     MyHash.Add("A2",2); 
     MyHash.Add("A3",3); 
    } 

    public object this[string key] 
    { 
     get 
     { 
      return MyHash[key]; 
     } 

     set 
     { 
      MyHash[key] = value; 
     } 
    }  
} 

내가이에 수정 있나요?

답변

5

정확합니다.

유일한 차이점은 VB.Net 버전도 명명 된 인덱싱 된 속성을 만듭니다. C#은 명명 된 인덱스 속성을 지원하지 않습니다.

1

C#이 기본 속성 구문을 지원하지만 인덱서가 그 필요를 잘 충족시킵니다.

+0

인덱서 _are_ 기본 속성. – SLaks

+0

내 VB는 약간 녹슬었지만 강제로 인덱싱 된 기본 속성이 있다고 생각하지 않습니다. 예를 들어 Text 속성은 TextBox의 기본 속성이며 인덱싱 된 속성은 아닙니다. –

+0

IIRC, VB6 만 해당 – SLaks