- PR -

C# get,setでアクセス演算子の異なるプロパティの定義

1
投稿者投稿内容
餅宮餅吉
ベテラン
会議室デビュー日: 2005/03/04
投稿数: 57
お住まい・勤務地: 月餅のうまい店の隣
投稿日時: 2005-06-27 20:24
始めまして、もちもちと申します。

C#を利用していて、少し気になることがあり質問させて頂きます。
get,setでアクセス演算子の異なるプロパティの定義をしたいと思っているのですが、
コンパイル時に「クラス 'クラス名' に'プロパティ名' の定義が既に含まれています。」
というエラーで定義できませんでした。

やりたいことは、プロパティで値を設定出来るのは自クラスもしくは派生クラスとし、
他のクラスからは値の取得のみを行わせようと考えています。

もし仮にこれが定義できないなら、プロパティというのはかなり中途半端に思えますが、
皆様はどうお考えでしょうか?

以上、よろしくお願いします。

以下にサンプルで作ってみたコードを記します。
using System;

public class Sample {
int _val;
public static void Main(string[] args) {
Sample s = new Sample();
s.Foo =10;
Console.WriteLine(s.Foo);
}
public int Foo {
get {
return _val;
}
}
protected int Foo {
set {
_val = value;
}
}
}
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2005-06-27 20:36
私もたまにそういう需要があります。
が、現在のC#ではできないようです。
もうすぐ出るC#2.0ではget,setで異なるアクセス修飾子を設定することができます。
ので、現段階ではsetはメソッドにするか、C#2を待つしかないと思います。
117
ベテラン
会議室デビュー日: 2005/05/09
投稿数: 94
お住まい・勤務地: 大阪府
投稿日時: 2005-06-27 20:37
http://www.gotdotnet.com/team/ja/team/csharp/learn/faq/default.aspx#accessmodifier


_________________
# Future Is On Fire !
餅宮餅吉
ベテラン
会議室デビュー日: 2005/03/04
投稿数: 57
お住まい・勤務地: 月餅のうまい店の隣
投稿日時: 2005-06-27 22:18
karajan様、117様、ご返事ありがとうございました。
現状ではできないのですね。C#2.0に期待したいと思います。

本日はありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)