为什么用get方法得到的相同的值判断==是false,但是在set时赋值以2L时get判断==为true
时间: 2024-03-18 19:43:03 浏览: 18
这个问题的答案跟具体的代码实现有关系,但是一般情况下,如果在set方法中给属性赋值的是基本数据类型,那么每次调用set方法时,都会创建一个新的包装类对象来存储这个基本数据类型的值,所以在使用get方法获取属性值时,每次返回的都是一个新的对象。因此,如果在set方法中给属性赋值为2L,那么每次使用get方法获取属性值时,都会返回同一个值为2L的Long类型对象,因为Long类型是不可变对象,它的值一旦被创建,就不能改变。
因此,如果在使用get方法获取属性值时,得到的是同一个对象,那么使用`==`比较两个对象时,结果就会为true。而如果在使用get方法获取属性值时,得到的是不同的对象,那么使用`==`比较两个对象时,结果就会为false,因为它们的引用是不同的。
需要注意的是,这只是一般情况下的情况,具体的实现还要看代码的具体实现。如果使用了对象池等技术,可能会影响对象的创建和回收,从而影响结果。
相关问题
public abstract DataTypeEnum DataType { get; set; } = DataTypeEnum.MASTER_DATA; c#中枚举类型为什么不能这样赋值,怎么修改
在 C# 中,枚举类型是值类型,它们的默认值为零,而不是 null。因此,你不能像在这个例子中一样,为枚举类型的属性提供默认值。
如果你想要为枚举类型的属性提供默认值,你可以在类的构造函数中为属性赋值,例如:
```csharp
public abstract class MyClass
{
public DataTypeEnum DataType { get; set; }
public MyClass()
{
DataType = DataTypeEnum.MASTER_DATA;
}
}
```
在这个例子中,我们将属性的默认值设为 MASTER_DATA 枚举值,并在构造函数中为属性赋值。
当你实例化 MyClass 类的对象时,它的 DataType 属性将被初始化为 MASTER_DATA 值。如果你需要修改这个值,你可以通过访问属性来进行修改。
public abstract DataTypeEnum DataType { get; set; } = DataTypeEnum.MASTER_DATA; c#种这行代码为什么编译不过去 怎么修改
这行代码可能会出现编译错误的原因是在 C# 6.0 之前版本中,自动属性初始值设定项只能是常数表达式。而在 C# 6.0 之后,允许自动属性初始值设定项为可赋值的表达式。
所以,如果你的 C# 版本低于 6.0,你可以将初始值设定项修改为常数表达式,例如:
```csharp
public abstract DataTypeEnum DataType { get; set; } = DataTypeEnum.MASTER_DATA;
```
修改为:
```csharp
public abstract DataTypeEnum DataType { get; set; }
public MyClass()
{
DataType = DataTypeEnum.MASTER_DATA;
}
```
这里我们将初始值设定项移到了类的构造函数中,使用赋值语句为属性赋初始值,这样就可以避免编译错误了。
如果你的 C# 版本高于 6.0,也可以直接使用原来的代码,只需要将项目的目标框架版本升级至 .NET Framework 4.6 或更高版本,或者使用 Visual Studio 2015 或更高版本进行编译即可。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)