たなしょのメモ

日々勉強していることをつらつらと

C#始めました

気になってはいたんです。。。

C#はずっと前から始めてみたいと思っていたのですが中々手を付けられずにいたのでこの辺で日記としてC#で学んだことを書いていければなと思います。いつも全然ブログが続きませんが今回もゆるく頑張っていきます。

どの教材で勉強してるの

今回はスラスラわかるC#を使って勉強しています。 コンソールアプリケーションからC#の基本的な文法を一通り理解できる内容になっているのでこちらに決めました。

初めのソース

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

namespace List2
{
    class Program
    {
        static void Main(string[] args)
        {
            int a;
            int b;

            a = 1;
            b = 2;

            int c;
            c = a + b;
            Console.WriteLine("a: {0}, b: {1}, c: {2}", a, b, c);

            a = 5;
            Console.WriteLine("a: {0}, b: {1}, c: {2}", a, b, c);
        }
    }
}

結果は

a: 1, b: 2, c: 3
a: 5, b: 2, c: 3

コードを見ていきましょう。 using XXXnamespace List2は現状まだわからないので放置しときます。(ごめんなさい汗)

int a;
int b;

a = 1;
b = 2;

int c;
c = a + b

この辺はほかの言語と変わらないですね。 int型の中に数字を入れています。 int型の変数cには同じint型の変数aとbを足しています。

Console.WriteLine("a: {0}, b: {1}, c: {2}", a, b, c);

WriteLine関数で出力しているようですね。 C言語でいうとprintf的な関数なんでしょうかね。

{0}等の文字が気になります。ちょっと変更を加えてみます。

int a;
int b;

a = 1;
b = 2;

int c;
c = a + b;
Console.WriteLine("a: {1}, b: {1}, c: {1}", a, b, c);

すべて {1} に変えてみました。結果は

a: 2, b: 2, c: 2

bの値が取れました。どうやら {X} は取得してくる変数の順番を表しているみたいですね。

型推論

int型を使って変数を宣言していましたが varを使って変数の宣言もできるらしいです。

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

namespace List2_Imp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = 2;
            var b = 4;

            var c = a + b;

            Console.WriteLine("a:{0}, b:{1}, c:{2}", a, b, c);
        }
    }
}

結果は

a:2, b:4, c:6

intの部分を varに変形してみました。 型推論型なので2や4を代入するときにint型であるとPCが判定してint型にしてくれるという便利なものです。(すごい!)

dynamic型

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

namespace List2_Imp2
{
    class Program
    {
        static void Main(string[] args)
        {
            dynamic a = 1;
            Console.WriteLine("a:{0}", a);

            a = "String";
            Console.WriteLine("a:{0}", a);
        }
    }
}

結果は

a:1
a:String

dynamic型というものがあるらしいので使ってみました。

dynamic a = 1;
Console.WriteLine("a:{0}", a);

dynamic型のaに1を代入しています。 出力するともちろん 1が出てきます。

a = "String";
Console.WriteLine("a:{0}", a);

aStringという 文字列を代入しています。 本来であれば int型String型を入れられませんが dynamic型では許容されていますね。

今日はこれぐらいで終わりにしたいと思います。 最後まで読んでいただいてありがとうございました。

もしよろしければtwitterアカウント(@piklus100yen)もフォローしていただけると幸いです!