带有等号的 C# 订单下达

本文关键字:单下达 | 更新日期: 2023-09-27 17:56:08

想知道两者之间是否有区别:

public Bee (double weight) 
    {
        this.weight = weight; 

public Bee (double weight) 
    {
        weight = this.weight; 

如果您切换等号"="符号的左右,它会改变含义吗?

带有等号的 C# 订单下达

是的。意思肯定会改变。一个将weight的值分配给this.weight,另一个将this.weight的值分配给weight

后者将分配存储在类weight字段中的值,并将其分配给传递给方法的weight参数。

前者将适得其反。

基本上,this.weight是指类的weight字段,其中weight是指方法的参数。如果方法范围内没有weight变量,您仍然可以使用 weight 来引用类字段。

是的。this 关键字指示变量是类实例变量。如果没有 this 关键字,将使用本地权重参数。

下面的示例将传递到构造函数的参数分配给同名的类实例变量。

示例类:

public class Bee
{
    double weight;
    public Bee(double weight)
    {
        this.weight = weight;
    }
}

在 C# 中,单个=是赋值运算符 - 它将右侧表达式的值分配给左侧的变量。既然如此,顺序当然很重要。

如果您正在寻找逻辑相等比较,则可以使用 == 运算符 - 当然,在您提供的代码中这样做毫无意义:语句将返回 truefalse 作为其结果,然后您需要分配该结果或对其进行其他有用的操作。

是的。他们是不同的。 this.weight引用类上的属性或变量,weight引用方法中的参数。

让我们举个例子:

public class Bee
{
   private double weight;      
   public Bee (double weight)
   {
      this.weight = weight;
   }
}

如果我想更改函数中的参数权重,我可以这样做:

public class Bee
{
   private double weight;      
   public Bee (double initialWeight)
   {
      this.weight = initialWeight;
   }
}

如果我想更改内部变量权重,我会这样做:

public class Bee
{
   private double internalWeight;      
   public Bee (double weight)
   {
      this.internalWeight = weight;
   }
}

如您所见,任何更改都使此处发生的事情更加清晰,它还可以帮助您了解每个呼叫的设置内容。