我找到了这段代码here。我知道它的基础知识,但是方法参数中的'this Type type'有什么用,请解释一下吗?
public static bool InheritsFrom(this Type type, Type baseType)
{
// null does not have base type
if (type == null)
{
return false;
}
// only interface can have null base type
if (baseType == null)
{
return type.IsInterface;
}
// check implemented interfaces
if (baseType.IsInterface)
{
return type.GetInterfaces().Contains(baseType);
}
// check all base types
var currentType = type;
while (currentType != null)
{
if (currentType.BaseType == baseType)
{
return true;
}
currentType = currentType.BaseType;
}
return false;
}
答案 0 :(得分:-5)
它用于扩展方法,在C#中有一个名为Extension方法的概念,该语法用于扩展方法
什么是Extesion方法?
方法允许程序员添加"添加"现有类型的方法,无需创建新的派生类型,重新编译或修改原始类型。方法是静态方法,它们被称为扩展类型的实例方法。
示例:
public static class Utilities
{
public static string encryptString(this string str)
{
System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] data = System.Text.Encoding.ASCII.GetBytes(str);
data = x.ComputeHash(data);
return System.Text.Encoding.ASCII.GetString(data);
}
}
这会扩展string
类型并在entryptString
类型上添加string
方法。
点击此处了解详情:Extension Methods