- PR -

クラスに定義したFunctionの呼出方法

1
投稿者投稿内容
さき
会議室デビュー日: 2007/03/11
投稿数: 9
投稿日時: 2007-03-11 18:01
初心者です。初歩的過ぎる事なのですが、どうか分かり安く教えてやって下さいますでしょうか。
こういった内容がなかったもので、新しく書き込ませて頂きましたが、重複していたらすみません。

VS .NET 2003でVBを使用してASP.NETのWebアプリケーションを作成しました。
基本的にはWebで操作する画面なのですが、将来を考えて共通する関数をクラスで(テスト的に)作成してみました。
ASPのコードの中で他で作成した自作のクラスの中に記述されているFunctionを呼び出そうとするとエラーになってしまいます。

元になるWebページのソリューションエクスプローラでは参照設定でクラスのDLL(?)を参照指定しており、ビルドをした結果もエラーにはなりませんが、実際に動かすとエラーになるといった状況です。

こういった使い方が良いのか否かも分かっておりませんが、これを正しくやるためにはどのような記述をすれば良いのでしょうか?

ちなみにクラスの中のFunctionの役割は4桁の年号を受け取って、うるう年であれば1を、違えば0を返す・・・と言っただけのものです。

(簡単な)サンプル的なものをご提示頂けると、非常に助かります!
どうぞよろしくお願いいたします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2007-03-11 19:00
どんなエラーが出てますか?
その共通関数は静的関数ですか?(Shared)
静的関数じゃない場合、きちんとインスタンスを生成してますか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-03-11 19:24
本題と関係のないところを突っ込ませてください。

引用:

さきさんの書き込み (2007-03-11 18:01) より:

ちなみにクラスの中のFunctionの役割は4桁の年号を受け取って、うるう年であれば1を、違えば0を返す・・・と言っただけのものです。


なぜ、System.DateTime.IsLeapYear メソッドを使わないのでしょうか?
1 と 0 という戻り値も違和感がありますよ。(System.Boolean 型を使うべきです)

# 本題の方は、お任せします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-03-12 06:02
自作のクラスはどこに置いてありますか?
ASP.NETの場合、DLLはbinフォルダに置かないといけないですけど、その点大丈夫でしょうか。
さき
会議室デビュー日: 2007/03/11
投稿数: 9
投稿日時: 2007-03-24 13:41
大変おそくなりました!エラーは次のような感じで出ています。
---------------------------------------------------------------------
オブジェクト参照がオブジェクト インスタンスに設定されていません。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。

ソース エラー:
行 75: rc = cf.uru_chk("2004") '関数化テスト。書き込みテストです。
---------------------------------------------------------------------

また、DLLはマイプロジェクトというフォルダに勝手に(?)作成されていたので、参照設定はそのフォルダ以下にあるBINフォルダ内を指定しています。

インスタンスの作成の仕方・・・というのがピンと来ていないのですが、下記のような書き方の事を言うのでしょうか?私はそう書いています。

Dim cf As ClassLibrary1
cf = New ClassLibrary1
rc = cf.uru_chk("2004") '関数化テスト

違いますでしょうか?? ぜんぜん分からず済みませんm(__)m


あと、System.DateTime.IsLeapYear メソッドって言うのを教えて頂いた方、ありがとうございました。それでも、まだピンと来ていないのですが。

ですが、今回はうるう年を・・・というのが目的ではなく、関数を別のファイルで作成して、それを呼び出したい(他の人と共有したい)・・・と言う事になります。

よろしくお願いいたします。





[ メッセージ編集済み 編集者: さき 編集日時 2007-03-24 13:42 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-03-24 21:41
NullReferenceExceptionは、いずれかの変数がどのインスタンスも指していない(つまりNothingを指している)時にそのメンバを呼び出そうとすると発生します。

VisualStudio使ってますよね。
デバッガで止めて、何がNothingなのか確認してください。
さき
会議室デビュー日: 2007/03/11
投稿数: 9
投稿日時: 2007-03-28 18:31
ありがとうございます。デバッグを試してみます!
1

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