2020-01-01から1年間の記事一覧

【C#】Listと配列でforとforeachのアクセス速度比較

2022-07-31 結論としては以下の通り。 配列は for と foreach の速度はほぼ同じ List<T> は for のほうが foreach より10%以上早い 配列に対する操作は List に対する操作より 50%以上早い List<T> クラスの ForEach メソッドはメリットが無いので使わないほうが</t></t>…

C#で再帰を使わずにフォルダ内のファイルを列挙する

再帰処理を使わないでC#でフォルダ階層をたどってファイルをリストアップする方法の紹介です。 最後に記載がありますが実際はフォルダを巡回する必要ありません。C#はAPIをひとつつ呼ぶだけで実装できます。 再帰処理を使ってファイルを列挙する 再帰処理を…

【C#】StartsWithを複数の文字列対応する

string クラスに StartsWith という特定の文字列で始まるかどうかをチェックできるメソッドがあります。 使い方はこんな感じです。 string str = "aaaabbbbcccc"; if(str.StartsWith("aaa")) // str が "aaa" から始まるかどうかチェックする { // 一致する …

【C#】文字列を分割するSplitメソッドをより使いやすいよう改善する

C# である文字列を特定の文字で複数の文字列に分割する Split メソッドの利用性を向上するための拡張メソッドの紹介です。 はじめに Split メソッドっは大変便利ですがセパレーターに複数の文字を指定する場合や、文字列をセパレーターとして使う場合以下の…

【C#】プロパティにつけた属性を取得する方法

C#でプロパティにつけた属性を取得する方法の紹介です。自作のクラスなどでプロパティに付与したカスタム属性を取得してその値を利用する方法です。 確認環境 C# 8.0 .NET Core 3.1 VisualStudio 2019 Windows10 コンソールプログラムで動作を確認 実装コー…

【C#】文字列の先頭だけを大文字 or 小文字に変換する

この記事には新しいバージョンがあります。 takap-tech.com 【以下は古い版の記事の内容です】 ある文字列の中の1文字だけを大文字・小文字に切り替える方法の紹介です。 C#の標準ライブラリにはこういった操作が存在しないので自分で実装することになります…

Yの位置が下にある画像は手前に表示する(Z座標制御編)

前回、2Dゲームの画像表示時に Transparency Sort Mode を Custom Axis にすることで Y が下にあるオブジェクトほど手前に表示する + 補助コンポーネントを作成する記事を書きましたが、今回は Y 位置が下にある画像ほど手前に表示する処理を Z 位置を使って…

Transparency Sort ModeがCustom Axisの時に前後が入れ替わる位置を表示する

初めに 2Dのゲームで画面を立体的に見せるためにY軸が下にあるものほど手前にオブジェクト描画するという技法があります。 これ「Isometric Sorting」と呼ぶのかわからないですが(自分の中ではY軸ソートと呼んでいました)が、Unityでは Transparency Sort …

StylusでQiitaの見た目をシンプルにする

これが、、、 適用前 こうなります ↓ ↓ ↓ 適用後 (どうせGoogle検索からしかサイトを見ないので)記事ページを対象に以下の変更を行います。 ヘッダーの削除 フッターの削除 ソーシャル要素の削除 記事末尾の余計な要素を削除 はじめに QiitaのページをChor…

C#のバージョンと.NET Framework, .NET Coreの対応表

備忘録的な意味で書き残しておきます。 (1) C#言語バージョンと各ランタイムの関係性 (2) .NET Standardとランラムの関係性 備考 参考資料 (1) C#言語バージョンと各ランタイムの関係性 .NET Framwework と .NET Core がどのC#の言語バージョンにあたるのか…

【C#】2つの変数の中身を入れ替える方法4選

2022-07-30 2つの変数の中身を入れ替える方法を4種類紹介したいと思います。 (1) 昔ながらの方法 (2) Tupleを使う (3) 外部のメソッドで入れ替える (4) 拡張メソッドで入れ替える(値型のみ)方法 ほかにあるかな? 関連記事 (1) 昔ながらの方法 教科書に書い…

Youtube VancedはBIGLOBEのエンタメフリーに対応している

Youtube で流れる動画の広告を削除できる Youtube 視聴アプリの Youtube Vanced は BIGLOBE のエンタメフリーに対応していることを確認してみました。 確認条件 通勤の行きと帰りで毎日10分程度の動画を1週間8本ずつ視聴 動画の画質は240pに固定して視聴する…

【VisualStudio】定義に折りたたむ時にコメントだけを折りたたまないようにする

2020-09-08 VisualStudio で C# のコードを開いたとき「アウトラインを定義に折りたたむ」を実行するとXMLコメントまで折りたたまれてしまいますがコメントは折りたたまないでほしいなぁという人向けの設定方法です。エディタ上でコンテキストメニューを表示…

StylusでTrelloのカードの説明欄の幅を広げる

PC 上で Trello を編集するときもう少し詳細の説明欄の横幅が広ければいいのに、と思ったので、Stylus という Chorome の拡張機能を使って強制的に見た目を変更してみました。以下の CSS を Stylus で設定します。 .window { width: 840px; } .window-main-c…

【C#】Span<T>構造体を使ったバイナリファイルの読み書き

.NET Core 時代になって Span 構造体が追加されて、FileStream クラスとか BitConverter が標準で対応し始めたのでバイナリデータの効率的な入出力が簡単になってるようなので実験。 条件 バイナリデータで float 型を5件書き込んだファイルを用意する その…

VC++でどのWindowsSDKを選択するべきか

Windows 10 環境で VC++ の コンパイルに使用する Windows SDK バージョン にどれを指定したらしいのかのメモです。 結論から言うと基本的にターゲットの Windows のバージョンに合わせます。 対応表 Date Windows10 Ver. Windows SDK Ver. メモ 2015/07/29 …

.NET Coreでクリップボードを利用した単一実行可能ファイルを作成する

.NET Core でプログラムを(Windows上で)実行するとGUIDが100件ぶんクリップボードに設定された状態にするコンソールアプリを作成したいと思います。その際に単一実行可能ファイル形式でバイナリを出力する方法と合わせて紹介したいと思います。 今回の記事の…

.NET Coreと.NET 5以降のコンソールアプリでWindows Formsの機能を利用する

.NET Core および .NET 5以降のコンソールアプリ上で Windows Forms の機能を利用可能にするための設定方法の紹介です。 以下の画像のように、プロジェクトテンプレートをからコンソールアプリを選択して作成したプロジェクトは Windows Formsにあった機能群…

【C#】文字列を大文字・小文字を区別しないで比較する

C#

C#で文字列どうしを大文字と小文字の区別しないで比較する方法の紹介とちょっとした便利ネタの紹介です。 大文字と小文字を区別しないで比較する方法 拡張メソッドを定義する 大文字と小文字を区別しないで比較する方法 標準ライブラリの範囲内で大文字と小…

【C#】2つのDictionaryを1つにマージする

2020-09-11 2つの Dictionary を 1つの Dictionary にマージして1つにまとめる方法の紹介です。 確認環境 実装コード Linqでマージする 実行速度の比較 確認環境 確認環境は以下の通りです(とはいってもどの環境でも動きます。 .NET Core 3.1 Windows10(Cor…

【はてなブログ】footerをcontainer要素の後ろに移動する(物理的に)

はてなブログの自作フッター(設定 > フッタ)から指定できる項目で自作のフッターをタグで記述した場合 要素が container-inner > bottom-editarea に配置されてしまいます。 なので footer が一番下に表示されずに記事の末尾に表示されてなんか違う…一部デ…

【C#】System.Text.Jsonでオブジェクトのシリアライズ・デシリアライズ

.NET Core 3.0 から利用可能な新しい標準ライブラリ JSON シリアライザー System.Text.Json の JsonSerializer 使い方の紹介です。

【C#】16進数文字列とバイト配列の相互変換

ちょっと何の役に立つか分からないですが、16進数の文字列をバイトの配列に見た目通りに変換する方法です。 long型などの有限長の型を経由しないため基本的に無限長の長さをそのまま扱えます。 変換方法のサンプル 以下のように確実に16進数文字列と分かって…

【Unity】JSONのシリアライズ・デシリアライズの性能比較

Unity環境で使用できる JSON をシリアライズ・デシリアライズできるライブラリとパフォーマンスを調査したいと思います。 はじめに Unity で使用できるJSONライブラリ レギュレーション 確認環境 使用するJSON型 使用するクラスの定義 測定結果 1件を100回シ…

レベルデザイン時の確率表示とUX

少し内容が散漫としていますが思ったことを書いていきたいと思います。 この記事ではゲーム内で表記される確率とユーザーの体験(いわゆるUX)を考えてみたいと思います。さて、よくガチャで当たりの確率が1%だと100回引いた時点での当選確率が63%程度とされ…

【Unity】モーダルダイアログを実装する(2019.4版)

タイトルには2019.4版と書きましたが特に新機能を使っているわけではないです。新しい環境でもできるよーって感じです。Unity は uGUI というUI作成機能があるのでかなり簡単にダイアログが実装できます。ほとんどコードも書かないで大丈夫です。そこでアプ…

【C#】小数点の切り捨て・切り上げ・丸め・四捨五入まとめ

C#

2020-09-01 小数点に関係する処理で使用するメソッドは以下の4つ + キャストです。 各々動きを簡単に表にすると以下の通りになります。 メソッド 説明 挙動(1) 挙動(2) Truncate 小数点を切り捨て 1.5 → 1 -1.5 → -1 Floor 負数の場合より小さい方向に丸める…

【はてなブログ】全て記事のURL・タイトル・投稿日を取得する

前回の記事で投稿済みの記事URL一覧をすべて取得するプログラムを書いてみました。 takap-tech.com 今回は、記事のURLのほかに、各記事のタイトルと投稿日時を取得してCSVファイルに出力してみようと思います。 確認環境 C# 8.0 VisualStudio 2019 .NET Core…

【C言語】コロナ感染拡大で政府がGoToキャンペーンを強行

2020-08-12 gotoと言えばC言語。 C言語で表現するとしたらこう。 #include <linux/module.h> main(void) { BOOL wrong_judgment = collective_intelligence(); if ( wrong_judgment ) goto travel_campaign: travel_campaign: panic(); } 結局 panic..... 今日になって「今更</linux/module.h>…

【Unity】効果音(SE)の再生と音割れ防止処理の実装

確認環境 効果音再生の基本 効果音の同時複数再生は音割れ問題が起きる 同じ効果音再生を遅延させるコンポーネント 使い方 実装コード例 確認環境 この記事は以下環境で制作・確認を行っています。 Unity 2019.4.2f1 Windows10 VisualStudio2019 効果音再生…