[英]using constructor in abstract class
我的課如下:
public abstract class cDBBase
{
public cDBBase()
{
some codes
}
Some codes;
}
我有另一堂課
public class cSQL : cDBBase
{
public void cSQL()
{
Some codes;
}
}
為什么在子類構造函數上出現錯誤“成員名稱不能與其所在的類型相同的名稱”?
這是完整的代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Uploader
{
public abstract class cDBBaseClass
{
public string ServerName { get; set; }
public string DBName { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string ConnString;
public cDBBaseClass(string serverName, string dBName, string userName, string password)
{
ServerName = serverName;
DBName = dBName;
UserName = userName;
Password = password;
}
public abstract string SetConnString();
public abstract void SetConn();
}
}
和孩子班
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace Uploader.Classes
{
public class cSQL:cDBBaseClass
{
private SqlConnection Conn = new SqlConnection();
public cSQL()
{
SetConnString();
SetConn();
}
public override string SetConnString()
{
return "data source = " + this.ServerName +
"; database = " + this.DBName +
"; User ID = " + this.UserName +
"; Password = " + this.Password;
}
public override void SetConn()
{
Conn.ConnectionString = this.ConnString;
}
public SqlDataReader ExecSQL(string Query)
{
using (SqlConnection Conn = new SqlConnection(SetConnString()))
{
Conn.Open();
SqlCommand cmd = new SqlCommand(Query , Conn);
return cmd.ExecuteReader();
}
}
public SqlDataReader ExecStoredProcedure(string SPName)
{
using (SqlConnection Conn = new SqlConnection(SetConnString()))
{
Conn.Open();
SqlCommand cmd = new SqlCommand(SPName, Conn);
cmd.CommandType = CommandType.StoredProcedure;
return cmd.ExecuteReader();
}
}
}
}
您正在定義一個方法cSQL
,它的名稱與其所包含的類的名稱完全相同。您不能這樣做。 您是不是要構造一個構造函數? 只需刪除void
。
tnw確實確實解決了您的原始問題,但是要解決您的其他問題,您的類必須接受與基類相同的參數,並將其傳遞給它:
public class cSQL : cDBBaseClass
{
private SqlConnection Conn = new SqlConnection();
public cSQL(string serverName, string dBName, string userName, string password)
: base(serverName, dBName, userName, password)
{
SetConnString();
SetConn();
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.