2017/06/29

TS2304 名前 '$' が見つかりません。

TS2304 名前 '$' が見つかりません。
jQuery は初期設定では、TypeScript(.ts)内で読み込めません。これは、型定義ファイルが無いからです。

型定義ファイル(d.ts)を落とす

jquery.TypeScript.DefinitelyTyped
型定義ファイルは様々ありますが、NuGet から「jquery.TypeScript.DefinitelyTyped」を検索するのが簡単です。

パッケージのダウンロードが完了すると、Scripts フォルダ配下に typings > jquery > jquery.d.ts が配置されます。

2017/06/23

C#で複数行の文字列を改行ごとに分割する

複数行の文字列を改行ごとに分割する
文字列に対してある文字を元に分割したい場合(CSV ファイル等)、Split メソッド一発で簡単に分割できます。
var text1 = "あ,い,う,え,お"; 
// 「あ」「い」「う」「え」「お」の配列になる 
var result1 = text1.Split(','); 
改行コードの場合は、こんな感じ。
var text2 = "あいうえお\r\nかきくけこ\r\nさしすせそ"; 
// 「あいうえお」「かきくけこ」「さしすせそ」の配列になる 
// StringSplitOptions.RemoveEmptyEntries は空行が無視される 
var result2 = text2.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); 

2017/06/18

ローカルにある SQL Server 2016 Express への接続方法

Management Studio 17
SQL Server 2016 Express に Management Studio 17 から接続します。

インスタンス名の確認

SQL Server インストールセンター
基本的に SQL Server のインスタンス名は固定ですが、バージョン違いで色々とインストールされているとわからない場合があります。

マシンにどのインスタンスで SQL Server が入っているのかは、SQL Server インストールセンターの「インストール済み SQL Server 昨日の検出レポート」で確認できます。

SQL Server 2016 セットアップ検出レポート
SQL Server 2016 セットアップ検出レポートという html が出力されます。
インスタンス名は、おなじみ「SQLEXPRESS」です。

Management Studio から SQL Server Express へ接続

SQL Server Management Studio 17
Management Studio からは、接続先マシン名と対象インスタンスで接続できます。
ローカルからなので、localhost\sqlexpress となります。

2017/06/17

float で高さがずれる問題を overflow の設定で直した

floatでコンテナの高さがずれる問題
float で div コンテナを横並びのレイアウトを組んだ際に、高さがズレてしまう事象が発生。

原因がいまいちわからなかったのですが、float を格納している div コンテナに overflow: hidden; を入れて解決しました。

float のデモページも参考になります。

Clear Float Demo
http://webdesignerwall.com/demo/clear-float/

C# の i++ と ++i におけるインクリメントについて

C#のインクリメントの違い
C# においてインクリメントを行う場合は、「i++」など、「++」と表記することが多いです。しかし、「++i」のように「++」を頭に持ってきても同様の動きとなります(内部的には若干異なるらしい)。

数字をインクリメントする

// インクリメント 
var i = 0; 
i++; 
// 1 
Console.WriteLine(i); 
++i; 
// 2 
Console.WriteLine(i); 

i++を文字列にする

しかし、以下のような書き方をすると…
var i = 0; 
// 0 
Console.WriteLine(i++.ToString()); 
ひょっとすると想定した結果ではないことに驚くかもしれません。
「i++」は、インクリメント前の数値が返却されます。

++iを文字列にする

では、こう書いたらどうなるでしょうか?
var i = 0; 
// 1 
Console.WriteLine((++i).ToString()); 
「i++」は、インクリメント後の数値が返却されます。

二つの式を比較すると、「++i」の場合はカッコで括らないと ToString() できません。「i++」はそのまま ToString() できます。これは i そのものを返却するからですが、このあたりの挙動を見ると、内部的に異なった動作であることが理解できます。

ちょっとした違いなのですが、あまり気にしないで書いている部分なので、ちゃんと動作確認をしないととんでもないバグが出てしまう可能性があります。

もちろん、一番わかりやすいのはこのような書き方です。
var i = 0; 
i += 1; 
// 1 
Console.WriteLine(i.ToString()); 

2017/06/11

ファイルパスから拡張子を除いたファイル名を取得する

ファイルパスから拡張子を除いたファイル名を取得

ファイルパスからファイル名を取得する

System.IO.Path クラスには、ファイル名を操作するための便利なメソッドが用意されている。例えば、ファイルパスからファイル名を取得する場合は、GetFileName メソッドを使う。
var filePath = @"C:\hoge\hoge-1\test.text"; 
// test.text 
var fileNameWithExtension = Path.GetFileName(filePath); 

ファイル名から拡張子を除く

取得したファイル名から拡張子を除いたファイル名だけを抽出したい場合は、ChangeExtension で拡張子を置換してしまえば取り出せる。
var filePath = @"C:\hoge\hoge-1\test.text"; 
//test 
var fileName = Path.ChangeExtension(Path.GetFileName(filePath), null);; 
Related Posts Plugin for WordPress, Blogger...