これは非常に奇妙な問題で、本当に神経質になっています。私が作成している単純な C# ServicesManager クラスがあります。しかし、明らかな理由がまったくないのに、この問題が発生しています。とにかく、問題の関数は次のとおりです。
/// <summary>
/// This function checks if the ServicesManager contains a service of the specified type or not.
/// </summary>
/// <param name="serviceType">The type of service to check for.</param>
/// <returns>True if a service of the specified type is found, or false otherwise.</returns>
public bool Contains(Type serviceType)
{
bool result = false;
Type t = serviceType;
foreach (ISE_Service s in m_ServicesList)
{
if (s is serviceType)
{
result = true;
break;
}
}
return result;
}
ISE_Service は、サービス クラスを表す単純なインターフェイスです。上記の関数は、指定されたタイプのサービスが既に ServicesManager に存在するかどうかを確認するだけです。
エラー リストには次のエラーが表示され、常に if ステートメントの "serviceType" が赤い波線で強調表示されます。
エラー 3 タイプまたは名前空間名 'serviceType' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) C:\MegafontProductions\SpiritEngine\SpiritEngine\Source\ApplicationLayer\ServicesManager.cs 55
このエラーは意味がありません。これはまさにこの関数のパラメーターです。私が知る限り、この問題は is キーワードまたは型 Type が原因です。ご覧のとおり、パラメーター serviceType はループの上で問題なくアクセスされます。では、その if ステートメント内で突然見つからないのはどうしてでしょうか?