{"id":25904,"date":"2025-03-13T03:37:57","date_gmt":"2025-03-12T18:37:57","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25904"},"modified":"2025-03-13T03:37:58","modified_gmt":"2025-03-12T18:37:58","slug":"c%e5%85%a5%e9%96%80%e3%82%b5%e3%82%a4%e3%83%88","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25904","title":{"rendered":"C#\u5165\u9580\u30b5\u30a4\u30c8"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"ja\">\n&lt;head>\n  &lt;meta charset=\"UTF-8\">\n  &lt;meta name=\"description\" content=\"C# \u30aa\u30fc\u30eb\u30a4\u30f3\u30ef\u30f3\u5165\u9580\u30b5\u30a4\u30c8\">\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  &lt;title>\u30aa\u30fc\u30eb\u30a4\u30f3\u30ef\u30f3 C# \u5165\u9580\u30b5\u30a4\u30c8&lt;\/title>\n\n  &lt;!-- \u2605 \u30b9\u30bf\u30a4\u30eb(CSS)\u3092\u307e\u3068\u3081\u3066\u5b9a\u7fa9 \u2605 -->\n  &lt;style>\n    \/* \u30da\u30fc\u30b8\u5168\u4f53 *\/\n    body {\n      margin: 0;\n      padding: 0;\n      font-family: sans-serif;\n      line-height: 1.6;\n      background: #f9f9f9;\n    }\n\n    \/* \u30d8\u30c3\u30c0\u30fc *\/\n    header {\n      background: #f0f0f0;\n      padding: 10px;\n    }\n\n    header h1 {\n      margin: 0;\n      font-size: 1.5em;\n    }\n\n    \/* \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 *\/\n    nav ul {\n      list-style: none;\n      padding: 0;\n      display: flex;\n      gap: 10px;\n      margin-top: 5px;\n    }\n\n    nav a {\n      text-decoration: none;\n      color: #333;\n      font-weight: bold;\n    }\n\n    nav a:hover {\n      text-decoration: underline;\n    }\n\n    \/* \u30e1\u30a4\u30f3\u30b3\u30f3\u30c6\u30f3\u30c4 *\/\n    main {\n      max-width: 900px;\n      margin: 20px auto;\n      padding: 20px;\n      background: #fff;\n      box-shadow: 0 0 4px rgba(0,0,0,0.1);\n    }\n\n    main h2 {\n      margin-top: 0;\n      border-left: 6px solid #333;\n      padding-left: 8px;\n      margin-bottom: 15px;\n    }\n    main h3 {\n      margin-bottom: 5px;\n    }\n\n    \/* \u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af *\/\n    pre {\n      background: #fafafa;\n      padding: 10px;\n      overflow-x: auto;\n    }\n    code {\n      font-family: Consolas, monospace;\n    }\n\n    \/* \u30d5\u30a9\u30fc\u30e0\u306a\u3069\uff08\u30af\u30a4\u30ba\u7528\uff09 *\/\n    form section {\n      margin-bottom: 20px;\n    }\n    #result {\n      margin-top: 20px;\n      background: #eef;\n      padding: 10px;\n      border: 1px solid #ccf;\n      display: inline-block;\n    }\n\n    \/* \u30d5\u30c3\u30bf\u30fc *\/\n    footer {\n      text-align: center;\n      padding: 10px;\n      background: #f0f0f0;\n      margin-top: 20px;\n    }\n\n    \/* \u30bb\u30af\u30b7\u30e7\u30f3\u9593\u306e\u4f59\u767d\u8abf\u6574 *\/\n    section {\n      margin-bottom: 40px;\n    }\n  &lt;\/style>\n&lt;\/head>\n&lt;body>\n\n  &lt;!-- \u2605 \u30d8\u30c3\u30c0\u30fc\u3068\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 \u2605 -->\n  &lt;header>\n    &lt;h1>\u30aa\u30fc\u30eb\u30a4\u30f3\u30ef\u30f3 C# \u5165\u9580\u30b5\u30a4\u30c8&lt;\/h1>\n    &lt;nav>\n      &lt;ul>\n        &lt;li>&lt;a href=\"#top\">\u30c8\u30c3\u30d7&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#environment\">\u74b0\u5883\u69cb\u7bc9 &amp;amp; .NET&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#basics\">C#\u306e\u57fa\u672c&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#syntax\">\u57fa\u672c\u6587\u6cd5&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#control-flow\">\u6761\u4ef6\u5206\u5c90\u30fb\u30eb\u30fc\u30d7&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#oop\">\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#advanced\">\u5fdc\u7528\u30c8\u30d4\u30c3\u30af&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#debugging\">\u30c7\u30d0\u30c3\u30b0 &amp;amp; \u30c6\u30b9\u30c8&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#quiz\">\u30af\u30a4\u30ba&lt;\/a>&lt;\/li>\n        &lt;li>&lt;a href=\"#example\">\u30b5\u30f3\u30d7\u30eb&lt;\/a>&lt;\/li>\n      &lt;\/ul>\n    &lt;\/nav>\n  &lt;\/header>\n\n  &lt;!-- \u2605 \u30e1\u30a4\u30f3\u30b3\u30f3\u30c6\u30f3\u30c4 \u2605 -->\n  &lt;main>\n    &lt;!-- \u30c8\u30c3\u30d7 (id=\"top\") -->\n    &lt;section id=\"top\">\n      &lt;h2>\u3053\u306e\u30b5\u30a4\u30c8\u306b\u3064\u3044\u3066&lt;\/h2>\n      &lt;p>\n        \u3053\u3053\u3067\u306f\u3001C# \u3092\u521d\u3081\u3066\u5b66\u3076\u65b9\u3084\u3001\u57fa\u790e\u3092\u5fa9\u7fd2\u3057\u305f\u3044\u65b9\u5411\u3051\u306b\u3001  \n        C#\u3068.NET\u306e\u6982\u8981\u304b\u3089\u958b\u767a\u74b0\u5883\u69cb\u7bc9\u3001\u6587\u6cd5\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u3001\u3055\u3089\u306b\u30c7\u30d0\u30c3\u30b0\u3084\u30c6\u30b9\u30c8\u3001  \n        \u4e00\u6b69\u9032\u3093\u3060\u5fdc\u7528\u30c8\u30d4\u30c3\u30af(Generics, LINQ, \u975e\u540c\u671f\u306a\u3069)\u307e\u3067\u5e45\u5e83\u304f\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002  \n      &lt;\/p>\n      &lt;p>\n        \u30da\u30fc\u30b8\u4e0a\u90e8\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u5404\u30bb\u30af\u30b7\u30e7\u30f3\u3078\u79fb\u52d5\u3067\u304d\u307e\u3059\u3002  \n        \u4e00\u901a\u308a\u5b66\u7fd2\u3057\u305f\u5f8c\u306f\u3001\u30af\u30a4\u30ba\u306b\u6311\u6226\u3057\u305f\u308a\u3001\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u52d5\u304b\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\n      &lt;\/p>\n    &lt;\/section>\n\n    &lt;!-- \u74b0\u5883\u69cb\u7bc9 (id=\"environment\") -->\n    &lt;section id=\"environment\">\n      &lt;h2>\u74b0\u5883\u69cb\u7bc9 &amp;amp; .NET&lt;\/h2>\n      &lt;article>\n        &lt;h3>.NET\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u306e\u6982\u8981&lt;\/h3>\n        &lt;p>\n          C# \u306f .NET \u4e0a\u3067\u52d5\u4f5c\u3059\u308b\u8a00\u8a9e\u3067\u3059\u3002  \n          \u8fd1\u5e74\u306f\u30af\u30ed\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u5bfe\u5fdc\u306e\u300c.NET (Core)\u300d\u304c\u4e3b\u6d41\u3067\u3042\u308a\u3001  \n          Windows \u3060\u3051\u3067\u306a\u304f Mac \u3084 Linux \u3067\u3082\u5229\u7528\u53ef\u80fd\u3067\u3059\u3002\n        &lt;\/p>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>Windows \u3067\u306e\u958b\u767a&lt;\/h3>\n        &lt;p>\n          &lt;strong>Visual Studio&lt;\/strong> (Community \u7248) \u307e\u305f\u306f &lt;strong>VS Code&lt;\/strong> \u304c\u4e00\u822c\u7684\u3067\u3059\u3002  \n          &lt;code>dotnet&lt;\/code> CLI \u3092\u4f7f\u3063\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210\u30fb\u30d3\u30eb\u30c9\u30fb\u5b9f\u884c\u304c\u53ef\u80fd\u3067\u3059\u3002\n        &lt;\/p>\n&lt;pre>&lt;code>\n\/\/ \u4f8b: \u30b3\u30f3\u30bd\u30fc\u30eb\u30a2\u30d7\u30ea\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\ndotnet new console -o MyApp\ncd MyApp\ndotnet run\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>Mac \/ Linux \u3067\u306e\u958b\u767a&lt;\/h3>\n        &lt;p>\n          \u516c\u5f0f\u30b5\u30a4\u30c8\u304b\u3089 .NET SDK \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u3067\u3001\u540c\u69d8\u306b C# \u3092\u5229\u7528\u3067\u304d\u307e\u3059\u3002  \n          VS Code + C#\u62e1\u5f35\u6a5f\u80fd\u304c\u3042\u308c\u3070\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u306b\u3088\u308b\u30c7\u30d0\u30c3\u30b0\u3082\u53ef\u80fd\u3067\u3059\u3002\n        &lt;\/p>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- C#\u306e\u57fa\u672c (id=\"basics\") -->\n    &lt;section id=\"basics\">\n      &lt;h2>C#\u306e\u57fa\u672c&lt;\/h2>\n      &lt;article>\n        &lt;h3>C#\u3068\u306f\uff1f&lt;\/h3>\n        &lt;p>\n          C# (\u30b7\u30fc\u30b7\u30e3\u30fc\u30d7) \u306f\u3001\u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u304c\u958b\u767a\u3057\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a00\u8a9e\u3067\u3059\u3002  \n          Java\u306b\u4f3c\u305f\u69cb\u6587\u3092\u6301\u3061\u3001Generics\u3084LINQ\u3001\u975e\u540c\u671f\u306a\u3069\u30e2\u30c0\u30f3\u306a\u6a5f\u80fd\u3092\u6570\u591a\u304f\u5099\u3048\u3066\u3044\u307e\u3059\u3002\n        &lt;\/p>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>Hello World&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nusing System;\n\nnamespace HelloWorldApp\n{\n    class Program\n    {\n        static void Main(string&#91;] args)\n        {\n            Console.WriteLine(\"Hello World!\");\n        }\n    }\n}\n&lt;\/code>&lt;\/pre>\n        &lt;p>\u3053\u306e\u3088\u3046\u306b\u3001&lt;code>Main&lt;\/code> \u30e1\u30bd\u30c3\u30c9\u304c\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u3002&lt;\/p>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- \u57fa\u672c\u6587\u6cd5 (id=\"syntax\") -->\n    &lt;section id=\"syntax\">\n      &lt;h2>\u57fa\u672c\u6587\u6cd5&lt;\/h2>\n      &lt;article>\n        &lt;h3>\u5909\u6570\u3068\u30c7\u30fc\u30bf\u578b&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nint number = 10;\ndouble pi = 3.14;\nbool isActive = true;\nstring message = \"Hello C#\";\n&lt;\/code>&lt;\/pre>\n        &lt;p>\n          C# \u306f\u5f37\u3044\u578b\u4ed8\u3051\u8a00\u8a9e\u3067\u3042\u308a\u3001&lt;code>var&lt;\/code> \u30ad\u30fc\u30ef\u30fc\u30c9\u3067\u578b\u63a8\u8ad6\u3082\u53ef\u80fd\u3067\u3059\u3002\n        &lt;\/p>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u6f14\u7b97\u5b50&lt;\/h3>\n        &lt;p>\n          \u7b97\u8853\u6f14\u7b97\u5b50\u3001\u6bd4\u8f03\u6f14\u7b97\u5b50\u3001\u8ad6\u7406\u6f14\u7b97\u5b50\u306a\u3069\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\n        &lt;\/p>\n&lt;pre>&lt;code class=\"language-csharp\">\nint x = 5;\nint y = 3;\nConsole.WriteLine(x + y); \/\/ 8\nConsole.WriteLine(x > y); \/\/ true\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- \u6761\u4ef6\u5206\u5c90\u30fb\u30eb\u30fc\u30d7 (id=\"control-flow\") -->\n    &lt;section id=\"control-flow\">\n      &lt;h2>\u6761\u4ef6\u5206\u5c90\u30fb\u30eb\u30fc\u30d7&lt;\/h2>\n      &lt;article>\n        &lt;h3>if \/ else \/ else if&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nint score = 85;\nif(score >= 80) {\n    Console.WriteLine(\"Excellent!\");\n} else if(score >= 60) {\n    Console.WriteLine(\"Good!\");\n} else {\n    Console.WriteLine(\"Keep trying!\");\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>switch&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nint dayOfWeek = 2;\nswitch(dayOfWeek)\n{\n    case 0:\n        Console.WriteLine(\"\u65e5\u66dc\u65e5\");\n        break;\n    case 1:\n        Console.WriteLine(\"\u6708\u66dc\u65e5\");\n        break;\n    case 2:\n        Console.WriteLine(\"\u706b\u66dc\u65e5\");\n        break;\n    default:\n        Console.WriteLine(\"\u4e0d\u660e\u306a\u66dc\u65e5\");\n        break;\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>for \/ while \/ do-while&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\n\/\/ for\u30eb\u30fc\u30d7\nfor(int i = 0; i &lt; 5; i++) {\n    Console.WriteLine(i);\n}\n\n\/\/ while\u30eb\u30fc\u30d7\nint j = 0;\nwhile(j &lt; 5) {\n    Console.WriteLine(j);\n    j++;\n}\n\n\/\/ do-while\u30eb\u30fc\u30d7\nint k = 0;\ndo {\n    Console.WriteLine(k);\n    k++;\n} while(k &lt; 5);\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411 (id=\"oop\") -->\n    &lt;section id=\"oop\">\n      &lt;h2>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411&lt;\/h2>\n      &lt;article>\n        &lt;h3>\u30af\u30e9\u30b9\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nclass Person\n{\n    public string Name;\n    public int Age;\n\n    public void Greet()\n    {\n        Console.WriteLine($\"\u3053\u3093\u306b\u3061\u306f\u3001{Name}\u3067\u3059\u3002\");\n    }\n}\n\nclass Program\n{\n    static void Main()\n    {\n        Person p = new Person();\n        p.Name = \"Taro\";\n        p.Age = 20;\n        p.Greet();\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u7d99\u627f\u3068\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30ba\u30e0&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nclass Animal\n{\n    public string Name { get; set; }\n    public virtual void Speak()\n    {\n        Console.WriteLine(\"\u4f55\u304b\u3092\u8a71\u3059\");\n    }\n}\n\nclass Dog : Animal\n{\n    public override void Speak()\n    {\n        Console.WriteLine(\"\u30ef\u30f3\u30ef\u30f3\");\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\ninterface IFlyable\n{\n    void Fly();\n}\n\nclass Bird : IFlyable\n{\n    public void Fly()\n    {\n        Console.WriteLine(\"\u7fbd\u3070\u305f\u3044\u3066\u98db\u3076\");\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- \u5fdc\u7528\u30c8\u30d4\u30c3\u30af (id=\"advanced\") -->\n    &lt;section id=\"advanced\">\n      &lt;h2>\u5fdc\u7528\u30c8\u30d4\u30c3\u30af&lt;\/h2>\n      &lt;article>\n        &lt;h3>Generics (\u30b8\u30a7\u30cd\u30ea\u30af\u30b9)&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nList&lt;int> numbers = new List&lt;int>();\nnumbers.Add(10);\nnumbers.Add(20);\n\nclass Box&lt;T>\n{\n    public T Value { get; set; }\n    public Box(T value)\n    {\n        Value = value;\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u30c7\u30ea\u30b2\u30fc\u30c8\u30fb\u30a4\u30d9\u30f3\u30c8&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\npublic delegate void MyDelegate(string msg);\n\npublic class Publisher\n{\n    public event MyDelegate OnPublish;\n\n    public void Publish(string msg)\n    {\n        OnPublish?.Invoke(msg);\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>LINQ&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nint&#91;] data = {1,2,3,4,5,6};\nvar evens = from x in data\n            where x % 2 == 0\n            select x;\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u975e\u540c\u671f (async\/await)&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nstatic async Task Main()\n{\n    Console.WriteLine(\"\u958b\u59cb\");\n    await Task.Delay(1000);\n    Console.WriteLine(\"\u7d42\u4e86\");\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- \u30c7\u30d0\u30c3\u30b0 &amp; \u30c6\u30b9\u30c8 (id=\"debugging\") -->\n    &lt;section id=\"debugging\">\n      &lt;h2>\u30c7\u30d0\u30c3\u30b0 &amp;amp; \u30c6\u30b9\u30c8&lt;\/h2>\n      &lt;article>\n        &lt;h3>Visual Studio\u3067\u306e\u30c7\u30d0\u30c3\u30b0&lt;\/h3>\n        &lt;ol>\n          &lt;li>\u884c\u756a\u53f7\u306e\u5de6\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u3092\u8a2d\u5b9a&lt;\/li>\n          &lt;li>\u300c\u30c7\u30d0\u30c3\u30b0\u5b9f\u884c\u300d\u30dc\u30bf\u30f3\u3067\u958b\u59cb&lt;\/li>\n          &lt;li>\u505c\u6b62\u3057\u305f\u3089\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3084\u30b9\u30c6\u30c3\u30d7\u5b9f\u884c\u3092\u78ba\u8a8d&lt;\/li>\n        &lt;\/ol>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u4f8b\u5916\u51e6\u7406&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\ntry\n{\n    int num = int.Parse(\"abc\");\n}\ncatch(FormatException fe)\n{\n    Console.WriteLine(\"\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u30a8\u30e9\u30fc: \" + fe.Message);\n}\nfinally\n{\n    Console.WriteLine(\"\u7d42\u4e86\u51e6\u7406\");\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n      &lt;article>\n        &lt;h3>\u30e6\u30cb\u30c3\u30c8\u30c6\u30b9\u30c8&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nusing Xunit;\n\npublic class CalcTests\n{\n    &#91;Fact]\n    public void AddTest()\n    {\n        int result = Calc.Add(2, 3);\n        Assert.Equal(5, result);\n    }\n}\n\npublic static class Calc\n{\n    public static int Add(int x, int y) => x + y;\n}\n&lt;\/code>&lt;\/pre>\n        &lt;p>\n          xUnit\u3001NUnit\u3001MSTest \u306a\u3069\u304c\u6709\u540d\u3067\u3059\u3002&lt;code>dotnet test&lt;\/code> \u3067\u30c6\u30b9\u30c8\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\n        &lt;\/p>\n      &lt;\/article>\n    &lt;\/section>\n\n    &lt;!-- \u30af\u30a4\u30ba (id=\"quiz\") -->\n    &lt;section id=\"quiz\">\n      &lt;h2>C#\u30af\u30a4\u30ba&lt;\/h2>\n      &lt;p>\u30e9\u30b8\u30aa\u30dc\u30bf\u30f3\u3067\u7b54\u3048\u3092\u9078\u3093\u3067\u300c\u63a1\u70b9\u3059\u308b\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002&lt;\/p>\n\n      &lt;form id=\"quizForm\">\n        &lt;article>\n          &lt;h3>Q1. C# \u30b3\u30f3\u30bd\u30fc\u30eb\u30a2\u30d7\u30ea\u306e\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8\u306f\uff1f&lt;\/h3>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q1\" value=\"A\">\n            public static void start()\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q1\" value=\"B\">\n            private void main()\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q1\" value=\"C\">\n            static void Main(string&#91;] args)\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q1\" value=\"D\">\n            run()\n          &lt;\/label>\n        &lt;\/article>\n\n        &lt;article>\n          &lt;h3>Q2. \u6b21\u306e\u3046\u3061\u6574\u6570\u578b\u3067\u306f\u306a\u3044\u306e\u306f\uff1f&lt;\/h3>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q2\" value=\"A\">\n            int\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q2\" value=\"B\">\n            double\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q2\" value=\"C\">\n            long\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q2\" value=\"D\">\n            short\n          &lt;\/label>\n        &lt;\/article>\n\n        &lt;article>\n          &lt;h3>Q3. C# \u306e\u4f8b\u5916\u51e6\u7406\u306b\u4f7f\u308f\u308c\u308b\u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\uff1f&lt;\/h3>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q3\" value=\"A\">\n            try \/ catch \/ else\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q3\" value=\"B\">\n            try \/ check \/ throw\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q3\" value=\"C\">\n            try \/ catch \/ finally\n          &lt;\/label>&lt;br>\n          &lt;label>\n            &lt;input type=\"radio\" name=\"q3\" value=\"D\">\n            try \/ except \/ ensure\n          &lt;\/label>\n        &lt;\/article>\n\n        &lt;button type=\"button\" onclick=\"gradeQuiz()\">\u63a1\u70b9\u3059\u308b&lt;\/button>\n      &lt;\/form>\n\n      &lt;!-- \u63a1\u70b9\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u9818\u57df -->\n      &lt;div id=\"result\">&lt;\/div>\n    &lt;\/section>\n\n    &lt;!-- \u30b5\u30f3\u30d7\u30eb (id=\"example\") -->\n    &lt;section id=\"example\">\n      &lt;h2>\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0&lt;\/h2>\n\n      &lt;article>\n        &lt;h3>1. \u30e6\u30fc\u30b6\u30fc\u5165\u529b\u3092\u53d7\u3051\u53d6\u308b&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nusing System;\n\nnamespace SampleApp\n{\n    class Program\n    {\n        static void Main()\n        {\n            Console.WriteLine(\"\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044:\");\n            string name = Console.ReadLine();\n            Console.WriteLine($\"\u3053\u3093\u306b\u3061\u306f\u3001{name}\u3055\u3093\uff01\");\n        }\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n\n      &lt;article>\n        &lt;h3>2. \u4f8b\u5916\u51e6\u7406&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nusing System;\n\nnamespace SampleApp\n{\n    class Program\n    {\n        static void Main()\n        {\n            Console.WriteLine(\"\u6574\u6570\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044:\");\n            try\n            {\n                int number = int.Parse(Console.ReadLine());\n                Console.WriteLine(\"\u4e8c\u4e57:\" + (number * number));\n            }\n            catch(Exception e)\n            {\n                Console.WriteLine(\"\u30a8\u30e9\u30fc:\" + e.Message);\n            }\n        }\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n\n      &lt;article>\n        &lt;h3>3. LINQ \u3092\u4f7f\u3063\u305f\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nusing System;\nusing System.Linq;\nusing System.Collections.Generic;\n\nnamespace SampleApp\n{\n    class Program\n    {\n        static void Main()\n        {\n            List&lt;int> numbers = new List&lt;int> { 1, 4, 7, 2, 9, 12 };\n            var evenNumbers = numbers.Where(x => x % 2 == 0);\n\n            Console.WriteLine(\"\u5076\u6570\u306e\u307f\u62bd\u51fa:\");\n            foreach(var n in evenNumbers)\n            {\n                Console.WriteLine(n);\n            }\n        }\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n\n      &lt;article>\n        &lt;h3>4. \u975e\u540c\u671f\u51e6\u7406&lt;\/h3>\n&lt;pre>&lt;code class=\"language-csharp\">\nusing System;\nusing System.Threading.Tasks;\n\nnamespace SampleApp\n{\n    class Program\n    {\n        static async Task Main()\n        {\n            Console.WriteLine(\"\u958b\u59cb\");\n            await Task.Delay(2000);\n            Console.WriteLine(\"2\u79d2\u5f8c\u306b\u7d42\u4e86\");\n        }\n    }\n}\n&lt;\/code>&lt;\/pre>\n      &lt;\/article>\n    &lt;\/section>\n\n  &lt;\/main>\n\n  &lt;!-- \u30d5\u30c3\u30bf\u30fc -->\n  &lt;footer>\n    &lt;p>&amp;copy; 2025 C# Tutorial Site&lt;\/p>\n  &lt;\/footer>\n\n  &lt;!-- \u2605 \u30af\u30a4\u30ba\u5224\u5b9a\u7528JavaScript\u3092\u307e\u3068\u3081\u3066\u5b9a\u7fa9 \u2605 -->\n  &lt;script>\n    \/\/ \u6b63\u89e3\u306e\u30de\u30c3\u30d4\u30f3\u30b0\uff08q1,q2,q3,...\uff09\n    const correctAnswers = {\n      q1: \"C\", \/\/ static void Main(string&#91;] args)\n      q2: \"B\", \/\/ double\u306f\u6574\u6570\u578b\u3067\u306f\u306a\u3044\n      q3: \"C\"  \/\/ try \/ catch \/ finally\n    };\n\n    function gradeQuiz() {\n      const form = document.getElementById(\"quizForm\");\n      let score = 0;\n      let total = Object.keys(correctAnswers).length;\n\n      \/\/ \u5404\u554f\u984c\u306b\u3064\u3044\u3066\u3001\u30e9\u30b8\u30aa\u30dc\u30bf\u30f3\u306e\u9078\u629e\u5024\u3092\u30c1\u30a7\u30c3\u30af\n      for(const &#91;question, answer] of Object.entries(correctAnswers)) {\n        const userAnswer = form.elements&#91;question].value;\n        if(userAnswer === answer) {\n          score++;\n        }\n      }\n\n      \/\/ \u7d50\u679c\u8868\u793a\n      const resultDiv = document.getElementById(\"result\");\n      resultDiv.innerHTML = `\n        &lt;h3>\u63a1\u70b9\u7d50\u679c: ${score} \/ ${total} \u6b63\u89e3&lt;\/h3>\n        &lt;p>${getComment(score, total)}&lt;\/p>\n      `;\n    }\n\n    \/\/ \u70b9\u6570\u306b\u5fdc\u3058\u305f\u30b3\u30e1\u30f3\u30c8\u3092\u8fd4\u3059\n    function getComment(score, total) {\n      if(score === total) {\n        return \"\u30d1\u30fc\u30d5\u30a7\u30af\u30c8\uff01\u7d20\u6674\u3089\u3057\u3044\u3067\u3059\uff01\";\n      } else if(score >= total - 1) {\n        return \"\u60dc\u3057\u3044\uff01\u3042\u3068\u3082\u3046\u5c11\u3057\uff01\";\n      } else {\n        return \"\u307e\u3060\u307e\u3060\u52c9\u5f37\u304c\u5fc5\u8981\u3067\u3059\u3002\u304c\u3093\u3070\u308a\u307e\u3057\u3087\u3046\uff01\";\n      }\n    }\n  &lt;\/script>\n\n&lt;\/body>\n&lt;\/html>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[80],"tags":[3],"class_list":["post-25904","post","type-post","status-publish","format-standard","hentry","category-html","tag-programming"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25904"}],"version-history":[{"count":2,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25904\/revisions"}],"predecessor-version":[{"id":25906,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25904\/revisions\/25906"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25904"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}