プログラミング演習Ⅲ(2023)

【課題10-03】クラスの定義

プロジェクトタイプC#コンソールアプリ※
プロジェクト名Prac_10_03
ソリューション名PET10
ターゲットフレームワーク.NET 6.0 (長期的なサポート)
最上位レベルのステートメントを使用しない使用しない(チェックオン)

【課題9-03】で作成した,自己紹介関する情報を表すクラスIntroductionInfoを 少し改造する設問である.

IntroductionInfoクラスをWPFアプリで扱いやすいようにBindableBaseクラス(Prism.Mvvm)から派生させる形に変更せよ.

注意
  • 必ずIntroductionInfoクラスの仕様を読むこと!
  • この設問のプロジェクトでは, NuGetを使って「Prism.Core」パッケージをインストール する必要がある.
  • この設問ではクラスの定義のみを行えばよい(Main()で何かをする必要はない).
  • この設問ではコンソール(黒画面)への表示処理を作る必要はない

プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs全体を上書きすること).

テンプレートコード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
using Prism.Mvvm;

namespace Prac_10_03
{
    /***********************************/
    /*                                 */
    /*              空欄1              */
    /*   IntroductionInfoクラスの定義   */
    /*                                 */
    /***********************************/

    internal class Program
    {
        static void Main(string[] args)
        {
        
            // 長いので省略
            
        }// end of Main()

    }// end of class Program
}// end of namespace

Main()メソッドは長いので別に掲載している.以下のボタンをクリックしてコードをコピーし,Main()メソッドを上書きすること.

正しく実装できた場合,実行結果は_のようになる.

クラスIntroductionInfoのチェック開始...
  ( 1/17) クラスの定義... OK
  ( 2/17) クラスが継承しているクラス(Prism.Mvvm.BindableBase)... OK
  ( 3/17) クラスが実装しているインターフェースの数... OK
  ( 4/17) クラスが実装しているインターフェース... OK
  ( 5/17) フィールドの数... OK
  ( 6/17) フィールドstudentIDの定義... OK
  ( 7/17) フィールドnameの定義... OK
  ( 8/17) フィールドmottoの定義... OK
  ( 9/17) フィールドbirthdayの定義... OK
  (10/17) プロパティ・インデクサの数... OK
  (11/17) プロパティStudentIDの定義... OK
  (12/17) プロパティNameの定義... OK
  (13/17) プロパティMottoの定義... OK
  (14/17) プロパティBirthdayの定義... OK
  (15/17) コンストラクタの数... OK
  (16/17) デフォルトコンストラクタの定義... OK
  (17/17) デフォルトコンストラクタの動作... OK
Congratulations! クラスの定義に関する全てのテストをパスしました.
実行結果

IntroductionInfoクラスの仕様

表示するにはここをクリック
名前
IntroductionInfo
種別
クラス
派生元クラス
Prism.Mvvm.BindableBase
フィールド・プロパティ・インデクサの仕様
メンバ名種別アクセス修飾子備考
studentIDフィールドstringprivate-
nameフィールドstringprivate-
mottoフィールドstringprivate-
birthdayフィールドDateTimeprivate-
StudentIDプロパティstringpublic学籍番号.データの実体としてはstudentIDフィールドを使用する.読み書き可能.書き込み時にはSetProperty()メソッドを使って値の変化を通知する.
Nameプロパティstringpublic氏名.データの実体としてはnameフィールドを使用する.読み書き可能.書き込み時にはSetProperty()メソッドを使って値の変化を通知する.
Mottoプロパティstringpublic好きな言葉.データの実体としてはmottoフィールドを使用する.読み書き可能.書き込み時にはSetProperty()メソッドを使って値の変化を通知する.
BirthdayプロパティDateTimepublic誕生日.データの実体としてはbirthdayフィールドを使用する.読み書き可能.書き込み時にはSetProperty()メソッドを使って値の変化を通知する.
メソッドの仕様

IntroductionInfoクラスは明示的に宣言されたインスタンスメソッドを持たない.

コンストラクタの仕様

IntroductionInfoクラスはコンストラクタを1個持つ( 明示的に定義しなくてよい ).

  • コンストラクタ1
    • アクセス修飾子:public
    • 引数
      • なし(デフォルトコンストラクタ)
    • 備考
      • 注意: ユーザー定義のコンストラクタを一つも定義しなければ,デフォルトコンストラクタは自動的に定義される.
表示するにはここをクリック : 閉じる
Last updated on 2024-01-09
Published on 2024-01-09

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.