Я застрял с этим простым на вид кодом уже более часа ...
У меня мало классов ... и таких методов:
abstract class ClassBase<SampleInterface> {//Some methods};
public class ClassAction1: ClassBase<MyInterface> {//Some methods};
public class ClassAction2: ClassBase<MyInterface> {//Some methods};
class SomeClass
{
public void AddClassRange(ICollection<ClassBase<MyInterface>> range)
{
foreach (ClassBase<MyInterface> ClassBase in range)
AddClass(ClassBase);
}
public void AddClass(ClassBase<MyInterface> behavior)
{
// Something
}
}
Теперь я пытаюсь использовать эти коды в другом классе:
var arg1 = new ClassAction1 {//Something};
var arg2 = new ClassAction2 {//Something};
//try1
sampleElement.AddClassRange(new [] { arg1 }); // works fine
//try2
sampleElement.AddClassRange(new [] { arg2 }); // works fine
Я хочу объединить try1 и try2:
// Something like this (try3)
sampleElement.AddClassRange(new [] { arg1, arg2 }); // Error
Error : No best type found for implicitly typed array
Как я думаю, во время выполнения try1 и try2 type
для ключевого слова new
определяется на основе переданного ему параметра. Но в try3 параметры бывают разных типов, и во время выполнения не удается выбрать лучший type
для ключевого слова new
.
Спасибо. Дайте мне знать, если вам нужно больше информации.