C# - デリゲートを使用したイベント設定

okwaves2024-01-25  7

こんにちは、イベントと変数を含むクラスを作成します:

namespace FS
{
      public class SomeEventArgs : EventArgs
        {
            public readonly string SomeVarible;
    
            public SomeEventArgs (string someVarible)
            {
                SomeVarible= someVarible;
            }
        }
    }

そしてこれを別のクラスで使用したいです:

namespace FS
{
delegate void Example(object sender, SomeEventArgs e);
    public class OtherClass
    {

        public event Example example;
}

そして、次のエラーが発生します:

エラー CS7025 アクセシビリティが一貫していません: イベント タイプ 'Example' が少ないです イベント 'OtherClass.example' からアクセス可能



------------------------

デリゲートのアクセス修飾子が指定されていません void Example(object sender, SomeEventArgs e);デフォルトのものは内部ですが、クラス OtherClass のイベントはパブリックです。

基になる型は内部でのみアクセスできるのに、public 修飾子を使用して何かを他のライブラリに公開するのは非論理的ですr ライブラリ。内部にあるため。

最も簡単な解決策は、デリゲートをパブリックにするか、イベントを内部的にパブリックにすることですが、これは使用方法に応じて異なります。

アクセス修飾子の詳細については、ドキュメントを参照してください。

0

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。