我有一个类构造函数。 有人可以解释第二个参数吗? Id是一个函数,通用对象作为第一个参数,可选GUID作为第二个参数吗?
public myClass(int identifier, Func<T, Guid?> Id)
答案 0 :(得分:2)
Id是一个函数,通用对象作为第一个参数,可选GUID作为第二个参数吗?
不完全。它是一个函数,通用对象作为第一个参数(T
的类型在其他地方定义,可能在类定义中)返回可空GUID
。
答案 1 :(得分:-3)
.Net不支持通用构造函数,没有任何意义支持它,因为我们可以通过使用类级泛型来实现这一点。 请看下面的代码,
class Program
{
static void Main(string[] args)
{
var result = new GenericImplementation<int>(1, GetGuid);
Console.WriteLine( result.Invoke(1));
Console.ReadLine();
}
public static Guid? GetGuid(int i)
{
//Do whateve you want to do
return new Guid();
}
}
class GenericImplementation<T>
{
Func<T, Guid?> _id;
public GenericImplementation(int identifier, Func<T,Guid?> id)
{
_id = id;
}
public Guid? Invoke(T value)
{
return _id.Invoke(value);
}
public bool Equal<U>(U v1, U v2)
{
if (v1.GetType() == typeof(string))
{
return v1.ToString() == v2.ToString();
}
if (v1.GetType() == typeof(int))
{
return int.Parse(v1.ToString()) == int.Parse(v2.ToString());
}
if (v1.GetType() == typeof(object))
{
//Deep level comparision
return true;
}
return false;
}
}
方法可以是通用的,因为它们可以根据参数(通用)做出不同的反应,例如相等的方法,Equal方法根据提供的参数不同地工作