C#問題集をGitBookにまとめてます

こんにちは。

先日、C#の問題を投稿していましたが、良い機会なのでGitBookでまとめることにしました。

https://223n.gitbook.io/csl/

この問題集は、自分がC#の勉強をする際につまづいたり、ほかの方に教えていた際に困っていたところなどをメモしていたのを問題集にしています。

なるべく細かい解説を入れるようにしていますが、誤っていたらGitHubのリポジトリにIssueを送っていただければと思います。

今後もよろしくお願いします。

(練習問題)StringBuilderでの文字列生成

問題

次の仕様で出力されるソースコードとなるように、選択肢から4つのコードを選び正しい順番に並べなさい。

仕様

  • 1行目に文字列「あいうえお」、2行目に「かきくけこ」を出力するための文字列を生成します。
  • 1行目と2行目は、改行で区切られます。

選択肢

  • sb.Append("/l");
  • sb.Append("かきくけこ");
  • sb.Append("/t");
  • sb.AppendLine();
  • sb.Append("あいうえお");
  • sb.Append(String.Empty);
  • var sb = new StringBuilder();

(練習問題)パフォーマンス・カウンタ

問題

次のソースコードは、パフォーマンスカウンタを作成するCreateCountersメソッドのソースコードです。

なお、左端の数字は参考のために追加した行数です。

11行目にCounterAがWindowsパフォーマンス・モニタ(PerfMon)で使用できるように適切なコードを1つ選択しなさい。

ソースコード

01 void CreateCounters() {
02     if (!PerformanceCounterCategory.Exists("Contoso")) {
03         var counters = new CounterCreationDataCollection();
04         var ccdCounterA = new CounterCreationData{
05             CounterName = "CounterA",
06             CounterType = PerformanceCounterType.SampleFraction;
07         };
08         counters.Add(ccdCounterA);
09         var ccdCounterB = new CounterCreationData{
10             CounterName = "CounterB";
11
12         };
13         counters.Add(ccdCounterB);
14         PerformanceCounterCategory.Create("Contoso", "Help string", PerformanceCounterCategoryType.MultiInstance, counters);
15     }
16 }

選択肢

  • A. CounterType = PerformanceCounterType.RawBase;
  • B. CounterType = PerformanceCounterType.AverageBase;
  • C. CounterType = PerformanceCounterType.SampleBase;
  • D. CounterType = PerformanceCounterType.CounterMultiBase;

(練習問題)GACに登録する方法

問題

あなたは、複数のアプリケーションで使用されるアセンブリを開発しています。

グローバル・アセンブリ・キャッシュ(GAC)にアセンブリをインストールする方法として正しいものを2つ選びなさい。

選択肢

A. アセンブリ登録ツール(regasm.exe)を使用してアセンブリを登録し、GACにアセンブリをコピーする。

B. ストロング名ツール(sn.exe)を使用してGACにアセンブリをコピーする。

C. Microsoft登録サーバー(regsvr32.exe)を使用してGACにアセンブリを追加する。

D. グローバル・アセンブリ・キャッシュ・ツール(gacutil.exe)を使用してGACにアセンブリを追加する。

E. Windowsインストーラー2.0を使用してGACにアセンブリを追加する。

(練習問題)適切なアクセス修飾子

問題

あなたは、Carというクラスを開発しています。

Carクラスには、GetStatusメソッドというメソッドが含まれています。

GetStatusメソッドが、Carクラスから派生する任意のクラスからは使用できず、Carクラス内でのみ使用できる必要があります。

GetStatusメソッドに適切なアクセス修飾子を1つ選びなさい

選択肢

A. public

B. internal

C. private

D. protected internal

E. protected

(練習問題)分岐処理

問題

次の仕様を満たすソースコードを完成させるため、 [ A ] から [ D ] に適切なものを選択しなさい。

また、 [ A ] から [ D ] で、同じ選択肢を選択することもできます。

仕様

  • GetResponseメソッドは、char型のパラメータを受け取り、string型を返すメソッドです。
  • 検索が成功した場合は、対応した文字列を返します。
  • 検索に失敗した場合は、「invalid choice」を返します。

ソースコード

public string GetResponse(char letter) {
    string response;
    [ A ] (letter) {
        [ B ] 'a':
            response = "alpha";
            break;
        [ C ] 'm':
            response = "mike";
            break;
        [ D ]:
            response = "invalid choice";
            break;
    }
    return response;
}

選択肢

  • switch
  • if
  • case
  • else
  • default