FANBOX : http://fanbox.cc/@koromosoft
X : http://x.com/chicchiisk
検索性がいまいちだから、せめてリンク張ってくれ…
検索性がいまいちだから、せめてリンク張ってくれ…
Unityだと一苦労だから、UEのいいところだね
Unityだと一苦労だから、UEのいいところだね
余ってたドメインにしてみました。
koromosoft-dev.com
余ってたドメインにしてみました。
koromosoft-dev.com
int X => x;
この記法はあんまり良くないな。
下記でもinitonlyになっていないことに触れているけど、xをそのクラスの他のメソッドとかで変更できてしまうので、意図せずリードオンリーを期待したプロパティの値が書き換わってしまう可能性がある。
添付画像のコードで検証したところ、
I => i; と書いた方はiを書き換えるとプロパティIも値が変わる。
一方 F {get;} = f; は、fを変更してもプロパティFの値が変わらない。しかもfに代入した時点で警告出してくれるみたいで、ミスも起こりづらい。
int X => x;
この記法はあんまり良くないな。
下記でもinitonlyになっていないことに触れているけど、xをそのクラスの他のメソッドとかで変更できてしまうので、意図せずリードオンリーを期待したプロパティの値が書き換わってしまう可能性がある。
添付画像のコードで検証したところ、
I => i; と書いた方はiを書き換えるとプロパティIも値が変わる。
一方 F {get;} = f; は、fを変更してもプロパティFの値が変わらない。しかもfに代入した時点で警告出してくれるみたいで、ミスも起こりづらい。
TargetFrameworkをnetstandard2.1に、
LangVersionを12にしてクラスライブラリを作成
ビルドしたdllをUnityに入れる
で使えた。
.net8でしか使えない標準ライブラリとかは別でdll入れないと使えないとかはあるかも
基本的な言語機能は使えるっぽい
TargetFrameworkをnetstandard2.1に、
LangVersionを12にしてクラスライブラリを作成
ビルドしたdllをUnityに入れる
で使えた。
.net8でしか使えない標準ライブラリとかは別でdll入れないと使えないとかはあるかも
基本的な言語機能は使えるっぽい
class Hoge(int x, int y)
{
public int X => x;
public int Y {get;} = y;
}
こう書いたときの、XとYのコードはどうコンパイルされるんだろうと思って、SharpLabで試した。
結果は添付の通りで、最終的なasmに違いはなさそうなんだけど、コンパイラによって異なるかも?
(画像左:x86 asm / 画像右:IL)
ILでは、Yはinitonlyのバッキングフィールドが生成されているのに対し、Xはinitonlyになっていない(名前もちがう)という違いはあるっぽい
class Hoge(int x, int y)
{
public int X => x;
public int Y {get;} = y;
}
こう書いたときの、XとYのコードはどうコンパイルされるんだろうと思って、SharpLabで試した。
結果は添付の通りで、最終的なasmに違いはなさそうなんだけど、コンパイラによって異なるかも?
(画像左:x86 asm / 画像右:IL)
ILでは、Yはinitonlyのバッキングフィールドが生成されているのに対し、Xはinitonlyになっていない(名前もちがう)という違いはあるっぽい