c#类类型作为方法参数


public class SampleCass{
  public void DoSomething(SampleCass sample){
       //Do method implementation
 }
}

在上面的代码示例中,传递的方法参数类型与方法所属的类相同。我想知道为什么它是这样做的,以及它的一些细节

Thanks in advance

这有多种用途。例如,考虑一个Number类(哑):

public class Number {
    private readonly int _n = 0;
    public Number(int n) { _n = n; }
    public Number Add(Number other) {
         return new Number(this._n + other._n);
    }
}

这是因为该方法使用该类的实例而不是它自己的实例来做某事。假设您有一个Contact类型和一个将其与另一个联系人进行比较的方法。你可以这样写:

public class Contact
{        
   public string name;
    public bool Compare(Contact c)
    {
       return this.name.Equals(c.name);
    }
}

如果我必须猜测,我会说它是这样做的,因为方法内部的逻辑使用对象的两个实例-一个是调用方法的实例(this),另一个通过参数传递(sample)。如果方法中的逻辑没有使用对象的两个实例,则可能出现错误。

希望这有帮助,更多的细节我们需要看到更多的代码。

根据您的问题领域,可以有许多用途。我可以给你另一个例子,你可以编写与类相同类型的字段。

,

public class Node
{
  public Node _next;
}

我知道你的问题很特别,但我认为这个例子可以为当前的问题增加价值。

(我给出一个构造函数的例子,它将帮助您理解非构造函数方法。)

可以用来创建像

这样的复制构造函数
public class SampleCass
{
    public int MyInteger { get; set;}
    //Similarly other properties
    public SampleClass(SampleClass tocopyfrom)
    {
            MyInteger = tocopyfropm.MyInteger;
           //Similarly populate other properties
    }
}

可以这样调用

SampleClass copyofsc = new SampleClass(originalsc);

相关内容

  • 没有找到相关文章

最新更新