[解決済み] C#がメソッドを非デリゲート型に変換できない
2022-01-30 13:28:33
質問
というクラスがあります。
Pin
.
public class Pin
{
private string title;
public Pin() { }
public setTitle(string title) {
this.title = title;
}
public String getTitle()
{
return title;
}
}
別のクラスから、Pinsオブジェクトを
List<Pin>
そして、もう一つは、リストピンを反復して、要素を取得したいのです。そこで、次のようなコードを用意しました。
foreach (Pin obj in ClassListPin.pins)
{
string t = obj.getTitle;
}
このコードでは、タイトルを取得することができません。なぜですか?
(注
ClassListPin
は、いくつかの要素を含む単なる静的なクラスで、そのうちのひとつである
List<Pin>
ピン)
解決方法は?
メソッド呼び出しの後に括弧を付けないと、コンパイラーはメソッド自体(デリゲート型)について話しているのだと勘違いしてしまいますが、実際にはそのメソッドの戻り値について話しているのです。
string t = obj.getTitle();
重要でない余分な情報
また、プロパティも見てみましょう。そうすれば、titleを変数のように使いながら、内部的には関数のように動作させることができます。そうすれば、関数を書く必要がなくなります。
getTitle()
と
setTitle(string value)
が、こんな風にできるんですね。
public string Title // Note: public fields, methods and properties use PascalCasing
{
get // This replaces your getTitle method
{
return _title; // Where _title is a field somewhere
}
set // And this replaces your setTitle method
{
_title = value; // value behaves like a method parameter
}
}
または、自動実装されたプロパティを使用することもでき、その場合はデフォルトでこれを使用します。
public string Title { get; set; }
また、独自のバッキングフィールドを作成する必要もないでしょう(
_title
) を、コンパイラが自動的に作成します。
また、プロパティアクセサ(ゲッターとセッター)のアクセスレベルを変更することができます。
public string Title { get; private set; }
プロパティをフィールドのように使用する、つまり
this.Title = "Example";
string local = this.Title;
関連
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] 型チェック:typeof、GetType、is?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
-
[解決済み] UTF-8 byte[]を文字列に変換する方法
-
[解決済み] C#でメソッドをパラメータとして渡す
-
[解決済み] 汎用クラスやメソッドのメンバからTの型を取得する方法
-
[解決済み] 戻り値のないFuncデリゲート
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。