読者です 読者をやめる 読者になる 読者になる

C#

あっさり 5~6時間。プログラミングに触れてると頭が痛くなってきますね。

 

書籍で基本的な部分は抑えてますが

圧倒的に実戦不足。

 

 

でもなー。

Webの情報って便利なんだけど噛み砕くのみめっちゃ時間がかかるんだよなー。

一応メモにしてるけどしんどいのには変わりないねー。

 

とはいえ基本的な部分を理解しさえすれば別の本で

あー。こういうことかーってなったりするからある程度は

この段階踏まないといけないのが辛い所。

ufcpp.net

    //メソッドの定義
    public int GetX()
    {
        return x;
    }

    public int GetY()
    {
        return y;
    }

    public void Set(int a, int b)
    {
        x = a;
        y = b;
    }

 

メソッドの定義これなんだけど、書籍だとプロパティ。みたいなこと書いてたなー

どう違うんだろう?

 

だいぶ違うんですねw

じゃぁ上のやつなんだよw

ufcpp.net

 

detail.chiebukuro.yahoo.co.jp

 

とりあえず、、プロパティのGet と Set は凄く便利でJavaよりも優れてるってことはわかったw

 

<現状の理解>

プロパティ

=オブジェクト(クラスでインスタンス化されたもの)の状態

 

 

qiita.com

 

参考から

 

プロパティ→オブジェクト内のフィールド(変数)の値を取得。または、設定する。

フィールドの値を返す = Get

値を代入する     = Set

で構成されている。

 

変数 = null;
インスタンスを後で使う時用の値。

 

メンバ変数

→クラス内で設定する変数。

対比してグローバル変数とかになるのかな?

 

 

maasa.cside.com

グローバル変数は基本的に設定しないように書かれてますね。

オブジェクト指向の考え方が

クラス単位で分割。クラス内での変数での処理を念頭においているために、

どこからでもアクセスできてしまうグローバル変数は極力しようせず。

メンバ変数で型をつけろ。というありがたいお言葉。

 

結局メソッドってなんなんだろう?

 

oshiete.goo.ne.jp

この質問と解答は非常にいい。

 

プロパティ

→クラスのメンバ変数のようにアクセス管理が可能。

(処理内容を自分で記述できる。)

 

読んだ感じ、setによるフィルターの用に感じた

 

仮に、

int code;

で 0~1000

の値を扱いたいとした時、仮にpublic int code

としてしまうと、数字が好き勝手にいじれてしまう。

 

なんとなく、メンバ変数に対する

詳細条件の設定のように感じる。

 

setで条件を記載し

この時、メンバ変数をプロパティとして隠蔽化します。

private int code;

public int Code
{
get
{
return this.code;
}
set
{
if(0 <= value && value <= 1000)
this.code = value;
}
} 

 

 

できたー。

単純だけど、解決できると嬉しいw

        private void button1_Click(object sender, EventArgs e)
        {
            Class1 person = new Class1();

            person.Code = Convert.ToInt32(textBox1.Text);

            MessageBox.Show( Convert.ToString(person.Code));

        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    class Class1
    {
        private int code;

        public int Code
        {
            get
            {
                return this.code;
            }
            set
            {
                if (0 <= value && value <= 1000)
                    this.code = value;
            }
        }
    }
}

 

技術レベル的にしゃあないけどなー。

 

処理順。たぶん

 

クラス。定義

code 変数

code変数にひも付けてプロパティ Codeを設定

仮に変数code の値を0とする

 

ボタン

new でインスタンスを呼び出す

インスタンス.プロパティ =  textBoxデータ

実際
            person.Code = Convert.ToInt32(textBox1.Text);

 

こうやっておいてプロパティにデータを送る。

 

プロパティに例えば32が送られた場合。

Get が現在の変数の値 0 を取得。

でもなんで return いるんだろう?

 

プロパティCodeに送られた 数値を

setで数値の条件を確認。

valueを代入。

 

んで後は、引数としてプロパティCodeを呼び出す。

・・・とあれ?

じゃあ、 メンバ変数 code 呼び出せばよくね?

 

 

引数codeにしたらアクセス権ないって出て表示できねえwwww

そりゃそうだよなー。w

アクセスさせないために、プロパティ噛ましてるのか。

あーなるほど。

納得いったwwwww

 

うーん。

テキストボックスに、数字以外。

例えば、アルファベット、全角

放り込んだ場合。ハンドルできません。で

途中停止するなー。

 

プログラムとして考えるならば、

if

{}

else

{}

を使って、エラー以外の対処にするか、

全自動で変換するか・・・

といったところか。

発想を出そうにもまだ、パターンがいるなー。

 

ufcpp.net

ここの

チートシート

サンプルプログラム

ほしいぃ