【问题标题】:Passing namespace in C#在 C# 中传递命名空间
【发布时间】:2014-11-19 09:46:51
【问题描述】:

我们有一个关于 c# 继承的练习。现在我的问题是,我将在问号和 if 语句中输入什么来知道程序传递了 Person 类或 Animal 类或 InventoryApplication 命名空间下的任何类。 :)

private void AddButton_Click(object sender, EventArgs e)
{
     Logic_Layer.Logic logic = new Logic();
     //logic.Add<Person>();
}

namespace Logic_Layer
{

    public class Logic
    {
        public void Add<InventoryApplication>() where InventoryApplication : ?
        {
            //if { }
        }

        public void delete() { }
        public void edit() { }
        public void search() { }
        public void searchAll() { }
    }
}

【问题讨论】:

  • 命名空间是一种组织类的方式,它们在继承中没有任何作用,所以这永远不会起作用。一个解决方案可能是让您的公共类实现相同的接口。
  • 天哪。我需要更多地研究这个问题:)

标签: c# inheritance


【解决方案1】:

你不能在约束中使用这样的语句。但是,稍后在该方法中您可以这样做:

if (typeof(myObject).Namespace == "InventoryApplication")
{
...
}

如果您要测试的类(Animal、Person 等)能够实现一个接口(例如,IMyInterface)会更好。

例如:

 void Add<T>(<T> param) where T : IMyInterface {/*...*/}

【讨论】:

  • 问号先生怎么样?我会放什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 2011-01-02
相关资源
最近更新 更多