如何引用TYPE,以便随后使用myreference名称...以最简单的形式......
MyInt - 源自int
然后,在其他地方,我会参考MyInt。踢球者是我需要在类别定义中分别对应的“#define”进行子类化,并且可以是不同的类型。实际意图是
MyTypeSQLCmd = OleDbCommand
OR
MyTypeSQLCmd = SQLiteCommand
我的子类只会引用,并且能够创建一个新的MyTypeSQLCmd();
---让我详细说明一下。
我有一个连接到OleDB类型数据库的类。 我有另一个连接到SQLite数据库的类。
我有另一个类,它将从上面的内容中派生出来,但会有其他功能。所以,我不想知道我将连接到哪个后端,而不是像以前那样拥有IF ...
if(connectingToSQLite)
MyCmd = new SQLiteCommand();
else
MyCmd = new OleDbCommand();
因为随后,我需要的常用方法是相同的引用,例如
MyCmd.Parameters.Add(...)
所以,我不能将变量预先声明为一个“类型”或另一个如
OleDbCommand MyCmd; SQLiteCommand MyCmd;
我只想要一个实例,所以我希望得到一种可以接受的“别名”类型,并允许继续而不会出现编译错误。
答案 0 :(得分:2)
你真的不是在寻找一个界面,即IDbCommand
答案 1 :(得分:1)
您可以从中继承或使用using
语句。
using SomeClass = SomeOtherClass;
答案 2 :(得分:1)
使用泛型:
class SubClass<MyTypeSQLCmd> where MyTypeSQLCmd : IDbCommand, new {
...
}
现在,类可以创建该类型的实例,并使用IDbCommand接口中的所有方法。您可以为任何数据库命令类型创建类的实例。
答案 3 :(得分:0)
如果您正在寻找类似于C typedef
的内容,那么虽然可以在文件顶部使用using
语句,但它通常不是最理想的解决方案。像这样的情况的想法是“编程到界面”。也就是说,您找到一个超类或接口来实现您正在寻找的功能(在这种情况下分别为System.Data.Common.DbCommand
或System.Data.IDbCommand
)并对其进行编程。然后实例化更具体的类型(如SqlCommand
或OleDbCommand
,代表要使用的特定实现。