より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

C#

Resharperでinheritdocタグを挿入する

C#

docs.microsoft.com C#のコメントにはinheritdocタグが存在します。 たとえば以下のようなコード。 using System; namespace ConsoleApp1 { interface ITest { /// <summary> /// 何かの取得処理です。 /// </summary> public string Get(); } class Test : ITest { /// <inheritdoc /> public</inheritdoc>…

AMDeviceSecureInstallApplicationBundle returned: 0xe800801c.

C#

Xamarinで端末への配置時に以下のようなエラーが発生しました。 error MT1006: Could not install the application AMDeviceSecureInstallApplicationBundle returned: 0xe800801c. 試したことは以下の順 Visual Studio 再起動 Windows 再起動 端末上のアプ…

浮動小数点数の比較は誤差が出る。どうすれば?

C#

浮動小数点数の比較は誤差が出ます。 class Program { static void Main(string[] args) { double a = 0; for (int i = 0; i < 10; i++) { a += 0.1d; } Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{a} == 1.0d"); if (a == 1.0d) { …

WPFのDataGridCheckBoxColumnをDisableにしたい場合

C#

職場でDataGridCheckboxColumnをDisableにしたい方法を探したところ、DataGridCheckBoxColumnのままではダメなようです。 stackoverflow.com 方法としてはDataGridTemplateColumnを用いるようです。 xaml側

WPFのコントロールってDisableの時にはツールチップが表示されない?

C#

ツールチップを出すような仕様でWPF実装しようとしたところ、ツールチップが表示されないということがおきました。 もしかしてコントロールがDisableの時はツールチップが表示されない? どうやら試してみるとそのようです。 ですが、それには解決策が用意さ…

Dictionary<int,T>.FirstOrDefault()のdefaultってnullではない?

C#

数値をキーとするDictionary型のFirstOrDefaultってnullが返ってこないようです。 大抵、FirstOrDefaultで値がないなど無効である場合は、nullが返って来ることを期待して、判定します。 例えば、以下のコード。 using System; using System.Collections.Gen…

とりあえずVS再起動で対応 The file 'LaunchScreen.storyboard' conflicts with 'LaunchScreen.storyboard' 

C#

Xamarinを実機デバッグしようとしたところ、 The file 'LaunchScreen.storyboard' conflicts with 'LaunchScreen.storyboard' たまに起きるんですよねえ。これ。まいったもんだ。 github.com GitHubのIssueでもOpenのままです。 リビルドでは解消しませんで…

ImageSharpを使って画像を生成してみる。

C#

ImageSharpは、System.Drawingを使わないクロスプラットフォームの2D描画APIです。 sixlabors.com www.nuget.org メリットとしてはクロスプラットフォームであること。 また、System.DrawingはWebサービスや非同期処理には向いていませんので、それに替わる…

Xamarin+CocosSharpで効果音が鳴らない「Failed to generate OpenAL data buffer」

C#

Xamarin+CocosSharpでデバッグしているとVisual Studioで以下のようなメッセージにふと気付きました。 github.com 結構前からあるバグで、CCAudioEngine.PlayEffectを1024回実行すると「Failed to generate OpenAL data buffer」となって正しく再生されなく…

C#のDotfuscatorでの難読化とかシングルバイナリとか

C#

C# その2 Advent Calendar 2019 - Qiitaの25日目です。 C#はデスクトップアプリケーションを始めとし、サーバーサイド、モバイルなどで幅広く使われる言語です。 私の好きな言語です。 .NET Frameworkもしくは、最近広まりつつある.NET Coreと共に使われるC#…

.NET Standardになってcsファイルのインクルードがなくなった!

C#

いざ、.NET Standardのクラスライブラリを作ってみて気づいたのですが、csファイルがプロジェクトフォルダに追加された時点でプロジェクトの関連ファイルとなったことに気づきました。 ufcpp.net 一方で、新形式csprojでは、何も書かなくてもデフォルトでが…

What's Interop? それは相互運用

C#とアンマネージドなC++のコードの間の値の受け渡しをするための仕組みがInterop。相互運用になります。 C#を扱うものとしては理解しておきたいので、これを機会に実際に手を動かして勉強することにしました。 docs.microsoft.com docs.microsoft.com 特に…

デスクトップアプリケーションでGoogleAnalyticsしたいんだけど。

C#

デスクトップアプリケーションでGoogleAnalyticsを活用するにはどうするかを調べてました。 Microsoftが用意しているようです。 www.publickey1.jp github.com ですが、UWPがターゲットのようです。 WPFでは? となると以下のリポジトリが見つかりました。 g…

WPFのボタン処理であるICommand.Executeで非同期処理を使えるようにする。

C#

RelayCommandのExecuteメソッドって非同期処理使えないの?と。 HttpClientを使うことになれば自然とExecuteメソッドをasync修飾子を指定したくなります。 Task.Runで包むという手はあるのですが、それも微妙だなあと思っていると以下の記事が見つかりました…

コードを書いてBasic認証について学ぶ

C#

Web上で使われているHTTPの認証方式として、Basic認証があります。 あまりよく理解していないので、Basic認証について学んでみることにしました。 ja.wikipedia.org developer.mozilla.org Basic認証は、 ユーザー名とパスワードをコロンで繋ぐ(user:passwor…

XAML IslandsでWPFアプリケーションの最新化

C#

MSDNの以下のサイトでは、XAML Islandsと.NET Core 3.0を使って.NET Frameworkで開発されたWPFアプリケーションの最適化を試すことが出来ます。 docs.microsoft.com XAML Isldandsのコンポーネントに触れておくにはうってつけのドキュメントです。 下記に保…

WindowChromeでキャプションバーなしのウインドウを作る

C#

最近のアプリケーションはキャプションバーがありません。 WPFでは、WindowChromeを使えば出来ます。 docs.microsoft.com さっと書けないので自分用のメモ。 XAML

Autofacを利用して、メソッド呼び出し時にログ出力

C#

メソッド呼び出し時にログを出力してみたいなと探したところ、Autofacというライブラリを使えば、.NET Coreでも行けそうだということで試してみました。 このライブラリそのものはIoCのためのライブラリです。 やってみた感触としては、 出力したいメソッド…

double.TryParseとCultureInfo.InvariantCulture

C#

文字列を小数値に変換するとなると以下のようなコードになります。 double.Parseもありますが失敗すると例外を投げてしまうので、TryParseを使います。 using System; using System.Globalization; namespace ConsoleApp1 { class Program { static void Mai…

Use base class qualifierって意外と大事なアドバイスかも

C#

ResharperやRiderが薦めてくる。Use base class qualifierについてです。 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { // このコードに対して、A.GetKeyword()にすることを薦めてくる。 Console.WriteLine(B.…

Use type keyword C#型のキーワードと.NET型のクラス

C#

string text = "Hello, Hello, How low?"; if (String.IsNullOrEmpty(text)) { } 上記のようなコードをResharperやRiderではUse type keywordといって、変換することを薦めてきます。 www.jetbrains.com string text = "Hello, Hello, How low?"; if (string…

なぜResharperはAdd StringComparison.Ordinalを提案してくるのか?

C#

以下のようなstring.IndexOfメソッドを使った場合、ResharperはStringComparison.Ordinalの指定を推奨してきます。 var text = "Are You Happy?"; var index = text.IndexOf("Happy"); 以下の説明に記載されています。 www.jetbrains.com The canonical exam…

Rider TutorialでRiderを使いこなし術を学ぶ

C#

JetBrainsのIDEであるRiderですが、2019.1からチュートリアルが追加されています。 pleiades.io これを触ってみることにします。 Editor EssentialsとRider Tips, Editor Assistantの二つはオススメです。触ったことがある方でもこの2つは触っておくと良いで…

2DPlatformerTemplateをiPhoneで操作できるようにしてみる。

C#

UnityHubから作成することのできる2DPlatformerTemplateですが、なかなか遊べる出来です。 ぶっちゃけマリオですが、敵や宝石の配置も工夫されています。 せっかくなんだから、iPhoneにインストールして操作できるようにしてみたいところです。 デフォルトで…

Unity+Riderを試す

C#

以前、Riderのイベントに参加したのですが、アンケートに答えることで、Riderの3ヶ月間の無料試用ライセンスをいただきました。 rimever.hatenablog.com Riderのセッションで推しだったUnityとの連動を試すことにします。 blog.jetbrains.com まず、気づく…

Amazon Web ServiceをVisual StudioとAWS ToolKitで第一歩

C#

やっぱり、クラウドやるならAWSかなーということでVisual StudioのAWS ToolKitと一緒にスタートしてみることにしました。 aws.amazon.com AWSというと「AWS 高額請求」でヒットするほどトラブルも聞くので触るのが怖かったりします。 とはいえ、クラウド全般…

Azure App Service、本当に今すぐ試す。

C#

会社でC#とGCPで発表をしていたところ、 それだったらAzure使った方がいいですよ。C#と親和性が高い。 という意見がありました。 転職して、今流行りのスキルセットに変えるかと、クラウドだけでもGCPをと考えていたのですが、自分の使いたいクラウドのサー…

Google App Engine上でのログ出力はConsole.WriteLineでOK

C#

Console.WriteLine("Test Console.WriteLine"); Console.WriteLineすればStackdriver上に出力されています。 Google Cloud Storage絡みなどになると一度デプロイしないと正しく動いているか解らないので、Console.WriteLineで出力しておかないと開発が滞りま…

ASP.NET CoreのApiControllerにてファイルをダウンロードするAPIを作成する

C#

状況 HttpMessageResponseを返す記事にヒットしていましたが、私の場合では上手く行きませんでした。 それではjsonが返されるだけでした。 環境は、ASP.NET Core 2.2で、以下のようにController.FileメソッドでFileContentResultを返すAPIになります。 [Http…

ASP.NET Core MVCでEnumDropDownListForは?

C#

.NET Framework時代のASP.NET MVCにはHtmlHelperにEnumDropDownListForが存在しました。 docs.microsoft.com www.buildinsider.net @Html.EnumDropDownListFor(model => model.Category) ですが、ASP.NET Core MVCではこのメソッドは存在しないようです。 私…