Developer's Tips
to Top page
C# Tips by SKB
世の中の優れたプログラマーの皆様には無用の長物ですが・・・
業務で多くの開発言語を扱っていると、どれがどの関数で、引数並びは(source, dist)? (dist, source)?
この開発言語の書式定義はどんなだっけ?
なんて事が多々あります。
ここは、ちょっとした紛らわしい部分のリファレンスとして、個人的に使用しています。
ちょっとした落とし穴 VisualStudio(2017)の落とし穴 SQL Commands
- マウスポインタの変更。
obj.Cursor = Curesors.[style];
- 文字列を数値にする。
int val = Convert.ToInt32(string s);
int val = int.Parse(string s);
if (int.TryParse(string s, out val)) { };
- 数値を文字列にする。
string s = num.ToString();
string s = string.Format("{0,10:F}", num);
ex. string.Format("'{0,5:F}'", 1.235456f): ' 1.24'
ex. string.Format("'{0,5:F3}'", 1.235456f): '1.235'
ex. string.Format("'{0:0}'", 1.235456f): '1'
ex. string.Format("'{0:#,0.00}'", 1234.5678): '1,234.57'
- 文字列の分割。
string[] param = s.Trim().Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);
- ラバーバンド描画。
ControlPaint.DrawReversibleLine(pi, pj, Color.Gray);
- 拡張メソッド。
「静的クラス」中に、 第一引数に this キーワードを修飾子として付けた static メソッドを書く。
static class StringExtensions
{
public static string ToggleCase(this string s)
中身省略
}
利用: string s1 = s.ToggleCase(); // 拡張メソッド呼び出し。
- List<>.Sort()
list.Sort((a, b) => a.ID - b.ID);
.NET Framework 3.0 以降のλ式で簡単に使う場合。(式の戻り値はint型)
- ちょっとした落とし穴。
- Mouseを扱う処理で、MouseDown後にEventを拾ったComponentに他のComponent(OpenDialog等)が重なると、MouseUp eventが走らない。
- 文字列を数字にする際、Try{}にも引っかからないエラーが発生する場合、ToDoubl()やParse()に渡す文字列変数に'.ToString()'を付ける。
- 'double.MaxValue'は使っちゃダメ! debugもTry{}Catch{}にも引っかからず、'AccessViolation'や'StackOverflow'で強制終了しちゃう。
x86だからかもしれないけど、発生原因を無駄に追跡するより数値範囲が許せば'long.MaxValue'とかで代用する。
- SQLコマンド簡単リファレンス
- SELECT * FROM [table]
WHERE [field]=value
ORDER BY [field]
- INSERT INTO [table] VALUES(value1,value2,・・・)
- DELETE FROM [table]
WHERE [field]=value
ORDER BY [field]
- UPDATE [table] SET [field]=value
WHERE [field]=value
- VisualStudio(2017)の落とし穴。
- メッセージ「別の編集を実行中にtextbufferの編集操作を行おうとしました。」が出ると、一切修正も復元もできなくなるので、いったん終了し再起動してから修正する。
- コントロールで生成したイベントをコード上で場所を移動する際、消した時点でデザイナが触れなくなる(エラーになる)ので、コード上で張付けを完結させる必要がある。
- VisualStudio(2017)Tips
- バージョン番号。
'Properties'のAssemblyInfo.csで以下のようにするとBuildとRevisionが自動更新される。
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
さらに
[assembly: AssemblyInformationalVersion("1.0.1.0")]
を追加すると、製品バージョンを自分で指定できる・・・けど触り忘れないように!?
- 空白文字の表示。
エディタ表示状態で[編集]-[詳細]-[スペースの表示]を選択。
Powered by SoftKOBO