プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

C#

.NET で JSON を読んだ時に認知していないデータを保持したい

.NET 7 で System.Text.Json 使ったときの話です 最近のシステム間のデータのやり取りでは結構な割合でJSONを使うことがあります。ちょっと前までXMLだった気がしますがどんどんJSONになっていますね。(表記する時JSON なのか Json なのか json なのかよくわ…

続、文字列のソート

前回 文字列のソート - プログラムの事とか のおまけです 前回は絵文字で並べ替えていたので環境によっては正しく表示されなかったり、そもそも絵文字なんて並べ替えねーよ、と思われた方もいると思うので今回はシンプルに3桁の数字(数値ではない)で試してみ…

文字列のソート

文字列で昇順ソートしている部分の並べ替えが間違っている、と指摘されてどういうことなのかよく聞いたら漢字部分が"(訓)読み"通りになっていないということらしく「そこは文字コードでソート」と説明したんですが、最近の若い子は並べ替えの時に文字コード…

C#で値の入れ替え(Swap)

C#

すごいテクニックとかじゃないです,ごめんなさい 昔作ったソースを久しぶりに開いたらR#先生から新しい教えをいただいたのでメモ お題 2つの数値(a,b)の入れ替えをします 昔の var a = 1; var b = 2; var temp = a; a = b; b = temp; Console.WriteLine($"a…

.NET の浮動小数点と文字列化のちょっとした話

.NET Core (いつのバージョンかよくわかりません) での Breaking Change な話 var a = 0.0; var b = -0.0; Console.WriteLine(a == b); Console.WriteLine($"{a.ToString() == b.ToString()} , a={a:f1} , b={b:f1}"); 上記コードを .NET Framework 4.8 と .…

Azure Table Storage で NaN をどうにできた話

前回 puni-o.hatenablog.com の続きです あの後Issue(プルリクではない)投げておきました github.com そして先ほどCloseされたので確認 (9月末には終わってたっぽい) 読み込み プロジェクトを開いてAzure.Data.Tablesが12.0.1なことを確認、ごにょごにょして…

C#と遺伝的アルゴリズムで遊んでみる

遺伝的アルゴリズムといえば あれ を思い浮かべる人も多いとおもいますが、あーいう天才の遊びではなくよくある問題を試してみるだけです 機械学習ネタといえば Python ですが私は C# が大好きなので使う言語は C# です こんなのを見つけたのでこれを使って…

Azure Table Storage で NaN をどうにかしたい

何の話かというと NaN の話です。おしまい おまけ 数年前まで Table Storage を扱う際には WindowsAzure.Storage パッケージを入れて参照させていました。ほとんどの人がそうでしょう、多分 そんなライブラリも現在ではご覧の通りの非推奨です 代替パッケー…

オーバーフローなんかの話

※画像はイメージです 新年度ですし、軽いネタでも オーバーフローって聞くとわくわくする一部の方もいると思います。 とくにスタックオーバーフローはゲームのやりこみ勢にとっては格好のおもちゃでしょう。 Final Fantasy 6の52回全滅バグなんて有名ですね …

Azure Functions の設定が変わったり変わらなかったりする件

Azure Portalの構成で設定値を変更しても、すぐにその設定でFunctionsが動くとは限らないよ、というお話です 準備 関数 [FunctionName("QueueFunction")] public static async Task Run([QueueTrigger("myqueue-items", Connection = "")]string myQueueItem…

WPF ( .NET 5 ) でWindows Runtime API を呼ぶのは超簡単だった

昨日のやつ WPF ( .NET 5 ) でWindows Runtime API を呼ぶ、前にしなければいけないこと - プログラムの事とか は大嘘でした、ごめんなさい、この方法ではAPIを呼び出そうとすると何らかのビルドエラーが発生しますね、その先に進めませんね 反省はするけど…

WPFのDynamicなSolidColorBrushとDynamicなColor

WPFネタです。半日くらい悩んでいました 準備 App.xaml抜粋 <Application.Resources> <Color x:Key="FillColor">#00ffff</Color> <SolidColorBrush x:Key="FillBrush" Color="{DynamicResource FillColor}"/> </Application.Resources> MainWindow.xaml <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> …</grid>

Azure Table Storage のContinuationTokenを盛大に勘違いしていた件

現在進行形でやらかしています。これから修正しなきゃいけないのでざっくりやらかしたことをメモ(調査も検証もなし) コード async Task<TableEntity[]> Get(long id1,long id2){ var tableClient = _storageAccount.CreateCloudTableClient(); var table1 = tableClient.Get</tableentity[]>…

BitmapCacheを指定したWPFアプリが応答しないことがあったりなかったり

という現象にはまっています ググると9年前にstack overflowに同様の質問があったのでリンクは貼っておきます stackoverflow.com 上記質問でも解決方法は示されていません 再現方法 UACの確認ダイアログが出るようにしておきます WPFアプリを準備します 今回…

WPFでSystem.Windows.PointがそのままBindingできるのを知らなかった話

.NET Core 3.0で試してます。それ以外は知りません 結論 いつからなのか、ずっとそうなのか、WPFでSystem.Windows.Pointを編集する際にそのままBindingできました おしまい 以下だらだらと 試してみる ViewModel public class MainViewModel { public Reacti…

ファイルに保存するILoggerの拡張のやつ(?)作りました

github.com 作りました .NET Core 3.0だしHostBuilderとかあるから、一応ね 以下ぽえむ 私は社会人になってから真面目にプログラミングを行うようになったので、ログの重要性などもそこで教わりました その時のエース的プログラマーな方が作ったログ用APIは…

.NET Core 3.0 にしたらWindowsのバージョンが変わった話

釣り気味のタイトルです 無事に .NET Core 3.0 がリリースされたので早速使ってみましょう コード Console.WriteLine("Environment.Version\t" + Environment.Version); Console.WriteLine("RuntimeInformation.FrameworkDescription\t" + RuntimeInformatio…

.NET側からP/Invokeで関数ポインターを渡したら落ちた話

C#

不定期更新のやらかし投稿です。7Pay報道みて笑っている場合じゃなかった やりたいこと C#側(今回は.Net Core)からVC++のdllに関数ポインターを渡してdll側から呼んでもらう 実装 P/Invokeの具体的なのはググってください ということでC# class TestClass { …

ReactiveExtensionsのThrottleの中でOnNextを呼んではいけない

はいやらかしました まずはこちらのコードでどうなるか static Subject<int> _subject; static void Main(string[] args) { _subject = new Subject<int>(); _subject.Subscribe(Func); _subject.OnNext(0); Console.ReadKey(); } static void Func(int i) { Console.W</int></int>…

ASP.NET Coreのルーティング 2.1 -> 2.2

基本的にわたしがやらかしたことを晒している本ブログですがまたやらかしたので報告します ASP.NET Core 2.2がリリースされて日本のリージョンにも入ったので2.2を使いましょー とりあえず準備はVisual Studio 2017で新規のASP.NET Core 2.2を作成 2.1のルー…

Math.Atan2というかdoubleでひっかかったこと

C#

こにんちわC#初心者です きょはわたしがさっきやらかしたことをかきます static void Main(string[] args) { Console.WriteLine($"Math.Atan2(0,0) = {Math.Atan2(0, 0)}"); // Math.Atan2(0,0) = 0 Console.WriteLine($"Math.Atan2(-0,-0) = {Math.Atan2(-0…

Xamarin.Formsでページの壁紙をイイ感じに表示したい

今日(2018/12/12)時点の最新のXamarin.Forms(not Preview)でのお話 例によって正しいかどうかはご自身で判断してください 対象はiOS(Androidは確認してないから知らない) Emulatorでのみ動作確認 Visual Studio 2017でXamarin.Formsのプロジェクト作ってその…

フォルダ名の最後がスペースのフォルダを作る (作れない)

作れません 知っている人は当たり前だと思うかもしれませんが、そんな名前のフォルダ作ろうなんて思ったこともなかったので知らなかったよ 試してみる Explorerで こうすると こうなります。勝手に最後のスペースが消されます。警告とかそーいうの出ません …

ASP.NET CoreのSignalRでバイナリーデータをやり取りする

ASP.NET CoreのSignalRのお話です (2018/7/5時点) 古いSignalRは知らない SignalRがWebSocketを使えるなら使ってくれるのはご存知だとおもいます んで、WebSocketのペイロードデータにはTextとBinaryのどちらかを入れることができます データサイズに敏感な…

TCP/IPのサーバーが送るデータをマルチキャストするツール

C#

というのが必要になりました 昔作った記憶がうっすらとあるんですが、探すより作った方が早かったので作りました github.com ソケット繋いで受信したデータをマルチキャストするだけ 多分間違っていないと思うので必要な方は好きにしてください フィードバッ…

.NET でディレクトリの削除が失敗したりしなかったりする

C#

小ネタ Windows 10 Pro 1803、.NET Framework 4.7.2 でうごかしてます 準備 Visual Studioで新規のコンソールアプリを作って class Program { static void Main(string[] args) { Directory.Delete(@"F:\Test", true); } } 完成 FドライブはSEAGATE ST2000DM…

ディレクトリの一つ上のディレクトリをとる

C#

ネタにもなれないような小ネタですが そのものずばりなメソッドが無いかナーとググってみたんですが、バックスラッシュ探して文字列操作ってのが上位に出てきてそういものなのかな?と思って自作 public static string GetParentDirectory(string path) // p…

DateTimeOffsetの比較について

C#

知っている人にとっては何をいまさら、な感じなことですが知らなくてググってしまったのでメモメモ 確認は.Net 4.7.2でやってます。それ以外の奴や今後のことは知らない Q var t1 = new DateTimeOffset(2018, 5, 15, 12, 0, 0, TimeSpan.FromHours(0)); var …

WPFで速い描画方法が知りたい!

WPFで描画処理書いていてもっと速く描きたい!(ていうか自分の書いた処理遅い!)ということで実験を兼ねてプロジェクト作ってあわよくばすごい人に速い方法教えてもらおう! プロジェクトはこちら github.com 簡単な説明 class CustomDrawControl : Framew…

WPFのDrawingContextでアニメーション

DrawingContextの謎メソッド(自分の中で)の実験 WPFでちょっと変わった表現をしたい時とか結局自分で描きますよね(WPFに限らずですが) 例えば public class DrawTest : FrameworkElement { protected override void OnRender(DrawingContext drawingCont…