我有四个错误的界面,我无法理解这些错误这里是我的代码。我提到了我发现错误的区域。 在错误1中我收到此错误"键入' ISAPI'在接口列表中不是接口" 在错误2中我得到了这个错误"接口不能包含字段" 在错误3中我得到了这个错误"接口成员不能有定义" 在错误4中我得到了这个错误"接口成员无法定义"
enter code here
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace InsertFromAndroidToSql
{
public interface SAPI : ISAPI // have error 1
{
SqlConnection dbConnection; // have error 2
void ServiceAPI() // have error 3
{
dbConnection = DBConnect.getConnection();
}
void CreateNewAccount( string Name,
string userName,
string password,
string PhoneNumber,
string CNIC) // have error 4
{
if (dbConnection.State.ToString()=="Closed")
{
dbConnection.Open();
}
string query = "Insert Into UserDetails VALUE ('" + Name + "','" +
userName + "', '" + password + "', '" + PhoneNumber + "', '" + CNIC + "');";
SqlCommand command = new SqlCommand(query, dbConnection);
command.ExecuteNonQuery();
dbConnection.Close();
}
}
}
答案 0 :(得分:0)
回答你的问题
如何解决界面错误
错误1:
ISAPI
显然不是界面。错误2:
错误3:
错误4:
这将是一个有效的界面:
public interface SAPI
{
SqlConnection dbConnection { get; }
void ServiceAPI();
void CreateNewAccount(string Name, string userName, string password, string PhoneNumber, string CNIC);
}
或者将当前的“界面”声明为抽象类。
public abstract class SAPI //...
答案 1 :(得分:0)
首先执行此操作并查看错误,它将减少为1错误
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace InsertFromAndroidToSql
{
public interface SAPI : ISAPI // have error 1
{
//SqlConnection dbConnection; // have error 2 this is fields in
// interface you are declaring comment it or remove it
void ServiceAPI(); // have error 3 declare it dont define its
// functionality in interface
//{
// dbConnection = DBConnect.getConnection();
//}
void CreateNewAccount( string Name,
string userName,
string password,
string PhoneNumber,
string CNIC); // have error 4 same remove its definition
//{
// if (dbConnection.State.ToString()=="Closed")
// {
// dbConnection.Open();
// }
// string query = "Insert Into UserDetails VALUE ('" + Name + "','" +
//userName + "', '" + password + "', '" + PhoneNumber + "', '" + CNIC +
//"');";
// SqlCommand command = new SqlCommand(query, dbConnection);
// command.ExecuteNonQuery();
// dbConnection.Close();
}
}
一旦你这样做,你的代码就像
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace InsertFromAndroidToSql
{
public interface SAPI : ISAPI // have error 1
{
void ServiceAPI();
void CreateNewAccount( string Name,
string userName,
string password,
string PhoneNumber,
string CNIC);
}
}
现在你了解了界面的样子,检查" ISAPI" 是否是接口,如果它不是接口,你可以继承或扩展到当前接口。将其删除或将其修复为界面。
答案 2 :(得分:-1)
问题是您正在尝试在接口上定义变量和方法,这是不允许的。下面我复制了Microsoft docs中类和接口的解释。
类是一种构造,它允许您通过将其他类型,方法和事件的变量分组在一起来创建自己的自定义类型。一个类就像一个蓝图。它定义了类型的数据和行为。 [..]客户端代码可以通过创建分配给变量的对象或实例来使用它。
接口包含类[..]可以实现的定义或一组相关功能。
那是什么意思?在您的示例中,您有一个对接口或类的引用,我现在假设它是一个接口。让我们说它的定义如下:
public interface ISAPI
{
void CreateNewAccount( /* parameters omitted*/ );
}
这段代码意味着,当且仅当它们实现所有已定义的函数(在这种情况下,仅ISAPI
)时,我们才会认为某些事物是CreateNewAccount()
。
将某些内容定义为ISAPI
,您需要创建一个实现它的类,例如:
public class Sapi : ISAPI {
public void CreateNewAccount( /**/ ) {
// Do something that creates an account.
}
}
Sapi
类实际上包含ISAPI
接口的实现。
我希望这一点有点清楚,我强烈建议你找一个教程,全面解释如何使用类,抽象类和接口以及它们之间的差异。