在 Delphi 中,以下是可能的:
class Alias = Dictionary<long, object>;
别名现在是一个dictionary<long, object>
.
这在 C# 中可能吗?我从来没有弄清楚如何不必将字典包装到自定义类中。
using 指令不起作用,因为它在它出现的文件中是本地的。
不,这在 C# 中无效。
如果您希望 Alias 成为 Dictionary 您可以像这样继承 Dictionary 类。
public class Alias : Dictionary<long, object>
不完全是。
但是你可以这样做:
public class Alias : Dictionary<long, object>
{
}
这意味着您可以在需要Alias
a 实例的任何地方使用Dictionary<long, object>
。但是你不能在需要Dictionary<long, object>
an 的地方使用 a Alias
。
但是,您可以创建一个隐式运算符来透明地从 a 转换Dictionary<long, object>
为Alias
实例:
public class Alias : Dictionary<long, object>
{
public Alias() {}
public Alias(Dictionary<long, object> dictionary)
{
foreach(var kvp in dictionary)
Add(kvp);
}
public static implicit operator Alias (Dictionary<long, object> dictionary)
{
return new Alias(dictionary);
}
}
请注意,此隐式转换运算符将创建字典的副本,这可能是意外或不希望的。