スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

時代の流れでコードの書き方も変わる

仕事では、.NET4(VS2010)をIDEとして使っている関係上、C#5以降の機能を使うことはできない。
最初の頃に書いたコードに、ToStringというユーティリティメソッドがある。
クラスはシンプルが良い(Utility編)
このユーティリティメソッドは、Java時代からの長い付き合いである。
これをC#6.0風に書くと、こんな感じになるだろうか。
public static class StringUtil {

/// <summary>
/// 引数オブジェクトを文字列で返します。nullなら空文字列が返されます。
/// </summary>
/// <typeparam name="T">引数オブジェクトのタイプ</typeparam>
/// <param name="obj">オブジェクト</param>
/// <returns>文字列</returns>
public static string ToString<T>(T obj) {
return obj?.ToString() ?? string.Empty;
}
}
?が3つもあるが、一行で書けたりする。開発環境もそろそろVS2015に移行する時期なんだろうな。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

ファイルは選ぶ事あるけど、フォルダを選ぶことは少ない。

ある日、仕事してると、仕事の同僚さんから聞かれた。

同僚さん:フォルダを選択するダイアログあるんですけど、これ、直接パス入力できないんですよね?

C#、というかWindows.Formsが提供するフォルダ選択ダイアログは、FolderBrowserDialogしかない。
[フォルダの参照]ダイアログを使用するには?
起動時にどこのフォルダを表示するか?とか、新しいフォルダを作成するボタンを表示するかどうか?くらいは設定できる。でも、それだけ。何が面倒くさいって、ファイルサーバー上のファイルを探す時が非常に面倒くさい。そして、なんといかとても"ちゃちい"のだ。
これは1.1の頃から変わらず、4、4.5になった今でもこれしかないと思っていたし、実際、。探しても見つからなかった。
ただ、この同僚さんと話をしている時に気づいた。

ん?いや待てよ?そういえば、Visual Studioでプロジェクトを作る時にフォルダを選択するけど、その時のダイアログはこれじゃないぞ?

と。もっとこう、なんというか、色々できたというか。このダイアログ使えたら万事解決ではないの?と。
で、色々調べてみた。同じことを思った人は少なからずいると思って。
HOW - Detailed Folder Browser - VS 2010
要は、Windows Vista以降で使用できるIFileOpenDialogインターフェースを実装すれば良いらしい。
手っ取り早く使いたいなら、Windows 7 API Code Packを使えば、"それ"が使えるようだ。NuGetでインストールできるらしいし。
続きを読む
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

マイナンバーと法人番号

その是非はともかくとして、そろそろマイナンバーが使われ始める。今頃の恒例行事となっている年末調整にも必要らしい。
マイナンバー 社会保障・税番号制度
個人だけだと思ったら、法人にも番号が振られている。
法人番号公表サイト
ソフト屋の端くれとして、その番号をチェックするロジックがきになる訳で。
でももう色々なサイトに掲載されている。
行政手続における特定の個人を識別するための番号の利用等に関する法律施行令
法人番号の指定等に関する省令
国が書くと、わかりづらいので、個人で掲載している所も探す。
マイナンバーのチェックデジットを計算する
マイナンバー法における法人番号の検査用数
RubyとJavascriptで書かれている。まあ自分用にC#で起こしてみる。続きを読む
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

アセンブリ(*.dll)の情報に関する覚書(その弐)

(其の弐)そのアセンブリ、32bitですか?64bitですか?
32bitOSしか無い時代には悩む必要もない事なんだけど、最近は64bitOSが主流になりつつある。そうなると、そういう時代ならではの問題が発生する。
1プロセスにおける32ビットと64ビットの混在
GACに登録されているアセンブリを参照する場合は自動で切り替えてくれるけど、直接参照する(GACを経由しない)時、このアセンブリは果たしてどっちなんだろう?と思うことがある。そういう時には、CorFlagsを利用する。これも、仕事ではbatファイルを作って利用している。

set local;
set PATH=%PATH%;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools;
CorFlags.exe %1
pause

これにアセンブリをドラッグアンドドロップすると、コマンドプロンプト上に情報が表示される。

C:\Users\xxxx>CorFlags.exe "C:\Users\xxxx\log4net.dll"
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.0.30319.18020
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x9
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 1

詳しい見方は、↓に載っている。
How to interpret the corflags flags?
PE32で、32BITREQ=0, 32BITPREF=0なので、Any CPUでビルドされた、MSIL(プラットフォーム非依存のアセンブリ)であるところまでわかる。
CorFlagsは参照だけではなく、変更もできるらしい…。仕事では使わなさそうなので、参照だけで十分かな。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

アセンブリ(*.dll)の情報に関する覚書

(其の壱)Public Key Tokenを知りたい。
(方法壱)C:\Windows\Assemblyを開く。
 ただし、GACで登録されているアセンブリだけに限られる。
(方法弐)ildasmを使う。
 仕事で使うときは、batファイル化して、DeskTopやランチャーにおいている。

set local;
set PATH=%PATH%;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools;
ildasm.exe %1

PATHを設定しているけど、これは各自の環境によって変化する。これをildasm.batみたいな感じでデスクトップに作る。
20150314_1
で、例えばlog4netをそこにドラッグアンドドロップすると、↓のような感じになる。
20150314_2
このアセンブリ内にある名前空間やクラス名がリストアップされている。更に上の方にあるMANIFESTをクリックすると、
20150314_3
という感じで、依存するアセンブリのバージョンやPublic Key Token を確認できる。ただ、自身のKeyはどこにもない(HASH化される前の情報しかない)ので、知りたいアセンブリを参照するアセンブリを作り、そいつの中身をildasmで表示する。
20150314_4
この余白を除外してつなげた文字列「669E0DDF0BB1AA2A」が、Public Key Tokenとなる。
Public Key Tokenは、app.configやWeb.configなんかで、外部アセンブリが持つHandlerクラスを設定する時に必要だったりする。そういう時にも使うし、このアセンブリが、実際他のアセンブリをどれだけ参照しているかも確認できる。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。