c#
自宅の Windows11 + デュアルモニタ環境でスリープから復帰すると最大化していた Windows Terminal がタスクバーより前になってしまう現象。タスクバーは非表示設定にしているのでカーソルを画面下に移動するのだけど出てこない (前面に来ない) ので困る。 W…
概要 諸事情あってタイトルのことをしたいのだけど、家には手頃な Windows 環境が無いので Mac でやってみる。ちなみに実環境は .Net Core ではない。 Install dotnet $ brew install --cask dotnet-sdk ==> Downloading https://download.visualstudio.micr…
Enumerable.Select(TSource, TResult) メソッド (IEnumerable(TSource), Func(TSource, Int32, TResult)) (System.Linq) public static IEnumerable<TResult> Select<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, int, TResult> selector ) 要素が 1 個でも 1000 個でも変わるのは 1 ms 程度だっ</tsource,></tsource></tsource,></tresult>…
LINQ 大好きなのはいいんだけど基本的に for で回してるのと同じだってことを認識していない人が多くて困る。魔法か何かと勘違されてる。これに起因してパフォーマンス悪化しまくり。LINQ 便利で使うのだけど、LINQ がない時にそんなにループで回すこと多か…
C#プログラマーのための 基礎からわかるLINQマジック!作者:山本 康彦技術評論社AmazonLINQ でループカウンタがあるメソッドがあるのを知らなかった。使いどころがよく分からんけど。 var list = new List<string> { "a", "b", "c", "d", "e" }; list.Where((v, i) =></string>…
XAMLとC#によるUniversal Windows Platform アプリ開発作者:大田一希Amazonxaml は難しいなぁ。xaml でもできるといっても PG で解決した方が簡単だったりするしなぁ。MVVM すると直近の解決法としては良くても長期的にはマイナス要素になったりするし。UWP …
某システムで xsl を用いた時に「xsl 地獄もう嫌だ」と心の底から思ったし、もろもろ設定の xml もうんざりだと思ってたのにココにきての xaml。これは最強の xml 地獄だなと思いつつ数年経過。ようやく書けるようになってきたかなという感じはするけど奥が…
C# はプロパティがあるから簡単に書けて便利っていう話があるけど そんなこと無いよなと RaisePropertyChanged を書きながら思う日々。 public string _Message; public string Message { get { return _Message; } set { _Message = value; RaisePropertyCh…
あってるのか良くわからないけど、ビルドはできた。 public void Build(string slnPath) { FileInfo info = new FileInfo(slnPath); Directory.SetCurrentDirectory(info.DirectoryName); ProcessStartInfo psInfo = new ProcessStartInfo() { FileName = "x…
var projects = Find(baseDir, (v) => v.EndsWith(".csproj")); private List<string> Find(string baseDir, Func<string, bool> condition, List<string> list = null) { list = list ?? new List<string>(); var projects = Directory.GetFiles(baseDir).Where(v => condition(v)); list.AddRange</string></string></string,></string>…
プログラミング.NET Framework 第4版作者:Jeffrey Richter日経BPAmazon終盤はだいぶ読み流してしまったけど、かなり勉強になった。 マルチプラットホームになるらしいし、やって損はない。仕事で C# を書きまくってるけど言語的な不満はあまりなくて メソッ…
使えたんだ・・・知らなかった。 using System; class Class1 { public void Print(string message, string id = "-", DateTime date = default(DateTime)) { Console.WriteLine("message={0}, id={1}, date={2}", message, id, date); } static void Main(s…
なんとなく linq で抽出した後に foreach でなにかしら回しながら処理をしたあと、さいど foreach で回すとループで回らないのじゃないかという不安から、ToList() でリストにしてから foreach してしまうことがある。 using System; using System.Linq; usi…
C#によるマルチコアのための非同期/並列処理プログラミング作者:山本 康彦技術評論社Amazon前半、特にフォアグラウンド/バックグラウンドスレッド周りは勉強になった。そして実践で役に立った。
プロジェクトで log4net を使ってるけど、使ってるだけでどういうものかよく分かってなかったので mono で試してみる。 log4net ソースをプロジェクトから取得 http://logging.apache.org/log4net/source-repository.html $ svn checkout http://svn.apache.…
Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Xamarin, Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Com…
using System; using System.Runtime.CompilerServices; class Class1 { static void Main(string[] args) { Hello(); } private static void Hello([CallerFilePath] string file = "", [CallerLineNumber] int no = 0, [CallerMemberName] string name = "…
便利ですよね、プロパティ。 public class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } って定義すれば。 Person person = new Person() { FirstName = "hogemura", LastName = "…
class Class1 { static void Main(string[] args) { List<string> list = new List<string>() { "a","ab","c","d","af" }; Stopwatch watch = new Stopwatch(); watch.Start(); List<string> extracted = list.FindAll((v)=> v.StartsWith("a")); watch.Stop(); Console.WriteLine(wa</string></string></string>…
using System; using System.Linq; using System.Collections; using System.Collections.Generic; class Class1 { static void Main(string[] args) { List<string> list = new List<string>(); for (int i = 0 ; i < 1000000; i ++) { list.Add(i.ToString()); } IEnumerab</string></string>…
良い感じでジェネリクスを使えたような気がするけど、どうなんだろう。 using System; class Factory { static void Main(string[] args) { Prop prop = Factory.NewInstance<Prop>((h) => { h.Age = 30; }); Console.WriteLine(prop.Name); Console.WriteLine(pro</prop>…
Dictionary でインデクサを使ってアクセスした際に該当するキーが無いと、KeyNotFoundException がスローされる。 例外が発生しないようにするためには、Dictionary#ContainsKey を使ってチェックすることになる。 そんなの効率悪いよーって人のために Dicti…
〔速攻入門〕 C#プログラミング すぐに現場で使える知識作者:中 博俊,猪股 健太郎,岩永 信之,山本 康彦技術評論社Amazonこれは当たりだなぁ。 とくに Java から移ってくる人が効率よく吸収するためには必読だなぁ。てことでおぬぬめ。
メソッドをパラメータで渡して実行する。 パラメーターを受け取らず、戻り値を持たないメソッドをカプセル化します。 Action デリゲート using System; class Class1 { static void Main(string[] args) { Class1 cs1 = new Class1(); cs1.Say(); } public v…
c# の勉強がてら書いてみた。 IDE はまだ使いたくないので、vim とコンパイルコマンド(csc)で。 オリジナル OAuth認証でTwitterにアクセスするコードをC#で書いてみた。OAuthBase.csを参考にした。 C#でOAuthでTwitter つくったもの https://github.com/basy…
visual studio を使わずに。eclipse のコンソールに流れる、cvs リポジトリにコミットした際のログを wiki フォーマットに変換するツールを作りたい。クリップボードに貼り付ける機能も欲しい。 cvs のフックでゴニョゴニョは諸事情によりできない eclipse …
文字列 String msg1 = "hello"; string msg2 = "world"; string は String のエイリアスらしいんだけど、string を使うほうが標準的? 大文字と小文字始まりが混ざるのが気持ち悪いんだけど、メリットはなに?? 文字列連結 using System.Text; StringBuilde…
ちょっと動作確認したいだけなのに、スクリプトライクに軽い感じで書きたいだけなのに、、、Visual Studio や Visual Web Developer とか糞重いの入れるの嫌だーーーーー。 と思ってたら案外簡単だった。ただし、GUI はまだ良く分かってない。 .Net Framewor…