在C#中创建自定义常量后缀

4
我将尝试开发一个类来处理无限大小的整数值,我所需要做的就是使用新的自定义常量后缀与赋值运算符一起使用。
例如:
假设类名为BigInt,创建的后缀为B,则赋值语句将如下所示:
// B character will tell the compiler about the New Data Type
BigInt x = 111111111111111111111111111111111111111111111111B; 

有没有办法实现这个?祝好!

7
您为什么不能简单地使用现有的BigInteger结构? - Oded
2
不可能,除非你想自己制作C#编译器。我建议只需使用new BigInt("111"),这很可能是你的所有字面量都可以编译的。 - Tim S.
5个回答

7
不支持此功能的语言/编译器。有类似的东西,你可能想要了解一下隐式转换运算符。这将使您可以执行以下操作:
BigInt b = "1234";

public class BigInt
{
    public static implicit operator BigInt(string value)
    {
        return new BigInt {Value = value};
    }
    public string Value { get; private set; }
}

6

目前在C#中没有任何方法可以实现这一点。

解决方法:您可以查看基于C#语法的非常灵活、友好的元编程语言Nemerle


5

您所描述的方式无法直接扩展该语言。

您可以编写类似于C#并接受这种指定符号的.NET语言,但没有与您尝试做的类似的东西。

注意:已经存在一个用于任意大小整数的结构BigInteger - 没有必要重新发明轮子。


1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接