gpt4 book ai didi

C# - 值类型的引用包装器

转载 作者:太空狗 更新时间:2023-10-29 17:37:08 25 4
gpt4 key购买 nike

我想使用 c# Point 类型作为引用类型(它是一个结构)。我想到了一个 CPoint 类,它包含一个 Point 成员。有什么方法可以将 Point 的成员提升为 Cpoint 的成员。我在努力避免

cpoint.point.X;
cpoint.point.Y;

我想做

cpoint.X;
cpoint.Y;

以及保留所有转换、运算符、Empty
这很容易做到吗?

最佳答案

是这样的吗?

public class CPoint {
private Point _point = new Point(0,0);
public double X { get { return _point.X; } set { _point.X = value; } }
public double Y { get { return _point.Y; } set { _point.Y = value; } }
public CPoint() { }
public CPoint(Point p) { _point = p; }
public static implicit operator CPoint(Point p) { return new CPoint(p); }
public static implicit operator Point(CPoint cp) { return cp._point; }
}

编辑:如果你想让它自动转换为点/从点转换,按照上面的方法实现隐式转换。请注意,我还没有测试过这些,但它们应该可以工作。更多信息在这里:http://msdn.microsoft.com/en-us/library/z5z9kes2.aspx

关于C# - 值类型的引用包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735070/

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