次のコードを検討してください。
using System.Collections.Generic;
namespace TestingTypes
{
class Program
{
static void Main(string[] args)
{
var strings = new List<string>();
INeedToPassThisMethodAListOfObjects(strings as List<object>);
}
static void INeedToPassThisMethodAListOfObjects(List<object> objects) { }
}
}
1>------ Build started: Project: TestingTypes, Configuration: Debug Any CPU ------
1>c:\users\[censored]\TestingTypes\Program.cs(9,41,9,64): error CS0039: Cannot convert
type 'System.Collections.Generic.List<string>' to
'System.Collections.Generic.List<object>' via a reference conversion, boxing
conversion, unboxing conversion, wrapping conversion, or null type conversion
文字列はオブジェクトであり、C# 4 はジェネリック型の共変性をサポートするはずなので、List<string>はList<object> であると言うかもしれません。
- 型を変換できないとコンパイラが言うのはなぜですか?
- メソッドに「文字列」を渡すにはどうすればよいですか?