| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「C Sharp」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
53行目: 53行目:
 
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/xmldoc/recommended-tags
 
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/xmldoc/recommended-tags
 
*複数の要素に使用される 一般的なタグ - これらのタグは、API 用の最小セットです
 
*複数の要素に使用される 一般的なタグ - これらのタグは、API 用の最小セットです
**<summary>: この要素の値は、Visual Studio の IntelliSense に表示されます。
+
**summary: この要素の値は、Visual Studio の IntelliSense に表示されます。
**<remarks> **
+
**remarks: **
 
*メンバーに使用されるタグ - これらのタグは、メソッドおよびプロパティを文書化する場合に使用されます。
 
*メンバーに使用されるタグ - これらのタグは、メソッドおよびプロパティを文書化する場合に使用されます。
**<returns>: この要素の値は、Visual Studio の IntelliSense に表示されます。
+
**returns: この要素の値は、Visual Studio の IntelliSense に表示されます。
**<param> *: この要素の値は、Visual Studio の IntelliSense に表示されます。
+
**param: *: この要素の値は、Visual Studio の IntelliSense に表示されます。
**<paramref>
+
**paramref:
**<exception> *
+
**exception: *
**<value>: この要素の値は、Visual Studio の IntelliSense に表示されます。
+
**value:: この要素の値は、Visual Studio の IntelliSense に表示されます。
 
*ドキュメント出力の書式設定 - これらのタグを使用して、ドキュメントを生成するツールに書式設定を指示します。
 
*ドキュメント出力の書式設定 - これらのタグを使用して、ドキュメントを生成するツールに書式設定を指示します。
**<para>
+
**para:
**<list>
+
**list:
**<c>
+
**c:
**<code>
+
**code:
**<example> **
+
**example: **
 
*ドキュメント テキストの再使用 - これらのタグを使用すると、ツールで XML コメントを再使用しやすくなります。
 
*ドキュメント テキストの再使用 - これらのタグを使用すると、ツールで XML コメントを再使用しやすくなります。
**<inheritdoc> **
+
**inheritdoc: **
**<include> *
+
**include: *
 
*リンクと参照の生成 - これらのタグを使用して、他のドキュメントへのリンクを生成します。
 
*リンクと参照の生成 - これらのタグを使用して、他のドキュメントへのリンクを生成します。
**<see> *
+
**see: *
**<seealso> *
+
**seealso: *
**<cref>
+
**cref:
**<href>
+
**href:
 
*ジェネリック型およびメソッド用のタグ - これらのタグは、ジェネリック型およびメソッドでのみ使用されます。
 
*ジェネリック型およびメソッド用のタグ - これらのタグは、ジェネリック型およびメソッドでのみ使用されます。
 
**<typeparam> *: この要素の値は、Visual Studio の IntelliSense に表示されます。
 
**<typeparam> *: この要素の値は、Visual Studio の IntelliSense に表示されます。

2022年2月16日 (水) 03:40時点における版

| Visual Studio | VC++ | Visual Studio Code |

C#

言語まとめ C#

概要

Win32 API DLL の利用

Windows Forms

C# Windows Forms Tips

C# 設定情報を保存する

データベース

SQL Server Compact

制御

書式

Sleep

画面・コントロール

グラフ

タスクトレイ

リソース

文字列

デバッグ

Visual Studio

Visual Studio 2010 Express C#

コーディング規約

Subversion プラグイン

Tips

Docコメント

https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/xmldoc/recommended-tags

  • 複数の要素に使用される 一般的なタグ - これらのタグは、API 用の最小セットです
    • summary: この要素の値は、Visual Studio の IntelliSense に表示されます。
    • remarks: **
  • メンバーに使用されるタグ - これらのタグは、メソッドおよびプロパティを文書化する場合に使用されます。
    • returns: この要素の値は、Visual Studio の IntelliSense に表示されます。
    • param: *: この要素の値は、Visual Studio の IntelliSense に表示されます。
    • paramref:
    • exception: *
    • value:: この要素の値は、Visual Studio の IntelliSense に表示されます。
  • ドキュメント出力の書式設定 - これらのタグを使用して、ドキュメントを生成するツールに書式設定を指示します。
    • para:
    • list:
    • c:
    • code:
    • example: **
  • ドキュメント テキストの再使用 - これらのタグを使用すると、ツールで XML コメントを再使用しやすくなります。
    • inheritdoc: **
    • include: *
  • リンクと参照の生成 - これらのタグを使用して、他のドキュメントへのリンクを生成します。
    • see: *
    • seealso: *
    • cref:
    • href:
  • ジェネリック型およびメソッド用のタグ - これらのタグは、ジェネリック型およびメソッドでのみ使用されます。
    • <typeparam> *: この要素の値は、Visual Studio の IntelliSense に表示されます。
    • <typeparamref>

UIスレッド

C Sharp 非同期処理からUIスレッドにアクセスし画面を更新する

スクレイピング

AngleSharp

using AngleSharp.Html.Parser;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;

namespace Hoge
{
    public class Crawler
    {
        private static HttpClient _client = new HttpClient();
        public async void Fetch(string url)
        {
            using(var stream = await _client.GetStreamAsync(url))
            {
                var parser = new HtmlParser();
                var doc = parser.ParseDocument(stream);

                var ankers = doc.All.Where(m => m.LocalName == "a");
                foreach(var anker in ankers)
                {
                    Debug.WriteLine(anker.TextContent);
                }

            }

        }

    }
}

文字列配列を結合してCSVを作成

string[] row = 文字列配列
return string.Join(GetDelimiters(), row.Select(f => $"\"{f}\"").ToArray());

文字コード変換

正規表現による置換

var output = System.Text.RegularExpressions.Regex.Replace(input, @"^[ ]", "");

string を stream に変換

 return new MemoryStream(Encoding.UTF8.GetBytes(value ?? ""));

ディレクトリを再帰的に表示

class Program
{
    static void Main(string[] args)
    {
        var me = new Program();
        me.Parse(args[0], 0);
    }

    private void Parse(string path, int depth)
    {
        var indent = new string(' ', depth * 2);
        foreach (var entry in Directory.EnumerateFileSystemEntries(path))
        {
            var attr = File.GetAttributes(entry);
            if (attr.HasFlag(FileAttributes.Directory))
            {
                Console.WriteLine($"{indent}{Path.GetDirectoryName(entry)}\\");
                this.Parse(entry, depth + 1);
            }
            Console.WriteLine($"{indent}{Path.GetFileName(entry)}");
        }
    }
}

SHIFT-JIS 文字列から、SO SI を除去

var encShiftJis = Encoding.GetEncoding("shift_jis");
int lino = 1;
using (var reader = new StreamReader(path, encShiftJis))
{
    string line = null;
    while ((line = reader.ReadLine())!=null)
    {
        byte[] bytes = encShiftJis.GetBytes(line);
        for(int i=0;i<bytes.Length; i++)
        {
            // bytes = bytes.Where(b => (b != 0x20 /*space*/ && b != 0x61 /*'a'*/)).ToArray();
            bytes = bytes.Where(b => (b != 0x0E /*SO*/ || b != 0x0F /*SI*/)).ToArray();
        }
        line = encShiftJis.GetString(bytes);
        Console.WriteLine($"{indent}{lino++:D4}:{line}");
    }
}