このデリゲートイベントの問題を回避または解決するにはどうすればよいですか?

Ashar Masood
namespace Rocket.Common
{
    using System;
    using System.Threading;

    public class SharedProperties
    {
        public static bool snapEnabled = false;
        public static float snapValue = 0.25f;
        public static bool useAxisConstraints = true;

        public static  event PushToGridEventHandler PushToGridEvent
        {
            add
            {
                PushToGridEventHandler pushToGridEvent = PushToGridEvent;
                while (true)
                {
                    PushToGridEventHandler a = pushToGridEvent;
                    PushToGridEventHandler handler3 = (PushToGridEventHandler) Delegate.Combine(a, value);
                    pushToGridEvent = Interlocked.CompareExchange(ref PushToGridEvent, handler3, a);
                    if (ReferenceEquals(pushToGridEvent, a))
                    {
                        return;
                    }
                }
            }
            remove
            {
                PushToGridEventHandler pushToGridEvent = PushToGridEvent;
                while (true)
                {
                    PushToGridEventHandler source = pushToGridEvent;
                    PushToGridEventHandler handler3 = (PushToGridEventHandler) Delegate.Remove(source, value);
                    pushToGridEvent = Interlocked.CompareExchange(ref PushToGridEvent, handler3, source);
                    if (ReferenceEquals(pushToGridEvent, source))
                    {
                        return;
                    }
                }
            }
        }

        public static void PushToGrid(float snapValue)
        {
            if (PushToGridEvent != null)
            {
                PushToGridEvent(snapValue);
            }
        }

        public delegate void PushToGridEventHandler(float snapValue);
    }
}

誰かがこの周りの謎を解くのを手伝ってくれる?私はこのエラーに頭を悩ませているようには見えません。

次の行でエラーが発生しています。

  1. (16,58):エラーCS0079:イベントRocket.Common.SharedProperties.PushToGridEvent+=または-=演算子の左側にのみ表示できます
  2. (21,71):エラーCS0079:イベントRocket.Common.SharedProperties.PushToGridEvent+=または-=演算子の左側にのみ表示できます
  3. (30,58):エラーCS0079:イベントRocket.Common.SharedProperties.PushToGridEvent+=または-=演算子の左側にのみ表示できます
  4. (35,71):エラーCS0079:イベントRocket.Common.SharedProperties.PushToGridEvent+=または-=演算子の左側にのみ表示できます
  5. (46,17):エラーCS0079:イベントRocket.Common.SharedProperties.PushToGridEvent+=または-=演算子の左側にのみ表示できます
  6. (48,17):エラーCS0079:イベントRocket.Common.SharedProperties.PushToGridEvent+=または-=演算子の左側にのみ表示できます

その同じエラーが何度も何度も。私はネットで検索しました、そしてこのエラーについて多くの説明があります、しかし私は正しいものを見つけることができないようです。または私はちょうど非常に悪い日を過ごしています:)

私を助けてください

あなたが宣言したからですaddremove、あなたのコードを動作させるために、あなたはちょうどあなたが使用するときのように(プライベート)バッキングフィールドを宣言する必要がありget、および/またはset、その後、あなたは、このプライベートフィールドを使用して呼び出すことができます。

だからあなたはこのようなものを持っているはずです

namespace Rocket.Common
{
    using System;
    using System.Threading;

    public class SharedProperties
    {
        public static bool snapEnabled = false;
        public static float snapValue = 0.25f;
        public static bool useAxisConstraints = true;

        private static event PushToGridEventHandler _pushToGridEvent;
        public static event PushToGridEventHandler PushToGridEvent
        {
            add
            {   
                PushToGridEventHandler pushToGridEvent = _pushToGridEvent;
                while (true)
                {
                    PushToGridEventHandler a = pushToGridEvent;
                    PushToGridEventHandler handler3 = (PushToGridEventHandler)Delegate.Combine(a, value);
                    pushToGridEvent = Interlocked.CompareExchange(ref _pushToGridEvent, handler3, a);
                    if (ReferenceEquals(pushToGridEvent, a))
                    {
                        return;
                    }
                }
            }
            remove
            {
                PushToGridEventHandler pushToGridEvent = _pushToGridEvent;
                while (true)
                {
                    PushToGridEventHandler source = pushToGridEvent;
                    PushToGridEventHandler handler3 = (PushToGridEventHandler)Delegate.Remove(source, value);
                    pushToGridEvent = Interlocked.CompareExchange(ref _pushToGridEvent, handler3, source);
                    if (ReferenceEquals(pushToGridEvent, source))
                    {
                        return;
                    }
                }
            }
        }

        public static void PushToGrid(float snapValue)
        {
            _pushToGridEvent?.Invoke(snapValue);
        }
    }

    public delegate void PushToGridEventHandler(float snapValue);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Postfixのインストールの問題を解決するにはどうすればよいですか?

分類Dev

vuejsまたは他のソリューションでこの配列の問題を解決するにはどうすればよいですか?

分類Dev

CSSフロート左でこの問題を解決するにはどうすればよいですか?

分類Dev

RailsアプリのGoogleマップオートコンプリートでこの問題を解決するにはどうすればよいですか?

分類Dev

RailsアプリのGoogleマップオートコンプリートでこの問題を解決するにはどうすればよいですか?

分類Dev

WAVEアクセシビリティレポートでこのラベルの問題を解決するにはどうすればよいですか?

分類Dev

スプリングブートでのURIエンコーディングの問題を解決するにはどうすればよいですか?

分類Dev

MavenでSpringアプリケーションをインポートする際の問題を解決するにはどうすればよいですか?

分類Dev

Gitは、GitHubからクローンを作成した後、Macbookの作業ディレクトリで.pdfファイルが変更されたことを示しています。この問題を解決するにはどうすればよいですか?

分類Dev

このメモリエラーの問題を解決するにはどうすればよいですか?

分類Dev

ベクトルを使用したHaskellコーディングでこのエラーを解決するにはどうすればよいですか?

分類Dev

この問題を解決するためにソート機能を作成するにはどうすればよいですか?

分類Dev

リスト内の一意のアイテムを維持してこの問題を解決するにはどうすればよいですか?

分類Dev

AVXのロード/ストア操作の32バイトアライメントの問題を解決するにはどうすればよいですか?

分類Dev

「TLE」の問題を解決するにはどうすればよいですか?私のクイックソートは大丈夫だと思います

分類Dev

httpリクエストの問題を解決するにはどうすればよいですか?

分類Dev

このJavaコンテキストクラスローダーの問題を安全に解決するにはどうすればよいですか?

分類Dev

2つのイベントがトリガーされたときにpromiseを解決するにはどうすればよいですか?

分類Dev

このメモリの問題を適切に解決するにはどうすればよいですか?

分類Dev

Railsアプリでこのsqliteの問題を解決するにはどうすればよいですか?

分類Dev

タイムゾーンとSSLの問題を解決するにはどうすればよいですか

分類Dev

Clojureの「ステートフル問題」を解決するにはどうすればよいですか?

分類Dev

ブートの問題を解決するにはどうすればよいですか?

分類Dev

C ++コードでこのcmakeの問題を解決するにはどうすればよいですか?

分類Dev

ArchにGRUBをインストールする際の問題を解決するにはどうすればよいですか?

分類Dev

Keyまたは回避策でFireBaseデータベースの禁止文字を解決するにはどうすればよいですか?

分類Dev

春のブートアプリケーションでCORSの問題を解決するにはどうすればよいですか?

分類Dev

フォントインターセプトの問題を解決するにはどうすればよいですか?

分類Dev

このMavenマルチモジュール依存関係の問題を解決するにはどうすればよいですか?インストール後にローカルm2からインポートされません

Related 関連記事

  1. 1

    Postfixのインストールの問題を解決するにはどうすればよいですか?

  2. 2

    vuejsまたは他のソリューションでこの配列の問題を解決するにはどうすればよいですか?

  3. 3

    CSSフロート左でこの問題を解決するにはどうすればよいですか?

  4. 4

    RailsアプリのGoogleマップオートコンプリートでこの問題を解決するにはどうすればよいですか?

  5. 5

    RailsアプリのGoogleマップオートコンプリートでこの問題を解決するにはどうすればよいですか?

  6. 6

    WAVEアクセシビリティレポートでこのラベルの問題を解決するにはどうすればよいですか?

  7. 7

    スプリングブートでのURIエンコーディングの問題を解決するにはどうすればよいですか?

  8. 8

    MavenでSpringアプリケーションをインポートする際の問題を解決するにはどうすればよいですか?

  9. 9

    Gitは、GitHubからクローンを作成した後、Macbookの作業ディレクトリで.pdfファイルが変更されたことを示しています。この問題を解決するにはどうすればよいですか?

  10. 10

    このメモリエラーの問題を解決するにはどうすればよいですか?

  11. 11

    ベクトルを使用したHaskellコーディングでこのエラーを解決するにはどうすればよいですか?

  12. 12

    この問題を解決するためにソート機能を作成するにはどうすればよいですか?

  13. 13

    リスト内の一意のアイテムを維持してこの問題を解決するにはどうすればよいですか?

  14. 14

    AVXのロード/ストア操作の32バイトアライメントの問題を解決するにはどうすればよいですか?

  15. 15

    「TLE」の問題を解決するにはどうすればよいですか?私のクイックソートは大丈夫だと思います

  16. 16

    httpリクエストの問題を解決するにはどうすればよいですか?

  17. 17

    このJavaコンテキストクラスローダーの問題を安全に解決するにはどうすればよいですか?

  18. 18

    2つのイベントがトリガーされたときにpromiseを解決するにはどうすればよいですか?

  19. 19

    このメモリの問題を適切に解決するにはどうすればよいですか?

  20. 20

    Railsアプリでこのsqliteの問題を解決するにはどうすればよいですか?

  21. 21

    タイムゾーンとSSLの問題を解決するにはどうすればよいですか

  22. 22

    Clojureの「ステートフル問題」を解決するにはどうすればよいですか?

  23. 23

    ブートの問題を解決するにはどうすればよいですか?

  24. 24

    C ++コードでこのcmakeの問題を解決するにはどうすればよいですか?

  25. 25

    ArchにGRUBをインストールする際の問題を解決するにはどうすればよいですか?

  26. 26

    Keyまたは回避策でFireBaseデータベースの禁止文字を解決するにはどうすればよいですか?

  27. 27

    春のブートアプリケーションでCORSの問題を解決するにはどうすればよいですか?

  28. 28

    フォントインターセプトの問題を解決するにはどうすればよいですか?

  29. 29

    このMavenマルチモジュール依存関係の問題を解決するにはどうすればよいですか?インストール後にローカルm2からインポートされません

ホットタグ

アーカイブ