- 題名: C#でのクラスの内のthisの参照の仕方
- 日時: 2009/12/28 15:31:43
- ID: 26157
- この記事の返信元:
- (なし)
- この記事への返信:
- [26158] Re[1]: C#でのクラスの内のthisの参照の仕方2009/12/28 16:15:20
- ツリーを表示
■No26157に返信(たなかさんの記事)
> private test() {
これはコンパイルエラーになるはずですよ。
「private void test() {」や
「private clsSample() {」ならば OK ですが。
で。とりあえず、下記のコードで出力されました。
# 手元に Visual Studio が無かったので、メモ帳で書いて実験。
下記のファイルを C:\sample.cs として保存して…
//---------------------
using System;
using System.Windows.Forms;
public partial class Form1:Form {
clsSample c;
public string test = "1";
public Form1() {
//InitializeComponent();
c = new clsSample(this);
}
public static void Main() {
Application.Run(new Form1());
}
}
class clsSample {
public Form1 b1;
public clsSample(Form1 b) {
b1 = b;
test();
}
private void test() {
Console.WriteLine( b1.test );
}
}
//---------------------
コマンド プロンプトで下記を実行
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\CSC.EXE /target:exe /out:C:\sample.exe C:\sample.cs
コマンド プロンプトから、生成された C:\sample.exe を実行した所、
期待通り「1」と表示されました。
なお、オプション指定を /target:winexe に変更した場合には、
そのままでは出力結果を読めないので、
C:\sample.exe | MORE
などとするか、ファイルに
C:\sample.exe > C:\result.txt
などとリダイレクトしないと分かりにくいですね。
分類:[.NET]
別のクラスからForm1クラスを参照し値を参照したいのですが
thisを別のクラスの中に引数で渡し参照がうまくいきません。
Console.WriteLine( b1.test );で参照しましたがうまく参照できません
でした。
どなたかご教授をお願いします
public partial class Form1:Form {
clsSample c;
public string test = "1";
public Form1() {
InitializeComponent();
c = new clsSample(this);
}
}
class clsSample {
public Form1 b1;
public clsSample(Form1 b) {
b1 = b;
}
private test() {
Console.WriteLine( b1.test );
}
}