【ハルシオンブログ】Unity(C#)でカプセル化ってやってます?プロパティをprivateにすることで、外から直接触れないってやつなんだけど
こんにちは。坂内っす。
11月17日はデジゲー博の日です。
デジゲーの後の飲み会のATNDつくったらまた77人集まりました。
奇遇ですね。2年前のデジゲーの飲み会のATNDも77人なんですよね・・・・
今後も初めからMAX77人にしてもいいんでないかい?
問題は無言ドタキャンで逃げる人いないといいんですが・・・・・
あ、無言ドタキャンで逃げた人がいるたびに、全員から100円づつ徴収するシステムいいんでないかい?
みんなで被ることで、みんなから狙われるってシステム。これいいね。
オーバーした分は俺が頂きますが。
さて、Unityのお話。
プロパティを使うときにこんな感じでgetter/setterを書いてたりしますよね。
これって、こんな感じでも書けるんですよね。
ただ、返却する際や、取得する際に処理を入れたい場合は、上の方法じゃないとだめっすね。
こんな感じで、処理をいれてからの返却とかもできます。
あんまり個人開発しているとgetter/setterって使わないですかね?
カプセル化っていうんですけどね。
大本の変数はPrivateにしておいて、直接触れないようにするってやつです。
気が向いたら使ってみてください。
では、あでゅ~ノシ
11月17日はデジゲー博の日です。
デジゲーの後の飲み会のATNDつくったらまた77人集まりました。
奇遇ですね。2年前のデジゲーの飲み会のATNDも77人なんですよね・・・・
今後も初めからMAX77人にしてもいいんでないかい?
問題は無言ドタキャンで逃げる人いないといいんですが・・・・・
あ、無言ドタキャンで逃げた人がいるたびに、全員から100円づつ徴収するシステムいいんでないかい?
みんなで被ることで、みんなから狙われるってシステム。これいいね。
オーバーした分は俺が頂きますが。
さて、Unityのお話。
プロパティを使うときにこんな感じでgetter/setterを書いてたりしますよね。
using UnityEngine;
public class Script20191105 : MonoBehaviour
{
private string _userName;
private int _age;
private string _address;
public string userName {
get
{
return _userName;
}
set
{
_userName = value;
}
}
public int age {
get
{
return _age;
}
set
{
age = value;
}
}
public string address {
get
{
return _address;
}
set
{
_address = value;
}
}
}
これって、こんな感じでも書けるんですよね。
using UnityEngine;
public class Script20191105 : MonoBehaviour
{
private string _userName;
private int _age;
private string _address;
public string userName { get; set; }
public int age { get; set; }
public string address { get; set; }
}
ただ、返却する際や、取得する際に処理を入れたい場合は、上の方法じゃないとだめっすね。
public int age {
get
{
if(_age > 10) {
return 10;
} else {
return _age;
}
}
set
{
_age = value;
}
}
こんな感じで、処理をいれてからの返却とかもできます。
あんまり個人開発しているとgetter/setterって使わないですかね?
カプセル化っていうんですけどね。
大本の変数はPrivateにしておいて、直接触れないようにするってやつです。
気が向いたら使ってみてください。
では、あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】実行中にInspectorで変えた値にしたければCopyComponentしておこうね | 【ハルシオンブログ】Getterしかないプロパティって1行で書けるのね。 »
コメント
真ん中のやつは自動実装プロパティとかいうやつで、
_userNameはいらなくて
public string userName { get; set; }だけで動作するやつですね
しろくろ #- | URL | 2019/11/07 10:33 [edit]
| h o m e |