我更喜欢使用很多扩展方法,asin ToFloat
, ToInt
, ToLoong
, ToGuid
,ToSqlParameter
现在,自从我一直在我现在的位置工作以来,有些人一直在抱怨他们在日常对象上看到的大量扩展方法。
对于我的问题,我将起诉示例:“ToSqlParameter”
public static SqlParameter ToSqlParameter(this object source, string name, bool structured = false)
{
var para = new SqlParameter { ParameterName = name, Value = source };
if (structured) { para.SqlDbType = SqlDbType.Structured; }
return para;
}
目前,每个对象都有可用的扩展方法。
我知道添加类似的东西where T : class
只会让它在类上工作,但是因为这个方法应该能够在 , 上使用string
,bool
甚至objects
我也无能为力。
现在我的问题是,是否可以创建扩展方法,以便仅在应用于List<SqlParameter>
像 :
var str = "Some Strnig";
var list = new List<SqlParameter>();
var list2 = new List<string>();
list.Add(str.ToSqlParameter("@str")); //Should work
list2.Add(str.ToSqlParameter("@str")); //Should return 'SqlParameter not found'
这可能吗?