uza*_*y95 2 c# inheritance where array-initialization
我有这个课程:
interface Info{}
class AInfo : Info { }
class BInfo : Info { }
class SendInfo {
static public f_WriteInfo(params Info[] _info) {
}
}
class Test {
static void Main() {
SendInfo.f_WriteInfo(
new[] {
new AInfo(){ ... },
new BInfo(){ ... },
} );
// This will generate an error.
// There will be need casting between new and [] like new Info[]
}
}
Run Code Online (Sandbox Code Playgroud)
没有铸造有没有办法做到这一点?
喜欢:
class SendInfo {
static public f_WriteInfo(params T _info) where T : Info {
Run Code Online (Sandbox Code Playgroud)
Dav*_*e S 11
将方法签名设置为:
static public f_WriteInfo(params Info[] _info) {}
Run Code Online (Sandbox Code Playgroud)
并称之为:
SendInfo.f_WriteInfo(new AInfo(){ ... }, new BInfo(){ ... });
Run Code Online (Sandbox Code Playgroud)