プログラミング: 2014年11月アーカイブ

VB.NET の話。

いやあ、すんませんねえ。
学校では COBOL や FORTRAN 習ってた世代なもんで(^^;
オブジェクト指向は仕事の中でなんとなく覚えたんで、基礎が無いんですわ。

で、今回も悩んだわぁ。

HogeHoge という Public Class があったとして、この中で concon という Public Const を定義してる。

これを呼び出すのに、

Dim val As String = HogeHoge.concon 

ならいいんだけど、

Dim hoge As New HogeHoge
Dim val As String = hoge.concon 

とかすると、「インスタンスを経由する共有メンバー、定数メンバー、列挙型メンバー、または入れ子にされた型へのアクセスです。正規の式は評価されません。」という警告が出るんやけど、インスタンス経由で定数にアクセスしちゃ何でいかんのやろ???

もちろん、HogeHoge クラスで、

Private Cont pripri As String = "ほげほげ"
Public Property concon As String = pripri

とかしとけば、

Dim hoge As New HogeHoge
Dim val As String = hoge.concon 

みたいにインスタンス作って、それ経由で concon にアクセスできるわけだけど。

いや、何でインスタンス経由での共通定数へのアクセスが禁止されてるのかなって。それをオブジェクト指向マスターに教えてほしいだけなんでやんす。犯人はヤス。

<追記>
Fortran 2003 はオブジェクト指向なんだね(笑)時代だなあ・・・
20141106_errormsg.jpg

たははは・・・

まあ、タイトルのとおりなんだけど。

VB.NET で、あるデータテーブルにデータ行追加をしたいから、

ds.hoge_table.Addhoge_tableRow(dr)

したら、「この行は既に別のテーブルに属しています」ってエラー出ちゃって、ImportRow すれば通るんだけど、なんで AddRow できんの?ってあれこれ調べてたら・・・

単に、データ行を NewRow した時のデータセットが ds じゃなかっただけやったという・・・

これ、ds と同じ構造の tmpDs ってデータセットがいるんだけど、NewRow する時、そっちのメソッド使っとるやんけ・・・

Dim dr As HogeDataSetView.hoge_tableRow = tmpDs.hoge_table.Newhoge_tableRow

を、ちゃんと

Dim dr As HogeDataSetView.hoge_tableRow = ds.hoge_table.Newhoge_tableRow

にすればよかっただけやん。

こんな単純な間違いとは思わず、どういうことやねんと dr の中身を一個一個調べたり、多大な無駄な時間を使ってしまった(^^;
戒めとしてブログに書いておく(^^;;;

このアーカイブについて

このページには、2014年11月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2014年10月です。

次のアーカイブはプログラミング: 2014年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら