C#の場合

C#の文法はJavaによく似ていますが、波括弧の前で改行するコーディング標準は結構意外でした。 慣れないもんで、以下のサンプルでは一部それに従っていない個所があります。

/*============================*
 * 複数行のコメントは
 * このように
 * 書けます。
 *============================*/

// 1行コメントはこのように書けます。

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, World.");
        Console.WriteLine("こんにちは。");

        int var1 = 42;
        int var2 = 35;
        int var3 = var1 + var2;
        int var4 = var1 - var2;

        // C#にはprintfはない
        Console.WriteLine("結果は{0}と{1}", var3, var4);

        string msg = "結果は" + var3 + "と" + var4;
        Console.WriteLine(msg);

        var2 += 18;
        var3--;
        var4++;
        Console.WriteLine("{0} {1} {2}", var2, var3, var4);

        // 配列の初期化はJavaと同じ
        int[] arr = new int[] {var1, var2, var3, var4};

        // foreach文がある
        foreach(int v in arr){
            if(v >= 50){
                Console.WriteLine("{0}は50以上です。", v);
            } else if(v >= 40 && v < 50){
                Console.WriteLine("{0}は40以上50未満です。", v);
            } else {
                Console.WriteLine("{0}は50未満です。", v);
            }
        }

        // 普通のfor文もある。配列長はLength
        int var5 = 1;
        for(int i=0; i<arr.Length; i++){
            var5 *= arr[i];
        }

        // 整形出力。カンマ区切り+小数点以下2桁固定表示
        // 書式はString.Format、Console.WriteLine、ToStringで共通に使える
        //Console.WriteLine(String.Format("{0:#,0.00}", var5));
        Console.WriteLine("{0:#,0.00}", var5);
        Console.WriteLine("計算結果:[" + var5.ToString("#,0.00") + "]");

        string str1 = "Hello,Power,Shell,World";
        Console.WriteLine("文字列の長さは{0}", str1.Length);

        // 大文字に変換
        Console.WriteLine(str1.ToUpper());
        // 配列を分割。引数は文字列ではなく文字なので二重ではなく一重引用符
        string[] arr2 = str1.Split(',');
        // 配列を表示。C#には配列をダンプする機能はないのでjoinで代用
        Console.WriteLine(String.Join(",", arr2));

        foreach(string v in arr2){
            if(Regex.IsMatch(v, "^.[opqr]")){  // 2文字目がopqrのいずれか
                Console.WriteLine("{0}はマッチします。", v);
            } else {
                Console.WriteLine("{0}はマッチしません。", v);
            }
        }

        // 現在時刻の取得
        var d1 = DateTime.Now;
        string dstr1 = d1.ToString("yyyy/MM/dd HH:mm:ss");
        var d2 = new DateTime(2020, 4, 26, 0, 0, 0, 0);
        string dstr2 = d2.ToString("yyyy/MM/dd");

        // ヒアドキュメント。PowerShellに似ているけれど少し違う
        string s = @"現在時刻は{0}です。
特定の日付とは…{1}です。
";
        Console.WriteLine(s, dstr1, dstr2);
    }
}