.NET Framework
SQLにあるIN句をC#の文字列に適用し、リストに格納された文字列がある文字列に一致するかどうかを判定する処理をstringに追加したいと思います。 例えば"ABC123"という文字列の中に"AB", "12"という文字が含まれているかという処理は以下のように書けば判定…
C#を使ってプロセス間でデータ共有をする際にオブジェクトを共有する方法です。 プロセス間でオブジェクトを共有したい場合、大抵の場合構造体を定義してメモリに書き込めばすれば良いとネットに書いてあります。ですが、普段クラスで扱っているデータをその…
C#でMemoryMappedFileを使って作成した共有メモリをVC++(あるいはC言語)から利用する方法です。 条件 .NET Framework VC++ Windows限定(WINAPIを利用) .NET Core & Linuxとかでは全然使えないのでご了承ください。 C#側のコード まずはこんな感じでC#上…
Windows上でサービスなどのシステム権限やAdminisratorsなどの高い権限でMemoryMappedFile使って共有メモリを作成し、一般ユーザー権限のような権限レベルの異なるプロセスから共有メモリをOpenExistingしようとする場合に出るであろうエラーの対象方法です…
今回は、リストから要素をN個取得する実装方法の紹介をしたいと思います。 いちど選んだ要素はもう使わない + データを取り出した後に元のリストが変化しないように実装していきます。 確認環境 使い方 RandomUtilクラス 関連記事 確認環境 実装環境は以下の…
2022-01-31 DictionaryのKeyに指定するオブジェクトを工夫することで複数のキーを指定できるようにしたいと思います。ただし、検索する見かける Tuple を使用した複数の値の組み合わせを Dictionary のキーに指定する方法はが見づらい & 値の意味が不明瞭化…
ある日突然プログラムを実行したら「TypeInitializationException」が発生した場合の対処法です。 自分のコード内で発生している場合、以降で説明する状況で発生している可能性があります。 // 発生する例外のメッセージ // .NET Core System.TypeInitializa…
タイトルの通りです。 動かすとこんな感じになります。 youtu.be サムネサイズだと小さすぎて何やってるかわからないので大きくしてみてください(見ないか…orz コードはGitHubに上げてみました。適当なのでクソコードです。 github.com 作成環境 以下で動作…
ネットで少しだけ話題になったネタ系ソートアルゴリズムのスターリンソート(というかフィルター?)をC#とC++で実装してみようと思います。 スターリンソートとは? C#の実装 オリジナルの実装 少し改造してみる C++で実装 オリジナルの実装 少し改造してみ…
自分向けのメモ。耄碌したのか同じことを何回も調べてたのでまとめ。 ファイル操作 存在する or 存在しないファイルに対してメソッドを実行したときの挙動 メソッド名 結果 メッセージ File.Copy sourceFileName : FileNotFoundException ファイル '${0}' が…
.NET Coreに"TextFieldParser"ないじゃん!作ろう!(当然Unityにも無いです。 、、、とはいっても.NET Core3.0で移植されるみたいなのでそれまでのつなぎって感じですかね、、、? つまり、C#でCSVの読み取りを検索するとよく出てくる「TextFieldParser」(…
ある数列の内容を重複せずにランダムに取り出す方法を紹介したいと思います。 「同じ数字は出したくない」という場面で使用できるかと思います。 この実装を使用した場合の使用方法は以下の通りです。 public static void Main(string[] args) { // リストの…
C#(Unity以外/.NET FM, .NET Core)で乱数を生成するには、System.Randum クラスを使用します。 Randomクラスの基本的な使い方 短時間でRandomクラスを複数インスタンス化すると乱数が同値になる 回避案(1) Randomクラスのインスタンスを全体で使いまわす …
ある特定の区間の実行時間を測定したい事があると思います。 その場合、一般的にはStopwatch(System.Diagnostics名前空間内)を使って以下コードを記述していると思います。 // 典型的な時間計測のコード public static void Main(string[] args) { // 千回…
Consoleの出力先をファイルにしたりカスタムクラス用いて任意の出力先を設定する方法です。 確認環境 Consoleの出力先の変更方法 Consoleの出力先をファイルに変更する 変更した後に出力先を元に戻す カスタム出力先を指定する Consoleとトレースに同時に出…
C#でGUID(128bit長の一意の識別子)を生成するには、標準ライブラリ内のGuidクラス(System名前空間内)を使用します。 using System; public static void Main(string[] args) { Guid id = Guid.NewGuid(); Console.WriteLine(id.ToString()); // c1b2e279…
2020-09-01 タイトルの通り、C#で自分で作成したEnum型に属性を付与し、その属性を取得およびその属性の値の取得をしたいと思います。 属性をオブジェクトとして取得して内容を取り出す流れになります。 対象の型の準備 値を取得する拡張メソッドの作成 拡張…
動画と写真を手書き風に加工する「Olli」というアプリがあるのですが、結構きれいに手書き風のフィルタがかけられると話題になっていました。 ねとらぼさんのOlli紹介記事 そこで、C#を使って手書き風のフィルタを再現してみようと思います。 申し訳ないです…
C# では ArrayList と Hashtable は(基本的に)非推奨です。 Java は動的に要素を追加したりするのに(割と古い話ですが)ArrayList<E> を使用しますが C# で同等の機能は List<T> クラスであり ArrayList クラスではありません。同様に Java でキーと値の組み合</t></e>…
結論から言うと、foreachの中でリストの要素を削除するのは無理です。諦めましょう。*1 代替手段 (1) for文を逆順で回す (2) RemoveAllメソッドで削除 (3) Whereで抜粋する (4) 自作する foreachの右辺でToArray() + Removeはやめましょう 削除しようとする…
C#のOpenCVライブラリのOpenCVSharp3でMatに高速でデータ読み書きする方法の紹介です。 高速にデータの読み書きをするためにMat.Data : IntPtr を利用してデータの読み書きを行いたいと思います。 使用しているライブラリは、OpenCvSharp3(ver. 3.4.1.20180…
C#の組み込み型で最も大きい値を扱える型は、double型です。最大値は、1.7x 10の308乗とありますが、浮動小数点の精度の関係で実際扱える有効桁数が17桁程度なので極大の数値に対し有効桁外の演算を行うと計算結果に反映されない…みたいな状態になります。 …
2018年6月2日現在、VisualStudioの.NETのC#プロジェクトでC#7.3などの最新のC#規格を利用可能にする方法を紹介したいと思います。(何故か、C#7.0までの構文しか使えず調べるのに手間取ってしまったのでやり方のメモとなります。) C#のバージョンの選択方法…
FizzBuzzの問題の解法は出尽くしていると思いますが、自分でコードを書いた事が無かったためチャレンジしてみようと思います。 作成環境はVS2017(15.7.2) + .NET4.7.2 (≒C#7.2)です。 ルール確認と模範解答 まずはルールの確認です。概ね以下の通りです。 最…
2022-09-22 C#のDictionaryのTKeyにオブジェクトを指定した場合、参照アドレスが同じであれば同じオブジェクトと判断されます。ざっくりいうと何もしないとクラス同士の比較 (a == b) が true だと同じキーと認識されることになります。 で、今回は、自作の…
WPFで例外が処理されずに最上位のベントハンドラから例外がthrowされた場合、アプリがクラッシュします。 アプリがクラッシュすると、以下のような、OSのアプリのクラッシュレポートダイアログが表示され、以上が発生したことがユーザーに通知されます。 こ…
C/C++にあるunionをC#で使用する方法は、ネットにいくつか解説しているサイトがあります。しかし、構造体がunionになったものは例があまりないため紹介したいと思います。 基本的に、StructLayout = "LayoutKind.Explicit"(明示的にレイアウトを指定する)…
タイトルの通り変換をするための操作の紹介をしたいと思います。 ネットワークに TCP/IP でデータを流すときのネットワークバイトオーダーは「ビッグエンディアン」とする事が多いです。いつも使ってる PC上(のC#の内部表現)では「リトルエンディアン」形…
WFPのボタンコントロールにホバーエフェクトをかけたいと思います。 マウスオーバーするとボタンの色が変わります。完成すると以下のようなイメージになります。GIFにすると画質悪い… XAML メイン画面のXAMLは以下の通りです。
2020-06-12 リングバッファーは、FIFO(ファーストIN, ファーストOUT)つまり先に入れたものが、取り出すときは先に出ていく、Queueと同じような構造を持っています。 リングバッファーって自分のイメージでは、有限のサイズのリングの大きさ(つまり入れら…