C#中指针(byte *)的别名

时间:2012-11-21 09:19:12

标签: c# pointers alias using

是否可以在不安全的指针类型上创建别名,即我想使用以下内容:using bytePtr = System.Byte*

.net开发人员是否会在未来版本中引入此功能(指针和数组类型的别名)?

3 个答案:

答案 0 :(得分:4)

不,不是。

如果,语法就是:

using BytePtr = System.Byte*;

但又一次:不,你做不到。 using别名不能指向。

此外,byte*比IMO BytePtr更短更清晰。

答案 1 :(得分:2)

不,使用别名仅涉及名称空间和类型名称。您不能将它用于“派生”类型。

为了进行比较,以下内容不会编译:

 using NullDate = System.DateTime?;

错误(在“?”上)只是预期的';'

答案 2 :(得分:2)

不可能。如果你坚持认为你可以定义一个包装类或结构并获得非常接近的东西。但是我不建议这样做,因为它似乎没什么价值。

这样的事情:

unsafe struct BytePtr
{
    public BytePtr(byte *value)
    {
        _value = value;
    }

    private byte* _value;

    public byte* Value
    {
        get { return _value; }
    }
}