たなしょのメモ

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

迷子、データの構造化を学ぶ

いつもお世話になっております。 最近蒸し暑い日が続いて寝にくいですね。 今回もC#の基本的な構文について学んだことを書いていこうかなと思います。宜しくお願いします。

配列

アルゴリズムでは必須の配列を勉強していきます。

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

namespace List3_1
{
    class Program
    {
        static void Main(string[] args)
        {
            var x = new[] { 9, 15, 32 };

            Console.WriteLine(x[0]);
            Console.WriteLine(x[1]);
            Console.WriteLine(x[2]);
        }
    }
}

結果

9
15
32

var xnew[] { 9, 15, 32 }を代入することでint型の配列であると認識してくれます。 ほかの言語と比べて特に配列は文法が変わりませんね。

多次元配列

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

namespace List9
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] rect1 =
            {
                { 4, 2, 3 },
                { 7 ,9 ,8 },
            };

            Console.WriteLine(rect1[1, 2]);
        }
    }
}

結果

8

多次元配列を初期化するときはint[,] XXXと宣言します。(今回の場合は2次元配列になります。)

int[,] rect1 =
{
    { 4, 2, 3 },
    { 7 ,9 ,8 },
};

多次元配列の代入部分です。コンパクトで分かりやすいです。

Console.WriteLine(rect1[1, 2]);

2行3列目の数値を取得してきます。

型推論を利用してもかけます。

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

namespace List9_Imp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var rect2 = new[,]
            {
                { 1, 2, 3 },
                { 4, 5, 6 },
                { 7, 8, 9 },
            };

            Console.WriteLine(rect2[2, 2]);
        }
    }
}

結果

9

型推論型の場合、int[,]を宣言しなくてもよくなります。代わりにnew[,]がつけます。

クラス

クラスのインスタンスを作成してデータを出力してみます。

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

namespace List10
{
    class Person
    {
        public string name;
        public uint age;
        public string address;
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            var p = new Person();

            p.name = "arai";
            p.age = 17;
            p.address = "http://araisanndayo.com";

            Console.WriteLine("名前:{0}", p.name);
            Console.WriteLine("年齢:{0}", p.age);
            Console.WriteLine("アドレス:{0}", p.address);

        }
    }
}

結果

名前:arai
年齢:17
アドレス:http://araisanndayo.com

Personクラスを作成しています。 中を見てみるとstring型のname 、unsinedint型(負の値を持たないint型)のage、string型のaddressが宣言されています。この変数をメンバ変数もしくはフィールドと言います。

ProgramクラスMainメソッドを見てみると

var p = new Person();

型推論型のpnew Person()を代入しています。 Personクラスインスタンスを生成・初期化しています。この初期化・生成を行わないとPersonクラスを使えません。

p.name = "arai";
p.age = 17;
p.address = "http://araisanndayo.com";

p.XXXXでPersonクラスの各メンバ変数に値を代入できます。

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

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