不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
泛型方法和非泛型方法优先级
编辑:dnawo 日期:2008-09-14
为了使用泛型方法,我们先定义一个Test类:
下边我们再定义一个泛型方法和一个非泛型方法:
最后通过实例我们来比较下优先级:
把非泛型方法注释掉再进行测试,这下都是调用泛型方法了。
可见,非泛型方法的优先级高于泛型方法,此时调用非泛型方法不能省略<Test>部分。
复制内容到剪贴板
程序代码

public class Test
{
public int number;
public Test(int i)
{
this.number = i;
}
}
{
public int number;
public Test(int i)
{
this.number = i;
}
}
下边我们再定义一个泛型方法和一个非泛型方法:
复制内容到剪贴板
程序代码

/// <summary>
/// 泛型方法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
protected int Add<T>(T a, T b) where T : Test
{
return a.number + b.number + 10;
}
/// <summary>
/// 非泛型方法
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
protected int Add(Test a, Test b)
{
return a.number + b.number;
}
/// 泛型方法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
protected int Add<T>(T a, T b) where T : Test
{
return a.number + b.number + 10;
}
/// <summary>
/// 非泛型方法
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
protected int Add(Test a, Test b)
{
return a.number + b.number;
}
最后通过实例我们来比较下优先级:
复制内容到剪贴板
程序代码

Test test1 = new Test(65);
Test test2 = new Test(85);
Response.Write(Add(test1, test2));//调用非泛型方法
Response.Write(Add<Test>(test1, test2));//调用泛型方法
Test test2 = new Test(85);
Response.Write(Add(test1, test2));//调用非泛型方法
Response.Write(Add<Test>(test1, test2));//调用泛型方法
把非泛型方法注释掉再进行测试,这下都是调用泛型方法了。
可见,非泛型方法的优先级高于泛型方法,此时调用非泛型方法不能省略<Test>部分。






评论: 0 | 引用: 0 | 查看次数: 4160
发表评论
请登录后再发表评论!