シーンリオを考えると:
public class Program
{
static void Main()
{
object[] covarientArray= new A[] { new A() };
object polymorphism = new A();
object test = covarientArray[0];
M(ref polymorphism);//fine up to here
M(ref covarientArray[0]);//ArrayTypeMismatchException
}
static void M(ref object o) { Console.WriteLine(o); }
}
class A {}
配列内に間違った型の要素を格納しようとしたときにスローされる例外。
この例外は、配列内に間違った型の要素を格納しようとするとスローされます。例えば:
A[] invalid = new A[1];
invalid[0] = "";//I can't store a type of string within an array of type of A
この例外はどのように発生しますか? ref
パラメータでメソッドを呼び出すときにストア操作を行っているのはなぜですか?