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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.7600 の関連記事表示

<< 0 >>
■7600  Re[8]: Excelのバージョンの違いについて
□投稿者/ 魔界の仮面弁士 -(2006/10/18(Wed) 16:32:39)

    分類:[C#] 

    No7591に返信(mimaさんの記事)
    > すみません、どうも確認したらしているようです。。
    「遅延バインド」だとしたら、コンパイル時に型の違いが
    判断される事は無いでしょうし。(^^;


    > うーん、前任者から遅延バインドと聞いていたんですが??
    「基本的には事前バインド、一部遅延バインド」なのかも。

    で、Excel のインターフェイスは、バージョン間でバイナリ互換性が薄いので、
    事前バインドするなら、『それぞれのバージョン用にアセンブリを分ける』か、
    あるいは『すべて遅延バインド』にするか、いずれかの選択肢となるでしょう。

    # VBA や VB6 であれば、さほど問題の無いところなんですけれどね…。
    # C# からだと、Excel の違いを吸収するのは大変かも。



    No7563 への追記
    > Application オブジェクトの Version プロパティの結果を元にして
    このプロパティの戻り値は、数値以外の文字列を返すことがあるので要注意。
    http://support.microsoft.com/kb/232652/en-us
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7600  変数の変化の取得方法
□投稿者/ しょうた -(2007/09/11(Tue) 09:19:23)

    分類:[C#] 

    はじめまして、しょうたと申します。
    C#はかなり初心者です。ですから、こんなことができるのかがよくわかりません。

    内容は、下記のような配列を用意しておいて、任意の要素に値の代入があったときに、
    それをトリガとして、変更のあった要素とその値を使って処理を開始したいのです。

    int[] array = new int[5000];

    タイマーイベントを使って、常に値を比較して変化をみなければいけないのでしょうか?
    配列の要素数は何千単位で値の変化はリアルタイムで取得したいので、比較をしていると
    プログラムが重くなりそうで心配です。

    調べようといろいろ検索しているのですが、どのように調べればよいかもわからなくて困っています。
    解決方法、アドバイス等なんでも構いませんので、お解りになるかたがいらしゃったらお教えいただけないでしょうか?

    宜しくお願い致します。


親記事 /過去ログ19より / 関連記事表示
削除チェック/

■7601  Re[1]: 変数の変化の取得方法
□投稿者/ れい -(2007/09/11(Tue) 09:31:24)
    No7600 (しょうた さん) に返信
    > 内容は、下記のような配列を用意しておいて、任意の要素に値の代入があったときに、
    > それをトリガとして、変更のあった要素とその値を使って処理を開始したいのです。
    > タイマーイベントを使って、常に値を比較して変化をみなければいけないのでしょうか?

    配列にいつ入るか、全くわからないのでしたら、
    毎回全て比較するしかありません。
    勿論重いですし、よくないと思います。

    普通はいつ入るかわからないことはありません。

    フラグを用意しておいて、フラグが経っていたら配列を調べなおすとか。
    そもそも配列に入れる段階で、「どこに」「なにを」入れるのか、別に記録しておいてもいいですし。

    ですので、前提が間違っていると思います。
    普通はそんな状況にならないようにプログラムを組みます。
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/

■7602  Re[2]: 変数の変化の取得方法
□投稿者/ 囚人 -(2007/09/11(Tue) 09:45:51)
    配列のままだと多分無理なので、ラップしたクラスを。次にのように、イベントの引数としてインデックスを渡せば良いかと。
    
    class ArrayWithEvent
    {
    	private int[] _array = new int[5000];
    
    	public event HogeEventHandler HogeEvent;
    
    	public int this[int index]
    	{
    		get{ return _array[index]; }
    		set
    		{
    			if(HogeEvent != null)
    			{
    				HogeEvent(this, new HogeEventArgs(index));
    				_array[index] = value;
    			}	
    		}
    	}
    }
    
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/

■7603  Re[3]: 変数の変化の取得方法
□投稿者/ 中博俊 -(2007/09/11(Tue) 10:44:40)
>
    それINotifyPropertyChangedの実装そのものだし>囚人
    一般的な実装があるので、それを実装するなりしてください。
    一番いいのは、何も考えずにObservableCollectionを使うことです。
    #スペルミスしてたらフォローよろしく>どなたか
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/

■7604  Re[4]: 変数の変化の取得方法
□投稿者/ しょうた -(2007/09/11(Tue) 11:28:37)
    れいさん、囚人さん、中博俊さん 投稿ありがとうございます。

    どれがよいかよくわからないので、内容を参考に調べてみます。

    その結果はまた報告させていただきます。
    では、しばらく調べものをしますので…

    ありがとうございました。
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/

■7605  Re[5]: 変数の変化の取得方法
□投稿者/ 囚人 -(2007/09/11(Tue) 13:56:45)
    >それINotifyPropertyChangedの実装そのものだし>囚人

    だと、プロパティに変化があったことしか分からないので、ちょっと違うかなと思います。インデクサは無理じゃないかな。


    >一番いいのは、何も考えずにObservableCollectionを使うことです

    だと、WPF 依存みたいな感じでちょっと嫌ですねぇ。(名前空間はそうでないけど、アセンブリが…)


    やっぱり、INotifyPropertyChanged とか ObservableCollection は UI が絡んでナンボって気がしますね。
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/

■7607  Re[4]: 変数の変化の取得方法
□投稿者/ れい -(2007/09/11(Tue) 14:56:40)
    No7603 (中博俊 さん) に返信
    > 一番いいのは、何も考えずにObservableCollectionを使うことです。

    なんで配列を監視しなきゃならないのかわからないので、
    「一番いい」のは何かわからないと思いますねぇ。
    パフォーマンスも気にしているようだし。

    そもそも何千単位の要素をもつ配列の監視をしなきゃいけないなんていうこと自体が変だと思います。

    > やっぱり、INotifyPropertyChanged とか ObservableCollection は UI が絡んでナンボって気がしますね。

    ちょっと同意。
    私は「配列の監視->なんか変だよ」と言ってるのに、
    UIが絡んだりすればコレクションの監視ぐらい全然OKと思ってしまうのはなぜなんでしょう:D
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/

■7608  Re[5]: 変数の変化の取得方法
□投稿者/ 中博俊 -(2007/09/11(Tue) 15:07:49)
>
    UIからまなくても全然問題ないとおもいますけど。
    ちなみに、コレクションに入れる物の一部の変化も受け取りたければCpllectionがINotifyPropertyChanged.PropertyChangedイベントをフックして、エスカレーションします。
記事No.7600 のレス /過去ログ19より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -