土曜日, 5月 17, 2008
[C#]型変換(キャスト)
▼質問
次のプログラムで
public string cnvString(double data) {
return data.ToString();
}
下記のエラーになるんだ。どうしてなんだ?
「エラー 1 メソッド グループ 'ToString' を非デリゲート型 'string' に変換することはできません。このメソッドを呼び出すことはできません。 ファイルパス」
次の様にするとエラーは出なくなるんだ。何か違う気がする・・・。
public string cnvString(double data) {
string s = data.ToString();
return s;
}
▼回答
VBやC言語で言う共通関数(値を渡して結果を返すだけの処理)のようなものならstaticを
付けてあげれば問題ないと思うよ。
public static string cnvString(double data) {
return data.ToString();
}
静的変数・静的メソッドはクラスごとに唯一つの実体を持ち、すべてのオブジェクトの間で共有される。
また、数学関数や数学定数などのインスタンスを持つ必要のない関数を定義する場合にも使う。
クラス内に処理実態とデータが含む場合はstaticにしてはいけない。
■参考サイト
静的変数・静的メソッド(C# によるプログラミング入門)
http://ufcpp.net/study/csharp/oo_static.html
次のプログラムで
public string cnvString(double data) {
return data.ToString();
}
下記のエラーになるんだ。どうしてなんだ?
「エラー 1 メソッド グループ 'ToString' を非デリゲート型 'string' に変換することはできません。このメソッドを呼び出すことはできません。 ファイルパス」
次の様にするとエラーは出なくなるんだ。何か違う気がする・・・。
public string cnvString(double data) {
string s = data.ToString();
return s;
}
▼回答
VBやC言語で言う共通関数(値を渡して結果を返すだけの処理)のようなものならstaticを
付けてあげれば問題ないと思うよ。
public static string cnvString(double data) {
return data.ToString();
}
静的変数・静的メソッドはクラスごとに唯一つの実体を持ち、すべてのオブジェクトの間で共有される。
また、数学関数や数学定数などのインスタンスを持つ必要のない関数を定義する場合にも使う。
クラス内に処理実態とデータが含む場合はstaticにしてはいけない。
■参考サイト
静的変数・静的メソッド(C# によるプログラミング入門)
http://ufcpp.net/study/csharp/oo_static.html