C#

【C#】プロパティとは?利用するメリットはあるのか。

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。

今回はC#で便利な機能の一つ「プロパティ」についてお話していきます。

利用する際に注意したい、初期化の仕方や取得方法などの解説と「プロパティ」を使うメリットも見ていきましょう。

【C#】プロパティとは?

プロパティとは、【Java】や【C++】にはない機能でクラス外側から見るとメンバー変数のように振る舞いますが、クラスの内側から見るとメソッドのように振舞うものです。

【Java】や【C++】がこの機能を持ってないことからも推測できるのですが、 プロパティは「オブジェクト指向言語に必須の機能」ということではありません。

【C#】プロパティを使うことのメリット

プロパティを使うことにより、Get用のメソッドとSet用のメソッドを用意することなく、1つの名前でgetとsetの記述することが可能となります。

また、.NetのWindowsFormApplicationやWPFなどの「データバインディング」という機能を使うにはプロパティが必要になります。

C# get set とは?

まずは、サンプルコードを見てください。


public int PropertyInt{ set; get;}

これはシンプルなint型のプロパティです。

この記述の中に「set; get;」ところを見てください。
これは、

このプロパティには値を設定と取得ができますよ。

という意味になります。

例えば、このコードの「set;」の記述を消すとこのプロパティは値の取得(get)しかできなくなります。

【C#】プロパティの書き方

using System;

//プロパティを記述するクラス
public class PropertyCls {
// メンバ変数は外部から隠蔽(privateに)しておき、直接アクセスできないようにする
private int propertyInt;

// 変数の取得・変更用のプロパティ
public int PropertyInt
{
set{ propertyInt = value; } //値の代入
get { return propertyInt; } //外部に値を返す
}
}

class Program { //プロパティを利用するクラス
static void Main() {
PropertyCls p = new PropertyCls(); //インスタンスを生成
p.PropertyInt = 32; //値を代入(setを呼ぶ)
Console.WriteLine(p.PropertyInt); //値を取得(getを呼ぶ)
}
}

 

 

実行結果 :


32

上記のように、プロパティを使うことで値の取得と設定を「set{}」と「get{}」だけで記述する事ができます。

また、利用者側のクラスでは変数に直接アクセスしているかのように「インスタンス.プロパティ名」だけでアクセスでき、値のやりとりができるようになるのがプロパティのメリットと言えますね。

書き方としてまずプロパティを記述するクラスでは


アクセスレベル型 プロパティ名{}

で宣言し、その中に「set{}」と「get{}」を記述します。

setの中には主に「メンバ変数 = value」というように記述します。valueは利用者側のクラスで代入された値が格納される予約語と呼ばれるものです。

getの中には「return メンバ変数」のように戻り値を指定します。

その後利用者側のクラスでインスタンスを生成し、値の取得時は「インスタンス名.プロパティ名」で 「get{}」を呼び出して「インスタンス名.プロパティ名 = 値」で「set{}」を呼び出します。

このように実装する事で、プロパティを記述するクラスではメソッドとして扱う事ができ、かつ利用者側のクラスではメンバ変数のように扱う事ができるようになります。

【C# 6.0以降】get-onlyについて

C# 6.0以降では「get-onry」という記述のやり方ができあます。
これは「set{}」を記述しない書き方になります。

「get-only」にするとコンストラクタでのみ値を代入できるようになってそれ以降は変更が不可能となります。

まとめ

今回の記事では、「C#のプロパティ」について説明しました。

 

・プロパティとは
・プロパティを使うメリット
・プロパティの書き方・使い方

 

上記だけは今回覚えていってください。
プロパティはプログラミングする規模が大きくなるにつれ、目にする機会も増えてくるかと思います。
ここで使い方を覚えて、使いこなしていきましょう!

他にも、C#についての記事があるのでよかったら見ていってください。

【C#】コンストラクタとデストラクタ

【C#】例外処理でアプリケーションを安全に(try-catch-finally)

[C#] 可変長引数をつかってみる


最近の投稿

レバテックキャリアは未経験でも転職できるのか?リアルな口コミで検証します

  こんにちは、リバティエンジニア[?]のFUNAです。 フリーランスの現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 この記事はこんな方におすすめ ...

レバテックキャリアの悪い評判は本当なのか?利用者から聞く実態と噂の真偽

  こんにちは、リバティエンジニア[?]のFUNAです。 フリーランスの現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 この記事はこんな方におすすめ ...

その会社は大丈夫?知っておきたいブラック企業の特徴

就職先がブラック企業ではないか不安… 転職を考えているけど、ブラックな会社だったらどうしよう… こういった悩みや不安を抱えている方も多くいると思います。 就職や転職をした際に「この会社、ブラックだった ...

【2020年最新保存版】副業と複業の違いやそれぞれの意味について徹底解説!

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今、話題になっている「テレワーク」という働き方を利用して「 ...

テレワークのセキュリティーについて、注意と対策方法とは!?

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 テレワークを始められる方にとって、気をつけなければいけない ...

Copyright© FUNA BLOG , 2020 All Rights Reserved.