C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 基底クラスと拡張クラスのプロパティ


(過去ログ 144 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■84267 / inTopicNo.1)  基底クラスと拡張クラスのプロパティ
  
□投稿者/ よっち (1回)-(2017/06/06(Tue) 13:57:21)

分類:[C#] 

初心者です。よろしくお願いします

 c# Vs community2017を使用しています。

namespace prog1
{
    public partial class Form1 : Form
    {
        public Form1() { InitializeComponent(); }
        private class class1_t {
            private bool[] cp = new bool[32];
            public bool Ent { get { return cp[9]; } set { cp[9] = value;  }}// 1
        }
        private class1_t class1 = new class1_t();

        private class class2_t : class1_t {
            public void pro1() {
                if (Ent) {...} else[...]//3
            }
        }
        private class2_t class2 = new class2_t();

        private string tra0(bool f) {
        	if (mg_mm(9, 1) == 0) { class1.Ent = true; } else { class1.Ent = false; }//2
        }
    }
}
基底クラス1で宣言したプロパティに2で変更した結果が、3の派生クラスで読み取れません。
どこかが間違っているのだと思いますが、わかりません。よろしくお願いします。

引用返信 編集キー/
■84269 / inTopicNo.2)  Re[1]: 基底クラスと拡張クラスのプロパティ
□投稿者/ ぽぴ王子 (42回)-(2017/06/06(Tue) 15:17:58)
ぽぴ王子 さんの Web サイト
No84267 (よっち さん) に返信

ずいぶんと読みにくいコードですが、何かの授業で行われている写経かなにかなんでしょうか。
結論から言うと、2で変更しているのは class1_t の型を持つ class1 の内容です。
3は class1_t から派生した class2_t 型のメソッドですが、変更した class1 は class1_t 型
なので3には影響を与えません。

派生クラスを勉強しているところなのだと思いますが、もう少し基礎的なところから考えてみると
いいんじゃないでしょうか。
引用返信 編集キー/
■84274 / inTopicNo.3)  Re[2]: 基底クラスと拡張クラスのプロパティ
□投稿者/ よっち (2回)-(2017/06/07(Wed) 09:50:09)
No84269 (ぽぴ王子 さん) に返信
回答ありがとうございます。

class1を静的クラスにすることでクリアしました。
 
お手数おかけしました。
解決済み
引用返信 編集キー/
■84276 / inTopicNo.4)  Re[3]: 基底クラスと拡張クラスのプロパティ
□投稿者/ Jitta (297回)-(2017/06/07(Wed) 10:22:29)
No84274 (よっち さん) に返信
> ■No84269 (ぽぴ王子 さん) に返信
> 回答ありがとうございます。
>
> class1を静的クラスにすることでクリアしました。

え?????
それが「目的」ならそれでいいけど、普通はそうしない。
まぁ、本人がそれでいいなら、良いけど。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -