狠狠撸

狠狠撸Share a Scribd company logo
若気の至りを生产清算する。




       大黒健司(迟飞颈迟迟别谤:蔼诲补颈办辞办耻1976)
自己紹介

? 大黒健司(だいこく?けんじ)
  →十中八九、「おおぐろ」で間違われます。
? 言語経験
  C→VB→(中略)→アセンブラ→C→VC#(今ココ)
? C#の出会いは2005年ごろ(当時は勉強する時間
  すらろくに取れなかった)
? 本格勉強は2009年秋以降、今の常駐先に就職し
  てから。C#使い始めてから約1年半くらい。
? ようやく基本的なところはC#2.0~3.0の狭間まで
  追いついてこれた感じ。

                               P-02
今日のお題

? 若気の至りを生産……ではなく、清算するという
  ことで……
? DB操作あたりとか、クラスの初期化とか。
? Cやアセンブラでしか生活していなかった新
  米.NET開発者が他の言語から見て、C#すげー楽
  だと感じたものを一部紹介します。




                             P-03
DB操作編

? 慣れない頃はDB操作大変でした。
? どのくらい大変かというと……SqlClientを直に制
  御していました。
  DBOpeClass dbope = new DBOpeClass(); コントラクト内でSQLインスタンス作成と
  SqlDataReader selectData;
                                       か。
  string sql;
                                             try
  try                                        {
  {                                             // インスタンスの作成
      // DBオープン                                 sqlCn = new SqlConnection();
      dbope.Open();                          }
      dbope.StartTransaction();              catch (Exception)
                                             {
                                            処理中にSQL文を作って、コマンド発行し
      // 比較結果を抽出する。
                                                LogClass.FileOut("DBエラー:DB接続失敗
                                            たりとか。
      sql = "select * from 比較結果;";
                                             ");
                                   挙句の果ては、データをわざわざReadし
      selectData = dbope.ExecuteSelect(sql); }
                                   たりとか。
      while (selectData.Read())              ~以下略~

                                                                            P-04
今だと……

? 今だとLINQとかですかね?
? C#2.0以降だと……DataSetで必要最低限のメソッ
  ドは自動生成されるから気楽です。
? TableAdapterを用意しておけば、select文も1行で
  データももらえてスッキリできます。
  DataGridViewにも渡しやすいし。
  DataResultView.DataSource = TableAdapter1.GetData();




                                                         P-05
変数、クラス編

? C#2.0までの曲者として、クラスの初期化があり
  ました。クラス名が長すぎると泣けちゃいます。
? こんな感じで。
 振込管理システムServerDataSet.比較結果DataTable retdb
   = new 振込管理システムServerDataSet.比較結果DataTable();


? var変数のおかげで簡潔になりました。
 振込管理システムServerDataSet.比較結果DataTable retdb
   = new 振込管理システムServerDataSet.比較結果DataTable();
                           ↓
 var retdb = new 振込管理システムServerDataSet.比較結果DataTable();




                                                          P-06
制御文

? あとは簡単なif文とかも短縮化できちゃいますよ
  ね。
   if (encoding.Equals( Encoding.Default ))
   {
       reader = new StreamReader( path, Encoding.Default );
   }
   else
   {
      reader = new StreamReader( path, Encoding.GetEncoding( "utf-8" ) );
   }

? エンコードの判定も?:演算子のおかげでusing
  内に書けるようになりました。
   using (var reader = encoding.Equals( Encoding.Default )
                ? new StreamReader( path, Encoding.Default )
                : new StreamReader( path, Encoding.GetEncoding( "utf-8" ) ))


                                                                               P-07
C#を使い始めて1年半くらい経ったけど……

? まだまだ覚えたい便利なものが多い!
  LINQとか。
? まー、覚えたテクニックというかそういうのが
  少ないのも現状。
? もっと覚えて、楽できるように頑張ろう!




? 以上、ありがとうございました!


                          P-08

More Related Content

若気の至りを精算する

  • 1. 若気の至りを生产清算する。 大黒健司(迟飞颈迟迟别谤:蔼诲补颈办辞办耻1976)
  • 2. 自己紹介 ? 大黒健司(だいこく?けんじ) →十中八九、「おおぐろ」で間違われます。 ? 言語経験 C→VB→(中略)→アセンブラ→C→VC#(今ココ) ? C#の出会いは2005年ごろ(当時は勉強する時間 すらろくに取れなかった) ? 本格勉強は2009年秋以降、今の常駐先に就職し てから。C#使い始めてから約1年半くらい。 ? ようやく基本的なところはC#2.0~3.0の狭間まで 追いついてこれた感じ。 P-02
  • 3. 今日のお題 ? 若気の至りを生産……ではなく、清算するという ことで…… ? DB操作あたりとか、クラスの初期化とか。 ? Cやアセンブラでしか生活していなかった新 米.NET開発者が他の言語から見て、C#すげー楽 だと感じたものを一部紹介します。 P-03
  • 4. DB操作編 ? 慣れない頃はDB操作大変でした。 ? どのくらい大変かというと……SqlClientを直に制 御していました。 DBOpeClass dbope = new DBOpeClass(); コントラクト内でSQLインスタンス作成と SqlDataReader selectData; か。 string sql; try try { { // インスタンスの作成 // DBオープン sqlCn = new SqlConnection(); dbope.Open(); } dbope.StartTransaction(); catch (Exception) { 処理中にSQL文を作って、コマンド発行し // 比較結果を抽出する。 LogClass.FileOut("DBエラー:DB接続失敗 たりとか。 sql = "select * from 比較結果;"; "); 挙句の果ては、データをわざわざReadし selectData = dbope.ExecuteSelect(sql); } たりとか。 while (selectData.Read()) ~以下略~ P-04
  • 5. 今だと…… ? 今だとLINQとかですかね? ? C#2.0以降だと……DataSetで必要最低限のメソッ ドは自動生成されるから気楽です。 ? TableAdapterを用意しておけば、select文も1行で データももらえてスッキリできます。 DataGridViewにも渡しやすいし。 DataResultView.DataSource = TableAdapter1.GetData(); P-05
  • 6. 変数、クラス編 ? C#2.0までの曲者として、クラスの初期化があり ました。クラス名が長すぎると泣けちゃいます。 ? こんな感じで。 振込管理システムServerDataSet.比較結果DataTable retdb = new 振込管理システムServerDataSet.比較結果DataTable(); ? var変数のおかげで簡潔になりました。 振込管理システムServerDataSet.比較結果DataTable retdb = new 振込管理システムServerDataSet.比較結果DataTable(); ↓ var retdb = new 振込管理システムServerDataSet.比較結果DataTable(); P-06
  • 7. 制御文 ? あとは簡単なif文とかも短縮化できちゃいますよ ね。 if (encoding.Equals( Encoding.Default )) { reader = new StreamReader( path, Encoding.Default ); } else { reader = new StreamReader( path, Encoding.GetEncoding( "utf-8" ) ); } ? エンコードの判定も?:演算子のおかげでusing 内に書けるようになりました。 using (var reader = encoding.Equals( Encoding.Default ) ? new StreamReader( path, Encoding.Default ) : new StreamReader( path, Encoding.GetEncoding( "utf-8" ) )) P-07
  • 8. C#を使い始めて1年半くらい経ったけど…… ? まだまだ覚えたい便利なものが多い! LINQとか。 ? まー、覚えたテクニックというかそういうのが 少ないのも現状。 ? もっと覚えて、楽できるように頑張ろう! ? 以上、ありがとうございました! P-08