C# day2


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

namespace ConsoleApplication6
{
// delegate void Sayit(string s);

class Program
{
//クラスの引数の中にaction使うとさらにクラス的なものが書ける
private static void doit(Actionsayit) {
//Console.WriteLine(s);
//Console.WriteLine("every");
}

// private static void doit2(string s) {
// Console.WriteLine(s);
// Console.WriteLine("dqdqw");
// }


static void Main(string[] args)
{
// Sayit a;
// a = doit1;
// a("Hello");
// a = doit2;
// a("2222");

//Actionは、メソッド短く書ける
// 引数
Action say = (s) => Console.WriteLine(s);
Action sayWithParen = (s) => Console.WriteLine("(" + s + ")");
doit(say);
doit(sayWithParen);
Console.ReadLine();
}

}
}

Ctrl + E + C 選択範囲のコメントアウト

カットペーストすると整形される

Visual Studio(2010以降)のIDEエディタ内で、コードの一括自動インデントを行うキーボードショートカット。下記キーストロークを順番に入力する。
ファイル全体:Ctrl+K, Ctrl+D
選択範囲:Ctrl+K, Ctrl+F


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

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

namespace ConsoleApplication7
{
class Program
{
private static void Calclation(int kosu)
{

// Console.WriteLine(taro+ jiro+ saburo);
Console.WriteLine(kosu.Sum());//LINQのSumメソッド
Console.ReadLine();

}

static void Main(string args)
{
//Calclation(3, 2, 4);
var kosu=new int[3];
kosu[0]=3;
kosu[1] = 2;
kosu[2] = 4;

Calclation(kosu);

//string a = new string('a', 2);//二個 aa ってなる


}
}
}

LINQ 拡張メソッド 既存クラスにメソッド追加可能 SQL文みたいに使える

ラムダ式 (引数)=> 式 再帰処理で使える 無名のメソッドで使える

var weightsOver10kg = weights.Where(c=>c>=10);
    ↑LINQ↑ラムダ式
10kg以上を洗い出す

Anyメソッドを使えば条件文になる。

Console.WriteLine("3.0/2.0={0}", 3d / 2.0);ダブル表現

/結果 %余りだけでる。

文字列連結

Console.WriteLine(1 + b + c);とかでいける

基本そのままくっつくが整数が絡むと整数も文字列化される

    • 123とやると+になる。数学と同じ

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

namespace ConsoleApplication7
{
class Program
{


static void Main2(string[] args)
{
string 降水確率文字 = Console.ReadLine();

int input;

while (int.TryParse(降水確率文字, out input) == false)
{
Console.WriteLine("Not number!");
Console.ReadLine();
return;//mainの外にいこうとするから終了

}

確率判断(降水確率文字);



//if (int.Parse(降水確率文字) <= 10)

// Console.WriteLine("晴れ");

//else if (int.Parse(降水確率文字) <=50)

// Console.WriteLine("曇り");

// else

// Console.WriteLine("雨");

//Console.WriteLine(降水確率);

Console.ReadLine();
}

public static void 確率判断(string ここでつかう降水確率文字)
{
// string s;よくない

if (int.Parse(ここでつかう降水確率文字) <= 10)

Console.WriteLine("晴れ");

else if (int.Parse(ここでつかう降水確率文字) <= 50)

Console.WriteLine("曇り");

else

Console.WriteLine("雨");
}


}
}


static として宣言することで、 クラスのインスタンス化の必要なしにアクセスすることができます。