私はこのコンパイラエラー生成し、いくつかのコードを持っている:コードは、エラーのある行で、以下の通りですC#のクラスメソッド内から何かを呼び出す方法
CS0236 A field initializer cannot reference the non-static field, method, or property 'PublicModule.rnd'
がマーク:
public class PublicModule : ModuleBase
{
Random rnd = new Random();
int value = rnd.Next(4,50); // <<<< Error is here
[Command("Ping")]
public async Task ping()
{
await ReplyAsync(Context.User.Mention + ", Pong!");
}
[Command("Hara")]
public async Task hara()
{
await ReplyAsync("Hara noi te iubim <3 .");
}
[Command("kek")]
public async Task kek()
{
await ReplyAsync(Context.User.Mention + ", kek");
}
[Command("Random")]
public async Task Dice()
{
await ReplyAsync(Context.User.Mention + " ur random number is : " + value);
}
}
をどのように私はそのクラスrnd.Next
を呼び出すことができますか?私は、コーディングでのnoobだと私は、私はクラスからの文int value = rnd.Next();
を削除し、次のように機能Dick()
に移動
関数本体の中に 'rnd.Next'を置く必要があります。 C#の関数の外に文を書くことはできません。値を表示する前に 'int value = rnd.Next();'ステートメントを 'Dick()'に移動してください。 – Yatin
質問にコードを入れてみてください。より簡単に助けてくれるでしょう –
私はC#チュートリアルを始めることをお勧めします。初心者向けに数多くのチュートリアルがあります。 – itsme86