アプリ版:「スタンプのみでお礼する」機能のリリースについて

Q1)下記のコードで正しいコードをお教え頂けますと大変有難いです。
注)出来れば、static属性を追加する方法ではない方法で。
namespace BBB
{
class Program
{
public int Add(int x, int y) { return x + y; }
private static int Addx(int x, int y) => x + y;
{
ans = Add(10, 20);
//エラー CS0120 静的でないフィールド、メソッド、またはプロパティ 'Program.Add(int, int)' で、オブジェクト参照が必要です
}
以上、宜しくお願いします。

A 回答 (1件)

staticメソッドからstaticでないメソッドを呼び出すことはできません。


これはもう少しオブジェクト指向型言語を理解する必要があります。

staticを利用したくないなら、Add()、Addx()などのビジネスロジックになる処理は別クラスにして、インスタンス化して利用するとか考えます。
ただし、インスタンスの状態に依存しないこの程度の処理をstaticにしない理由もありません。

class Program
{
static void Main(string[] args)
{
var calc = new Calculation();
var ans = calc.Add(10, 20);
}
}

class Calculation
{
public int Add(int x, int y) { return x + y; }
public int Addx(int x, int y) => x + y;
}
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!