{"id":1504,"date":"2024-12-06T17:03:54","date_gmt":"2024-12-06T08:03:54","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=1504"},"modified":"2025-03-24T08:50:31","modified_gmt":"2025-03-23T23:50:31","slug":"%e3%80%90c%e5%85%a5%e9%96%80%e3%80%91action%e3%83%87%e3%83%aa%e3%82%b2%e3%83%bc%e3%83%88%e3%82%92%e5%ae%8c%e5%85%a8%e7%90%86%e8%a7%a3%ef%bc%81%e5%ae%9f%e8%b7%b5%e3%81%a7%e4%bd%bf%e3%81%88%e3%82%8b7","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=1504","title":{"rendered":"\u3010C#\u5165\u9580\u3011Action\u30c7\u30ea\u30b2\u30fc\u30c8\u3092\u5b8c\u5168\u7406\u89e3\uff01\u5b9f\u8df5\u3067\u4f7f\u3048\u308b7\u3064\u306e\u6d3b\u7528\u4f8b\u3068\u6ce8\u610f\u70b9"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">\u306f\u3058\u3081\u306b<\/a>  <\/li>  <li>    <a href=\"#i-1\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u3068\u306f\u4f55\u304b\uff1f\u57fa\u790e\u304b\u3089\u7406\u89e3\u3059\u308b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-2\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u304c\u89e3\u6c7a\u3059\u308b3\u3064\u306e\u8ab2\u984c<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-3\">Action\u3068Action&lt;T&gt;\u306e\u9055\u3044\u3092\u7406\u89e3\u3057\u3088\u3046<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-6\">Action\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u30de\u30b9\u30bf\u30fc\u3057\u3088\u3046<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-7\">\u30b7\u30f3\u30d7\u30eb\u306aAction\u306e\u5b9a\u7fa9\u3068\u5b9f\u884c\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-8\">\u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u3063\u305fAction\u306e\u7c21\u6f54\u306a\u66f8\u304d\u65b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u30e9\u30e0\u30c0\u5f0f\u4f7f\u7528\u6642\u306e\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\u5b9f\u8df5\u3067\u6d3b\u304d\u308b\uff01Action\u306e\u6d3b\u7528\u4f8b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">\u975e\u540c\u671f\u51e6\u7406\u3067\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u5b9f\u88c5<\/a>      <\/li>      <li>        <a href=\"#i-12\">\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-13\">\u4f9d\u5b58\u6027\u6ce8\u5165\u3067\u306eFactory Pattern\u5b9f\u88c5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-14\">\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-15\">Action\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u91cd\u8981\u306a\u6ce8\u610f\u70b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-16\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306e\u9069\u5207\u306a\u89e3\u653e\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-17\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u5f71\u97ff\u3068\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-19\">\u4ee3\u8868\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3068\u305d\u306e\u5bfe\u7b56<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-22\">Advanced\uff1a\u3088\u308a\u6df1\u3044Action\u306e\u7406\u89e3\u306e\u305f\u3081\u306b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-23\">Func\u3068Action\u306e\u4f7f\u3044\u5206\u3051<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-25\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u5b89\u5168\u306a\u4f7f\u7528\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-27\">\u660e\u65e5\u304b\u3089\u4f7f\u3048\u308bAction\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first last\">        <a href=\"#i-28\">\u30b7\u30fc\u30f3\u5225Action\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u96c6<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-35\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306e\u307e\u3068\u3081<\/a>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">\u306f\u3058\u3081\u306b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C#\u306eAction\u30c7\u30ea\u30b2\u30fc\u30c8\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u6271\u3048\u308b\u5f37\u529b\u306a\u6a5f\u80fd\u3067\u3059\u3002\u975e\u540c\u671f\u51e6\u7406\u3084\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306a\u3069\u3001\u30e2\u30c0\u30f3\u306aC#\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u306f\u6b20\u304b\u305b\u306a\u3044\u5b58\u5728\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<br>\u672c\u8a18\u4e8b\u3067\u306f\u3001Action\u306e\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u65b9\u6cd5\u307e\u3067\u3001\u5177\u4f53\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3092\u4ea4\u3048\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u672c\u8a18\u4e8b\u3067\u5b66\u3079\u308b\u3053\u3068<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306e\u57fa\u672c\u7684\u306a\u6982\u5ff5\u3068\u4f7f\u7528\u65b9\u6cd5<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u3063\u305f\u7c21\u6f54\u306a\u5b9f\u88c5\u30c6\u30af\u30cb\u30c3\u30af<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u975e\u540c\u671f\u51e6\u7406\u3084\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3067\u306e\u52b9\u679c\u7684\u306a\u6d3b\u7528\u6cd5<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306e\u9069\u5207\u306a\u5b9f\u88c5\u65b9\u6cd5<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u5b89\u5168\u306a\u4f7f\u3044\u65b9<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">Func\u3068Action\u306e\u4f7f\u3044\u5206\u3051\u306e\u30dd\u30a4\u30f3\u30c8<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u5b9f\u52d9\u3067\u3059\u3050\u306b\u4f7f\u3048\u308b\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u96c6<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-1\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u3068\u306f\u4f55\u304b\uff1f\u57fa\u790e\u304b\u3089\u7406\u89e3\u3059\u308b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u304c\u89e3\u6c7a\u3059\u308b3\u3064\u306e\u8ab2\u984c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u304a\u3044\u3066\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u5f15\u6570\u3068\u3057\u3066\u6e21\u3057\u305f\u3044\u3001\u307e\u305f\u306f\u5f8c\u3067\u5b9f\u884c\u3057\u305f\u3044\u3068\u3044\u3046\u30cb\u30fc\u30ba\u306f\u983b\u7e41\u306b\u767a\u751f\u3057\u307e\u3059\u3002<br>Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3067\u767a\u751f\u3059\u308b\u4ee5\u4e0b\u306e3\u3064\u306e\u8ab2\u984c\u3092\u52b9\u679c\u7684\u306b\u89e3\u6c7a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30bd\u30c3\u30c9\u306e\u30ab\u30d7\u30bb\u30eb\u5316<\/strong>\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>\u5f93\u6765\u306e\u65b9\u6cd5\u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u5909\u6570\u3068\u3057\u3066\u6271\u3046\u3053\u3068\u304c\u56f0\u96e3\u3067\u3057\u305f<\/li>\n\n\n\n<li>\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u306a\u3069\u3001\u8907\u96d1\u306a\u5b9f\u88c5\u304c\u5fc5\u8981\u3067\u3057\u305f<\/li>\n\n\n\n<li>Action\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u7c21\u5358\u306b\u5909\u6570\u3068\u3057\u3066\u6271\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u51e6\u7406\u306e\u7c21\u7d20\u5316<\/strong>\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3084\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u306e\u5b9f\u88c5\u304c\u7169\u96d1\u306b\u306a\u308a\u304c\u3061\u3067\u3057\u305f<\/li>\n\n\n\n<li>\u30c7\u30ea\u30b2\u30fc\u30c8\u30c1\u30a7\u30fc\u30f3\u306e\u7ba1\u7406\u304c\u8907\u96d1\u3067\u3057\u305f<\/li>\n\n\n\n<li>Action\u306b\u3088\u3063\u3066\u3001\u7c21\u6f54\u3067\u7406\u89e3\u3057\u3084\u3059\u3044\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u975e\u540c\u671f\u51e6\u7406\u306e\u5236\u5fa1<\/strong>\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>\u975e\u540c\u671f\u51e6\u7406\u5b8c\u4e86\u5f8c\u306e\u51e6\u7406\u3092\u5b9a\u7fa9\u3059\u308b\u306e\u304c\u9762\u5012\u3067\u3057\u305f<\/li>\n\n\n\n<li>\u51e6\u7406\u306e\u9806\u5e8f\u5236\u5fa1\u304c\u8907\u96d1\u306b\u306a\u308a\u304c\u3061\u3067\u3057\u305f<\/li>\n\n\n\n<li>Action\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u975e\u540c\u671f\u51e6\u7406\u306e\u30d5\u30ed\u30fc\u3092\u76f4\u611f\u7684\u306b\u8a18\u8ff0\u3067\u304d\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5f93\u6765\u306e\u65b9\u6cd5\uff08\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u4f7f\u7528\uff09\npublic interface ICallback {\n    void Execute();\n}\n\npublic class MyCallback : ICallback {\n    public void Execute() {\n        Console.WriteLine(\"\u51e6\u7406\u5b9f\u884c\");\n    }\n}\n\n\/\/ Action\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\nAction myCallback = () =&gt; Console.WriteLine(\"\u51e6\u7406\u5b9f\u884c\");<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">Action\u3068Action&lt;T&gt;\u306e\u9055\u3044\u3092\u7406\u89e3\u3057\u3088\u3046<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Action\u3068Action&lt;T&gt;\u306f\u3001\u4f3c\u3066\u3044\u308b\u3088\u3046\u3067\u7570\u306a\u308b\u7528\u9014\u3092\u6301\u3064\u30c7\u30ea\u30b2\u30fc\u30c8\u3067\u3059\u3002\u305d\u306e\u9055\u3044\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-4\">Action\uff08\u30d1\u30e9\u30e1\u30fc\u30bf\u306a\u3057\uff09<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u623b\u308a\u5024\u304cvoid\u3067\u5f15\u6570\u3092\u53d6\u3089\u306a\u3044\u30e1\u30bd\u30c3\u30c9\u3092\u8868\u73fe\nAction simpleAction = () =&gt; Console.WriteLine(\"Simple Action\");\n\n\/\/ \u5f93\u6765\u306e\u30c7\u30ea\u30b2\u30fc\u30c8\u5b9a\u7fa9\u3068\u540c\u3058\ndelegate void SimpleDelegate();<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-5\">Action&lt;T&gt;\uff08\u30d1\u30e9\u30e1\u30fc\u30bf\u3042\u308a\uff09<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5358\u4e00\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u53d7\u3051\u53d6\u308bAction\nAction&lt;string&gt; printMessage = (message) =&gt; Console.WriteLine(message);\n\n\/\/ \u8907\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u53d7\u3051\u53d6\u308bAction\nAction&lt;string, int&gt; printMessageWithCount = (message, count) =&gt; \n    Console.WriteLine($\"{message} ({count}\u56de\u76ee)\");<\/pre>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u4e3b\u306a\u9055\u3044\u3068\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\"><div id=\"id-a8b225ed-40fc-463c-acd3-c82e0a83c600\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>Action<\/th><th>Action&lt;T&gt;<\/th><\/tr><\/thead><tbody><tr><td>\u30d1\u30e9\u30e1\u30fc\u30bf<\/td><td>\u306a\u3057<\/td><td>1\u3064\u4ee5\u4e0a\uff08\u6700\u592716\u500b\uff09<\/td><\/tr><tr><td>\u7528\u9014<\/td><td>\u30b7\u30f3\u30d7\u30eb\u306a\u51e6\u7406\u306e\u5b9f\u884c<\/td><td>\u30c7\u30fc\u30bf\u3092\u53d7\u3051\u53d6\u3063\u3066\u51e6\u7406<\/td><\/tr><tr><td>\u4e00\u822c\u7684\u306a\u4f7f\u7528\u5834\u9762<\/td><td>\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3001\u5358\u7d14\u306a\u30b3\u30fc\u30eb\u30d0\u30c3\u30af<\/td><td>\u30c7\u30fc\u30bf\u51e6\u7406\u3001\u5024\u306e\u5909\u63db\u51e6\u7406<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Action\u306e\u5b9f\u969b\u306e\u4f7f\u7528\u4f8b\npublic class NotificationService {\n    private Action _onNotify;\n\n    public void RegisterCallback(Action callback) {\n        _onNotify = callback;\n    }\n\n    public void SendNotification() {\n        _onNotify?.Invoke();  \/\/ null\u6761\u4ef6\u6f14\u7b97\u5b50\u3092\u4f7f\u7528\u3057\u3066\u5b89\u5168\u306b\u547c\u3073\u51fa\u3057\n    }\n}\n\n\/\/ Action&lt;T&gt;\u306e\u5b9f\u969b\u306e\u4f7f\u7528\u4f8b\npublic class DataProcessor {\n    private Action&lt;string&gt; _processData;\n\n    public void RegisterProcessor(Action&lt;string&gt; processor) {\n        _processData = processor;\n    }\n\n    public void ProcessInput(string input) {\n        _processData?.Invoke(input);\n    }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u3088\u3046\u306b\u3001Action\u3068Action&lt;T&gt;\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u7279\u6027\u3092\u6d3b\u304b\u3057\u3066\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u30af\u30ea\u30fc\u30f3\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<br>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u3092\u8e0f\u307e\u3048\u305f\u4e0a\u3067\u3001\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-6\">Action\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u30de\u30b9\u30bf\u30fc\u3057\u3088\u3046<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-7\">\u30b7\u30f3\u30d7\u30eb\u306aAction\u306e\u5b9a\u7fa9\u3068\u5b9f\u884c\u65b9\u6cd5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u3001\u6bb5\u968e\u7684\u306b\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<br>\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u4f8b\u3092\u901a\u3058\u3066\u3001Action\u306e\u5b9a\u7fa9\u304b\u3089\u5b9f\u884c\u307e\u3067\u306e\u6d41\u308c\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ActionBasics\n{\n    \/\/ 1. \u901a\u5e38\u306e\u30e1\u30bd\u30c3\u30c9\u3092Action\u3068\u3057\u3066\u4f7f\u7528\n    public void SimpleMethod()\n    {\n        Console.WriteLine(\"Simple Method Called\");\n    }\n\n    public void DemonstrateBasicAction()\n    {\n        \/\/ \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u306b\u3088\u308bAction\u5b9a\u7fa9\n        Action action1 = SimpleMethod;\n\n        \/\/ \u76f4\u63a5\u547c\u3073\u51fa\u3057\n        action1();  \/\/ \u51fa\u529b: \"Simple Method Called\"\n\n        \/\/ 2. \u533f\u540d\u30e1\u30bd\u30c3\u30c9\u306b\u3088\u308bAction\u5b9a\u7fa9\n        Action action2 = delegate()\n        {\n            Console.WriteLine(\"Anonymous Method Called\");\n        };\n\n        action2();  \/\/ \u51fa\u529b: \"Anonymous Method Called\"\n\n        \/\/ 3. \u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064Action\u306e\u5b9a\u7fa9\n        Action&lt;string&gt; printMessage = delegate(string message)\n        {\n            Console.WriteLine($\"Message: {message}\");\n        };\n\n        printMessage(\"Hello, Action!\");  \/\/ \u51fa\u529b: \"Message: Hello, Action!\"\n    }\n}<\/pre>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">1. Action\u306f`void`\u3092\u623b\u308a\u5024\u3068\u3059\u308b\u30c7\u30ea\u30b2\u30fc\u30c8\u3067\u3059<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">2. \u65e2\u5b58\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u53c2\u7167\u3067\u304d\u307e\u3059<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">3. \u533f\u540d\u30e1\u30bd\u30c3\u30c9\u3068\u3057\u3066\u5b9a\u7fa9\u3067\u304d\u307e\u3059<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">4. null\u5b89\u5168\u306a\u547c\u3073\u51fa\u3057\u306b\u306f`?.Invoke()`\u3092\u4f7f\u7528\u3057\u307e\u3059<\/p>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u3063\u305fAction\u306e\u7c21\u6f54\u306a\u66f8\u304d\u65b9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u30e2\u30c0\u30f3\u3067\u7c21\u6f54\u306aAction\u5b9a\u7fa9\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<br>\u4ee5\u4e0b\u306b\u3001\u69d8\u3005\u306a\u30b7\u30ca\u30ea\u30aa\u3067\u306e\u30e9\u30e0\u30c0\u5f0f\u306e\u6d3b\u7528\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ActionWithLambda\n{\n    public void DemonstrateLambdaActions()\n    {\n        \/\/ 1. \u30b7\u30f3\u30d7\u30eb\u306a\u30e9\u30e0\u30c0\u5f0f\n        Action simpleAction = () =&gt; Console.WriteLine(\"Simple Lambda Action\");\n\n        \/\/ 2. \u8907\u6570\u884c\u306e\u30e9\u30e0\u30c0\u5f0f\n        Action multiLineAction = () =&gt;\n        {\n            Console.WriteLine(\"First Line\");\n            Console.WriteLine(\"Second Line\");\n        };\n\n        \/\/ 3. \u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064\u30e9\u30e0\u30c0\u5f0f\n        Action&lt;string, int&gt; parameterizedAction = (message, count) =&gt;\n        {\n            for (int i = 0; i &lt; count; i++)\n            {\n                Console.WriteLine($\"{i + 1}: {message}\");\n            }\n        };\n\n        \/\/ \u5b9f\u884c\u4f8b\n        simpleAction();  \/\/ \u51fa\u529b: \"Simple Lambda Action\"\n        multiLineAction();  \/\/ 2\u884c\u306e\u51fa\u529b\n        parameterizedAction(\"Hello\", 3);  \/\/ 3\u56de\u306eHello\u51fa\u529b\n    }\n\n    \/\/ \u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u4f8b\uff1a\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\n    public class NotificationManager\n    {\n        private Action&lt;string&gt; _onNotification;\n\n        public void Subscribe(Action&lt;string&gt; handler)\n        {\n            _onNotification += handler;\n        }\n\n        public void Unsubscribe(Action&lt;string&gt; handler)\n        {\n            _onNotification -= handler;\n        }\n\n        public void SendNotification(string message)\n        {\n            _onNotification?.Invoke(message);\n        }\n    }\n\n    public void DemonstrateNotificationSystem()\n    {\n        var manager = new NotificationManager();\n\n        \/\/ \u30e9\u30e0\u30c0\u5f0f\u3067\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3092\u767b\u9332\n        manager.Subscribe(msg =&gt; Console.WriteLine($\"\u901a\u77e51: {msg}\"));\n        manager.Subscribe(msg =&gt; Console.WriteLine($\"\u901a\u77e52: {msg}\"));\n\n        \/\/ \u901a\u77e5\u306e\u9001\u4fe1\n        manager.SendNotification(\"\u91cd\u8981\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\");\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u30e9\u30e0\u30c0\u5f0f\u4f7f\u7528\u6642\u306e\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8<\/h3>\n\n\n<div id=\"id-1ae9557f-a83d-4c05-b69a-1ab2c0fcfe65\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30ea\u30c3\u30c8<\/th><th>\u8aac\u660e<\/th><\/tr><\/thead><tbody><tr><td>\u30b3\u30fc\u30c9\u306e\u7c21\u6f54\u3055<\/td><td>\u5f93\u6765\u306e\u533f\u540d\u30e1\u30bd\u30c3\u30c9\u3088\u308a\u3082\u77ed\u304f\u66f8\u3051\u308b<\/td><\/tr><tr><td>\u53ef\u8aad\u6027\u306e\u5411\u4e0a<\/td><td>\u51e6\u7406\u306e\u610f\u56f3\u304c\u660e\u78ba\u306b\u306a\u308b<\/td><\/tr><tr><td>\u67d4\u8edf\u306a\u8a18\u6cd5<\/td><td>\u5358\u4e00\u884c\u30fb\u8907\u6570\u884c\u3069\u3061\u3089\u3082\u5bfe\u5fdc\u53ef\u80fd<\/td><\/tr><tr><td>\u5909\u6570\u306e\u30ad\u30e3\u30d7\u30c1\u30e3<\/td><td>\u5916\u90e8\u30b9\u30b3\u30fc\u30d7\u306e\u5909\u6570\u3092\u7c21\u5358\u306b\u5229\u7528\u53ef\u80fd<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u5b9f\u88c5\u6642\u306e\u6ce8\u610f\u70b9<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u5185\u3067\u306ethis\u306e\u6271\u3044\u306b\u6ce8\u610f<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">\u5909\u6570\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u306b\u3088\u308b\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306b\u6ce8\u610f<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">\u8907\u96d1\u306a\u51e6\u7406\u306f\u901a\u5e38\u306e\u30e1\u30bd\u30c3\u30c9\u3068\u3057\u3066\u5206\u96e2\u3059\u308b\u3053\u3068\u3092\u691c\u8a0e<\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u8aac\u660e\u3059\u308b\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u4f8b\u306b\u30b9\u30e0\u30fc\u30ba\u306b\u9032\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">\u5b9f\u8df5\u3067\u6d3b\u304d\u308b\uff01Action\u306e\u6d3b\u7528\u4f8b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">\u975e\u540c\u671f\u51e6\u7406\u3067\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u5b9f\u88c5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u975e\u540c\u671f\u51e6\u7406\u306f\u73fe\u4ee3\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u4e0d\u53ef\u6b20\u306a\u8981\u7d20\u3067\u3059\u3002Action\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u975e\u540c\u671f\u51e6\u7406\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u3092\u52b9\u7387\u7684\u306b\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class AsyncOperationExample\n{\n    \/\/ \u975e\u540c\u671f\u51e6\u7406\u3092\u5b9f\u884c\u3059\u308b\u30af\u30e9\u30b9\n    public class AsyncProcessor\n    {\n        public async Task ProcessAsync(string data, Action&lt;string&gt; onProgress, Action&lt;string&gt; onComplete)\n        {\n            \/\/ \u9032\u6357\u5831\u544a\n            onProgress?.Invoke(\"\u51e6\u7406\u3092\u958b\u59cb\u3057\u307e\u3059...\");\n\n            \/\/ \u975e\u540c\u671f\u51e6\u7406\u3092\u30b7\u30df\u30e5\u30ec\u30fc\u30c8\n            await Task.Delay(1000);\n            onProgress?.Invoke(\"50%\u5b8c\u4e86...\");\n\n            await Task.Delay(1000);\n            onProgress?.Invoke(\"\u51e6\u7406\u5b8c\u4e86\");\n\n            \/\/ \u5b8c\u4e86\u901a\u77e5\n            onComplete?.Invoke($\"\u30c7\u30fc\u30bf\u300c{data}\u300d\u306e\u51e6\u7406\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\");\n        }\n    }\n\n    \/\/ \u4f7f\u7528\u4f8b\n    public static async Task DemonstrateAsyncOperation()\n    {\n        var processor = new AsyncProcessor();\n\n        await processor.ProcessAsync(\n            \"\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\",\n            progress =&gt; Console.WriteLine($\"\u9032\u6357: {progress}\"),\n            result =&gt; Console.WriteLine($\"\u5b8c\u4e86: {result}\")\n        );\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a4\u30d9\u30f3\u30c8\u30c9\u30ea\u30d6\u30f3\u306a\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u304a\u3044\u3066\u3001Action\u306f\u67d4\u8edf\u306a\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class EventHandlingExample\n{\n    public class UserInterface\n    {\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30fc\u3092Action\u3068\u3057\u3066\u5b9a\u7fa9\n        private Action&lt;string&gt; _onButtonClick;\n        private Action&lt;(int x, int y)&gt; _onMouseMove;\n\n        public void RegisterButtonClickHandler(Action&lt;string&gt; handler)\n        {\n            _onButtonClick += handler;\n        }\n\n        public void RegisterMouseMoveHandler(Action&lt;(int x, int y)&gt; handler)\n        {\n            _onMouseMove += handler;\n        }\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\n        public void SimulateButtonClick(string buttonId)\n        {\n            _onButtonClick?.Invoke(buttonId);\n        }\n\n        public void SimulateMouseMove(int x, int y)\n        {\n            _onMouseMove?.Invoke((x, y));\n        }\n    }\n\n    \/\/ \u4f7f\u7528\u4f8b\n    public static void DemonstrateEventHandling()\n    {\n        var ui = new UserInterface();\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30fc\u306e\u767b\u9332\n        ui.RegisterButtonClickHandler(buttonId =&gt;\n            Console.WriteLine($\"\u30dc\u30bf\u30f3 {buttonId} \u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\"));\n\n        ui.RegisterMouseMoveHandler(pos =&gt;\n            Console.WriteLine($\"\u30de\u30a6\u30b9\u4f4d\u7f6e: X={pos.x}, Y={pos.y}\"));\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\n        ui.SimulateButtonClick(\"submit-button\");\n        ui.SimulateMouseMove(100, 200);\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-13\">\u4f9d\u5b58\u6027\u6ce8\u5165\u3067\u306eFactory Pattern\u5b9f\u88c5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Action\u3092\u4f7f\u7528\u3057\u305fFactory Pattern\u306e\u5b9f\u88c5\u306b\u3088\u308a\u3001\u67d4\u8edf\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u751f\u6210\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class FactoryPatternExample\n{\n    public interface IProduct\n    {\n        void Execute();\n    }\n\n    public class ProductA : IProduct\n    {\n        public void Execute() =&gt; Console.WriteLine(\"ProductA executing\");\n    }\n\n    public class ProductB : IProduct\n    {\n        public void Execute() =&gt; Console.WriteLine(\"ProductB executing\");\n    }\n\n    public class Factory\n    {\n        private readonly Dictionary&lt;string, Func&lt;IProduct&gt;&gt; _factories = new();\n\n        public void RegisterProduct&lt;T&gt;(string key, Func&lt;T&gt; factory) where T : IProduct\n        {\n            _factories[key] = factory;\n        }\n\n        public IProduct Create(string key)\n        {\n            if (_factories.TryGetValue(key, out var factory))\n            {\n                return factory();\n            }\n            throw new KeyNotFoundException($\"Factory for {key} not found\");\n        }\n    }\n\n    \/\/ \u4f7f\u7528\u4f8b\n    public static void DemonstrateFactory()\n    {\n        var factory = new Factory();\n\n        \/\/ \u88fd\u54c1\u306e\u767b\u9332\n        factory.RegisterProduct(\"A\", () =&gt; new ProductA());\n        factory.RegisterProduct(\"B\", () =&gt; new ProductB());\n\n        \/\/ \u88fd\u54c1\u306e\u751f\u6210\u3068\u5b9f\u884c\n        var productA = factory.Create(\"A\");\n        productA.Execute();  \/\/ \u51fa\u529b: \"ProductA executing\"\n\n        var productB = factory.Create(\"B\");\n        productB.Execute();  \/\/ \u51fa\u529b: \"ProductB executing\"\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n<div id=\"id-3221ea66-a13a-4a34-afb3-114668c4ba4d\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30b7\u30ca\u30ea\u30aa<\/th><th>\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8<\/th><th>\u6ce8\u610f\u70b9<\/th><\/tr><\/thead><tbody><tr><td>\u975e\u540c\u671f\u51e6\u7406<\/td><td>\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u306e\u660e\u78ba\u306a\u5206\u96e2<\/td><td>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306b\u6ce8\u610f<\/td><\/tr><tr><td>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/td><td>\u67d4\u8edf\u306a\u30cf\u30f3\u30c9\u30e9\u7ba1\u7406<\/td><td>\u30a4\u30d9\u30f3\u30c8\u306e\u9069\u5207\u306a\u89e3\u9664<\/td><\/tr><tr><td>Factory Pattern<\/td><td>\u62e1\u5f35\u6027\u306e\u9ad8\u3044\u8a2d\u8a08<\/td><td>\u578b\u5b89\u5168\u6027\u306e\u78ba\u4fdd<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u5b9f\u88c5\u4f8b\u306f\u3001\u5b9f\u969b\u306e\u958b\u767a\u73fe\u5834\u3067\u983b\u7e41\u306b\u906d\u9047\u3059\u308b\u8ab2\u984c\u306b\u5bfe\u3059\u308b\u52b9\u679c\u7684\u306a\u89e3\u6c7a\u7b56\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<br>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u5b9f\u88c5\u3092\u884c\u3046\u969b\u306e\u91cd\u8981\u306a\u6ce8\u610f\u70b9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">Action\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u91cd\u8981\u306a\u6ce8\u610f\u70b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306e\u9069\u5207\u306a\u89e3\u653e\u65b9\u6cd5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Action\u306e\u4e0d\u9069\u5207\u306a\u4f7f\u7528\u306f\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u539f\u56e0\u3068\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u4e00\u822c\u7684\u306a\u554f\u984c\u3068\u305d\u306e\u89e3\u6c7a\u65b9\u6cd5\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class MemoryManagementExample\n{\n    public class EventPublisher\n    {\n        private Action&lt;string&gt; _messageReceived;\n\n        \/\/ \u6b63\u3057\u3044\u5b9f\u88c5\uff1a\u30a4\u30d9\u30f3\u30c8\u306e\u8cfc\u8aad\u89e3\u9664\u30e1\u30bd\u30c3\u30c9\u3092\u63d0\u4f9b\n        public void Subscribe(Action&lt;string&gt; handler)\n        {\n            _messageReceived += handler;\n        }\n\n        public void Unsubscribe(Action&lt;string&gt; handler)\n        {\n            _messageReceived -= handler;\n        }\n\n        public void PublishMessage(string message)\n        {\n            _messageReceived?.Invoke(message);\n        }\n    }\n\n    public class Subscriber : IDisposable\n    {\n        private readonly EventPublisher _publisher;\n        private bool _disposed = false;\n\n        public Subscriber(EventPublisher publisher)\n        {\n            _publisher = publisher;\n            \/\/ \u30a4\u30d9\u30f3\u30c8\u306e\u8cfc\u8aad\n            _publisher.Subscribe(HandleMessage);\n        }\n\n        private void HandleMessage(string message)\n        {\n            Console.WriteLine($\"Received: {message}\");\n        }\n\n        public void Dispose()\n        {\n            if (!_disposed)\n            {\n                \/\/ \u91cd\u8981\uff1a\u8cfc\u8aad\u89e3\u9664\u3092\u5fd8\u308c\u305a\u306b\u884c\u3046\n                _publisher.Unsubscribe(HandleMessage);\n                _disposed = true;\n            }\n        }\n    }\n\n    \/\/ \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\n    public static void DemonstrateProperDisposal()\n    {\n        var publisher = new EventPublisher();\n        using (var subscriber = new Subscriber(publisher))\n        {\n            publisher.PublishMessage(\"\u30c6\u30b9\u30c8\u30e1\u30c3\u30bb\u30fc\u30b8\");\n        } \/\/ \u3053\u3053\u3067Dispose\u304c\u81ea\u52d5\u7684\u306b\u547c\u3070\u308c\u308b\n    }\n}<\/pre>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306e\u89e3\u9664\u3092\u5fc5\u305a\u5b9f\u88c5\u3059\u308b<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">IDisposable\u30d1\u30bf\u30fc\u30f3\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">using\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u6d3b\u7528\u3059\u308b<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt wp-block-paragraph\">\u5faa\u74b0\u53c2\u7167\u306b\u6ce8\u610f\u3059\u308b<\/p>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u5f71\u97ff\u3068\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Action\u306e\u4f7f\u7528\u306f\u4fbf\u5229\u3067\u3059\u304c\u3001\u9069\u5207\u306b\u4f7f\u7528\u3057\u306a\u3044\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class PerformanceOptimizationExample\n{\n    \/\/ \u6700\u9069\u5316\u4f8b\uff1aAction\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\n    private static class ActionCache\n    {\n        private static readonly Dictionary&lt;string, Action&lt;string&gt;&gt; _cachedActions = new();\n\n        public static Action&lt;string&gt; GetOrCreate(string key, Func&lt;Action&lt;string&gt;&gt; factory)\n        {\n            if (!_cachedActions.TryGetValue(key, out var action))\n            {\n                action = factory();\n                _cachedActions[key] = action;\n            }\n            return action;\n        }\n    }\n\n    \/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u30c7\u30e2\n    public static void DemonstratePerformanceOptimization()\n    {\n        \/\/ \u975e\u52b9\u7387\u306a\u5b9f\u88c5\uff1a\u6bce\u56de\u65b0\u3057\u3044Action\u3092\u751f\u6210\n        Action&lt;string&gt; inefficientAction = null;\n        for (int i = 0; i &lt; 1000; i++)\n        {\n            inefficientAction = msg =&gt; Console.WriteLine(msg);\n        }\n\n        \/\/ \u52b9\u7387\u7684\u306a\u5b9f\u88c5\uff1a\u30ad\u30e3\u30c3\u30b7\u30e5\u3055\u308c\u305fAction\u3092\u4f7f\u7528\n        var efficientAction = ActionCache.GetOrCreate(\"logger\", () =&gt; \n            msg =&gt; Console.WriteLine(msg));\n    }\n\n    \/\/ \u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\uff1a\u30a4\u30f3\u30e9\u30a4\u30f3\u5316\u304c\u53ef\u80fd\u306a\u5358\u7d14\u306aAction\n    public static void ProcessWithInlineAction(string data)\n    {\n        \/\/ \u826f\u3044\u4f8b\uff1a\u30b7\u30f3\u30d7\u30eb\u306a\u51e6\u7406\u306f\u76f4\u63a5\u5b9f\u88c5\n        Console.WriteLine(data);\n\n        \/\/ \u60aa\u3044\u4f8b\uff1a\u4e0d\u5fc5\u8981\u306aAction\u306e\u30e9\u30c3\u30d4\u30f3\u30b0\n        Action&lt;string&gt; wrapper = msg =&gt; Console.WriteLine(msg);\n        wrapper(data);\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-18\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n<div id=\"id-0d530387-f8ec-47da-82a6-646792f5c750\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6700\u9069\u5316\u9805\u76ee<\/th><th>\u5b9f\u88c5\u65b9\u6cd5<\/th><th>\u52b9\u679c<\/th><\/tr><\/thead><tbody><tr><td>Action\u306e\u30ad\u30e3\u30c3\u30b7\u30e5<\/td><td>\u9759\u7684\u30c7\u30a3\u30af\u30b7\u30e7\u30ca\u30ea\u306b\u683c\u7d0d<\/td><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u524a\u6e1b<\/td><\/tr><tr><td>\u30a4\u30f3\u30e9\u30a4\u30f3\u5316<\/td><td>\u5358\u7d14\u306a\u51e6\u7406\u306f\u76f4\u63a5\u5b9f\u88c5<\/td><td>\u5b9f\u884c\u901f\u5ea6\u306e\u5411\u4e0a<\/td><\/tr><tr><td>\u4e0d\u8981\u306a\u30e9\u30c3\u30d4\u30f3\u30b0\u56de\u907f<\/td><td>\u9069\u5207\u306a\u30b9\u30b3\u30fc\u30d7\u8a2d\u8a08<\/td><td>\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u306e\u524a\u6e1b<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-19\">\u4ee3\u8868\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3068\u305d\u306e\u5bfe\u7b56<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-20\">1. <strong>\u30ad\u30e3\u30d7\u30c1\u30e3\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9<\/strong><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u60aa\u3044\u4f8b\uff1a\u4e0d\u5fc5\u8981\u306a\u5909\u6570\u30ad\u30e3\u30d7\u30c1\u30e3\nvar count = 0;\nAction counter = () =&gt; Console.WriteLine(count++);\ncounter();\n\n\/\/ \u826f\u3044\u4f8b\uff1a\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u6e21\u3059\nAction&lt;int&gt; betterCounter = c =&gt; Console.WriteLine(c);\nbetterCounter(count++);<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-21\">2. <strong>\u30c7\u30ea\u30b2\u30fc\u30c8\u30c1\u30a7\u30fc\u30f3\u306e\u6700\u9069\u5316<\/strong><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u60aa\u3044\u4f8b\uff1a\u983b\u7e41\u306a\u8cfc\u8aad\/\u89e3\u9664\nAction notification = null;\nnotification += () =&gt; Console.WriteLine(\"1\");\nnotification += () =&gt; Console.WriteLine(\"2\");\nnotification -= () =&gt; Console.WriteLine(\"1\");  \/\/ \u6b63\u3057\u304f\u89e3\u9664\u3055\u308c\u306a\u3044\n\n\/\/ \u826f\u3044\u4f8b\uff1a\u53c2\u7167\u3092\u4fdd\u6301\u3059\u308b\nAction action1 = () =&gt; Console.WriteLine(\"1\"); \nAction action2 = () =&gt; Console.WriteLine(\"2\"); \nnotification += action1;\nnotification += action2;\nnotification -= action1;  \/\/ \u53c2\u7167\u304c\u540c\u4e00\u3067\u3042\u308c\u3070\u524a\u9664\u3067\u304d\u308b<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u826f\u3044\u4f8b\uff1a\u30ad\u30fc\u3067\u7ba1\u7406\npublic class NotificationManager\n{\n    private readonly Dictionary&lt;string, Action&gt; _notifications = new();\n\n    public void AddNotification(string key, Action action) =&gt; _notifications[key] = action;\n    public void RemoveNotification(string key) =&gt; _notifications.Remove(key);\n\n    public void InvokeAll()\n    {\n        var notifications = _notifications.Values.ToList();\n        foreach (var notification in notifications)\n        {\n            notification?.Invoke();\n        }\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nvar manager = new NotificationManager();\nmanager.AddNotification(\"notification1\", () =&gt; Console.WriteLine(\"1\"));\nmanager.AddNotification(\"notification2\", () =&gt; Console.WriteLine(\"2\"));\nmanager.RemoveNotification(\"notification1\"); \/\/ \u30ad\u30fc\u3067\u7ba1\u7406\u3059\u308b\u306e\u3067\u78ba\u5b9f\u306b\u524a\u9664\u3067\u304d\u308b<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u6ce8\u610f\u70b9\u3092\u610f\u8b58\u3059\u308b\u3053\u3068\u3067\u3001Action\u3092\u52b9\u7387\u7684\u304b\u3064\u5b89\u5168\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3055\u3089\u306b\u9ad8\u5ea6\u306a\u4f7f\u7528\u65b9\u6cd5\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-22\">Advanced\uff1a\u3088\u308a\u6df1\u3044Action\u306e\u7406\u89e3\u306e\u305f\u3081\u306b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-23\">Func\u3068Action\u306e\u4f7f\u3044\u5206\u3051<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Func\u3068Action\u306f\u4f3c\u3066\u3044\u308b\u3088\u3046\u3067\u7570\u306a\u308b\u7528\u9014\u3092\u6301\u3064\u30c7\u30ea\u30b2\u30fc\u30c8\u3067\u3059\u3002\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class FuncVsActionExample\n{\n    \/\/ Func\u306e\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\n    public static class Calculator\n    {\n        \/\/ Func\u306f\u623b\u308a\u5024\u304c\u3042\u308b\u5834\u5408\u306b\u4f7f\u7528\n        public static T Process&lt;T&gt;(T input, Func&lt;T, T&gt; processor)\n        {\n            return processor(input);\n        }\n\n        \/\/ Action\u306f\u623b\u308a\u5024\u304c\u4e0d\u8981\u306a\u5834\u5408\u306b\u4f7f\u7528\n        public static void Process&lt;T&gt;(T input, Action&lt;T&gt; processor)\n        {\n            processor(input);\n        }\n    }\n\n    \/\/ \u4f7f\u3044\u5206\u3051\u306e\u5b9f\u8df5\u4f8b\n    public static void DemonstrateFuncVsAction()\n    {\n        \/\/ Func\u306e\u4f7f\u7528\u4f8b\uff1a\u5024\u306e\u5909\u63db\n        Func&lt;int, int&gt; square = x =&gt; x * x;\n        var result = Calculator.Process(5, square);  \/\/ result = 25\n\n        \/\/ Action\u306e\u4f7f\u7528\u4f8b\uff1a\u526f\u4f5c\u7528\u3092\u4f34\u3046\u51e6\u7406\n        Action&lt;int&gt; print = x =&gt; Console.WriteLine($\"\u5024: {x}\");\n        Calculator.Process(result, print);  \/\/ \u51fa\u529b: \"\u5024: 25\"\n\n        \/\/ \u8907\u5408\u7684\u306a\u4f8b\n        var numbers = new[] { 1, 2, 3, 4, 5 };\n\n        \/\/ Func\u3067\u5024\u3092\u5909\u63db\n        Func&lt;int, double&gt; toDouble = x =&gt; x * 1.5;\n        var doubles = numbers.Select(toDouble);\n\n        \/\/ Action\u3067\u7d50\u679c\u3092\u51e6\u7406\n        Action&lt;double&gt; logNumber = x =&gt; Console.WriteLine($\"\u5909\u63db\u7d50\u679c: {x}\");\n        foreach (var number in doubles)\n        {\n            logNumber(number);\n        }\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">\u4f7f\u3044\u5206\u3051\u306e\u57fa\u6e96<\/h4>\n\n\n<div id=\"id-b8cb6cfd-950e-48ca-809d-8e02d60d5870\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30c7\u30ea\u30b2\u30fc\u30c8<\/th><th>\u4f7f\u7528\u30b1\u30fc\u30b9<\/th><th>\u7279\u5fb4<\/th><\/tr><\/thead><tbody><tr><td>Func&lt;T,TResult&gt;<\/td><td>\u5024\u306e\u5909\u63db\u3001\u8a08\u7b97<\/td><td>\u623b\u308a\u5024\u3042\u308a<\/td><\/tr><tr><td>Action&lt;T&gt;<\/td><td>\u72b6\u614b\u5909\u66f4\u3001\u30ed\u30b0\u51fa\u529b<\/td><td>\u623b\u308a\u5024\u306a\u3057<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-25\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u5b89\u5168\u306a\u4f7f\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067Action\u3092\u4f7f\u7528\u3059\u308b\u969b\u306f\u3001\u7279\u5225\u306a\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadSafeActionExample\n{\n    public class ThreadSafeEventManager\n    {\n        private readonly object _lock = new object();\n        private Action&lt;string&gt; _handlers;\n\n        \/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u8cfc\u8aad\u51e6\u7406\n        public void Subscribe(Action&lt;string&gt; handler)\n        {\n            lock (_lock)\n            {\n                _handlers += handler;\n            }\n        }\n\n        \/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u89e3\u9664\u51e6\u7406\n        public void Unsubscribe(Action&lt;string&gt; handler)\n        {\n            lock (_lock)\n            {\n                _handlers -= handler;\n            }\n        }\n\n        \/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u5b9f\u884c\n        public void Raise(string message)\n        {\n            Action&lt;string&gt; handlers;\n            lock (_lock)\n            {\n                handlers = _handlers;\n            }\n\n            \/\/ null\u30c1\u30a7\u30c3\u30af\u3068\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u4f7f\u7528\n            handlers?.Invoke(message);\n        }\n    }\n\n    \/\/ \u4e26\u5217\u51e6\u7406\u3067\u306e\u5b89\u5168\u306a\u5b9f\u88c5\u4f8b\n    public static async Task DemonstrateThreadSafety()\n    {\n        var manager = new ThreadSafeEventManager();\n        var tasks = new List&lt;Task&gt;();\n\n        \/\/ \u8907\u6570\u306e\u30cf\u30f3\u30c9\u30e9\u3092\u767b\u9332\n        for (int i = 0; i &lt; 5; i++)\n        {\n            var handlerId = i;\n            Action&lt;string&gt; handler = msg =&gt; \n                Console.WriteLine($\"Handler {handlerId}: {msg}\");\n\n            manager.Subscribe(handler);\n\n            \/\/ \u4e26\u5217\u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u767a\u884c\n            tasks.Add(Task.Run(() =&gt;\n            {\n                for (int j = 0; j &lt; 3; j++)\n                {\n                    manager.Raise($\"Message {j} from Task {handlerId}\");\n                    Thread.Sleep(100);\n                }\n            }));\n        }\n\n        await Task.WhenAll(tasks);\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-26\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u5b89\u5168\u306a\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u540c\u671f\u5236\u5fa1\u306e\u5b9f\u88c5\nprivate readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1);\n\npublic async Task ProcessAsync(Action&lt;string&gt; callback)\n{\n    await _semaphore.WaitAsync();\n    try\n    {\n        \/\/ \u5b89\u5168\u306a\u51e6\u7406\u5b9f\u884c\n        callback(\"\u51e6\u7406\u5b9f\u884c\u4e2d\");\n    }\n    finally\n    {\n        _semaphore.Release();\n    }\n}\n\n\/\/ \u30a4\u30df\u30e5\u30fc\u30bf\u30d6\u30eb\u306a\u72b6\u614b\u7ba1\u7406\npublic class ImmutableActionContainer\n{\n    private readonly ImmutableList&lt;Action&gt; _actions;\n\n    public ImmutableActionContainer()\n    {\n        _actions = ImmutableList&lt;Action&gt;.Empty;\n    }\n\n    public ImmutableActionContainer AddAction(Action action)\n    {\n        return new ImmutableActionContainer\n        {\n            _actions = _actions.Add(action)\n        };\n    }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u9ad8\u5ea6\u306a\u6982\u5ff5\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5805\u7262\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-27\">\u660e\u65e5\u304b\u3089\u4f7f\u3048\u308bAction\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-28\">\u30b7\u30fc\u30f3\u5225Action\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u96c6<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u307e\u3067\u306e\u5185\u5bb9\u3092\u8e0f\u307e\u3048\u3001\u5b9f\u52d9\u3067\u3088\u304f\u906d\u9047\u3059\u308b\u30b7\u30fc\u30f3\u3054\u3068\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3092\u307e\u3068\u3081\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-29\">1. \u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class EventPatternExample\n{\n    \/\/ \u30a4\u30d9\u30f3\u30c8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\n    public class EventManager\n    {\n        private readonly Dictionary&lt;string, Action&lt;object&gt;&gt; _eventHandlers = new();\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u306e\u767b\u9332\n        public void RegisterHandler(string eventName, Action&lt;object&gt; handler)\n        {\n            if (!_eventHandlers.ContainsKey(eventName))\n            {\n                _eventHandlers[eventName] = handler;\n            }\n            else\n            {\n                _eventHandlers[eventName] += handler;\n            }\n        }\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u306e\u767a\u706b\n        public void RaiseEvent(string eventName, object data)\n        {\n            if (_eventHandlers.ContainsKey(eventName))\n            {\n                _eventHandlers[eventName]?.Invoke(data);\n            }\n        }\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-30\">2. \u975e\u540c\u671f\u51e6\u7406\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class AsyncPatternExample\n{\n    public class AsyncOperation\n    {\n        public async Task ExecuteWithCallbacks(\n            Func&lt;Task&gt; operation,\n            Action onStart = null,\n            Action&lt;Exception&gt; onError = null,\n            Action onComplete = null)\n        {\n            try\n            {\n                onStart?.Invoke();\n                await operation();\n                onComplete?.Invoke();\n            }\n            catch (Exception ex)\n            {\n                onError?.Invoke(ex);\n                throw;\n            }\n        }\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-31\">3. \u30d0\u30c3\u30c1\u51e6\u7406\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class BatchProcessingPattern\n{\n    public class BatchProcessor\n    {\n        private readonly List&lt;Action&gt; _operations = new();\n\n        \/\/ \u51e6\u7406\u306e\u8ffd\u52a0\n        public void AddOperation(Action operation)\n        {\n            _operations.Add(operation);\n        }\n\n        \/\/ \u30d0\u30c3\u30c1\u5b9f\u884c\n        public void ExecuteBatch(Action&lt;string&gt; progressCallback = null)\n        {\n            int total = _operations.Count;\n            for (int i = 0; i &lt; total; i++)\n            {\n                _operations[i]();\n                progressCallback?.Invoke($\"\u9032\u6357: {(i + 1)}\/{total}\");\n            }\n        }\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-32\">\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u5225\u306e\u4f7f\u7528\u6307\u91dd<\/h4>\n\n\n<div id=\"id-292485b1-63c6-4448-b633-d8914fdb19ce\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d1\u30bf\u30fc\u30f3<\/th><th>\u4f7f\u7528\u30b7\u30fc\u30f3<\/th><th>\u6ce8\u610f\u70b9<\/th><th>\u63a8\u5968\u3055\u308c\u308b\u5b9f\u88c5\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/td><td>UI\u64cd\u4f5c\u3001\u72b6\u614b\u5909\u66f4\u901a\u77e5<\/td><td>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62<\/td><td>\u30a4\u30d9\u30f3\u30c8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u306b\u3088\u308b\u4e00\u5143\u7ba1\u7406<\/td><\/tr><tr><td>\u975e\u540c\u671f\u51e6\u7406<\/td><td>API\u547c\u3073\u51fa\u3057\u3001\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c<\/td><td>\u4f8b\u5916\u51e6\u7406\u306e\u5fb9\u5e95<\/td><td>Try-Catch-Finally\u30d1\u30bf\u30fc\u30f3<\/td><\/tr><tr><td>\u30d0\u30c3\u30c1\u51e6\u7406<\/td><td>\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u3001\u4e00\u62ec\u66f4\u65b0<\/td><td>\u9032\u6357\u7ba1\u7406\u306e\u5b9f\u88c5<\/td><td>\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u306b\u3088\u308b\u72b6\u614b\u901a\u77e5<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-33\">\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u307e\u3068\u3081<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u7ba1\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong>\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306f\u5fc5\u305a\u89e3\u9664\u3059\u308b<\/li>\n\n\n\n<li>using\u6587\u3092\u6d3b\u7528\u3059\u308b<\/li>\n\n\n\n<li>\u5faa\u74b0\u53c2\u7167\u3092\u907f\u3051\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong>\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>\u983b\u7e41\u306b\u5b9f\u884c\u3055\u308c\u308b\u51e6\u7406\u306fAction\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u30e9\u30e0\u30c0\u5f0f\u306e\u751f\u6210\u3092\u907f\u3051\u308b<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30b9\u30b3\u30fc\u30d7\u8a2d\u8a08\u3092\u884c\u3046<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30b9\u30ec\u30c3\u30c9\u5b89\u5168\u6027\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong>\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>\u5171\u6709\u30ea\u30bd\u30fc\u30b9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u540c\u671f\u3059\u308b<\/li>\n\n\n\n<li>\u30a4\u30df\u30e5\u30fc\u30bf\u30d6\u30eb\u306a\u8a2d\u8a08\u3092\u691c\u8a0e\u3059\u308b<\/li>\n\n\n\n<li>\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-34\">\u5b9f\u88c5\u6642\u306e\u5224\u65ad\u57fa\u6e96<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u306e\u5224\u65ad\u30d5\u30ed\u30fc\u3092\u53c2\u8003\u306b\u3001\u9069\u5207\u306a\u5b9f\u88c5\u65b9\u6cd5\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u623b\u308a\u5024\u304c\u5fc5\u8981\u304b\uff1f\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>Yes \u2192 Func\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>No \u2192 Action\u3092\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u304b\uff1f\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>Yes \u2192 \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u5b9f\u88c5\u3092\u9078\u629e<\/li>\n\n\n\n<li>No \u2192 \u30b7\u30f3\u30d7\u30eb\u306a\u5b9f\u88c5\u3067\u53ef<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u91cd\u8996\u3055\u308c\u308b\u304b\uff1f\n<ul class=\"wp-block-list is-style-sango-list-simple\">\n<li>Yes \u2192 \u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u3092\u691c\u8a0e<\/li>\n\n\n\n<li>No \u2192 \u53ef\u8aad\u6027\u3092\u512a\u5148<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u30d1\u30bf\u30fc\u30f3\u3068\u6307\u91dd\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-35\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306e\u307e\u3068\u3081<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C#\u306eAction\u30c7\u30ea\u30b2\u30fc\u30c8\u306f\u3001\u73fe\u4ee3\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u304a\u3044\u3066\u975e\u5e38\u306b\u91cd\u8981\u306a\u6a5f\u80fd\u3067\u3059\u3002<br>\u672c\u8a18\u4e8b\u3067\u306f\u3001\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u304b\u3089\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u4f8b\u3001\u3055\u3089\u306b\u306f\u9ad8\u5ea6\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u307e\u3067\u3092\u89e3\u8aac\u3057\u307e\u3057\u305f\u3002<br>Action\u30c7\u30ea\u30b2\u30fc\u30c8\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u304c\u5411\u4e0a\u3057\u3001\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u975e\u540c\u671f\u51e6\u7406\u3084\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3001\u307e\u305f\u6700\u8fd1\u306e\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u306b\u304a\u3044\u3066\u3001Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306f\u5fc5\u9808\u306e\u77e5\u8b58\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<br>\u3053\u3053\u3067\u5b66\u3093\u3060\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3084\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u5805\u7262\u306aC#\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u304c\u5b9f\u73fe\u3067\u304d\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u3053\u306e\u8a18\u4e8b\u306e\u4e3b\u306a\u30dd\u30a4\u30f3\u30c8<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">Action\u30c7\u30ea\u30b2\u30fc\u30c8\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u6271\u3048\u308b\u5f37\u529b\u306a\u6a5f\u80fd<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u3068\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u3001\u3088\u308a\u7c21\u6f54\u3067\u8aad\u307f\u3084\u3059\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u53ef\u80fd<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u975e\u540c\u671f\u51e6\u7406\u3084\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3067\u306e\u6d3b\u7528\u304c\u7279\u306b\u6709\u52b9<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3084\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u95a2\u3059\u308b\u9069\u5207\u306a\u5bfe\u7b56\u304c\u91cd\u8981<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306e\u5b89\u5168\u306a\u5b9f\u88c5\u306b\u306f\u7279\u5225\u306a\u6ce8\u610f\u304c\u5fc5\u8981<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt wp-block-paragraph\">\u5b9f\u8df5\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u53ef\u80fd<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":2876,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,61],"tags":[],"class_list":["post-1504","post","type-post","status-publish","format-standard","has-post-thumbnail","category-csharp","category-csharp-syntax"],"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1504"}],"version-history":[{"count":9,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1504\/revisions"}],"predecessor-version":[{"id":2895,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1504\/revisions\/2895"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/media\/2876"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}