5

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

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

4

3 回答 3

4

不,不是。

如果,则语法将是:

using BytePtr = System.Byte*;

但再说一遍:不,你不能那样做。using别名不能指向指针。

此外,byte*BytePtrIMO 更短更清晰。

于 2012-11-21T09:25:45.173 回答
2

不,使用别名仅与名称空间和类型名称有关。您不能将其用于“派生”类型。

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

 using NullDate = System.DateTime?;

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

于 2012-11-21T09:26:32.943 回答
2

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

像这样的东西:

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

    private byte* _value;

    public byte* Value
    {
        get { return _value; }
    }
}
于 2012-11-21T09:29:58.333 回答