SocketOptionNameにConnectTimeoutはないんだよな。
まあ、外部スレッドというかSystem.Timers.Timerで監視というのがいいんじゃないか。
Socketの派生クラスを作って実装を隠蔽すれば使い回しもできる。
>>950 ないな。
メソッドにしてしまえば書くのは一カ所で済むだろ。
>>951 どうやって ping を打ってるのか分からなきゃ、答えようが無いな。
954 :
デフォルトの名無しさん :2005/11/09(水) 21:05:04
955 :
デフォルトの名無しさん :2005/11/09(水) 21:14:15
>>952 やはり任意の時間で接続をタイムアウトさせるとなると、他で時間を計るしかないんですね。
ありがとうございました。
>>953 私は、“どうやって” かは限定してないんです。
「これなら接続のタイムアウトが任意に設定できる」というなら、
それでやるつもりですから。
956 :
デフォルトの名無しさん :2005/11/09(水) 21:15:34
プロパティってカプセル化の観点からは使わない方が良い? publicで変数にアクセスしているような感じだし
>>956 訳わからん。
プロパティってまさに状態のカプセル化だと思うのだが。
958 :
デフォルトの名無しさん :2005/11/09(水) 21:32:03
public int XXX { get { } set { } } なんとなく違和感があるんだ・・・
959 :
デフォルトの名無しさん :2005/11/09(水) 21:37:34
昨日始めたばっかなんだけど、参考になりそうなサイトみて文字を 表示するプログラムみたいなのをメモ帳で書いてみたんだが、いざ保存すると sample.cs と書いているのに sample.cs.txt と直されてしまいます.. ご存知の方、解決法を教えていただきたい。
構文に違和感があるって程度だったらそれは気のせいだ。
名前を付けて保存するときにファイル名を""でくくる。 が、他のフリーのエディタ使うのを薦める。
えー、プロパティはカプセル化の観点からしたら使うべきである。
新規テキストファイルの名前を sample.cs に変えてから、TeraPad で開いてるなぁ俺は。
>>959 保存するときにファイルの種類で
「すべてのファイル」を選択する
プロパティは、カプセル化というか情報隠蔽だな。どっちでも良いんだけど。 プロパティはメソッドの別名でしかないから、 ぶっちゃけメソッドへのアクセスと記述上以外の違いは無いし。
968 :
デフォルトの名無しさん :2005/11/09(水) 21:49:53
string s = null;もしくはHashtable h = null;をそれぞれメンバに持つ クラスのインスタンスを作成したとき、メモリの消費は異なりますか? メンバのインスタンスを作成するまでは差はないと考えていいのですか?
差は無いと考えて良いと思うけど、そんなに気になる?
一体そのインスタンスを何万個作るんだろう。
nullのうちは変わらない
インスタンスのサイズはメンバ変数の個数のみによって変わるってこと? っていうかインスタンスを大量に作成すること自体が愚かな行為 なんでしょうか?(作成自体のオーバーヘッドが大きいとか?) 出直してきます。レスありがとうございました。
相談:38歳主婦 string[] myArray = new string[0]; 添え字0って、何か役に立つんでしょうか?
>>975 添え字0は、
string[] myArray = null;
と
string[] myArray = new string[1] { "hoge" }
のどっちと近いと思う?
回答者は態度を明確に示せ
>>975 何か役立つって言われてもどう答えていいのやら…
サイズ0の配列の意味って感じかな?
配列がnull参照に比べるといろいろ楽だよ
string変数にnull入れずに空文字入れるようなもんか?
そんなもんだな。
foreach (string name in GetNames()) とかできるのが楽。 nullが返る可能性があるとなると一旦ローカル変数に代入してnullチェックってことになるし。
「配列を返すプロパティ/メソッド」って混乱の元だよな。
> 相談:38歳主婦 > 相談:38歳主婦 > 相談:38歳主婦 > 相談:38歳主婦
985 :
デフォルトの名無しさん :2005/11/10(木) 02:00:31
traceroute機能ってどうやって実現したら良いの? pingは宇宙仮面のサイトにサンプルコードがあったけど、 tracerouteは無かったのでどうしたら良いのか悩んでいるですが・・・
TTLを順番に大きくしていくだけさ
public interface IHoge {} public class Hoge : IHoge {} public class Foo<T> { public Foo(T value) { this.value = value; } private T value; public static implicit operator Foo<T>(T t) { return new Foo<T>(t); } } public static void Main() { Hoge hoge = new Hoge(); Foo<Hoge> a = hoge; Foo<IHoge> b = hoge; Foo<IHoge> c = (IHoge)ihoge; // コンパイルエラー } 最後のがかなり納得できない。 インターフェイスとのキャスト演算オーバーロードが定義できないのが原因なんだけど。
あ、ごめんそこはhogeで。 Foo<IHoge> c = (IHoge)hoge; // やっぱりエラー COMオブジェクトのReleaseComObjectをIDisposableでやって貰おうと思ったんだけど、 インターフェイスを暗黙にキャストできないとなると面倒で……。
public static void Using<T>(T comObj, Action<T> action) { try { action(comObj); } finally { Marshal.ReleaseComObject(comObj); } } private void MenuItem1_Click(object sender, EventArgs e) { Using((IHTMLDocument2)webBrowser1.Document.DomDocument, delegate(IHTMLDocument2 doc2) { Using(doc2.all, delegate(IHTMLElementCollection elements) { foreach (IHTMLElement element in elements) { Using(element, delegate(IHTMLElement elem) { Console.WriteLine(elem.tagName); }); } }); }); } こういう方向でいくことにしようか。
学校の宿題で以下の問題が出たのですがわかりません。 どなたか教えてください。明日までに提出しなければいけないのです。。。 WindowsFormでつくります。 問)textBoxを一つとbutton一つをフォームに配置する。 textBoxの文字が「学校」のときはtrueを返し、それ以外はfalseを返すような bool型のメソッドを作る。 buttonをクリックした時に以上のメソッドを適用するようなコードを実装せよ。 なお、buttonをクリックした際に、trueの場合は以下のメッセージを表示させる。 MessageBox.Show("あなたは学校と入力しました。") なにがなんだかさっぱりです。教えてください。
宿題は自分でやれ。
いまどきって授業でC#やってんの?
>>991 ここは宿題スレじゃないよ
using System.Windows.Forms;
public class MainClass {
public class MainForm : Form {
TextBox textBox; Button button;
public MainForm() {
const int width = 150;
this.SuspendLayout();
textBox = new TextBox();
textBox.Location = new System.Drawing.Point(0, 0);
textBox.Size = new System.Drawing.Size(width, textBox.PreferredHeight);
button = new Button();
button.Location = new System.Drawing.Point(0, textBox.Bottom);
button.Size = textBox.Size;
button.Click += new System.EventHandler(button_Click);
this.Controls.AddRange(new Control[]{textBox, button});
this.ClientSize = new System.Drawing.Size(width, button.Bottom);
this.ResumeLayout();
}
private bool is_gakko() {
return textBox.Text == "学校";
}
private void button_Click(object sender, System.EventArgs e) {
if (is_gakko())
System.Windows.Forms.MessageBox.Show("あなたは学校と入力しました。");
}
}
public static void Main() {
Application.Run(new MainForm());
}
}
995 :
991 :2005/11/10(木) 23:12:25
>>992 ごめんなさい。。。分かってはいるのですが単位とらないとやばいんです…。
>>93 選択でCかVBかC#を選べます。
>>94 ありがとうございます!できました。
>>995 お前それで「できた」っていうなよ。コピペしただけだろ?
何言ってるんだ、ボタン貼り付けたりFormのサイズ換えたり大変なんだよ!!
もっと激しいジェネリックを!
( ´ー`) 1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。