有没有一种方法可以在c#中编写自文档类型?
本文关键字:类型 文档 一种 方法 有没有 | 更新日期: 2023-09-27 18:10:06
如果我有,例如字典:
private Dictionary<int, OrderSummary> _orderSummaries;
在c++中我可能有:
typedef int OrderID;
private Dictionary<OrderID, OrderSummary> _orderSummaries;
显示字典键类型是订单ID。c#中有类似的吗?
您可以使用类型别名,如下所示:
using OrderId = System.Int32;
但是别名只在源文件中有效。每个其他源文件都将看到您的字典为Dictionary<int, OrderSummary>
。
这类别名主要用于消除具有相同名称的类型之间的歧义,而不是作为typedef
的替代品。在我看来,将它用于区分相同名称的类型之外的任何目的都是一种不好的做法,而且实际上会妨碍可读性。
如果你的OrderId
确实携带一个特定的和明显的语义含义,我建议创建你自己的值类型封装一个int。
你可以做一个类型别名:using OrderId = System.Int32;
这只在源文件中有效,所以它可能不像你想的那样完整的文档…
然而,如果你想从外部记录你的数据结构(字典)的意图,那么我会实现一个包装器类:
public class OrderSummaries
{
private readonly Dictionary<int, OrderSummary> _orderSummaries;
public OrderSummary FindOrderSummary(int orderId)
{
return _orderSummaries[orderId];
}
...
}
您也可以实现包含单个System.Int32
的struct
:
public struct OrderId
{
public readonly Int32 Id;
public OrderId(int id)
{
Id = id;
}
}
使用Dictionary<OrderId, OrderSummary>