starzware

ITスキル

C#

.NET APIブラウザー NuGet NPOI dotnetコマンド
TIPS
予約語
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach goto
if implicit in int interface
internal is lock long namespace
new null object operator out
override params private protected public
readonly ref return sbyte sealed
short sizeof stackalloc static string
struct swtich this throw true
try typeof uint ulong unchecked
unsafe ushort using virtual void
volatile while
[システム]戻り値を指定して終了

//戻り値に0を設定して終了する
System.Environment.Exit(0);
[システム]コンソールに出力

//コンソール出力
Console.WriteLine("コンソールにメッセージを出力");
[システム]ソースブロック

#region ブロック
ソースブロック
#endregion
[ファイル]テキストファイル読み込み

using(var input = new TextReader(ファイル)){
  string line = string.Empty;
  while((line = input.ReadLine()) != null){
    //1行ごとの処理
  }
}//using
[ファイル]テキストファイル書き込み

using(var output = new TextWriter(ファイル, false)){
  output.Write("内容");
}//using
[ファイル](簡易)テキストファイルをすべて読み込む

string text = File.ReadAllText(@"C:¥Users¥xxxxx¥textfile.txt");
[ファイル](簡易)テキストファイルを配列にすべて読み込む

string[] lines = File.ReadAllLines(@"C:¥Users¥xxxxx¥textfile.txt");
[文字列]いろいろ

//数値を文字列に変換
int i = 10;
string s = i.ToString();
//指定文字で分割して配列にする
string s = "a,b,c";
string[] arr = s.Split(",");
//配列を結合
char[] arr = {'a','b','c'};
string s = string.Join("/", arr); //"a/b/c"
//空白除去
string s = "¥tabcdef¥r¥n";
string s1 = s.Trim(); //"abcdef"
string s2 = s.TrimStart(); //"abcdef¥r¥n"
string s3 = s.TrimEnd(); //"¥tabcdef"
string s4 = s.Trim('¥t','¥r','¥n'); //"abcdef"
string s5 = s.TrimStart('¥t'); //"abcdef¥r¥n"
string s6 = s.TrimEnd('¥r','¥n'); //"¥tabcdef"
//正規表現を使った文字の削除
using System.Text.RegularExpressions;
string s = "a1b2c3d4e5f";
string pattern = "[0-9]";
string s1 = Regex.Replace(s, pattern, ""); //"abcdef"
//一部を取得 開始,文字数
string s = "1234567";
string s1 = s.Substring(1,2); //"12"
//ゼロパディング
string s = "1234";
string s1 = s.ToString("D7"); // "0001234"
//指定文字を指定数繰り返して返す
char c = 'a';
string s1 = new string(c, 5); // "aaaaa"
//判定
string s = "abcde";
if(s.Contains("bcd")) //指定文字を含む場合
if(s.StartsWith("abc")) //指定文字で始まる場合
if(s.EndsWith("de")) //指定文字で終わる場合
if(s.Equals("abcde")) //一致している場合
if(string.IsNullOrEmpty(s)) //nullか空文字の場合
[ファイル]クラス
クラス 説明
BinaryReader バイナリファイルとして読み込み
BinaryWriter バイナリファイルとして書き込み
BufferedStream 他のStream(I/O)に対してバッファリングをする
Directory ディレクトリに関して静的メソッドを提供
DirectoryInfo ディレクトリ操作に関してインスタンスメソッドを提供
DirectoryNotFoundExceion ディレクトリなし例外
DriveInfo ドライブに関する情報を提供
DriveNotFoundExeption 使用できない/使用不可などによる例外
EndOfStreamException Streamの終端を超えての読み取りによる例外
EnumerationOptions ファイルとディレクトリのオプション(列挙型)
ErrorEventArgs Errorイベントの情報を提供
File 1つのファイルの操作のための静的メソッドを提供
FiileInfo ファイルの操作のためのインスタンスメソッドを提供
FileLoadExeption マネージドアセンブリが存在するが読み込みできない場合の例外
FileNotFoundException ファイルが存在しない場合の例外
FileStream ファイル用のStream(I/O)
FileStreamOptions FileStreamのオプション指定の列挙型
FileSystemAclExtensions アクセス制御リスト(ACL)のためのWindows固有の静的拡張メソッドを提供
FilieSystemEventArgs ディレクトリイベントにデータを提供
FileSystemInfo FileInfoとDirectoryInfoの基本クラス
FileSystemWatcher ファイルシステムの変更通知を受け取りイベント発生を待つ
InternalBufferOverflowException 内部バッファがオーバーフローした場合の例外
InvalidDataException データストリームが無効な形式である場合の例外
IOException IOエラーが発生した場合の例外
MemoryStream メモリを使用するStreamを作成
Path ファイルまたはDirectoryのパス情報Stringインスタンスで操作する
PathTooLongException パス名または完全修飾ファイル名が扱える文字数を超えた場合の例外
RandomAccess
RenamedEventArgs Renamedイベントのデータを提供
Stream (抽象クラス)
StreamReader 特定エンコーディングのTextReaderの実装(TextReaderが親クラス)
StreamWriter 特定エンコーディングのTextWriterの実装(TextWriterが親クラス)
StringReader 文字列から読み取るTextReaderの実装
StringWriter 文字列に書き込むTextWriterの実装
TextReader テキストファイル読み込みのためのStreamの実装
TextWriter テキストファイル書き込みのためのStreamの実装
UnmanagedMemoryAccessor メモリのアンマネージドブロックにマネージドコードからランダムアクセスできるようにする
UnmanagedMemoryStream マネージドコードからメモリのあンマネージドブロックにアクセスできるようにする
[ファイル/ディレクトリ]操作系

//フォルダ作成
Diretory.CreateDirectory(dir);
//フォルダ存在チェック
if(Diretory.Exists(dir)){
  //フォルダが存在する場合
}
//フォルダを取得
string dir = Path.GetDirectoryName(filefullpath);
//指定フォルダの配下のフォルダ群を取得
foreach(var thisFolder in Directory.GetDirectories(dir)){
  //配下フォルダごとの処理
}
//指定フォルダの配下のファイル群を取得
foreach(var thisFile in Directory.GetFiles(dir)){
  //配下ファイルごとの処理
}
//拡張子を取得
var ext = Path.GetExtension(thisFile);
//ファイル名を取得
var filename = Path.GetFileName(thisFile);
//プラットフォームを意識したパスの構築
var filepath = Path.Combine("フォルダ1","フォルダ2", "ファイル");
dotnetコマンド
説明 コマンド
テンプレートの一覧を表示 dotnet new -h
ソリューションファイルの作成 dotnet new sln
(ディレクトリ名と同じファイル名になる)
ソリューションファイルにプロジェクトを追加 dotnet sln add [プロジェクトファイル]
[コンソール]アプリプロジェクトを作成 dotnet new console
(ディレクトリ名と同じファイル名になる)
[テスト(MSTest)]プロジェクトを作成 dotnet new mstest
[ASP.NET Core Web(MVC)]アプリプロジェクトを作成 dotnet new mvc
プロジェクト参照を追加(主にテストプロジェクトにテスト対象プロジェクトを追加する) dotnet add reference [プロジェクトファイル]
ビルド dotnet build
クリーン dotnet clean
実行 dotnet run
テスト(主にテストプロジェクト) dotnet test
リリース(Windows[64bit]) dotnet publish -c Release --self-contained true -r win-x64
リリース(Mac[64bit]) dotnet publish -c Release --self-contained true -r osx-x64
リリース(Linux[64bit]) dotnet publish -c Release --self-contained true -r linux-x64
C#開発のためのVSCodeのプラグイン
プラグイン 説明
C# for Visual Stdio Code インテリセンスなどの一通りの機能を提供
VS Sharper for C# namespaceやclass、interfaceなどの情報を自動で入力してくれる
Auto-Using for C# usingを自動で解決してくれる
.NET Core Test Explorer テストプロジェクトの実行・管理をする
NuGet Package Manager NuGetパッケージの検索・インストールができるようになる
C# FixFormat ソースコードにインデントやスペースを入れる(Shfit + Alt + F)
C#開発のためのVSCodeのショートカットキー
F5 実行
F10 ステップオーバー
F11 ステップイン
Shift+F11 ステップアウト
F12 定義へ移動
Alt+F12 定義を参照
Ctrl+Shift+U 標準出力パネルの表示/非表示
Ctrl+Shift+E エクスプローラビューの表示
Ctrl+Shift+D デバッグビューの表示
Ctrl+Shfit+¥ 対応する括弧にジャンプ
Ctrl+Shfit+[ コードフォルディング(折りたたみ)
Ctrl+/ コメントアウト/アンコメント
[関数]GetTimestampString

string GetTimestampString(){
  return DateTime.Now.ToString("yyyyMMddHHmmss");
}
ファイル操作

// ファイルコピー
System.IO.File.Copy(@"C:¥test¥a.txt", @"C:¥test¥b.txt");
// ファイル移動
System.IO.File.Move(@"C:¥test¥a.txt", @"C:¥test¥b.txt");
// ファイル削除
System.IO.File.Delete(@"C:¥test¥c.txt");
// ファイル一覧
System.IO.Directories.GetFiles(@"C:¥test¥");
// ディレクトリ一覧
System.IO.Directories.GetDirectories(@"C:¥test¥");
[配列]結合

int[] array1 = { 1, 2, 3 };
int[] array2 = { 2, 4, 6 };
// LINQで連結する
int[] concatenatedArray = array1.Concat(array2).ToArray();