FC2ブログ
10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】Unity(C#)でカプセル化ってやってます?プロパティを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)

tb 0 : cm 1