2017/02/23

TypeScriptの変数存在チェック

TypeScriptの変数存在チェック

変数がnullかundefinedでないかを確認する方法

nullとundefinedを両方対象とする場合、書き方はシンプルです。nullだけ、undefinedだけ、などの場合分けも可能です(あまりそういうケースはなさそうですが…)。
let a = null; 
let b = undefined; 
 
if (a) { 
 // オブジェクトは存在します。 
alert("ok"); 
} 
 
if (b !== null) { 
// null ではない。 
alert("null"); 
} 
 
if (a !== undefined) { 
// undefined ではない。 
alert("undefined"); 
}

2017/02/19

C#でenumをリストに一行で変換する

C#でenumをリストに一行で変換する
enumの要素をすべてリストに変換する便利な書き方があります。
enum Hoge
{
ああああ,
いいいい,
うううう,
}

// Listに変換。先頭から列挙されます。
// [0] ああああ
// [1] いいいい
// [2] うううう
var lst = (Hoge[])Enum.GetValues(typeof(Hoge));
ただ、これは頭から単純にリスト化しているだけなので、Listのインデックスは常に0からスタートとなります。
enum Hoge
{
ああああ = 2,
いいいい = 3,
うううう = 4,
}

// [0] ああああ
// [1] いいいい
// [2] うううう
var lst = (Hoge[])Enum.GetValues(typeof(Hoge)); 

2017/02/11

C# で Private メソッドを単体テストするための方法

C#でPrivateメソッドを単体テストするための方法
Privateなメソッドで単体テストを行いたい場合、リフレクションを使う方法、アクセス修飾子を internal に変更する方法があります。
楽だからという理由で全部 Public に変えてしまうのは NG です。公開範囲を適切にコントロールすることがバグを減らすためには必須です。

2017/02/06

C#で文字列のTrueやFalseを比較する

C#で文字列のTrueやFalseを比較する
bool が文字列として入っている変数を判定する場合の注意です。

C#におけるboolの判定

よくありがちな書き方です。
こういう書き方でも要件は満たせますが、文字列として "True" とかソースに書いちゃうのはあまり良くないですね。
var boolValue1 = "True"; 
 
if (boolValue1 == "True") 
{ 
    // 文字列は True。条件にマッチします。 
} 
 
if (boolValue1 == "true") 
{ 
    // 条件にマッチしません 
} 
if (boolValue1.ToUpper() == "true".ToUpper()) 
{ 
    // 条件にマッチするけど、イケてない書き方です。 
} 
string.Compare を使った例です。
if (string.Compare(boolValue1, bool.TrueString, true) == 0) 
{ 
    // 文字列は True。true でもいいし、TRue でもマッチします。  
} 
bool 値を文字列で返してくれる bool.TrueString はあまり目にしませんが、これなら文字列として "true" とか書かなくてもいいので覚えておくとスマートな書き方になります。また、string.Compare の方が、ToUpper() よりもパフォーマンスは良いです。

今回のような判定を何万行も繰り返すのはデータコンバート以外ではないでしょうが、覚えておくといいと思います。

大文字/小文字を区別しないで文字列を比較するには?[C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/624ignorecase/ignorecase.html

2017/02/05

ASP.NETでシリアライズされたJSONの日付をJSで変換する

ASP.NET から、日付を JSON にシリアライズして View に返した際に、JavaScript で値を確認すると "\/Date(1234567891012)\/" のような文字列になっています。
jQueryでシリアライズされたJSONを変換するには、以下のように書きます。
var jsonDate = "\/Date(1234567891012)\/";
var date = new Date(parseInt(jsonDate.substr(6)));

Chromeの開発者ツールでコンソールを表示

Chromeの開発者ツール
Google Chrome の開発者ツールで、下に表示しているコンソールを消してしまった時に再表示させる方法。
  1. 右上のハンバーガーメニューを開く。
  2. More tools
  3. Console
下の領域はタブになっているので、他の項目も表示させることができる。

2017/02/04

Vivaldiの検索エンジンの変更とYahoo等を簡単に追加する

Vivaldi
Vivaldi のアドレスバーから検索をすると、初期状態では「Bing」の検索結果となります。Bing 好きならいいのですが、個人的には残念すぎるので Google に変更します。でも、Yahoo が好きな人は Yahoo も簡単に追加できます。

軽いブラウザと噂のVivaldiを使ってみたら確かに軽い

Vivaldi
Vivaldi いい感じですね。まだ荒削りな感じですが、未来を感じさせてくれます。

2017/02/01

米YahooメールをThunderbirdで送受信するための設定

ヤフーメール

YahooメールをThunderbirdで送受信する方法

いろいろと(良くない)話題を振りまいてくれる Yahoo.com ですが、とりあえずいくつかあるアカウントを Thunderbird で使う時のメモです。

Yahoo.com のメールは、デフォルトでは Yahoo のアプリ以外の通信を許可していません。しかし、この Yahoo のアプリは日本からはダウンロードできません。

アプリ以外のログインを許可することで Thunderbird をはじめ、メーラーで送受信ができるようになります。

Yahooメールのアカウント設定
Yahoo メールのアカウント設定を変更します。
  1. ブラウザから Yahoo Mail にログインします。
  2. Account Info を開きます(歯車マークから)
  3. Account security を開き、Allow apps that use less secure sign in スイッチを ON に。
上記を設定すれば、メーラーをはじめ、アプリ以外の通信もできるようになります(パスワードが間違っていなければね)。
ただし、アプリからのアクセスと比較すると、どうしてもセキュリティリスクが高まるため、利便性との兼ね合いで設定する必要があります。とりあえず強固なパスワード設定は必須でしょうか。
Related Posts Plugin for WordPress, Blogger...