可能重复:
Can you add extension methods that you call like static methods?扩展方法的静态类的方法
我想对Guid
系统类型添加NewSequentialGuid
功能,这样我就可以使用像以下:
Id = Guid.NewSequentialGuid()
namespace MyExtensions
{
public static class GuidExtensions
{
[DllImport("rpcrt4.dll", SetLastError = true)]
static extern int UuidCreateSequential(out Guid guid);
public static Guid NewSequentialGuid(this Guid guid)
{
const int RPC_S_OK = 0;
Guid g;
int hr = UuidCreateSequential(out g);
if (hr != RPC_S_OK)
throw new ApplicationException
("UuidCreateSequential failed: " + hr);
return g;
}
}
}
但我不能得到这个工作,它只适用于实例变量,任何想法如何将这个扩展类作为静态方法?
你意识到这样做*不*返回以任何方式连续的GUID,对不对? – 2010-12-23 14:25:58
我的理解是,这将创建连续的GUID,直到下次重新启动服务器。 – hazimdikenli 2010-12-30 12:13:52