なんだかGoodVibes

日々の勉強メモです。

C#

【C#】処理を待機する(Thread.Sleep、Task.Delay)

C#

こんにちは。 本日はC#メモです。 Thread.Sleep()を使用した処理の待機 待機をキャンセルする Task.Delay()を使用した処理の待機 待機をキャンセルする Thread.Sleep()を使用した処理の待機 Thread.Sleep()は引数に指定した時間分処理を待機します。 Thread.…

【C#】リフレクションを使用してプロパティ名で値を設定・取得をする

C#

こんにちは。 本日はC#メモです。 概要 プロパティの設定 プロパティを取得する 概要 DBやファイルから値を取得し、 特定のプロパティに設定をする際、 数が少ない場合はいいですが 数が多くなると少し厄介になります(ミスも増えるし。。。) リフレクション…

【C#】非同期処理のキャンセル(CancellationToken)

C#

こんにちは。 本日はC#メモです。 概要 サンプルコード 概要 非同期処理をキャンセルする方法に CancellationTokenというものがあります。 本記事では、CancellationTokenを使用して 非同期処理をキャンセルする方法を記載します。 サンプルコード 以下のコ…

【C#】Taskを使用した非同期処理

C#

こんにちは。 本日はTaskを使用した非同期処理についてのメモです。 概要 スレッドの開始と待機 スレッドの開始と待機(Task.Runを使用) 複数のタスクの待機 複数のタスクのうちどれか一つが終了するのを待機する すべてのタスクが終了するのを待機する async…

【C#】Threadを使用した非同期処理

C#

こんにちは。 本日はThreadを使用した非同期処理についてのメモです。 概要 スレッドの開始と待機(Start、Join) バックグラウンドとフォアグラウンド スレッドに引数を渡す スレッドの中断(Abort → 非推奨) スレッドの中断(Interrupt) 概要 非同期処理を実現…

【C#】Taskを使ってファイルの処理を並列で行う

C#

こんにちは。 本日はC#メモです。 概要 大量のファイル対して同様の処理を行いたい。 その処理には時間のかかる処理AとBが存在するとする。 非同期で処理をして効率よく処理が行えるようにする。 サンプルコード メイン処理 メイン処理では ファイルを取得し…

【C#】NUnit Assertクラスのメソッドメモ

こんにちは。 本日はNUnitで使用するAssertクラスのメソッドについてのメモです。 今回の記事では、 よく使うメソッドについて記載します。 引数が等しいかどうか AreEqual AreNotEqual 引数が同じオブジェクトを参照しているか AreSame AreNotSame 引数に指…

【C#】dotnet testコマンドで特定のテストを実行する

こんにちは。 本日はdotnetコマンドメモです。 概要 特定のテストを実行する方法 クラスを指定 メソッドを指定 概要 以前のNUnitでのユニットテストについて記事を上げました。 その時使用したdotnet testコマンドで、 特定のテストを実行する方法について調…

【C#】NUnitでユニットテストを自動化する

こんにちは。 本日はC#のNUnitについてのメモです。 概要 テストプロジェクトの追加と基本的な記載方法 1. プロジェクトの追加 2. ソリューションへの追加 3. 参照設定 4. テストパターンの記載 5. テストの実行 概要 ユニットテスト(=単体テスト)をNUnitを…

【C#】CountdownEventメモ

C#

本日はCountdownEventについてのメモです。 概要 サンプルコード 概要 以前、AutoResetEventについての記事を書きましたが、 CountdownEventもAutoResetEventと同様で GOを出すまで待機してくれるクラスです。 違いは、AutoResetEventは1回の待機でしたが、 …

【C#】AutoResetEventメモ

C#

あけましておめでとうございます。 2023年もよろしくおねがいします! 本日はAutoResetEventについてのメモです。 概要 サンプルコード 概要 AutoResetEventは、スレッド処理にて利用すると非常に便利です。 AutoResetEventは、 待機中のスレッドを解放した…

【C#】UDPの送受信(バインド)

C#

こんにちは。 本日はUDPの通信処理のメモです。 送信時にバインドするようにしてみます。 準備 受信側 送信側 参考 準備 受信側のipは、192.168.100.10、 送信側のipは、以下の2つをセットします。 192.168.100.20 192.168.100.30 受信側 public class UdpRe…

【C#】エンディアン変換について

C#

こんにちは。 本日はエンディアン変換についてメモです。 概要 シフト演算でエンディアン変換する BitConverterを使ってエンディアン変換する まとめ 概要 エンディアンは、2バイトの並びの方式のことです。 ビックエンディアン・リトルエンディアンが存在し…

【C#】ボタンのクリックイベントを生成する

C#

今回はWindows Formsにてほかのボタンの クリックイベントを生成する方法をメモ。 概要 サンプルソース まとめ 概要 配置するのは以下。 テキストボックス ボタン2個 button1をクリックするとテキストボックスに時刻を表示します。 button2をクリックすると…

【C#】Path.CombineとEnvironment.GetFolderPath

C#

こんにちは。 本日はパスを指定する際の注意メモです。 Path.Combine Environment.GetFolderPath まとめ Path.Combine パスを指定するとき、固定のパスとかだと直接指定しちゃったりますね。 "C:¥test"みたいな感じで。 でも、これはあまりよくない方法です…

C#・Node・VBAでビット演算

以前、C#でのビット演算を紹介したのですが NodeやVBAでもやってみましたので 比較してみました。 C#でのビット演算は以下の記事でもう少し詳しく紹介しています。 nandakagoodvibes.hatenablog.com 論理積 論理和 排他的論理和 数値を2進数で取得する まと…

【C#】BitArrayメモ

C#

こんにちは。 本日は、BitArrayのメモです。 オン→true、オフ→false のブール型の配列となっています。 概要 初期化 指定した値で作成 左シフト[LeftShift] 右シフト[RightShift] 論理AND演算[And] 論理OR演算子[Or] 論理排他的OR演算子[Xor] 指定したインデ…

【C#】ビット演算メモ

C#

こんにちは。 本日はビット演算のメモです。 左シフト[<<] 右シフト[>>] 論理AND演算[&] 論理OR演算子[|] 論理排他的OR演算子[^] まとめ 左シフト[<<] 指定されたビット数分左にシフトします。 uint before = 0b_1111_1111; var after = before << 3; Consol…

【C#】.NET Coreのバージョンアップ

こんにちは。 以前、初めて既存のソリューリョンの .NET Coreのバージョンアップをしてみたのでメモ。 実際やってみるとめっちゃ簡単! ソリューションに含まれているプロジェクトの 「.csproj 」ファイルの「TargetFramework」を 対象のバージョンに変更す…

HashSet

C#

HashSetのメモです。 使用するHashSet UnionWith(和集合) ExceptWith(減算) IntersectWith(積集合) SymmetricExceptWith(対称差) 使用するHashSet 以下のハッシュセットを使用します。 var h1 = new HashSet<int> { 10, 20, 30 }; var h2 = new HashSet<int> { 20, 30,</int></int>…

アセンブリを取得する

C#

アセンブリを取得して色々するサンプルメモです。 そもそも、アセンブリとはざっくり言うと... ・実行ファイル(exe) ・ダイナミックリンクライブラリ(dll) のことを示します。 以下のリンクに詳細が書いてあります。 docs.microsoft.com では、サンプル…

他アプリを実行する方法

C#

よく使うのでメモです。 var path = "オープンしたいアプリのパス"; Process.Start("EXPLORER.EXE", path); 上記サンプルは指定したパスのエクスプローラを オープンする事ができます。

引数が多い時にパラメータクラスで渡す

C#

引数がどんどん増えていってしまうことが多々あります。 一箇所のみであるのならば少しの手間で修正できますが いくつかの場所の修正が必要な場合、ミスのもとになります。 今日は、引数が多くなってしまった、もしくは引数の変更が有り得そうな場合の手法を…

プロパティについて調べてみました。

C#

プロパティとは、privateなフィールドの値を 読み書きするためのメンバーです。 プロパティはget,setのブロックがついており これらはアクセサと呼ばれる特別なメソッドです。 サンプルを書きながら説明していきます。 public class MainClass { public void…

コンストラクタって?

C#

コンストラクタって何なのでしょうか? C# 入門したときに、自分の中に全く消化できないものでした。 勉強を始めて、自分の中に落とし込めた部分をメモしたいと思います。 コンストラクタは ・new したときに呼び出されるメソッド ・クラスと同じ名前 ・戻り…

Listへの追加

C#

リストへの要素追加、コレクション追加のサンプルをメモ。 リストへの要素追加は Addメソッドを使います。 public void AddSample() { var list = new List<string>(); list.Add("みかん"); list.Add("いちご"); list.Add("すいか"); foreach (var item in list) { C</string>…

UnixTimeを変換

C#

UnixTimeを変換したい!ってなることがあるので サンプルを作りました。 Console.WriteLine("変換したいUnixTimeを入力してください。"); var input = Console.ReadLine(); var unixTime = 0; if (int.TryParse(input, out unixTime)) { // Unix時間をDateTi…

日付の名前でディレクトリを作成

C#

日付の名前でディレクトリを作成し エラーの場合、テキストに出力するサンプルです。 using System; using System.IO; using System.Diagnostics; namespace FileSample { class Program { static void Main(string[] args) { var dateTime = DateTime.Now.T…

Tuple を使ってみる。

C#

名前のない型を作ることができるTuple。 今まで使ったことがなかったので、サンプル作ってみました。 var tuple = ("データ1", 1000); Console.WriteLine($"データ:{tuple.Item1} 種別:{tuple.Item2}"); string とint をセットしています。 Tuple にセット…

アクセス修飾子

C#

アクセス修飾子は、アクセス可能な範囲を指定するものです。 今回は4つのアクセス修飾子について記載します。 アクセス修飾子 説明 public どこからでもアクセス可能 protected 同一クラスか派生クラスからアクセス可能 internal 同一アセンブリ内でアクセス…