C♯相談室 Part21
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯
05/01/23 23:24:00(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
過去スレは>>2-5あたり。
関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0153デフォルトの名無しさん
05/01/29 15:59:05意味がわからんのだが。
static void sub1(ref Point p) {
p.X = 123;
}
static void Main() {
Point p = new Point(12, 12);
sub1(ref p);
Console.WriteLine(p.X); // 結果は123
}
普通にできますよ?
まあ大きなデータはクラスにすべきなのは間違いないけど。
0154150
05/01/29 15:59:11ありがとうございます。
DragEventArgs が e として、ListView( listView )のDragDropイベント中で、
ファイルXがドロップされたItemを下記コードで無事取得できました。
Point point = listView.PointToClient( new Point( e.X, e.Y ) );
ListViewItem item = listView.GetItemAt( point.X, point.Y );
if ( item != null )
{
textBoxLog.Text = item.Text;
}
ドラッグ中のListViewItem名の色の反転はまだできてませんが、
ここまでこれればなんとかなりそうです。
DragOver でするのかなぁ?とか思ってます。
サーバサイドなJavaコーダで食ってるんだけど、
VSゲットでなんとなくC#勉強し始めてみた。
Windowsアプリは面白い!と結構感動中。
0155デフォルトの名無しさん
05/01/29 16:18:22むむ、System.Drawing.Pointだとできますね。もっちと調べてみます。
スレの流れ的にはマニュアルの例題にあるこれを使ってると思う。
struct Point
{
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
0156デフォルトの名無しさん
05/01/29 16:24:44どのアセンブリのものかによって動作が変わったら困る。
ref/outが参照渡しにならなかったらP/Invokeがめんどくさいし。
0158136
05/01/29 22:34:17>>141
HTTPの勉強がしたいです。
ばかな質問をしてすみません。
「とりあえず、ここでも読んどけ、あふぉ!」といったような
サイトをご紹介願えませんでしょうか。
重ねてお願いします。
0159デフォルトの名無しさん
05/01/29 23:57:19http://www.faqs.org/rfcs/rfc2616.html
後は適当にぐぐ。
0160136
05/01/30 02:05:20日本語サイトで推奨はないですか?
0161デフォルトの名無しさん
05/01/30 03:38:47Exe直接起動すると出ないってどういうことなんでしょう?
デバッグで走らせてても位置特定できないし。
ContextMenuが出そうになると固まります。その後'System.NullReferenceException' エラーが出て、その後は別に続けても問題なし・・・・
ワケワカメ
0162デフォルトの名無しさん
05/01/30 11:02:41されてるんだろうから、別にいいんじゃない?
場所の特定は非マネージドコードのデバグをonにすれば可能だと思う。
0163デフォルトの名無しさん
05/01/30 13:09:37Positionを直接設定するのとSeekメソッドを使用するのでは
何か速度的な違いがあるのでしょうか?
0164デフォルトの名無しさん
05/01/30 13:12:460165デフォルトの名無しさん
05/01/30 13:57:370166デフォルトの名無しさん
05/01/30 18:29:35ttp://www.studyinghttp.net/rfc_ja/rfc2616.ja
0167160
05/01/30 19:22:02それにしても、すごい分量ですね。
僕は ただ、FormのPostで全角な文字列を
僕のメールに送りたいだけなのですが・・。
あぁ、すごい量だ。
0168デフォルトの名無しさん
05/01/30 20:17:49ボタンをマウスでクリックした時のイベントつかまえて処理をしています。
この時マウスを連打するとクリック回数分連続でイベントが走ってしまいます。
最初の一回のイベントのみ実施してその後のイベントをキャンセルしたいのですが、
いい方法ありませんか?
マウスポインタを砂時計にしてもだめでした。
それなりに重たい処理を行うので連打を許したくないのです。
クリックイベントの中でボタンのEnabledをfalseにすればいいと思っていましたが、
それではうまくいきません。
.netではイベントの開始から終了までの間にクリックしても前回のイベントが終了しないと
次のイベントが発生しないようなので。
Windowsのメッセージを捕まえて何とかしないとだめなんですかね。WndProcとかで。
0169デフォルトの名無しさん
05/01/30 20:20:06Form云々はHTTPでメール云々はSMTPだが、大丈夫か?
0170デフォルトの名無しさん
05/01/30 20:21:55フラグ持てば?
0171168
05/01/30 20:25:06ボタンのクリックイベントの中でフラグ持っても結局
イベントの最初でフラグをチェックしてONなら抜けてOFFならONにするって
やり方はVB6.0とかではできましたが、.netでは無理でした。
0172デフォルトの名無しさん
05/01/30 20:28:39UIスレッドはワーカスレッド起動するだけですぐ解放されるわけだから、ボタンをEnabled=falseにすればいい。
ワーカスレッドが終了時にInvokeでボタンのEnabled=trueを実行する。
0174160
05/01/30 22:16:31プロバイダから提供されているPostにおいて、
投稿内容送信先に僕のEメールを設定するだけです。
だいじょうぶです。なんとか理解しています。
ただ
HttpUtility.UrlEncode
がよくわかりません。
StreamWirteとか、Streamreaderとかで
Encoding.getEncodeing("shift\jis")とか("EU_**")とか
適宜設定してやれば、文字化けが回避できることは
わかたんですが、
0175デフォルトの名無しさん
05/01/30 22:21:24http に関する知識を増やしてくれ
なんでそこで躓くのかよく分からん
0176デフォルトの名無しさん
05/01/30 22:23:34つかちょっとは自分で調べろ。
UrlEncodeでぐぐっただけでもトップ20以内に有用な情報が見つかったっての。
0177160
05/01/30 23:32:28ようは円コードすると、
スペースが+になったり、
漢字が2バイト(16*4)になったりするんですね。
で、フォームのテキストボックスに
「渡辺」とではなく「%4b%80」なんて入れたら、
当然、そのまま「%4b%80」と解釈されるわけだから、
渡辺っていう漢字は消えてしまうのね。
で、URLEncodeは、URLに対してのみ利用されるものなのね。
当然、そのEncoding.GetEncoding()も、
サイトによって異なるけど、少なくともFormのActionを使って
送信する分には、エンコードする必要はないのね!!
0178デフォルトの名無しさん
05/01/31 02:16:39http://www.amazon.co.jp/exec/obidos/ASIN/4798108200
おまえは本をもっと読んだ方がいい
0179デフォルトの名無しさん
05/01/31 10:22:04せめてとほほのWWW入門ぐらいは(ry
0180160
05/01/31 10:46:12>>178さん申し訳ない。
0181デフォルトの名無しさん
05/01/31 18:55:27FlatStyle を System に変更し、XP スタイルで表示させると、
内側の GroupBox の Text のフォントが指定した値より大きく表示
されてしまいます。
この現象を御存知の方、回避する方法を御存知の方がいらっしゃいましたら
方法を教えて頂けないでしょうか?
0182デフォルトの名無しさん
05/01/31 19:10:25ttp://weblogs.asp.net/fbouma/archive/2005/01/21/358006.aspx
ttp://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=31fe5781-fa8f-410d-8177-7977311094b6
MSがバグとして調査中。
1.1のSP1からの症状のようだ。
0183デフォルトの名無しさん
05/01/31 19:40:40Resolved as Fixed by Microsoft on 2004-12-10 at 02:53:10
となっているので次期では解決するんでしょうね。
教えて頂いた先に解決させるコードがあったので頂きました。
助かりました。どうもありがとうございました。
0184160
05/01/31 22:36:19前から思ってたんだけど、その最後の)ryってなに?
0185デフォルトの名無しさん
05/02/01 01:50:08お前はまず自分で考え自分で調べると言う事を
身に付けたほうがいい
0186デフォルトの名無しさん
05/02/01 03:51:020187160
05/02/01 12:17:52僕もそう思った。
ryってぐぐったら、すぐに出てきたよ。
どうしていつも僕って(ry
0188デフォルトの名無しさん
05/02/01 14:11:57TreeNodeをコピーしたいのですが、
TreeNode ClonedNode = (TreeNode) treeView.SelectedNode.Clone();
とすると
'System.MissingMethodException' のハンドルされていない例外が mscorlib.dll で発生しました。
追加情報 : このプロジェクトで、引数なしコンストラクタは定義されていません。
と例外が発生して、うまくいきません。
どのようにすればいいのでしょうか?
0189デフォルトの名無しさん
05/02/01 15:32:47引数に指定した構造体内の値(配列やポインタ)がうまく
ひきつげません。
どうしたらよいのでしょうか?過去にも同様の質問やサン
プルコードがあればどのあたりを参考にすればよいか教えて
下さい。
0190160
05/02/01 16:26:14検索能力0か?(ry
0191デフォルトの名無しさん
05/02/01 17:59:21Clone は出来ないってことです。新しく作ってアレコレ設定しましょう。
0192デフォルトの名無しさん
05/02/01 20:35:28お前に言われたくねーよ。
0193160
05/02/01 22:55:38○rz...(ry
0194デフォルトの名無しさん
05/02/01 23:27:31>>160 VS >>189
0195デフォルトの名無しさん
05/02/02 00:34:510196デフォルトの名無しさん
05/02/02 00:35:10逆ギレ?池沼?
MSDN 読めば実例付きで載ってるだろ。
Web で検索するまでも無い。
Windows Media Format SDK 最新版も Managed コードとの
相互運用サンプル付いてるし。
0197デフォルトの名無しさん
05/02/02 01:57:140198デフォルトの名無しさん
05/02/02 03:00:230199160
05/02/02 09:01:490200デフォルトの名無しさん
05/02/02 09:39:21「コードの表示」と「デザイナの表示」を切り換えるタブがいつの間にか表示されなくなってしまいました。
再表示させる方法を教えてください。
0201デフォルトの名無しさん
05/02/02 09:42:01知障
0202デフォルトの名無しさん
05/02/02 10:27:53TextBoxでコピーや貼り付けなどを行わせないようにし、
通常の入力は行えるようにしたいのですが
どのようにすればいいでしょうか。
0204デフォルトの名無しさん
05/02/02 10:52:50C#.NETじゃWin32APIは使えんのかね?
質問2
WebFormでフレーム組む方法はわかる。で、
2ちゃんねるの左の窓で「プログラマー」をクリックすると
右の窓が他のURLへ飛ぶだろ
これどうやるの?
0205デフォルトの名無しさん
05/02/02 11:02:58DrawStringは描画のメソッドだとおもうのですが。
通常の入力はさせたいのです。
0206デフォルトの名無しさん
05/02/02 11:09:111)できる。DllImportAttribute属性を調べてみな。
2)name属性とtarget属性で指定するものだが。
>>205
コンテキストメニューを空のContextMenuにして、
Ctrl+VとShift+Insを殺せば良いんでない?
……WindowsFormsの話だよな?
0207デフォルトの名無しさん
05/02/02 11:27:59ふむふむ。ありがとうございました。WindowsFormsです。
0208デフォルトの名無しさん
05/02/02 12:15:42195さん、丁寧にありがとうございました。
質問の意図はマーシャリングすればなんとか取得出来ると
思ったのですが、うまく行かなかったので同様の議論が
あればさくっとルーティングしていただけたらと思ったので。
C#初めてでどうにもやっていることの方向性が合っている
かもわからずだったので質問してしまいました。
自力でやってみます、ありがとうございました。
ちなみに192は自分ではありません。でも探索能力0は当
たっていますね(汗)。
0209デフォルトの名無しさん
05/02/02 17:09:23http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconmarshalingclassesstructuresunions.asp
ここらへん読めばいいような気がします。
0210デフォルトの名無しさん
05/02/02 17:21:490211デフォルトの名無しさん
05/02/02 17:45:21class Class1 {
public Test PublicField = new Test();
public Test Property { get { return PublicField; } set { PublicField = value; } }
[STAThread]
static void Main(string[] args) {
Class1 class1 = new Class1();
class1.Property.Data = 1;
class1.PublicField.Data = 1;
}
}
struct Test {
public int Data;
}
0212デフォルトの名無しさん
05/02/02 18:34:39それだと違いがわからないと思うが。
典型的には get しかない property なんかは、public field じゃ実現できない。
0213デフォルトの名無しさん
05/02/02 18:58:37プロパティだと例えば public string Value { get; set; } とかで
setする時に決まった入力文字列以外はthrowするとかの処理が挟めるし、
getするときも適当に整形して返せたりします。
0214デフォルトの名無しさん
05/02/02 19:02:58一言でいえば全然違うとしかいいようがない。
アクセスするときのシンタックスが似てるだけで。
全然違うものだから
>>211 とか
リフレクション時動作の違いとか
あげればきりがないだけの違いが出てくるし。
その質問は「メソッドとフィールドってどう違うんですか」っていうのと
同じぐらい変な質問に思える。
ただ、publicフィールドを使わないほうがいいと思う。
0215211
05/02/02 19:09:08すまぬ
public field と、変数のエイリアスとしての public property の違いを聞いているのかと思ったよ
昨日、後輩から普通に聞かれたもんで
っていうか、property って、内部的には set_ or get_ メソッドを作っているんだよなぁ
メソッドと変数の違いに近いかもしれない
0216デフォルトの名無しさん
05/02/02 19:26:29readonly...
0217デフォルトの名無しさん
05/02/02 19:32:04いや、それでも実現できないやん
公開するプロパティは弄らせないが、自分だけは弄りたい場合とか
0218デフォルトの名無しさん
05/02/02 22:57:53EOFとかCRLF等を描画しようと思いますが、どうにも行の終端の位置座標が
取れないため苦戦しています。
0219デフォルトの名無しさん
05/02/02 23:09:40プロパティのほうが速度が速いみたいですね!!
0220210
05/02/02 23:14:24>>214
publicフィールドなんて使いません。
>>215
内部的にgetter、setter作ってるならますます違いが分からない…orz
ま、便利なメソッド=プロパティってことにしときます。
ありがとう。
0221デフォルトの名無しさん
05/02/02 23:20:33俺は public readonly のフィールドは頻繁に使うけどな
状態変化するオブジェクトは余り作りたくない性分なんで
(けどそうするとプロパティにして内部へのアクセスを >>211 みたいに禁じたほうが確実か?)
プロパティはコンポーネント指向で出てきた概念
ほら、フォームデザイナで編集するときに色々と便利やん
0222210
05/02/02 23:28:20漏れはもともとJavaやってたんでgetter、setterをしこしこ書く派。
プロパティはコードが見にくくなるんで使いたくないなぁ。
ま、アクセサ書いても一緒なんだけどね…。
0223デフォルトの名無しさん
05/02/02 23:36:55public struct Square
{
public double Width = 0;
public int Area
{
set
{
Width = System.Math.Sqrt( value );
}
get
{
return Width * Width;
}
}
}
Widthがpublicフィールド、Areaがプロパティ。
Square square;
square.Width = 2.0;
Console.WriteLine( square.Area.ToString() );
square.Area = 9.0;
Console.WriteLine( square.Width.ToString() );
実行結果
4.0
3.0
0224デフォルトの名無しさん
05/02/02 23:37:56×public int Area
○public double Area
0225210
05/02/02 23:38:15たしかに、
obj.setFoo(obj.getFoo() + bar)
より
obj.Foo += bar
の方が便利だ。
0226デフォルトの名無しさん
05/02/02 23:43:44俺ももともとJavaやってたけど、プロパティアクセサを
言語機能でサポートしてるのはJavaよりC#が明らかに優れている点だ。
もともとpublicフィールドなんて使わんし。
読み出しと書き込みのシンタクスや型を自動的に統一してくれるから
本来は不要なコーディングの手間が大幅に削減される。
0227デフォルトの名無しさん
05/02/02 23:47:40余談だが、MSDNではconst付きpublicフィールドも
パブリックプロパティとしてメンバリストに載ってるな。
0228デフォルトの名無しさん
05/02/02 23:49:250229デフォルトの名無しさん
05/02/02 23:50:17そりゃconstならフィールドでもプロパティでも同じだからな。
タイプセーフなマクロ扱いだし。
0230デフォルトの名無しさん
05/02/03 00:31:420231160
05/02/03 00:42:52iphlp.dll
string[] str = myiphlp.GetGlobalAddress()
0232デフォルトの名無しさん
05/02/03 01:52:22せめて、propertyだったら互換性を維持したまま手を加える余地があるのに……
0233デフォルトの名無しさん
05/02/03 02:08:24MouseDownからやると、1クリックの後に矩形の範囲選択が出てきてしまうんですが、
これを回避する方法って何かないでしょうか?
0234デフォルトの名無しさん
05/02/03 02:15:36そのフィールド自体を、同じ名前のプロパティに書き換えればいいじゃんw
フィールドにできてプロパティにできない事って
unsafeコンテクスト内での&によるアドレス取得くらいのもんだろ
0235デフォルトの名無しさん
05/02/03 10:08:10public constはできるだけ使わないで。
ILをみるとわかるがconstの場合コンパイル動作が埋め込みになるので
アセンブリのバージョンリダイレクトで不整合が発生したり問題あり。
>>234
静的にアクセスしているのだと問題ない場合も多いのだけども、
リフレクション時の動作も違う。例えばDataBinding系の処理で
publicフィールドとpublicプロパティはまったく違う動作をする。
簡単な実験は、ListBoxのDataMemberにpublicフィールドと
publicプロパティを指定してみればわかる。
結局のところコンポーネントの基本要素が
プロパティとイベントのみとして設計されているので、
どっちにしろpublicフィールドは作るべきでない。
getter/setterメソッドも同じ理由でだめ。
0236232
05/02/03 11:18:09取り合えずそのDLLを参照しているアセンブリ全てリビルドが必要になる。
refやoutの引数として直接渡されてたりする。
リフレクションをくらって挙動が変わったりする。
publicなフィールドを宣言してる時点で他にもいろいろとまずいことやってる。
0237160
05/02/03 13:19:36先行してどのサイトをCHKしたか示すべきなのでしょうか。
例えば、
「〜がわかりません。
CHK済みサイト:httq://www.yahoo.ne.jp/
とか」
0238デフォルトの名無しさん
05/02/03 13:24:530239デフォルトの名無しさん
05/02/03 13:33:22CHKなんていう意味不明な略語(?)を使うのはやめましょう。
質問は平易な日本語(+正しい技術用語)で具体的に。
姉妹スレの↓もよろしく。
ふらっとC♯(Part5)
http://pc5.2ch.net/test/read.cgi/tech/1065196964/
>このスレッドは
>
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
>
>ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
>
>少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。
0240デフォルトの名無しさん
05/02/03 15:31:36CHK
w
0241デフォルトの名無しさん
05/02/03 17:10:210242160
05/02/03 17:55:120243160
05/02/03 17:55:51そうそう、それだよ、それ。ないすFLW
0244デフォルトの名無しさん
05/02/03 18:11:200245デフォルトの名無しさん
05/02/03 18:49:50http://www.infoseek.co.jp/OTitles?col=OW&qt=printdialog&svx=901908
ここはだいたい見ました。
RPCサーバに関するエラーが出て、印刷できません。
印刷環境は以下の通り。
Aパソコン(僕のPC)
|
Bパソコン(隣の先輩のPC)
|(usb)
Brotherのレーザプリンタ。
0246デフォルトの名無しさん
05/02/03 19:18:00エラーメッセージでぐぐってみたらどうだ。
0247デフォルトの名無しさん
05/02/03 19:41:42main(){
printf("Hello!");
rewind(stdin); //追加行:標準入力を初期化する
getchar(); //追加行:1文字入力を待つ
return0;
}
実行すると
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 6: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2206 sample2.c 7: 不正な文字 ' ' (0x8140)(関数 main )
エラー E2451 sample2.c 7: 未定義のシンボル return0(関数 main )
警告 W8070 sample2.c 8: 関数は値を返すべき(関数 main )
*** 15 errors in Compile ***
と表示されてしまい、実行できません、ずーっとやり直していますが
何処がどう違うか解らないんです、ご教授お願い致します。
0248全角空白は使えない・returnの後にスペースをひとついれる
05/02/03 19:48:55すれ違い。これ以上は他所で聞け。
0249デフォルトの名無しさん
05/02/03 19:49:42main(){
printf("Hello!");
rewind(stdin); //追加行:標準入力を初期化する
□□□□□getchar(); //追加行:1文字入力を待つ
return0;
}
0250デフォルトの名無しさん
05/02/03 19:52:000251160
05/02/03 22:16:57何が違うのですか?
0252デフォルトの名無しさん
05/02/03 22:23:40上記ページにおいて掲載されているC#ソースを実行。
//OKがクリックされた時は印刷する
pd.Print();
上記ステイトメントでエラー発生。
エラー内容は以下の通り。
RPCサーバーを利用できません。
■ このスレッドは過去ログ倉庫に格納されています