C# 如何在类中访问静态方法

C# 如何在类中访问静态方法,c#,C#,这里我用类文件中的静态方法编写了一些代码,请帮助我如何创建静态类的实例 public class ConnectionString { public static void CreateCommand(string querystring, string connectionString) { using(SqlConnection cn = new SqlConnection(connectionString))

这里我用类文件中的静态方法编写了一些代码,请帮助我如何创建静态类的实例

public class ConnectionString
    {

       public static void CreateCommand(string querystring, string connectionString)
        {
           using(SqlConnection cn = new SqlConnection(connectionString))
           {
               SqlCommand cmd = new SqlCommand(querystring, cn);
               cmd.Connection.Open();
               cmd.ExecuteNonQuery();
           }           
        }

    }

就这样说吧:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }

就这样。

就这样称呼它:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }

就是这样。

您的
ConnectionString
类可以重构以实现如下接口:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }
此接口允许我们将其实现注入到您在注释中提到的控制器中。因此,您的
ConnectionString
类(重命名为更有意义的名称
DataAccess
)应该如下所示:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }
然后在控制器/客户机类中,可以在运行时注入具体的实现

public class DataController : Controller
{
    private readonly IDataAccess dataAccess;
    public DataController(IDataAccess dataAcces)
    {
        this.dataAccess = dataAcces;
    }

    public ActionResult ShowData()
    {
        string querystring = "you t-sql query";
        string connectionString = "<you sql connection string>";

        this.dataAccess.CreateCommand(querystring, connectionString);

        return this.View();
    }
} 
公共类数据控制器:控制器
{
专用只读IDataAccess数据访问;
公共数据控制器(IDataAccess数据访问)
{
this.dataAccess=dataAcces;
}
公共行动结果显示数据()
{
string querystring=“yout-sql查询”;
字符串连接字符串=”;
this.dataAccess.CreateCommand(querystring、connectionString);
返回这个.View();
}
} 
如果您正在使用MVC,但不知道如何解决依赖关系,请参阅

或者,您可以像下面这样新建DataAccess类的实例:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }
公共类数据控制器:控制器
{
专用只读IDataAccess数据访问;
公共数据控制器()
{
this.dataAccess=新的dataAccess();
}
公共行动结果显示数据()
{
string querystring=“yout-sql查询”;
字符串连接字符串=”;
this.dataAccess.CreateCommand(querystring、connectionString);
返回这个.View();
}
}
我不推荐这种方法,因为它不可能进行单元测试


希望这有帮助

您的
ConnectionString
类可以重构以实现如下接口:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }
此接口允许我们将其实现注入到您在注释中提到的控制器中。因此,您的
ConnectionString
类(重命名为更有意义的名称
DataAccess
)应该如下所示:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }
然后在控制器/客户机类中,可以在运行时注入具体的实现

public class DataController : Controller
{
    private readonly IDataAccess dataAccess;
    public DataController(IDataAccess dataAcces)
    {
        this.dataAccess = dataAcces;
    }

    public ActionResult ShowData()
    {
        string querystring = "you t-sql query";
        string connectionString = "<you sql connection string>";

        this.dataAccess.CreateCommand(querystring, connectionString);

        return this.View();
    }
} 
公共类数据控制器:控制器
{
专用只读IDataAccess数据访问;
公共数据控制器(IDataAccess数据访问)
{
this.dataAccess=dataAcces;
}
公共行动结果显示数据()
{
string querystring=“yout-sql查询”;
字符串连接字符串=”;
this.dataAccess.CreateCommand(querystring、connectionString);
返回这个.View();
}
} 
如果您正在使用MVC,但不知道如何解决依赖关系,请参阅

或者,您可以像下面这样新建DataAccess类的实例:

string querystring = "Your values here";
string connectionString = "Your values here";
ConnectionString.CreateCommand(querystring, connectionString);
  public interface IDataAccess
    {
        void CreateCommand(string querystring, string connectionString);
    }
 public class DataAccess : IDataAccess
    {       

        public void CreateCommand(string querystring, string connectionString)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(querystring, cn))
                {
                    cmd.ExecuteNonQuery();
                }             
            }
        }
    } 
public class DataController : Controller
    {
        private readonly IDataAccess dataAccess;
        public DataController()
        {
            this.dataAccess = new DataAccess();
        }

        public ActionResult ShowData()
        {
            string querystring = "you t-sql query";
            string connectionString = "<you sql connection string>";

            this.dataAccess.CreateCommand(querystring, connectionString);

            return this.View();
        }
    }
公共类数据控制器:控制器
{
专用只读IDataAccess数据访问;
公共数据控制器()
{
this.dataAccess=新的dataAccess();
}
公共行动结果显示数据()
{
string querystring=“yout-sql查询”;
字符串连接字符串=”;
this.dataAccess.CreateCommand(querystring、connectionString);
返回这个.View();
}
}
我不推荐这种方法,因为它不可能进行单元测试


希望这有帮助

这是通过一个错误你可以添加想要声明类Staticyer Mr JSTEVENS我想要在我的控制器中访问该类通过一个错误你可以添加想要声明类Staticyer Mr JSTEVENS我想要在我的控制器代码中访问该类Bro我真的交了漂亮的代码Bro我真的交了手