.NET Frameworkによるプロパティ構文

naohiro19
記事: 256
登録日時: 15年前
住所: 愛知県

.NET Frameworkによるプロパティ構文

投稿記事 by naohiro19 » 13年前

C++/CLI では以下の構文になります。

CODE:

public ref class ConvertString
{
	String^ m_ManageString;
public:
	property String^ ManageString{
		void set(String^ value)
		{
			m_ManageString = value;
		}
		String^ get()
		{
			return this->m_ManageString;
		}
	}
};
Visual Basicでのプロパティ構文はこうなります。

CODE:

Public Class ConvertString
    Private m_ManageString  As String
    Public Property ManageString() As String
        Get
            Return m_ManageString 
        End Get
        Set(ByVal value As String)
            m_ManageString  = value
        End Set
    End Property
End Class
C#でのプロパティ構文は以下のようになります。

CODE:

public class ConvertString
{
        private string m_ManageString;
        public string ManageString
        {
            get { return this.m_ManageString; }
            set { m_ManageString = value; }
        }
}
上記のコードを.NET アセンブリで見ると以下のように出力されています(ILSpy使用)。

CODE:


		// Method begins at RVA 0x2050
		// Code size 7 (0x7)
		.maxstack 8

		IL_0000: ldarg.0
		IL_0001: ldfld string TestProp.ConvertString::m_ManageString
		IL_0006: ret
	} // end of method ConvertString::get_ManageString

	.method public hidebysig specialname 
		instance void set_ManageString (
			string 'value'
		) cil managed 
	{
		// Method begins at RVA 0x2058
		// Code size 8 (0x8)
		.maxstack 8

		IL_0000: ldarg.0
		IL_0001: ldarg.1
		IL_0002: stfld string TestProp.ConvertString::m_ManageString
		IL_0007: ret
	} // end of method ConvertString::set_ManageString

	.method public hidebysig specialname rtspecialname 
		instance void .ctor () cil managed 
	{
		// Method begins at RVA 0x2061
		// Code size 7 (0x7)
		.maxstack 8

		IL_0000: ldarg.0
		IL_0001: call instance void [mscorlib]System.Object::.ctor()
		IL_0006: ret
	} // end of method ConvertString::.ctor

	// Properties
	.property instance string ManageString()
	{
		.get instance string TestProp.ConvertString::get_ManageString()
		.set instance void TestProp.ConvertString::set_ManageString(string)
	}

} // end of class ConvertString
最後に編集したユーザー naohiro19 on 2012年6月08日(金) 19:29 [ 編集 2 回目 ]

コメントはまだありません。