class TestClass<T>{ public voID Getname<string>() { //do work kNowing that the type is a string } public string Getname<int>() { //do work kNowing that the type is an int } public string Getname<int>(int addNumber) { //do work kNowing that the type is an int (overloaded) } public string Getname<DateTime>() { //do work kNowing that the type is a DateTime } public string Getname<customObject>() { //do work kNowing that the type is a customObject type }}
所以现在我可以调用Getname方法,因为我已经在初始化对象时传入了类型,所以找到并执行正确的方法.
TestClass foo = new TestClass<int>();//executes the second method because that's the only one with a "int" typefoo.Getname();
这是可能还是我只是在做梦?
解决方法 你想做的是这样可能的:class TestClass<T>{ public string Getname<T>() { Type typeOfT = typeof(T); if(typeOfT == typeof(string)) { //do string stuff } }}
尽管这是可能的,但是你也是打败仿制药的目的.泛型点是当类型无关紧要时,所以在这种情况下我不认为泛型是适当的.
总结以上是内存溢出为你收集整理的C#类型的方法重载全部内容,希望文章能够帮你解决C#类型的方法重载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)