Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

大人の基礎C#【Niigat.NET 2015-10】

4,307 views

Published on

Niigata.NET 2015-10の発表資料です。

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks }} ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

大人の基礎C#【Niigat.NET 2015-10】

  1. 1. Microsoft MVP for .NET(C#) Since 2003 Mitsuhito Ishino
  2. 2.  名前  石野 光仁  @AILight  所属  Microsoft MVP for C# 2003 - 2014  Microsoft MVP for .NET 2015 –  コミュニティ ▪ Niigata.NET ▪ アイライト主催 ▪ http://www.ailight.jp
  3. 3.  セッションの目的  プログラミングの基礎を学ぶ  C#、大人の基礎を学ぶ  セッションのゴール  明日から実践できる知識を得る  C#を使って、ステップアップできるようになる
  4. 4. プログラミングの上達ためには、 何をしたらいい? 何が必要?
  5. 5. 1. 上手くなりたいと“強く“思うこと 2. うまくて、安くて、速い を目指す 3. 多読
  6. 6.  考えることが大切  日々の繰り返しでは、上達はしない  意識すると、少しずつ改善する  下手な苦手な部分が見えてくる ▪ 良くない部分を改善させるのが上達への近道 得意 苦手完璧
  7. 7.  うまい  バグがない  再利用する価値がある  安い  コードが“短く”書かれている  メモリの使用量が少ない 短い = メモリ使用量が少ない = 安い  速い  実行速度
  8. 8.  プログラムをとにかく読む  うまくなりたいと意識している事が大切 ▪ 自分の苦手な部分に注目する ▪ プログラムのバランスに注目する  機能でプログラムを見る ▪ 一行を読めても意味がない ▪ 前処理 ▪ 本処理 ▪ 後処理 前処理 本処理 後処理 ループ
  9. 9. 1. 上手くなりたいと“強く“思うこと 2. うまくて、安くて、速い を目指す 3. 多読  プログラムを書かなければ  バグが生まれない  メモリを使わない  CPUを使わない(最速) 繰り返す
  10. 10. C#で、ステップアップ
  11. 11. 1. 言語仕様を学ぶ 2. ランタイムを学ぶ 3. 短く書くようにする
  12. 12.  マイクロソフトが開発したマルチパラダイムプ ログラミング言語。強い型付け、命令型、宣 言型、手続き型、関数型、ジェネリック、オブ ジェクト指向の要素を持つ  設計者:アンダース・ヘルスバーグ
  13. 13. Visual Studio .NET Framework C# Visual Studio .NET (2002) .NET Framework 1.0 1.0 Visual Studio .NET 2003 .NET Framework 1.1 1.2 Visual Studio 2005 .NET Framework 2.0 2.0:ジェネリック、Nullable Visual Studio 2008 .NET Framework 3.0 .NET Framework 3.5 3.0:LINQ、型推論 、 拡張メソッド Visual Studio 2010 .NET Framework 4.0 4.0:dynamic 名前付引数 Visual Studio 2012 .NET Framework 4.5 5.0:async/await Visual Studio 2013 .NET Framework 4.5.1 6.0:自動プロパティの拡張 【 .NET Frameworkのバージョンを整理する】 http://www.atmarkit.co.jp/ait/articles/1211/16/news093.html
  14. 14.  iOS、Androidなど各種モバイル端末に向け クロスプラットフォーム開発機能の強化  .NET Framework 4.6、Windows 10対応  C# 6、Visual Basic 14、TypeScript 1.5  ASP.NET 5対応  Roslyn採用などによる言語解析やIDEサ ポートの改善
  15. 15.  まず、読みましょう!!  どこで読めるのか?  C:Program Files (x86)Microsoft Visual Studio 14.0VC#Specifications1041  CSharp Language Specification.docx
  16. 16.  .NET Framework に型パラメーターという概 念を導入します。型パラメーターを使用すると、 クラスやメソッドがクライアント コードで宣言さ れ、インスタンス化されるまで、1 つ以上の型 の指定を遅延させるクラスとメソッドを設計で きます。
  17. 17.  null 許容型値型が表せる値かnull 値を持つ ことが出来ます  例  Int:-2147483648 から 2147483647 null
  18. 18.  プログラミング言語において、読み書きのし やすさのために導入される構文であり、既に 定義されている他の構文の(人間にとってよ り理解しやすい)書換えとして定義されるもの のことである。
  19. 19.  暗黙的に型指定されたローカル変数宣言で は、宣言されるローカル変数の型は、その変 数の初期化に使用される式から推論されま す。
  20. 20.  統合言語クエリ (LINQ) は、強力なクエリ機 能を C# 言語の構文へと拡張する、Visual Studio 2008 で導入された機能のセットです。 LINQ には、データを照会したり更新したりす るための、容易に覚えることのできる標準的 なパターンが採用されており、あらゆる種類 のデータ ストアをサポートするようにテクノロ ジを拡張できます。
  21. 21.  拡張メソッドを使用すると、新規の派生型の 作成、再コンパイル、または元の型の変更を 行うことなく既存の型にメソッドを "追加" でき ます。 拡張メソッドは特別な種類の静的メ ソッドですが、拡張された型のインスタンス メ ソッドのように呼び出します。
  22. 22.  dynamic という新しい型が導入されています。 この型は静的な型ですが、dynamic 型のオ ブジェクトは静的な型チェックをバイパスしま す。 ほとんどの場合、object 型を使用する場 合と同様に機能します。 コンパイル時には、 dynamic として型指定された要素はあらゆる 操作をサポートすると見なされます。
  23. 23.  名前付き引数と省略可能な引数が導入され ています。 名前付き引数を使用すると、パラ メーター リストのパラメーターの位置ではなく、 パラメーター名に引数を関連付けることに よって、特定のパラメーターの引数を指定で きます。 省略可能な引数を使用すると、一部 のパラメーターの引数を省略できます。
  24. 24.  非同期プログラミングを使用することによって、 ボトルネックとなる幾つかの部分に、全体のパ フォーマンスが引きずられる事のないように改 良することができます。 しかしながら、従来の 非同期アプリケーションのプログラミングはその 性質から、コードの記述が難しく、デバッグでは 問題の再現が難しくなりがちで、またそのコード のメンテナンスも複雑になっていました。  C# では、非同期処理がより簡単に実現できま す。
  25. 25.  自動実装プロパティを使用することで、プロ パティ アクセサーに追加のロジックが必要な い場合は、プロパティをより簡潔に宣言でき ます。  C# 6 以降では、フィールドと同様に自動実装 プロパティを初期化することができます。
  26. 26.  Dispose パターンと呼ばれる、オブジェクトを破 棄するパターンによって、オブジェクトの有効期 間に順番が付けられます。 Dispose パターンは、 ファイルおよびパイプ ハンドル、レジストリ ハン ドル、待機ハンドル、アンマネージ メモリ ブロッ クのポインターなど、アンマネージ リソースにア クセスするオブジェクトでのみ使用されます。 こ れは、使用されていないマネージ オブジェクトの 解放にはガベージ コレクターが非常に有効です が、アンマネージ オブジェクトは解放できないた めです。
  27. 27. メモリ: Class Name public void TestMethod() { var className = new ClassName() className.Write() } ガベージコレクション OS資源: ガベージコレクション 待ち リソース占有 メモリ: Class Name OS資源:
  28. 28. メモリ: Class Name public void TestMethod() { var className = new ClassName() className.Write() className.Dispose() } ガベージコレクション OS資源: ガベージコレクション 待ち リソース占有 リソース解放 OS資源: リソース占有
  29. 29.  アセンブリ、モジュール、メンバー、パラメー ター、およびその他のマネージ コード内のエ ンティティに関する情報を、そのメタデータを 調べることで取得する型が含まれています。 これらの型は、イベントのフックやメソッドの 呼び出しなど、読み込んだ型のインスタンス を操作する目的にも使用できます。
  30. 30.  よくある話として、DBのテーブル設計で、1日 ~31日をフィールドとして持っている場合が ある  Date1, Date2, Date3, Date….., Date31
  31. 31. C#を上達させるには? 何をしたらいい? 何が必要?
  32. 32. 1. オブジェクト分析のトレーニング 2. 手続なプログラムからのステップアップ 3. 拡大解釈による破たん
  33. 33.  身近なものを分析する  テレビは?  エアコンは?  プログラミングでも同じ  想像できる物の設計図を書きだす作業 ▪ あるべき場所に、あるべきものを書く ▪ メンバ変数 ▪ メソッド ▪ プロパティ
  34. 34.  Class  エアコン  Property  電源状態(On/Off)  運転モード(冷房/暖房)  温度(xx℃)  Method  電源On()  電源Off ()  Set運転モード(冷/暖)  Set温度(xx)
  35. 35.  手続なプログラムの問題点  手順を正確に書く必要がある ▪ 前処理を忘れるとバグになる(初期化ミス) ▪ 順番を間違えるとバグになる  宣言なプログラムを検討する  使いたい機能を宣言する(一行プログラミング) ▪ 前処理をしない ▪ 順番を入れ替えてもバグになら無い
  36. 36. 手続なプログラム  LinkLabel_Click  TextBox.ShowCalcDialog  TextBox_KeyDown  If (e.key == Keys.F4) ▪ TextBox.ShowCalcDialog  TextBox_Leave  TextBox.CloseCalcDialog 宣言なプログラム  Set電卓機能 (LinkLabel, TextBox) 金額
  37. 37.  入力の条件を、無限大まで拡大する  引数の数、パラメータ数  値のサイズ  ・・・なんでも  破たん状況を見て、よりベターな選択をする  状況の良い方を選ぶことで、 間違いの少ないプログラムへ
  38. 38. C#を上達させるには? 何をしたらいい? 何が必要?
  39. 39.  向上心を忘れずに!!  短いプログラムを心がけよう!!  変数名や関数名を短くするってことではない  C#を使って、ステップアップしよう!!
  40. 40.  Visual Studio  トップページ https://www.microsoft.com/ja-jp/dev/default.aspx  Visual Studio Community (無償) https://www.microsoft.com/ja- jp/dev/products/community.aspx  Visual Studio Code (mac版 無償) https://www.visualstudio.com/products/code-vs
  41. 41. http://www.ailight.jp

×