C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 具有不同类型的接口大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个问题,我有两个实现,我想共享一个接口,但他们将有“相同参数”的不同类型,请参阅一个Guid和一个Int.

例如:

public Class1 : IGetObject {
   GetObjectBy(int Id);
}

public Class2 : IGetObject {
   GetObjectBy(Guid Id);
}

在应用程序的另一端,“Id”参数将来自用户输入,即字符串.所以我也有

public GetObjectMethod(){
  string id = dropdown.SelectedItem.Text;
  IGetObject GetObject = Shared.Instance.GetObject;
  var result = GetObject.GetObjectBy(id);
}

如何让实现共享接口,以便我不必在GetObjectMethod中更改某些内容

我认为可能的想法是创建一个这样的新类型并在公共接口中声明它.通过这种方式,实现知道它应该使用哪个属性

public class ObjectId(){
   public ObjectId(string id){
      if(Guid.TryParse(id)){
       /// figure out what value that should be set
      }
   }

   public Guid ObjectIdAsGuid;
   public Int  ObjectIdAsInt;
}

这样做的最佳方式是什么?

解决方法

您可以创建接受字符串(或对象)的GetObjectBy方法,然后在接口的实现中解析(或转换)id:

public Class1 : IGetObject {
   public Foo GetObjectBy(string Id) 
   { 
      var id = Int32.Parse(Id); 
      //... 
   }
}

public Class2 : IGetObject {
   public Foo GetObjectBy(string Id) 
   {
       var id = new Guid(Id); 
       //... 
   }
}

大佬总结

以上是大佬教程为你收集整理的c# – 具有不同类型的接口全部内容,希望文章能够帮你解决c# – 具有不同类型的接口所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: