C#类型的方法重载

C#类型的方法重载,第1张

概述我想知道以下是否可能.创建接受匿名类型(string,int,decimal,customObject等)的类,然后重载方法根据Type执行不同的 *** 作.例 class TestClass<T>{ public void GetName<string>() { //do work knowing that the type is a string } publ 我想知道以下是否可能.创建接受匿名类型(string,int,decimal,customObject等)的类,然后重载方法根据Type执行不同的 *** 作.例
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#类型的方法重载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1259583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存