gpt4 book ai didi

c# - 声明新类型

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:08 24 4
gpt4 key购买 nike

假设我有以下类(class):

class Number{

}

然后我想声明 Number 类型的变量,并给它们一个值,如 intuint 或任何类型的变量:

Number n = 14;

我不确定我的问题是否好,但请帮助我,因为我是 C# 的新手

最佳答案

您可以创建隐式转换运算符来处理此类情况。您的类需要隐式转换运算符将调用的构造函数。例如:

class Number
{
public int Value { get; set; }

public Number(int initialValue)
{
Value = initialValue;
}

public static implicit operator Number(int initialValue)
{
return new Number(initialValue);
}
}

然后是行

Number n = 14;

将有效地等同于

Number n = new Number(14);

您也可以向类中添加一个运算符以实现另一个方向:

public static implicit operator int(Number number)
{
if (number == null) {
// Or do something else (return 0, -1, whatever makes sense in the
// context of your application).
throw new ArgumentNullException("number");
}

return number.Value;
}

小心隐式运算符。它们是很好的语法糖,但它们也会让我们更难分辨特定代码块中到底发生了什么。您还可以使用显式运算符,这需要进行类型转换才能调用。

关于c# - 声明新类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com