ここでC#の新機能をコーディングする熱心な人は、この問題の壁を克服しています。何日か。このサイトで検索を試みただけでなく、このエラーのドキュメントをmsdnで読んだり、クラス、フィールド、初期化などのドキュメントを読んでみました。これが他の人には明らかであれば謝罪しますが、このエラーを理解する。フィールド初期化子は、非静的フィールド、メソッド、またはプロパティを参照することはできません。変数を設定します。
私は最初のC#プログラムとして基本的なMUDゲーム(コマンドラインで実行されるテキストベースのRPG)を書いています。私はモンスターの統計情報にアクセスしようとすると問題に遭遇しています"Bestiary"という名前の別の名前空間で、すべてのモンスターの統計情報を独自のClassとして含む)。私はいくつかの異なる方法を試しましたが、プログラムをエラーなくコンパイルすることができませんでした。
using System;
using System.Collections;
using Bestiary;
//Battle system is contained in this namespace.
class Combat(string playerName)
{
public int[] playerStats= new int[] { 25, 10};
public int[] monsterStats= new int[] { 10, 10};
string playerName = playerName;
Slime s = new Slime();
string monsterName = s.Name();
...
//Bestiary section being referenced in Combat
using System;
using System.Collections;
namespace Bestiary
{
//List of Monsters and their stats
class Slime
{
private string name = "Slime";
public string Name
{
get { return name; }
set { name = value; }
}
private int hp = 10;
public int HP
{
get { return hp; }
set { hp = value; }
}
private int atk = 1;
public int ATK
{
get { return atk; }
set { atk = value; }
}
}
これをコンパイルしようとすると、 "string monsterName = s.Name();"という行にエラーが表示されます。
Edit_SOrry:.Nameはプロパティであり、メソッドではありません。 'string monsterName = s.Name;' - ()を削除します。 – ainwood
あなたのコメントは何らかの理由で消滅しました。私はコンストラクタの例で私の答えを更新しました。 –
申し訳ありませんが、私は更新前に私のコメントを書いて、その後、それを削除して、それゆえに消えた。私は現在、それがコンパイルされるかどうかを確認するために変更を実装しています。リードしてくれてありがとう、私は一度チェックインし終わった! – Sandrockcstm