'construct1_name' は 'construct1' であり、指定されたコンテキストでは無効です。
コンパイラは、次のような予期しないコンストラクトを検出しました。
クラス コンストラクターは、条件ステートメントの有効なテスト式ではありません。
配列要素を参照するために、インスタンス名の代わりにクラス名が使用されました。
メソッド識別子は、構造体またはクラスであるかのように使用されます
例示
例 1
次の例では CS0119 が生成されます。'C.B()' はメソッドであり、指定されたコンテキストでは無効です。 このエラーは、C.Bメソッドの名前を変更するか、Bクラスの完全修飾名を使用することで、N2.Bのように修正できます。
namespace N2
{
public static class B
{
public static void X() {}
}
}
namespace N1
{
public class C
{
void B() {}
void M() => B.X(); // CS0119
}
}
例 2
次の例は、型のコレクションにクラス名を追加しようとしたときに CS0119 が発生する一般的なシナリオを示しています。 コンパイラでは、クラス名ではなく、 Type インスタンスが必要です。
using System;
using System.Collections.Generic;
public class Page_BaseClass { }
public class Page_CRTable { }
public class Page_DBGridWithTools { }
public static class PageTypeManager
{
public static List<Type> GetPageTypes()
{
List<Type> pageTypesList = new List<Type>();
// CS0119: 'Page_BaseClass' is a type, which is not valid in the given context
pageTypesList.Add(Page_BaseClass);
pageTypesList.Add(Page_CRTable);
pageTypesList.Add(Page_DBGridWithTools);
return pageTypesList;
}
}
このエラーを解決するには、 Type.GetType メソッドまたは typeof 演算子を使用して、 Type インスタンスを取得します。
using System;
using System.Collections.Generic;
public static class PageTypeManager
{
public static List<Type> GetPageTypes()
{
List<Type> pageTypesList = new List<Type>();
// Use typeof operator to get Type instances
pageTypesList.Add(typeof(Page_BaseClass));
pageTypesList.Add(typeof(Page_CRTable));
pageTypesList.Add(typeof(Page_DBGridWithTools));
return pageTypesList;
}
// Alternative: Load types dynamically by name
public static List<Type> GetPageTypesByName(string[] typeNames)
{
List<Type> pageTypesList = new List<Type>();
foreach (string typeName in typeNames)
{
Type type = Type.GetType(typeName);
if (type != null)
{
pageTypesList.Add(type);
}
}
return pageTypesList;
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET