- PR -

Point.x はアクセスできない保護レベルと言われてしまいます

1
投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-22 11:26
以下のコードの注記箇所にて次のエラーになります。
「'System.Drawing.Point.x' はアクセスできない保護レベルになっています。」

コード:

private void PrintPage(Graphics g) {
  Point p = this.PagePrintPointGet();
  this.LabelPrint(g, p);
}

private Point PagePrintPointGet() {
  Point r = new Point();
  -----省略------
  return r;
}

private void LabelPrint(Graphics g, Point p) {
  this.StringPrint(g, p.x + 5, p.y + 5, "hoge"); ←注記:p.x, p.yでエラー!!!
}


ヘルプを見るとアクセス修飾子の問題と書いてありましたが、この辺りは普段注意
して書いているだけに今回の問題とは違う気がします。

以下の部分が気になるのですが、/out フラグは意識的につけるものなのでしょうか?
というか、これも外している希ガス・・・

引用:

Visual C# リファレンスより・・・

コンパイラ エラー CS0122
 :
省略
 :
この原因の 1 つとして、フレンド アセンブリの出力先に対し、/out コンパイラ フラグが省略されていることが考えられます (以下の例には示されていません)。詳細については、「フレンド アセンブリ (C# プログラミング ガイド)」および「/out (出力ファイル名の設定) (C# コンパイラ オプション)」を参照してください。

burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-05-22 11:38
普通にPoint.xはprivateのメンバだからじゃないですかね。
プロパティ経由でアクセスすればOKかと。
Point.X ←大文字
masa
大ベテラン
会議室デビュー日: 2004/10/28
投稿数: 161
投稿日時: 2006-05-22 11:38
小文字だからかな?

Point の内部フィールドには x が定義されているようです。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-22 11:40
すみません。疲れが溜まっているようです(__;)
愚問にお答えいただいてありがとうごいました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-22 11:45
引用:

R・田中一郎さんの書き込み (2006-05-22 11:26) より:

以下のコードの注記箇所にて次のエラーになります。
「'System.Drawing.Point.x' はアクセスできない保護レベルになっています。」


そのままですよ。
'X' ではなく 'x' になっている、'Y' ではなく 'y' になっているのが敗因です。(;^-^)

Point 構造体は、非公開メンバに、'x' と 'y' というメンバを持っているんですよね。
だから、こういう本質に気付きにくいコンパイル エラーが起きたのですね。

# 色々追記していたら出遅れた。orz

[ シグネチャを削除 ]

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-10-12 11:45 ]
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-22 13:07
引用:

R・田中一郎さんの書き込み (2006-05-22 11:40) より:
すみません。疲れが溜まっているようです(__;)
愚問にお答えいただいてありがとうごいました。



誤:愚問にお答えいただいてありがとうごいました。
正:愚問にお答えいただいてありがとうございました。
1

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