[インスタンス]C#のプロパティの学習
4132 ワード
属性はC#からVB.NET言語で参考にしたプログラミング技術なので、勉強を始めたばかりの頃は、クラスCスタイルの言語プログラミング習慣とは違うと感じていました.最初から(変数を定義する)
ページに「ハローワールド!」と表示したい場合.まず、このプログラムの作成方法を見てみましょう.
まず、ASP.Netのaspxファイルにlabelサービス側コントロールを書いて、「Hello World」という値を置くことができます.次のようになります.
そして、対応するaspx.csファイルで上のIDがlabel 1のこのコントロールの属性Textに「Hello World!」と設定します.次のようになります.
上のコードをPage_に書きますLoad()メソッド内では、このようにASP.Netページがロードされると、そのコントロールのTextがページに表示されます.
このように書くプログラムは、labelコントロールのText値を1つのページにしか書かない場合ですが、labelコントロールがあり、「Hello World」という値を置きたいページが複数ありますか?以下、「コンポーネント」という概念を導入する.
私たちはWebSiteというモデルを開発する過程でマイクロソフトのASP.Net 2.0フレームワークには、App_Codeはデフォルトでcsファイルを置く「コンポーネント」用です.
App_Codeに「HelloWorld」というcsファイルを新規作成し、class(クラス)をstatic(静的)で修飾します.つまり静的クラスです.このクラスではSayMessage()メソッドと呼ばれ、「Hello World」という値を返すために使用されます.コードは次のとおりです.
aspx.csのコードは次のように書き換えられます.
ページに「ハローワールド!」と表示したい場合.まず、このプログラムの作成方法を見てみましょう.
まず、ASP.Netのaspxファイルにlabelサービス側コントロールを書いて、「Hello World」という値を置くことができます.次のようになります.
<asp:Label ID="label1" runat="server" />
そして、対応するaspx.csファイルで上のIDがlabel 1のこのコントロールの属性Textに「Hello World!」と設定します.次のようになります.
label1.Text = "Hello World!";
上のコードをPage_に書きますLoad()メソッド内では、このようにASP.Netページがロードされると、そのコントロールのTextがページに表示されます.
このように書くプログラムは、labelコントロールのText値を1つのページにしか書かない場合ですが、labelコントロールがあり、「Hello World」という値を置きたいページが複数ありますか?以下、「コンポーネント」という概念を導入する.
私たちはWebSiteというモデルを開発する過程でマイクロソフトのASP.Net 2.0フレームワークには、App_Codeはデフォルトでcsファイルを置く「コンポーネント」用です.
App_Codeに「HelloWorld」というcsファイルを新規作成し、class(クラス)をstatic(静的)で修飾します.つまり静的クラスです.このクラスではSayMessage()メソッドと呼ばれ、「Hello World」という値を返すために使用されます.コードは次のとおりです.
public static class HelloWorld
{
public static string SayMessage()
{
return "Hello World!";
}
}
次にaspx.csファイルでPage_Load()のコードは次のように書き換えられます.
label1.Text = HelloWorld.SayMessage();
次はcsは次のように書き換えられます.public static class HelloWorld
{
private static string _helloworld = String.Empty;
public static string Helloworld
{
get
{
_helloworld = "Hello World";
return _helloworld;
}
set
{
_helloworld = value;
}
}
}
aspx.csのコードは次のように書き換えられます.
label1.Text = HelloWorld.Helloworld;
上にC#属性の適用例を示します.