ふらっとC#,C♯,C#( ..
784:783
08/10/08 08:46:30
何度もすいません。
最終的に、クラスにしてKey、Valueのプロパティを持ち、その都度
インスタンスを生成する事で上手くいきました。
今の使い方ではあまりパフォーマンスにも影響は無さそうですが
今後の事を考えてクラスで運用します。
また、値型、参照型の違いが何となく分かった気がします。
有り難う御座いました。
785:デフォルトの名無しさん
08/10/08 10:53:02
C#ってJAVAと同じなの?
786:デフォルトの名無しさん
08/10/08 10:54:25
釣られないぞ
787:デフォルトの名無しさん
08/10/08 11:30:38
釣られてみる
あえて言おう!違うと!
まず名前が違う!これだけでじゅうぶんだ。
788:デフォルトの名無しさん
08/10/08 11:34:19
君と私は名前が違うけど同じ人間だよねえ。
789:デフォルトの名無しさん
08/10/08 11:34:30
JavaとJ++とJ#が同じかどうかとなると哲学なのだが
790:タイマーについて
08/10/08 11:35:13
質問です。タイマーについてですが、普通のWindows.Formsのタイマーを使って
います。
タイマにより一定時間間隔で処理を行うには?(Windowsタイマ編) − @IT
URLリンク(www.atmarkit.co.jp)
ここに書いてあるようなバグはFramework2.0以降は解決されているようでしたが、
タイムアップのイベントが立つたびに、I/Oのメモリー消費がちびっとずつ増えていく
ようなのですが、これはバグなのでしょうか。
791:デフォルトの名無しさん
08/10/08 11:35:37
一括りにすればC#もJAVAもプログラム
792:デフォルトの名無しさん
08/10/08 11:54:12
public PerformanceCounterCategory pcc = new PerformanceCounterCategory("LogicalDisk");
private void GetLogicalDiskRead()
{
this.listView1.Items.Clear();
foreach (string s in pcc.GetInstanceNames())
{
foreach (PerformanceCounter p in pcc.GetCounters(s))
{
if (p.CounterName == "Disk Read Bytes/sec" && p.InstanceName != "_Total")
{
this.listView1.Items.Add(new ListViewItem(new string[]{
p.CategoryName,
p.CounterName,
p.InstanceName,
p.NextValue().ToString()
}));
}
}
}
}
論理ディスクのReadを調べるためにこんなコードを書いたのですが、
エラーも何も無く実行できるものの値がずっと0になってしまいます。
これは何が問題なんでしょうか?
793:792
08/10/08 11:57:49
書き忘れです。タイマーで1秒毎の更新にしています。
private void timer1_Tick(object sender, EventArgs e)
{
GetLogicalDiskInfo();
}
794:デフォルトの名無しさん
08/10/08 12:53:59
>>790
失礼しました、これはタイマーのTickイベントの中で、フォルダの存在を
チェックしていて発生していたようです。メモリの消費量がイベントのたび
に0〜5バイトぐらいずつ増えていくのでなんだろうと思いましたが、タイマー
とは無関係でした。すみません。
795:790
08/10/08 12:58:04
>>794
ただ、Directory.Exists(_strDirectory)これを行うたびにI/Oのメモリが
消費されるというのは正常なのでしょうか?
796:デフォルトの名無しさん
08/10/08 13:07:58
>>792
カウンタ毎回取得してたら駄目だろ
欲しいPerformanceCounterを保持しておく
797:デフォルトの名無しさん
08/10/08 13:13:48
C#とJAVAってできることはほぼ同じなの?
動く環境も。
798:デフォルトの名無しさん
08/10/08 13:13:50
>>795
「I/Oのメモリ」って何?
799:デフォルトの名無しさん
08/10/08 13:41:01
質問
VC++みたいな独自のイベントってどうやって実装するんですか?。
VC++ならWM_USER以下にならない様な番号ふってWM_HAGEとか定義して
afx_msgにつけ加え定義
MESSAGE_MAPにつけ加えて
て感じだったと思うんですが
C#ではどうやるのでしょうか
800:デフォルトの名無しさん
08/10/08 13:50:58
取りあえずヘルプでイベントの項目読め
801:デフォルトの名無しさん
08/10/08 15:06:27
WindowProc直接いじるならこれかな。
URLリンク(www.atmarkit.co.jp)
802:デフォルトの名無しさん
08/10/08 15:23:29
>>796
色々と書き直してみてとりあえず動くようにはなったんですが
我ながら何をやってるのかよくわかって無いですorz
変なことやってないですかね?
private List<PerformanceCounter> prfList = new List<PerformanceCounter>();
private void Form1_Load(object sender, EventArgs e){
SetReadInfo();
GetLogicalDiskRead2();
}
private void SetReadInfo(){
foreach(string s in pcc.GetInstanceNames())
{
if (s != "_Total"){
PerformanceCounter p = new PerformanceCounter("LogicalDisk", "Disk Read Bytes/sec", s);
prfList.Add(p);
}
}
}
private void GetLogicalDiskRead2(){
this.listView1.Items.Clear();
foreach (PerformanceCounter x in prfList){
this.listView1.Items.Add(new ListViewItem(new string[]{
x.CategoryName,
x.CounterName,
x.InstanceName,
((long)x.NextValue()).ToString()
}));
}
}
803:デフォルトの名無しさん
08/10/08 16:32:30
つぎのようなメソッドを定義し、(処理1)でエラーが発生したときただちに関数を抜け出すためには
どんな方法を採用するのが推奨されていますか?GOTO文で関数の終わりの方まで一気に
飛ばすのはあまり推奨された方法ではないと聞きました。
void Hoge()
{
・・・・
tyr{(処理1)}
catch{・・・}
tyr{(処理2)}
catch{・・・}
・・・
}
804:デフォルトの名無しさん
08/10/08 16:35:03
>>803
return;
805:デフォルトの名無しさん
08/10/08 16:37:46
>>802
何やってるか分からないてのが一番まずいな
>>803
Microsoft曰く「内部実装なんてどう書こうが知らね勝手にしろ」
806:デフォルトの名無しさん
08/10/08 16:39:41
>>804
こんな感じでいいでしょうか?
void Hoge()
{
・・・・
tyr{(処理1)}
catch{・・・; return;}
tyr{(処理2)}
catch{・・・; return;}
・・・
}
807:デフォルトの名無しさん
08/10/08 16:46:29
>>806
catch{ ... ; throw ...}という手もある
808:デフォルトの名無しさん
08/10/08 17:52:56
C#ってgoto文が実は生き残ってたのかよw
809:デフォルトの名無しさん
08/10/08 18:02:31
>>808
無知なのに上から目線ワロタw
810:デフォルトの名無しさん
08/10/08 18:22:24
下向き限定なら絶対ダメってほどでもないでそ
811:デフォルトの名無しさん
08/10/08 18:24:07
switchで使えるのはいけるかもと思った。まだ使ってないけど。
812:デフォルトの名無しさん
08/10/08 18:32:26
gotoをなくしても break ラベル とか別の文法が増えるだけ。
もう大人なんだからgotoの扱いは自分で責任をもてるだろってこと。
こういう考えでgotoを残してる言語はわりとある。
813:デフォルトの名無しさん
08/10/08 18:33:41
>>807
throw・・・例外を投げるメソッドでしたっけ?
これをそこで使うことにはどういう意味があるんですか?
814:デフォルトの名無しさん
08/10/08 18:40:48
例外投げればとにかく処理は呼び出し元に戻せる
場合によるけど何も考えずreturnよりは適切かも
815:デフォルトの名無しさん
08/10/08 18:45:33
>>814
> 例外投げればとにかく処理は呼び出し元に戻せる
void Hoge()を呼び出した元にもtry&catchの構文を書いて
そこのcatchに例外をthrowするということですか?
816:デフォルトの名無しさん
08/10/08 18:46:56
↑こんな感じでしょうか?
try{ void Hoge(); }
catch(Exception e){・・・・}
↑のcatch(Exception e){・・・・}に例外をスローすればvoid Hoge()を抜けられるという発想ですか?
817:デフォルトの名無しさん
08/10/08 20:18:34
JavaのTreeSetみたいなやつはない?
818:デフォルトの名無しさん
08/10/08 20:34:29
フォルダ名とファイル名のstringを合成してファイルへのフルパスを生成しようと思ってます。
string folder = @"c:\folder";
string file = "test.dat";
string fullPath = folder + @"\" + file;
ここでもし人によってフォルダ名を
string folder = @"c:\folder\";
のように末尾に\マークを入れてしまう人がいるかもしれません。
フルパスを合成する前にフォルダ名の末尾に\マークがあるかないか場合分けする必要が
あるわけですが、C#のクラスにこのあたりの処理を自動化してくれるものはありませんか?
無ければフォルダ名の末尾に\マークがあるかないかで場合分けして対処する必要があります。
819:デフォルトの名無しさん
08/10/08 20:37:16
Path.Combineあたり
できるかは知らないけどその辺に無かったら無い
820:デフォルトの名無しさん
08/10/08 20:47:14
>>819
どうもです。調べてみますノシ
821:デフォルトの名無しさん
08/10/08 20:47:37
ユーザに見せる必要がなければ、\が幾つ並んでも問題ない。
それでも受け付けてくれる。
822:デフォルトの名無しさん
08/10/08 20:50:54
配列のラストが\\なら消す。
823:デフォルトの名無しさん
08/10/08 21:45:13
>>816
そういうこと
抜けるだけならreturnを使うけど、例外の時はthrowを使うという手段もある。
特に、その関数無いでは対処仕切れない場合とか、例外の再throwをすることがある。
string GetMessage()
{ try {...} catch (ry) { return " tell a lie :p";} }
より
{ try {...} catch (ry) { throw (new Exception("ごごご、ごめんなさい");} }
のほうが良い
824:デフォルトの名無しさん
08/10/08 21:47:15
>>823
それやるなら、前の例外も付けてやったほうがいいんじゃない?
catch(Exception e) {
throw (new Exception("ごごご、ごめんなさい", e);
}
825:デフォルトの名無しさん
08/10/08 21:53:09
普通のrethrowでいいよ
826:デフォルトの名無しさん
08/10/08 21:56:20
>>825
それもそうだな。ネタを考えてて変なことやっちゃったよ
827:デフォルトの名無しさん
08/10/08 22:21:57
>>797
C#とJavaって言語だけ見るとダメで、
バックについてるのが Microsoft か SUN かという違いを見ないとダメ。
SUN がクソ。
828:デフォルトの名無しさん
08/10/08 22:35:02
Linux等でも普通に動くところがJavaと違うんだよな。
だから、おれんとこでは、クライアントアプリがC#、VBどとねと
でASPXより、Tomcat−JBOSS-Apatchがまだまだ主流だ。。。
業務サーバーとなれば、どうしてもDB+Unix系がまだまだ主流で
顧客に高級感という付加価値があびせれる。
制御系は、以外とWindowsOnlyでいけること多いんでCのDLL
をC#で呼び出す系統のものを提案できるな。
829:デフォルトの名無しさん
08/10/08 22:57:47
>>828
制御の世界でも確かに.netで組む例多くなってきてるな。
ただ、制御もSWもわかる技術者をあつめるのが難しいから
IT側とコントローラ側を分離してるだけで決してwindows オンリーでいける
というわけではない。コントローラ側はむしろ組み込みの世界に近いと思う
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5384日前に更新/215 KB
担当:undef