c# - 如何根据某些参数在构造函数中调用基构造函数?

标签 c# asp.net-mvc entity-framework constructor

如何根据参数调用构造函数内部的基础构造函数? 例如:

public SomeConstructor (){
       if(SomeParameter == "something") //here call base("something");
          else //here call base("something else")
}

以我为例

SomeParameter

例如可以是本地计算机名称。

为了解释我在做什么,我想根据计算机名称确定构造函数。我正在处理 MVC 项目,当我在服务器上发布项目时,我仍然忘记更改连接字符串的名称。所以,我想指定如果计算机名称 == 我的计算机名称,然后调用

:base("DefaultConnection")

否则,调用例如

:base("ServerConnectionString")

最佳答案

你不能那样做,你只能像后面的例子那样调用,即使那样,你的两个例子都传递了一个字符串而不改变参数类型,所以这样看起来毫无意义(他们不是甚至你正在调用的不同构造函数)。您可以以传统方式调用构造函数,并确保提供的值在此之前是有效的。

作为一个即兴的例子,请考虑以下内容:

public SomeConstructor() 
  : base(Configuration.ConnectionString) {

}

public static Configuration {
  public static string ConnectionString {
    get { 
      /* some logic to determine the appropriate value */
#if DEBUG
      return ConfigurationManager.ConnectionStrings["DebugConnectionString"]; 
#else
      return ConfigurationManager.ConnectionStrings["ReleaseConnectionString"]; 
#endif
    } 
  }
}

关于c# - 如何根据某些参数在构造函数中调用基构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071824/

相关文章:

entity-framework - ReferentialConstraint 中的依赖属性映射到一对一关系上存储生成的列错误

c# - 为什么 EF 获取所有记录,然后通过 PK 再次获取所有记录

c# - 为什么锁对象必须是只读的?

c# - 帮助创建递归函数 C#

c# - 有没有办法接收焦点输入的关键输入?

c# - 无法返回类型 IQueryable 或 IEnumerable

asp.net-mvc - 如何在mvc中使内容类型MIME类型动态化?

entity-framework - EF Code First - 身份和计算列

c# - 如何在 asp.net webforms 中激活当前菜单项

c# - 如何处理通知警报和服务器进程的用户指定的本地日期时间?