新規記事の投稿を行うことで、非表示にすることが可能です。
2019年11月26日
【19日目】英語版Udemyで学ぶ!C#
進捗73%
順調ではあるが、1つ1つの動画の時間が長くて、学習時間の割には進んでいない。
■イベントとデリゲーション(追加分)
デリゲートの理論は一通り勉強したので、実際にコーディングをやっていく。
この動画からソースコードの文字が大きくなって見やすくなっている。また、余計なペイン(プロジェクトビューとか、ソースコード一覧のビューなど)がなくなってわかりくなっている!
デリゲートの際に複数の関数を指定して、それぞれに引数を渡して、戻り値を合算可能であることを学んだ。
■次は
いよいよ、C#のゲームの世界、Unityに入っていく。このコースへのリンク
Complete C# Masterclass
全般ランキング
2019年11月25日
【18日目】英語版Udemyで学ぶ!C#
進捗72%
サンプルソースのない動画が続き、若干眠い。
■セクション:デバッグ(続き)
デバッグの説明が続くが残念ながら、デバッグ対象のプログラムのソースコードがダウンロードできないため、ただ視聴するだけである。説明は基本的なところで、ブレークポイントを設定したり、データの中身を見たり、コールスタックを使うなどである。これに加えて、Microsoft社の下記のページを見るのが絶対おすすめだ!
Visual Studio でのデバッガーの生産性に関するヒントとテクニックについて説明します。
このページにはデバッガのより先進的な機能(もうかなり昔からあるが)などが説明されている。
初めて、デバッグ中に現在実行している場所を示す矢印がドラッグで戻せて再実行できるとか、コードを修正しながら、実行しなおせるとか、できた時の感動と驚きは今でも忘れられない。全てのレベルの人たちに知ってほしい、おすすめの機能だ。
■応用C#(ガベージコレクション、Abstract他、追加分)
抽象クラスで図形の例を出すのは定番である。abstract宣言で宣言して、派生クラス(実装時)にoverrideキーワードを入れて実装を行う。これもサンプルソースコードなし。
なお、すべてのクラスはobjectクラスからの派生である。
■イベントとデリゲート(追加分)
デリゲートはコールバックとして定義でき、C++の関数ポインタと似ており、パラメタを渡せたり、複数一度に呼べたり、無名関数を使えたりする。
■次は
デリゲートの理論は一通り勉強したので、実際にコーディングをやっていく。
このコースへのリンク
Complete C# Masterclass
全般ランキング
2019年11月24日
【17日目】英語版Udemyで学ぶ!C#
進捗70%
集中して勉強を進められた。
今更だが、この講座はVisualStudioの画面全体をキャプチャした動画になっており、自分にとっては字が小さく、動画を見ながらコーディングする場合は、ダブルモニターが必須だ。
なお、ちなみにVisualStudioのエディターのフォントサイズは、下記の手順で変更できる。
1、[ALT+T] → [o]と押して、オプションダイアログを表示
2、環境 → フォントおよび色、を選択
3、右側のサイズを調整する。
■セクション:マルチスレッド(残り)
スレッドのjoin, aliveに関しての勉強。これらを使用するとスレッドの終了を待たせたり、スレッドの状態を把握することができる。
次にWPFのUIのフリーズを避ける方法に学ぶ。async,awaitを使い、UIボタン選択後の実行される重い処理によるUIのフリーズを避ける方法を勉強した。
このコーディングを行う際に、10MBなど所定のサイズのデータをダウンロードできるテストサイト?が動作していないようで、少々、時間を食った。
この発展版としてボタンを押した際に、ウインドウに埋め込んだWebブラウザで該当のページを表示するサンプルを作成した。
なお、このセクションはサンプルプログラムのソースコードzipがないので、コードを逐次打ち込みながら進めた。
■セクション:デバッグ
このセクションでは基本的なデバッグの方法に関して勉強していく。VisualStudioに慣れている人にとっては既知の情報だ。
個人的には下記のショートカットをよく使っている。
[F5] デバッグ実行
[F9] デバッグポイントの設定/解除
[F10] ステップ実行
[F11] ステップイン
■次は
新しく追加された動画(デバッグから)を続ける。
勉強する講座は選び中、Webプログラミングやアルゴリズムの辺りから選ぼうかと思案中。
このコースへのリンク
Complete C# Masterclass
全般ランキング
タグ:Thread
2019年11月23日
【16日目】英語版Udemyで学ぶ!C#
進捗67%
日中用事で立て込んだため、投稿が遅れてしまった。
■セクション:Linq(続き)
なんかC#の勉強だか、SQLの勉強だか、わからなくなってきているが、DBから所定のデータを取り出す処理を学ぶ。
最後に、データの更新と削除を学んだ。
LINQでの操作は基本的にはinner joinの処理を行うようだ。outer joinのようにnullが入るようなケースは扱わないようだ。(もちろん工夫すれで同様のことはできるらしい)
■セクション:マルチスレッド
マルチスレッドの基礎から学んでいく。単一スレッドから開始し、マルチスレッド、スレッドプールへ進む。
スレッドプールはマルチスレッドのスレッド起動のオーバーヘッドを軽減し、リクエストをキュー管理し、スレッドを再利用しながら、効率的にスレッドを使用できる。
■次は
スレッドのセクションが終了し次第、新しく追加された動画をさかのぼってやっていく。
勉強する講座は選び中。
このコースへのリンク
Complete C# Masterclass
全般ランキング
タグ:LinQ
2019年11月22日
【15日目】英語版Udemyで学ぶ!C#
進捗65%
若干体調がまだすぐれない。
そんな中、今年のUdemyもブラックフライデーのセールが始まっている!
これから一週間、新たに勉強したい講座をいくつか探す予定だ。
■セクション:Linq(続き)
Linq で関連テーブルを使う方法を見ていく。複数のテーブルを持っている場合、それらの関係を把握しながら、データを取得すること必要になる。1つのテーブルからデータを取得すればいいのか、取得したデータをもとにさらに別のテーブルを検索することになるのか。ざっくり言って、大きな2つのユースケースがあると思われる。
1、データテーブルから1つの情報を取りたい場合
2、データテーブルから該当するすべての情報を取りたい場合
この2つのポイントをおさえながら、コードを見ると理解が深まる。
■次は
セクション:Linqの残りを終わらせる。
また、この一週間で新たに勉強する講座を3つくらい選ぶ。
このコースへのリンク
Complete C# Masterclass
全般ランキング
2019年11月21日
【14日目】英語版Udemyで学ぶ!C#
進捗64%
進捗は変わってないが少し進めた。若干体調不良のため、学習時間をあまりとれていない。
■セクション:Linq(続き)
LinqをSQLへ適用した場合に関して学んでいく。前回追加した"Linq to SQL tool"により、LINQ to SQLクラスが作成可能になっているので、これを使用する。追加したいテーブルをクラスにドラッグすることにより、ドラッグしたデータのクラスが簡単に作成できる。
このクラスを使用して、データの追加を行う。データ追加の際は、1要素ずつの追加やIEnumerableでリストを追加することもできる。
■次は
セクション:Linq で関連テーブルを使う方法を見ていく。
このコースへのリンク
Complete C# Masterclass
全般ランキング
タグ:LinQ
2019年11月20日
【13日目】英語版Udemyで学ぶ!C#
進捗64%
少しずつ進めているが、またもや新しいセクションが追加されたため、進捗が止まったように見える。
追加されたのはイベントとデリゲートのセクションである。
■セクション13:Linq
LinqをXMLへ適用した場合に関して学ぶ。XMLデータをパースして解釈し、Descendantsメソッドで指定した要素でIEnumerable
何も考えずにコードだけ書いても理解が進まないので、XDocumentなど周辺知識を調べながら進める。
次にSQLへ適用した場合に関して学ぶ。
新たにVisualStudio2019に”Linq to SQL tool”を追加を行った。また、新規にSQLのDB作成を行った。
■次は
セクション13 を続ける。LinqをSQLへ適用した場合に関して学んでいく。
それとセクションの追加でセクションの数字かわっているため、この表記に関して見直しをする必要がある。
このコースへのリンク
Complete C# Masterclass
全般ランキング
タグ:LinQ
2019年11月19日
【12日目】英語版Udemyで学ぶ!C#
進捗65%
順調。一つ一つの動画が15,16分程度で長めだがコツコツ進めている。
■セクション12:C#でデータベースを扱う(続き)
コントロールの情報の表示をリストボックスの選択状態に合わせて変更するようにし、動物園の動物データベースは完成した。■セクション13:Linq
Linqとは
Language-Integrated Queryの略語である。通常、SQLのQueryは文字列となるので、コンパイル時に時間はかからない半面、チェックがされなかったり、ほかの言語(XMLなど)の場合、別途、Queryを行うための別の言語を覚えなければならなかった。
LinqはQueryをメソッドやクラス、イベントで実現し、型チェックなどのコンパイル時のチェックが行われ、さらにSQL、XMLを統一的に扱うことができる。
対象とするデータ形式は各種DB、XMLのほかにも、IEnumerableやIEnumerable
IEnumerableリストのLinq
まずは独自でクラスを作成する。このクラスを要素としたIEnumerableリストを作成し、このリストへの操作を学ぶ。whereを使用して、条件に合った要素ののみの取り出しや、joinを使用して2つのリストからidの変換などを行い、該当の要素を出力したりを学んだ。また、orderby, oderby descendingを用いて、要素を順番に出力する方法や、新たにリストを作成する方法に関しても学んだ。
とりえず、foreachのループ処理を書かなくて済む、ということでコーディング量を減らすことができそう。
■次は
セクション13 を続ける。LinqをXMLへ適用した場合に関して学んでいく。
このコースへのリンク
Complete C# Masterclass
全般ランキング
タグ:LinQ
2019年11月18日
【11日目】英語版Udemyで学ぶ!C#
進捗62%
順調。のんびり進めている。
■セクション12:C#でデータベースを扱う(続き)
データベースとアプリケーションの機能的な接続を行う。データベースへのデータの追加、削除などだ。以前、SQLを学んだが、実際にアプリケーションと連携をコーディングするとあたらためて、SQLの使われ方などがわかって楽しい。
■次は
セクション12 を完了させて、セクション13Linqに入る。
このコースへのリンク
Complete C# Masterclass
全般ランキング
タグ:SQL
2019年11月17日
【10日目】英語版Udemyで学ぶ!C#
進捗61%
今、気が付いたのだが、受講を進めながら、進捗の進みが悪いと思っていたら、新たに動画が追加されている!全体では、10動画くらい、”セクション4:デバッグ”のセクションも追加されている。
なのでさかのぼって追加されている動画を学習する必要が出てきた。
■セクション12:C#でデータベースを扱う
データベースの作成。データベース自体はとても簡単なリストなのでGUIベースでエントリを入れながら進む。
データベース作成後、アプリケーションの作成に取り掛かる。起動時に作成したDBとの接続を行う。
2つリストボックスを配置し、データベースの内容を表示する。一方のリストボックスで選択されたエントリに関連付けたリストをもう一方のリストボックスに表示する。
この表示を行う際にSQLを使って、関連付けれたリストを取得する。
SQLに関しては、以前に学習しているため、抵抗なく進められるのが楽だ。ただし、使うSQL文はinner joinなどを使用していて若干複雑なものだ。
■次は
セクション12 を続け、エントリの追加、削除機能などを実装してアプリを完成させる。
並行して、追加された動画は先に進むにあたって支障がなさそうなので、前に進めながら、少しずつ消化していくことにする。
このコースへのリンク
Complete C# Masterclass
全般ランキング