質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

2回答

817閲覧

C#の「=>」記号について

osyon

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/10/01 03:35

Unityを触ってます。言語はC#です。初心者です。

https://github.com/keijiro/DanmakuBenchmark/blob/main/Assets/Bullet.cs

上記のGitHubのプログラムを参考にして、unityのジョブシステムを理解しようとしているのですが、

public BulletGroupInfo(int activeCount, int spawnCount)
=> (ActiveCount, SpawnCount) = (activeCount, spawnCount);

この様な構文が、何を意味するのかがわかりません。ラムダ式やデリゲートというものでしょうか。

質問ですが、
1:この構文がどんな意味なのか知りたいです。
2:メソッドっぽいので、呼び出された先で処理が実行されると思ってるんですが、どういう順序で処理されるのか教えていただきたいです。

抽象的な質問で申し訳ありませんが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

expression-bodied function

です。

C#

1public BulletGroupInfo(int activeCount, int spawnCount){ 2 (ActiveCount, SpawnCount) = (activeCount, spawnCount); 3}

という意味です。

投稿2021/10/01 03:46

編集2021/10/01 03:47
ozwk

総合スコア13532

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

UnityでもC#のバージョンが上がった事で使えるようになった省略系?
詳しくないので分かりませんが
パっと見で、これはただのコンストラクタではないでしょうか?

旧世代ではこんな感じで書いてたヤツが簡潔になります、みたいな?

public class BulletGroupInfo { public int ActiveCount { get; } public int SpawnCount { get; } public BulletGroupInfo(int activeCount, int spawnCount) { ActiveCount = activeCount; SpawnCount = spawnCount; } }

ラムダ式とは関係無い気がします。複雑な話だと全く分かりませんが

投稿2021/10/01 07:14

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

osyon

2021/10/02 05:21

教えて頂きありがとうございます。 コンストラクタの内容を省略して記述している、ということなんですね。 もっと勉強しようと思います。
YAmaGNZ

2021/10/02 05:58

=>で書くのはコンストラクタというわけではないので注意してください。 今回の例がコンストラクタだったというだけです。 public override string ToString() => $"{ActiveCount},{SpawnCount}" といった書き方も今回の質問での書き方です。 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members こちらを参照されるのがいいかと思います。 これがozwkさんの回答ということになるかと
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問