私はジェネリックメソッドを初めて使うことができますか?私は答えを探してきましたが、あなたが助けることができる1つの希望を見つけることができません。 私はボクシングとアンボクシングを試みましたが、それはエラーです。 ここに私のコードです。一般的なメソッド設定値T
if (input == 1)
{
Sum sum = new Sum();
InputTwoDegits<Sum>(out firstNumber, out secondNumber, out firstNumberChecker, out secondNumberChecker, input, sum);
factoryClass = sum;
factoryClass.Compute();
}
else if (input == 2)
{
Difference dif = new Difference();
InputTwoDegits<Difference>(out firstNumber, out secondNumber, out firstNumberChecker, out secondNumberChecker, input, dif);
factoryClass = dif;
factoryClass.Compute();
}
private static void InputTwoDegits<T>(out int firstNumber, out int secondNumber, out bool firstNumberChecker, out bool secondNumberChecker, int input, T returnClass) where T : class
{
T set = T(Sum);
firstNumberChecker = Int32.TryParse(Console.ReadLine(), out firstNumber);
//returnClass.FirstNumber = firstNumberChecker ? input : 0;
secondNumberChecker = Int32.TryParse(Console.ReadLine(), out secondNumber);
//returnClass.SecondNumber = secondNumberChecker ? input : 0;
}
public abstract class BaseClass
{
public BaseClass()
{
this.Compute();
}
public int FirstNumber { get; set; }
public int SecondNumber { get; set; }
public int ReturnObj { get; set; }
public abstract void Compute();
}
public class Sum : BaseClass
{
public override void Compute()
{
ReturnObj = FirstNumber + SecondNumber;
}
}
public class Difference : BaseClass
{
public override void Compute()
{
ReturnObj = FirstNumber - SecondNumber;
}
}
コメントコードに誤りがあります。私はそれに値を入れることができるように、returnClassの値を設定したいと思います。
ありがとうございました。
私はこれもまた、作業のおかげ – whizzle
@whizzleを試してみました - あなたは受け入れとして、あなたがそれを常にマークすることができるよりも答えに満足している場合。 – Sean