属性?还是参数?

下边两个运算类实现了一样的功能:

/// <summary>
/// 运算类
/// </summary>
class OperationClass
{
    /// <summary>
    /// 操作数1
    /// </summary>
    public int Num1 { set; get; }

    /// <summary>
    /// 操作数2
    /// </summary>
    public int Num2 { set; get; }

    /// <summary>
    /// 加法
    /// </summary>
    /// <returns></returns>
    public int Add()
    {
        return Num1 + Num2;
    }

    /// <summary>
    /// 减法
    /// </summary>
    /// <returns></returns>
    public int Sub()
    {
        return Num1 - Num2;
    }
}

调用示例:
OperationClass op = new OperationClass();
op.Num1 = 1;
op.Num2 = 2;
Console.WriteLine(op.Add());
Console.WriteLine(op.Sub());


/// <summary>
/// 运算类
/// </summary>
class OperationClass
{
    /// <summary>
    /// 加法
    /// </summary>
    /// <param name="num1">操作数1</param>
    /// <param name="num2">操作数2</param>
    /// <returns></returns>
    public int Add(int num1, int num2)
    {
        return num1 + num2;
    }

   /// <summary>
    /// 减法
   /// </summary>
    /// <param name="num1">操作数1</param>
    /// <param name="num2">操作数2</param>
   /// <returns></returns>
    public int Sub(int num1, int num2)
    {
        return num1 - num2;
    }
}

调用示例:
OperationClass op = new OperationClass();
Console.WriteLine(op.Add(1, 2));
Console.WriteLine(op.Sub(1, 2));

哪种更好一点呢?个人比较倾向于第2种写法,原因有以下两点:

·若使用第1种写法,其他人使用这类时,可能不知道哪些属性需要先赋值;
·第2个类的方法比较直观,需要几个参数,调用时一目了然;

评论: 0 | 引用: 0 | 查看次数: 4131
发表评论
登录后再发表评论!