次の方法で共有


コンパイラ エラー CS0119

'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;
    }
}