c# - 如何创建自己的数据类型?

标签 c#

我想创建我自己的 DataType,名为 positiveInteger

我知道你在想什么?

你认为我应该在这里使用 uint。 但是 uint 包含 0,我只想要正数。

现在你可以告诉我创建一个名为 positiveInteger 的类。 是的,我可以创建一个名为 positiveIntegerClass,但我不知道如何实现该类以使这个新的 DataType 只接受正整数值?

最佳答案

如果您希望能够“接受”值(mostly)编译为常量int 值,那么您需要实现一个implicit。从 int

转换为 positiveInteger
public class positiveInteger
{
    public static implicit operator positiveInteger(int source)
    {
        if(source <= 0) throw new ArgumentOutOfRangeException();
    }
}

这将允许您像这样分配一个 positiveInteger

positiveInteger number = 5;

但是,它也可以分配一个 int

int i = 5;
positiveInteger number = i;    // This will throw an exception when i <= 0

关于c# - 如何创建自己的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433276/

相关文章:

c# - while 循环不会在 bool C# 上中断

c# - 是否可以反射(reflect)托管程序集?

c# - 在 C# 中将 char 转换为 int

c# - 如何禁用 WinForms DataGrid 中的按钮单元格?

c# - PowerShell 的 Get-ExecutionPolicy 返回不同的值

C# webbrowser 不显示更新的结果

c# - EntityFramework 存储库模板 - 如何在模板类中编写 GetByID lambda?

c# - ECDiffieHellmanCng PublicKey 总是一样的吗?

c# - 为什么我的模拟鼠标点击没有执行任何操作?

c# - 根据用户 ID 更改数据库