ふらっとC#,C♯,C#(初心者用) Part56
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/02/28(日) 18:13:21「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
ふらっとC#,C♯,C#(初心者用) Part55
http://pc12.2ch.net/test/read.cgi/tech/1265288563/1
関連スレ
C#, C♯, C#相談室 Part55(実質56)
http://pc12.2ch.net/test/read.cgi/tech/1260111240/1
VB.NET質問スレ(Part33)
http://pc12.2ch.net/test/read.cgi/tech/1263738929/1
C++/CLI part3
http://pc12.2ch.net/test/read.cgi/tech/1206447234/1
0002デフォルトの名無しさん
2010/02/28(日) 18:30:080003前スレ988
2010/02/28(日) 18:44:15前スレのクリップボードについての質問者です。
MDIEというファイラーの挙動を見てみたのですが、切り取りはアプリ外にも
できましたが、終了するとクリップボードは空にされました。
切り取りかコピーかの情報をアプリケーション側が保持しているっぽいですね。
エクスプローラと同じ挙動をするように、切り取り情報をOS側に投げられたら
よいのですができなさそうですね・・・
ほぼプライベートで使うアプリケーションなので、こんなところにしておきます。
みなさんありがとうございました。
0004デフォルトの名無しさん
2010/02/28(日) 19:13:56SHFileOperationでググれ
00054
2010/02/28(日) 19:24:560006デフォルトの名無しさん
2010/02/28(日) 20:04:140007デフォルトの名無しさん
2010/03/01(月) 00:19:290008デフォルトの名無しさん
2010/03/01(月) 00:31:43切り取り/コピーの情報もクリップボードに入っている
アプリ終了すると消えるのは、終了しても残すように指定されていないから
// StringCollection fileDropList;
var buf = BitConverter.GetBytes((int)DragDropEffects.Move);
var memStream = new MemoryStream(buf);
var data = new DataObject();
data.SetFileDropList(fileDropList);
data.SetData("Preferred DropEffect", memStream);
Clipboard.SetDataObject(data, true);
0009デフォルトの名無しさん
2010/03/01(月) 00:39:51C#, C♯, C#相談室 Part55(実質57)
http://pc12.2ch.net/test/read.cgi/tech/1265283175/
0011デフォルトの名無しさん
2010/03/01(月) 19:59:370012デフォルトの名無しさん
2010/03/01(月) 22:01:040013デフォルトの名無しさん
2010/03/01(月) 22:24:020014デフォルトの名無しさん
2010/03/02(火) 20:57:160015デフォルトの名無しさん
2010/03/02(火) 21:00:22ソートしようと思っているんですが
(例)123,456,789(右揃え)を数値に変換するにはどうすればいいでしょうか?
文字列でソートしてもうまくいかないので数値に変換しようと思ってます
0016デフォルトの名無しさん
2010/03/02(火) 21:04:49それよりTagとかにソート用の情報オブジェクト持たせた方が楽よ
0017デフォルトの名無しさん
2010/03/02(火) 21:19:43このクラスを使うとして、envelope from を設定することは可能でしょうか?
TcpClient とかを使って自分でサーバとやりとりをすれば出来そうなのですが、
出来れば楽をしたいな、と。w
0018デフォルトの名無しさん
2010/03/02(火) 21:20:24ぴったりのとこ見つけました
ありがとうございました
http://www.atmarkit.co.jp/fdotnet/dotnettips/001atoi/atoi.html
0019デフォルトの名無しさん
2010/03/02(火) 21:41:03http://www.diaryofaninja.com/blog/2009/10/02/sending-encrypted-email-with-c
0020デフォルトの名無しさん
2010/03/02(火) 22:45:04ありがとうございます。
いまはちょっと寝ぼけているので、明日チャレンジします。
こんなにすぐに教えていただいたのに、ごめんなさい。
0021デフォルトの名無しさん
2010/03/03(水) 03:47:03苦労してインストールしてみたお。だいぶGUI画面とかできるようになったお。
だけど、今日、本屋いったらF#って言う本が出ててVisualStudio2010から正式にうんちゃらかんちゃらって
かいてあったお。
C#はこの先置いてけぼり食らうのかお・・
0022デフォルトの名無しさん
2010/03/03(水) 04:31:27結局メジャーにはならず、プログラム初心者向けの言語にしかならなかった
そして時代はF#
0023デフォルトの名無しさん
2010/03/03(水) 04:53:59{
set
{
_name = value;
}
}
こういったプロパティって何か意味があるんですか?
サイトのTIPS見てもよくわからない
ただ単にデータを格納するだけなら直接publicな_nameに格納してもいいものだけど
0024デフォルトの名無しさん
2010/03/03(水) 06:36:32C#とF#は棲み分けが違う
>>23
オブジェクト指向では直接フィールドメンバにアクセスすることを嫌う。
カプセル化でぐぐりなさい。といっても、意味が広いからすぐに理解はできないと思うけど。
0025デフォルトの名無しさん
2010/03/03(水) 10:24:20オブジェクト指向というよりコンポーネント指向。
C#など最近の言語はこの二つが混ざり合ってるけど、
interfaceやpropertyはコンポーネント由来の機能。
0026デフォルトの名無しさん
2010/03/03(水) 11:15:50自作ソフト登録して、自作ソフトにそのWEBページのURLが
送られるようにしたいんだけどどうすればいいですか?
0027デフォルトの名無しさん
2010/03/03(水) 11:35:46ちなみに登録できるのはあくまでJavaScript
0028デフォルトの名無しさん
2010/03/03(水) 11:50:29ありがとう
調べてみます
0029デフォルトの名無しさん
2010/03/03(水) 11:54:53コンポーネント指向っていうのはキャッチコピーみたいなもので
具体的にどこがどうコンポーネント指向かというのは難しい
あえていうなら、MSのようにクラスの利用者を「お客様」として扱う考え方かな
あくまでオブジェクト指向がベース
003023
2010/03/03(水) 12:22:18内部を隠蔽化とかそういう説明は沢山あるけど
具体的にどういう場合に支障があるんでしょうか?
ただ代入するだけなら意味がないと思うんだけど
例えば>>23だとフィールドメンバの型を変更することになった場合
public string Name
{
set
{
_nameNumber =int.Parse(value);
}
}
こんな感じにできるということ?
0031デフォルトの名無しさん
2010/03/03(水) 12:33:14他にも入力値チェックしたくなったりとか値変更時にイベント発生させたりとか
で、「初めはフィールドにしといて何かしたくなったらプロパティにすればいいじゃん」については
取り敢えずこう返す、「今なら自動実装プロパティがあるからフィールドにする意味ないじゃん」
0032デフォルトの名無しさん
2010/03/03(水) 12:36:030033デフォルトの名無しさん
2010/03/03(水) 12:46:31カプセル化なんてのは構造化プログラミング時代でも普通にやってた。モジュール化とか。
0034デフォルトの名無しさん
2010/03/03(水) 13:09:020035デフォルトの名無しさん
2010/03/03(水) 13:09:44それは実際できたものを動かしてみたら遅くて、その原因箇所を探したら
プロパティアクセサだったとき(まずありえないけど)に考えること
0036デフォルトの名無しさん
2010/03/03(水) 13:15:53Setterの中であれこれやる事になるからプロパティ必須
0037デフォルトの名無しさん
2010/03/03(水) 13:23:07値渡しとインターフェイスポインタ渡しがあって、
プロパティはインターフェイスポインタ渡しで必要になった技術なんだよね。
現在ではリモート処理以外でも広く使われるようになった。
003823
2010/03/03(水) 14:16:55プロパティでする意味が有るのかな?
エラーチェックを2回することになるんですよね?
0039デフォルトの名無しさん
2010/03/03(水) 14:25:51int b = 2;
a[b] = 4;
bがa.Length未満かどうかはそりゃ呼び出し側はチェックするだろうけど
だからといってint[]側がチェックしないわけないだろ?
0040デフォルトの名無しさん
2010/03/03(水) 14:37:35利用者が例外をキャッチしないといけないような設計はダメだよ
プロパティが例外を投げることは普通想定しない
利用者が事前にチェックできないような条件なら、代入時じゃなくて
そのプロパティの値が内部で使用されるときに例外を投げるべき
004123
2010/03/03(水) 15:08:27�@ファイル入出力クラスを利用するクラス
�Aファイル入出力をするクラス
エラーメッセージとして"ファイル名を入力してください"と出す場合
この場合両方のクラスでファイルが存在するかチェックすべき?
それとも�Aに一旦ファイルパスを送って例外が出された場合�@のクラスでエラーメッセージを表示すべき?
0042デフォルトの名無しさん
2010/03/03(水) 15:13:08004323
2010/03/03(水) 15:19:34なんとなくわかったようなわからないような
とにかく、ありがとうございました
0044デフォルトの名無しさん
2010/03/03(水) 15:20:55004523
2010/03/03(水) 15:27:31同じ機能が他のクラスに合ったらまとめたくなるじゃない?
0046デフォルトの名無しさん
2010/03/03(水) 15:30:350047デフォルトの名無しさん
2010/03/03(水) 15:32:11機能をまとめるってのがなあ・・・
まあそういうのはクラスわけができてないっていうんだろうけど
0048デフォルトの名無しさん
2010/03/03(水) 15:38:15というエラー報告を、例外として利用クラスに投げるだけにとどめるべき
どう扱い、どう表示するかは、ファイルクラスには関係ない
デバッグ時なら�Aクラスがエラー表示してもかまわんと思うけど
0049デフォルトの名無しさん
2010/03/03(水) 15:53:43ちょっと教えて。
System.Diagnostics.Trace クラスで出力したデータを
VSの出力windowみたいな感じにモニタするソフトってあります?
0050デフォルトの名無しさん
2010/03/03(水) 16:02:04syslogに投げるやつもあったな
0051デフォルトの名無しさん
2010/03/03(水) 16:17:45「VSの出力windowみたいな感じ」かどうかは自分で確認してくれ
何を持ってそう判断するのかは>>49にしか分からんので
005249
2010/03/03(水) 16:23:50レス有り難う御座います。
ログを出力する側に手を加えてTextやEventLogへ出力する方法は
ググると結構見つかるのですが・・・
TraceListenerを自作するべきか、悩んでます。
苦労して作った後に、いやこんなツールはあるんだけどね。知らなかったの?
ってなるのが、怖わかとです。
0053デフォルトの名無しさん
2010/03/03(水) 16:25:06>TraceListenerを自作するべきか、悩んでます。
>苦労して作った後に、いやこんなツールはあるんだけどね。知らなかったの?
それも勉強だろ
005449
2010/03/03(水) 16:36:32DebugView(DbgView)
http://www.atmarkit.co.jp/fdotnet/dotnettips/757debugview/debugview.html
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
やっぱり聞いて良かったです。
そうそう、こんなツールが欲しかったんです。!!
なんでMSはVS2008にデフォルトで付いてくれないんだろう(怒
助かります。
有り難う御座います♪
>>53
何事も勉強ですよね・・
ただこの場合はオリジナルのデバックIFを作っても、
発展性も望めないので・・
0055デフォルトの名無しさん
2010/03/03(水) 17:01:330056デフォルトの名無しさん
2010/03/03(水) 17:02:20ぐぐれ
その辺は結構情報あるよ
0057デフォルトの名無しさん
2010/03/03(水) 17:51:17webbrowserでやればいいのかな?
第一歩の踏み出すためのぐぐる検索キーワード教えて
0058デフォルトの名無しさん
2010/03/03(水) 17:55:150059デフォルトの名無しさん
2010/03/03(水) 17:56:530060デフォルトの名無しさん
2010/03/03(水) 17:58:170061デフォルトの名無しさん
2010/03/03(水) 20:29:07javascriptとかでボタンの列挙とかあるしやることはそれほどかわらん
0062デフォルトの名無しさん
2010/03/03(水) 20:32:45でググルだけで出てくる
0063デフォルトの名無しさん
2010/03/03(水) 20:57:20>>62
ありがとうございます
これでいけそうです
http://www.atmarkit.co.jp/fdotnet/dotnettips/860controlwb/controlwb.html
0064デフォルトの名無しさん
2010/03/03(水) 21:03:09とかで必死にぐぐってたのになかなか目的サイトが見つからなかった
これで半日かかってしまった
webbrowser click
で検索すると大量に目的のサイトが出た
初心者はこういうので時間かかるんだよなぁ
0065デフォルトの名無しさん
2010/03/03(水) 21:08:300066デフォルトの名無しさん
2010/03/03(水) 21:09:420067デフォルトの名無しさん
2010/03/03(水) 21:52:45なんであんな派生しにくいんだよ。
0068デフォルトの名無しさん
2010/03/03(水) 21:53:02最近出版されたEffective C#嫁。
そのプロパティのことがずばり書かれている。
0069デフォルトの名無しさん
2010/03/03(水) 21:54:47TraceListener使うのが一番。
ログの吐き出しはlog4netで。
0070デフォルトの名無しさん
2010/03/03(水) 22:27:56NLogのがいい気がする
0071デフォルトの名無しさん
2010/03/03(水) 23:13:59スバリ教えて
0072デフォルトの名無しさん
2010/03/03(水) 23:17:05デザイン画面のコントロールのプロパティで
boolの値をドロップダウンで選択しようとしても
一瞬開いて閉じてしまう症状があるのですが
こういった症状になったことある方いますでしょうか?
何度か連打していれば元に戻るのだけど
0073デフォルトの名無しさん
2010/03/03(水) 23:19:410074デフォルトの名無しさん
2010/03/03(水) 23:39:58やーだお(´・ω・`)
0075デフォルトの名無しさん
2010/03/03(水) 23:58:27それはただのフィールドの隠蔽化。カプセル化はもっと深い。
0076デフォルトの名無しさん
2010/03/04(木) 00:02:22プロパティ、中身がシンプルなものは JIT 時にインライン化される。
プロパティにすることで、フィールドをpublicにするよりも変更に強くなる。
0077デフォルトの名無しさん
2010/03/04(木) 00:04:39いやいや>>33の言うとおりでしょ。
(OOPの真髄が多態という見解には異論があるが)
カプセル化なんてOOPよりずっと昔からある概念なんだけど。
0078デフォルトの名無しさん
2010/03/04(木) 00:06:540079デフォルトの名無しさん
2010/03/04(木) 00:23:520080デフォルトの名無しさん
2010/03/04(木) 00:24:15まあごく例外的な場合とか「フィールドは公開すべきでない」という精神論を別にすれば、
プロパティにする必要性が出た時点でプロパティにする、という方針でも
別に悪くはないと個人的には思う。別にたいした手間でもないし。
ただ、今時プロパティ書くのもフィールド書くのも手間はあまり違わないわけで、
そういう現状を前提にすると「なぜ<あえて>プロパティなのか」っていう疑問は
あまり自明じゃなくなって来てるな。
0081デフォルトの名無しさん
2010/03/04(木) 00:31:26コピーって何?
0082デフォルトの名無しさん
2010/03/04(木) 01:30:41オブジェクト指向のこころを読めば世界が広がるよ。
0083デフォルトの名無しさん
2010/03/04(木) 03:44:00プロパティからフィールドにアクセスすることもできますが、プロパティが
実装されている場合、積極的にプロパティを使ってフィールドにアクセスすべきですか?
Javaのアクセッサ(getter/setter)では記述のコストが高くてやってられないのですが、
C#ではどうなんでしょうか?
0084デフォルトの名無しさん
2010/03/04(木) 03:47:220085デフォルトの名無しさん
2010/03/04(木) 04:05:28速度だけの話じゃないです。
クラスの内部からフィールドへのアクセスもプロパティを通すことで、
カプセルとその他もろもろの恩恵を受けられると思ったんだけど、
そういった形でプロパティを使うってありですか?
0086デフォルトの名無しさん
2010/03/04(木) 04:08:280087デフォルトの名無しさん
2010/03/04(木) 04:12:480088デフォルトの名無しさん
2010/03/04(木) 04:17:180089デフォルトの名無しさん
2010/03/04(木) 04:28:110090デフォルトの名無しさん
2010/03/04(木) 04:29:530091デフォルトの名無しさん
2010/03/04(木) 04:32:500092デフォルトの名無しさん
2010/03/04(木) 06:14:19<input type="image" onclick="hoge" name="homo">
GetAttribute("onclick")でonclickの値(hoge)が取得できないのですが、普通はできるのでしょうか?
値は"System.__ComObject"というのが返ってくるだけです
同じやり方でtypeの値はちゃんと取得できます
0093デフォルトの名無しさん
2010/03/04(木) 06:19:16デフォルトのインデントがタブじゃなくて、スペースなのね。
c#ではこれが流儀?
これに慣れた方がいい?
行をBSで逆インデントする時に、
BSを連打しないといけないのが、苦痛。
Shift+tabは面倒。
0094デフォルトの名無しさん
2010/03/04(木) 06:26:08その周辺のコードは晒せる?
>>93
設定で切替できなければタブとスペースの切替はできないってことだろ
それにVC#の場合オートインデントなのでガシガシ打ってもどうにかなるだろ
0095デフォルトの名無しさん
2010/03/04(木) 06:30:13009694
2010/03/04(木) 06:31:20{
int aaaa = 10;
aaaa++;
}
を書いた上で
//{
int aaaa = 10;
aaaa++;
//}
という感じでネストをいじった上で
上記4行を一旦切り取って同じ位置に貼り付けてみると勝手にインデント調整してくれるよ
0097デフォルトの名無しさん
2010/03/04(木) 06:32:16下記のコーディングで間違いとか、抜けとか、ありますか?
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Tcp);
TCPヘッダ作成
IPヘッダ作成
ヘッダ連結
チェックサム
int nBytes = socket.SendTo(sendbuf, sendbuf.Length, SocketFlags.None, endpoint);
SendToメソッドの箇所でエラーが発生します
エラーコード:10022
エラーメッセージ:無効な引数が提供されました
原因分かる方、教えてください。
0098デフォルトの名無しさん
2010/03/04(木) 06:34:13デバックでとまった際に引数みてみなよ
0099デフォルトの名無しさん
2010/03/04(木) 06:37:08といいますと?
0100デフォルトの名無しさん
2010/03/04(木) 06:38:19IPヘッダ作成
ヘッダ連結
チェックサム
あと可能な限りここも書きなよ
固有情報は適当に書き換えて
0101デフォルトの名無しさん
2010/03/04(木) 06:45:31/********************************************************************************
* TCPヘッダ取得
*******************************************************************************/
public byte[] getTcpHeader(Int16 selfport, Int16 destport)
{
TcpHeader header = new TcpHeader();
header.selfport = (UInt16)IPAddress.HostToNetworkOrder(selfport);
header.destport = (UInt16)IPAddress.HostToNetworkOrder(destport);
header.seq_num = 1;
header.ack_num = 0;
header.offset_and_reserved_and_flags = 5; // offset
header.offset_and_reserved_and_flags <<= 6; // reserved
header.offset_and_reserved_and_flags |= 0;
header.offset_and_reserved_and_flags <<= 1; // URG
header.offset_and_reserved_and_flags <<= 1; // ACK
header.offset_and_reserved_and_flags <<= 1; // PSH
header.offset_and_reserved_and_flags <<= 1; // RST
header.offset_and_reserved_and_flags <<= 1; // SYN
header.offset_and_reserved_and_flags |= 1;
header.offset_and_reserved_and_flags <<= 1; // FIN
header.window = (UInt16)IPAddress.HostToNetworkOrder((Int16)32767);
header.checksum = 0;
header.urgent_pointer = 0;
return header.getBytes();
}
0102デフォルトの名無しさん
2010/03/04(木) 06:49:03/********************************************************************************
* IPヘッダ取得
*******************************************************************************/
public byte[] getIpHeader(byte[] databuf, string selfAddress, string destAddress, byte protocol)
{
Ipv4Header header = new Ipv4Header();
header.version_and_length = 69;
header.service_type = 0;
if (protocol == 4)
{
header.packet_length = 20;
}
else
{
header.packet_length = 40;
}
Random rand = new Random();
header.identifier = (short)rand.Next(32767);
header.flagment_offset = 0;
header.ttl = 64;
header.protocol_no = protocol;
header.checksum = 0;
0103デフォルトの名無しさん
2010/03/04(木) 06:50:08int startpoint = 0;
int endpoint = selfAddress.IndexOf(".");
header.self_ip1 = byte.Parse(selfAddress.Substring(startpoint, (endpoint-startpoint)));
startpoint = endpoint + 1;
endpoint = selfAddress.IndexOf(".", startpoint);
header.self_ip2 = byte.Parse(selfAddress.Substring(startpoint, (endpoint - startpoint)));
startpoint = endpoint + 1;
endpoint = selfAddress.IndexOf(".", startpoint);
header.self_ip3 = byte.Parse(selfAddress.Substring(startpoint, (endpoint - startpoint)));
startpoint = endpoint + 1;
endpoint = selfAddress.IndexOf(".", startpoint);
header.self_ip4 = byte.Parse(selfAddress.Substring(startpoint, (selfAddress.Length - startpoint)));
startpoint = 0;
endpoint = destAddress.IndexOf(".");
header.dest_ip1 = byte.Parse(destAddress.Substring(startpoint, (endpoint - startpoint)));
startpoint = endpoint + 1;
endpoint = destAddress.IndexOf(".", startpoint);
header.dest_ip2 = byte.Parse(destAddress.Substring(startpoint, (endpoint - startpoint)));
startpoint = endpoint + 1;
endpoint = destAddress.IndexOf(".", startpoint);
header.dest_ip3 = byte.Parse(destAddress.Substring(startpoint, (endpoint - startpoint)));
startpoint = endpoint + 1;
endpoint = destAddress.IndexOf(".", startpoint);
header.dest_ip4 = byte.Parse(destAddress.Substring(startpoint, (selfAddress.Length - startpoint)));
0104デフォルトの名無しさん
2010/03/04(木) 06:52:03if (protocol == 4)
{
header.checksum = this.calcCheckSum(header.getBytes());
}
else
{
header.checksum = this.calcCheckSum(header.getBytes().Concat(databuf).ToArray());
}
return header.getBytes();
}
0105デフォルトの名無しさん
2010/03/04(木) 06:53:41/********************************************************************************
* チェックサム計算
*******************************************************************************/
public short calcCheckSum(byte[] buf)
{
Int32 checksum = 0;
byte[] wrkbyte;
if (buf.Length == 1)
{
checksum += buf[0];
}
else if (buf.Length >= 2)
{
for (int i = 0; i < buf.Length; i += 2)
{
if ((i + 1) == buf.Length)
{
checksum += buf[i];
}
else
{
wrkbyte = new byte[] { 0, 0 };
Array.Copy(buf, i, wrkbyte, 0, 2);
checksum += Convert.ToInt32(BitConverter.ToInt16(wrkbyte, 0));
}
}
}
checksum = (checksum >> 16) + (checksum & 0xFFFF);
return (short)((~checksum) & 0xFFFF);
}
0106デフォルトの名無しさん
2010/03/04(木) 07:32:22// Initialize a Socket of Type TCP
socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Tcp);
byte[] tcpheaderbuf = Common.getInstance().getTcpHeader(Int16.Parse(this.selfPort), Int16.Parse(this.destPort));
byte[] ipheaderbuf = Common.getInstance().getIpHeader(tcpheaderbuf, this.selfAddress, this.destAddress, 6);
byte[] sendbuf = ipheaderbuf.Concat(tcpheaderbuf).ToArray();
// Send the Packet over the socket
IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Parse(this.destAddress), UInt16.Parse(this.destPort));
EndPoint endpoint = (ipendpoint);
this.iStartTime = Environment.TickCount;
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1);
int nBytes = socket.SendTo(sendbuf, sendbuf.Length, SocketFlags.None, endpoint);
if (nBytes == -1)
{
return false;
}
return true;
0107デフォルトの名無しさん
2010/03/04(木) 07:33:42以上がソースですが、まだネットワーク系を勉強中なため、基本的なことが抜けてたらご指摘ください。
0108デフォルトの名無しさん
2010/03/04(木) 07:44:23変更後の例でもsocket.Connectをコメントにするとエラーになるし
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Tcp);
TCPヘッダ作成
IPヘッダ作成
ヘッダ連結
チェックサム
int nBytes = socket.SendTo(sendbuf, sendbuf.Length, SocketFlags.None, endpoint);
↓
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
TCPヘッダ作成
IPヘッダ作成
ヘッダ連結
チェックサム
socket.Connect(endpoint);
//int nBytes = socket.SendTo(sendbuf, sendbuf.Length, SocketFlags.None, endpoint);
//ソースみたら内部でoffset指定タイプを呼んでるだけだった
int nBytes = socket.SendTo(sendbuf, 0,sendbuf.Length, SocketFlags.None, endpoint);
0109デフォルトの名無しさん
2010/03/04(木) 07:46:10自分のプログラムと一緒にトレースしてみた方がいいかもね
0110デフォルトの名無しさん
2010/03/04(木) 08:01:14うpろだに丸々うpしる!
0111デフォルトの名無しさん
2010/03/04(木) 08:26:39onclickのスクリプトコードそのものが欲しいのならOuterHtmlから切り出すくらいしかないはず
コード手に入れて何したいのか知らんけど
0112デフォルトの名無しさん
2010/03/04(木) 08:37:020113デフォルトの名無しさん
2010/03/04(木) 15:08:35そこにクリック後のURLの一部が書いてあって
それを使えばわざわざクリックしてページを開かなくてもいいことに気づいたので
利用しようと思っていたのです
OuterHtmlでいけました
ありがとうございます
0114デフォルトの名無しさん
2010/03/04(木) 16:36:28プロパティ開いてNameをシコシコ書き換え?
0115デフォルトの名無しさん
2010/03/04(木) 17:08:36フォーム名.csとフォーム名.Designer.csを正規表現置換
ないなら一括変換機能がもし仮にあったとしても無理だと思うよ
0116デフォルトの名無しさん
2010/03/04(木) 17:11:25レスありがとうございます。
やっぱり外部ツールとかで正規表現かけるかデザイナーのプロパティのところでNameを変更して
デザイナーに関連項目の名称置換を行ってもらうとかになりますかね・・・
0117デフォルトの名無しさん
2010/03/04(木) 17:19:36ドロップダウンで選択するものは全部すぐ閉じます
あと、スニペット挿入時で出るウィンドウを一瞬で閉じます
どなたかこの対処法ご存じないでしょうか?
0118デフォルトの名無しさん
2010/03/04(木) 17:48:490119デフォルトの名無しさん
2010/03/04(木) 17:49:380120デフォルトの名無しさん
2010/03/04(木) 17:50:32いや普通に>>115の2つのファイルをエディタで開いて
VSの置換機能で置換するだけ
ただしコントロールのアクセスレベルがprivateの場合に限る
0121デフォルトの名無しさん
2010/03/04(木) 19:47:48特に何もしてないdす
久しぶり起動してそれまでにいくつか常駐ソフトやいろいろなソフトいれたので
それが影響してるのかもしれないが、一応常駐しているのはすべて切ったけどだめだった
コンテキストメニューはちゃんと開くんだけど、スニペットのウィンドウだけ違う方法で開いているのかな
>>119
買ったばかりです・・
スニペット挿入はどういう操作で閉じるか教えていただけませんか?
0122デフォルトの名無しさん
2010/03/04(木) 22:36:27どうせある程度慣れたらCtrl+Dみたいなキーボード操作しかしなくなるからでっかいボタン表示してもうざいだけだな・・・
リボンとか意味のない機能だ
0123デフォルトの名無しさん
2010/03/04(木) 22:40:580124デフォルトの名無しさん
2010/03/04(木) 22:43:46候補はある>2chブラウザ
あとwindowsを搭載したタッチパネル系デバイスがイマイチ普及しないのは
windowsの基本UIが小さすぎるのでペンなどの先が細い物じゃないと使いにくい
というところがあったからなんだよね・・
タッチ前提になると変わると思うよ
ただおofficeはそもそもタッチで使うことはないので意味ないだろうけどw
エンターテイメント要素がある物には有効だよ
0125デフォルトの名無しさん
2010/03/04(木) 23:26:31っていうか、汎用OS上のアプリに限れば、タッチパネルは指をポインティングデバイスに
しようって発想じゃなくて、むしろマウスジェスチャー的な補助的操作の
延長線上のものでしかないと思うけど。
あと、リボンは、たとえカスタマイズ可能になっても作業領域や表示領域を
広くとりたい用途(例えばワード)には全然向かないね。
0126デフォルトの名無しさん
2010/03/05(金) 00:06:23じきにモニターの解像度が20000*10000とかになるって
0127デフォルトの名無しさん
2010/03/05(金) 00:18:52作業領域を広くしたい時は隠せばいいじゃん。
0128デフォルトの名無しさん
2010/03/05(金) 00:26:07解像度上げてもフォントが読めるサイズでないと話にならないから
モニターのインチが大きくならんと意味なかろう
俺のはすでに24なんだが、この数倍のモニターは部屋に置けねーよw
0129デフォルトの名無しさん
2010/03/05(金) 00:43:14モニタは今くらいでいい
HMDをそれくらいにしてくれ
0130デフォルトの名無しさん
2010/03/05(金) 01:20:10ケチ。
0131デフォルトの名無しさん
2010/03/05(金) 01:20:32文字を大きくすると意味ないしなぁ。
必然的にモニタサイズ大きくする必要があるわけで、27インチが俺の射程距離内
に入ってきますた
0132デフォルトの名無しさん
2010/03/05(金) 01:53:390133デフォルトの名無しさん
2010/03/05(金) 06:10:530134デフォルトの名無しさん
2010/03/05(金) 07:46:16MMSのストリーミング動画の落とし方がわからない・・・
0135デフォルトの名無しさん
2010/03/05(金) 07:56:160136デフォルトの名無しさん
2010/03/05(金) 09:42:24タイトル変えたりするのが面倒だから
自分で作ろうと奮闘してるんだが
むりぽww
0137デフォルトの名無しさん
2010/03/05(金) 10:26:24public void button1_Click(object sender, EventArgs e)
{
int y = int.Parse(textBox1.Text);
int x = int.Parse(textBox2.Text);
int _y = 520 * x / y;
textBox3.Text = Convert.ToString(_y);
}
///////////////////////////////////////////////////
Form1の中なんですけど、デバッグ中にボタンおしてもtextBox3に変化がない
どうすればいいんでしょうか?
よろしくお願いします
0138デフォルトの名無しさん
2010/03/05(金) 10:29:33buttonのclickイベントでその関数呼ばれるようにしてある?
0139デフォルトの名無しさん
2010/03/05(金) 10:29:430140デフォルトの名無しさん
2010/03/05(金) 10:54:57ちょこっと探してきたら,これがあったので大丈夫ですかね?
this.textBox3.TextChanged += new System.EventHandler(this.button1_Click);
>>139
見る人が見れば分かるんですね
元々はprivateで書かれてて、それでいろいろと試行錯誤をしてみたんですよ
まぁ、それの跡ですねw 一応直しておきました
0141デフォルトの名無しさん
2010/03/05(金) 10:58:21ちげーよw
ボタンが押されてもbutton1_Click(object sender, EventArgs e)これが呼ばれてないから
変わらないんだろうw
0142デフォルトの名無しさん
2010/03/05(金) 10:59:48で、明らかにtextBox3のTextChangedのときに呼び出されるようにしてるじゃん
0143デフォルトの名無しさん
2010/03/05(金) 11:00:510144デフォルトの名無しさん
2010/03/05(金) 11:03:280145デフォルトの名無しさん
2010/03/05(金) 11:04:32フォームのデザイナでもう一回メッソド作り直したら、
正常に動きました
>>143
おっしゃるとおりだと思います
勉強し直します
ありがとうございました
0146デフォルトの名無しさん
2010/03/05(金) 12:23:03そういう時はGASを制御するアプリを作るんだ
0147デフォルトの名無しさん
2010/03/05(金) 13:27:58ダウンロードするリストだけ自前で作って
MMSをダウンロードするソフトに読み込ませてdlした方が早そうですね
0148デフォルトの名無しさん
2010/03/05(金) 16:34:44解決方法がわからん・・誰か教えて。。
Form1_ClosingとnotifyIcon1_DoubleClickを手で直接入力しちゃったんだけど・・
たしか、VB6だと、オブジェクトをフォームデザイナの左のコンボボックスで選択して右のコンボボックスで
適したイベントハンドラを選択できるようになってたんだけど・・
VC#2005Expressだとやり方わかりません。すみません、誰か教えてください。。
0149デフォルトの名無しさん
2010/03/05(金) 16:37:34すべての変数を書き換える作業をしないとダメなんですか?
public string Name{get;set;}
public void hoge()
{
Name="hage"; ←こういうの全部 _name に書きかけなきゃならないの?
}
だったらやっぱり、最初からフィールド変数使った方が楽な気がするんだけど
0150デフォルトの名無しさん
2010/03/05(金) 16:39:02http://uproda.2ch-library.com/219724IPC/lib219724.png
雷マークがイベントハンドラの設定
右下の赤枠のマークを押すと画像の場合はFormのLoadイベントのイベントハンドラを
IDEが候補をだしてくれる
0151デフォルトの名無しさん
2010/03/05(金) 16:41:24別に内部だからってプロパティに代入しちゃダメな訳じゃないが?
0152150
2010/03/05(金) 16:44:24勝手に作ってくれる
0153デフォルトの名無しさん
2010/03/05(金) 16:50:330154デフォルトの名無しさん
2010/03/05(金) 17:36:22ちげーよw
0155デフォルトの名無しさん
2010/03/05(金) 17:48:01(1)クラスを呼び出すとき、別スレッドにするには、どうしたらよいですか。
おなじ名前空間にあるクラスを呼び出しています。
クラス名 名前 = new クラス名();
名前.メソッド名();
で呼び出すときに、スレッドにするにはどうしたらよいですか?
(2)この処理って、終わったら、呼び出したクラスに関するいろいろはぜんぶ自動的にdisposeされるんですか?
それとも、
名前.Dispose();
と処理する必要があるのですか?
以上2点、よろしくお願いします。
0156デフォルトの名無しさん
2010/03/05(金) 17:51:11おれより賢そうだから>>149の質問ズバリ教えて
0157デフォルトの名無しさん
2010/03/05(金) 17:55:03いや、ぜんぜん賢くないし。
get/setなんて使ったことないです。
ごめんなさい。
0158デフォルトの名無しさん
2010/03/05(金) 17:56:54スレッドとクラスって関係ないし
Disposeなんて所詮そう言う名前のメソッドに過ぎないんだからusingもせずに勝手に呼ばれるとかないし
0159デフォルトの名無しさん
2010/03/05(金) 17:57:24>public string Name{get;set;}
こんなのしなければいいだけ
0160デフォルトの名無しさん
2010/03/05(金) 17:57:46Nameプロパティをリファクタリングで_nameに名前変更
_nameプロパティの宣言をフィールドの宣言に変更
Nameプロパティを設けてgetとsetを書く
0161デフォルトの名無しさん
2010/03/05(金) 18:06:35・・・え?
0162デフォルトの名無しさん
2010/03/05(金) 18:08:020163デフォルトの名無しさん
2010/03/05(金) 18:15:43いやいや、それだと外部からそのプロパティを参照しているところも
全部_nameになるじゃない・・・
0164デフォルトの名無しさん
2010/03/05(金) 18:16:54プログラマなんだから英数字や記号は半角にしか変換できないようにIMEセッティングすべき
0165デフォルトの名無しさん
2010/03/05(金) 18:23:10じゃあクラス内の文字列置換なんかですればいい
0166デフォルトの名無しさん
2010/03/05(金) 18:41:50{
public string URL = "";
public string Title = "";
}
List<StreamDataSet> SrcList=new List<StreamDataSet>();
StreamDataSet src=new StreamDataSet();
src="ww.google.ne.jp";
if("-同じURLが既に追加していなければ-")
SrcList.Add(src);
if文の条件式にどのように書けばいいか迷ってます
この場合SrcListに同じURLがあるか探すにはForeachで
ひとつひとつ照らし合わすしかないですか?
List<string>だと.Findメソッドなどで簡単にできるけど
オブジェクトだった場合のやり方がわかりません
よろしくおねがいします
0167デフォルトの名無しさん
2010/03/05(金) 18:48:04[イベント ベースの非同期パターンを使用したマルチスレッド プログラミング]
ttp://msdn.microsoft.com/ja-jp/library/hkasytyf.aspx
[.NET ThreadPool の実行順序を制御する]
ttp://msdn.microsoft.com/ja-jp/magazine/dd419664.aspx
この辺を読むといい。本気で作るなら前者なんだが、おそらく挫折するw
次点のThreadPoolを利用する方法が簡単で、後者はその応用編
0168デフォルトの名無しさん
2010/03/05(金) 18:56:50一般には
if (!SrcList.Any(x => x.URL == src))
でも効率が悪いのでIComparer<T>を実装してBinarySearchを使うのがいいと思う
0169デフォルトの名無しさん
2010/03/05(金) 19:05:10srcは多分StreamDataSetだと思う
その次の、フィッシングサイトみたいなURLのあるコンパイルエラーになる行が気になるけどw
あと、効率考えるならDictionaryを使うことを検討した方がいいと思う
0170デフォルトの名無しさん
2010/03/05(金) 19:16:000171デフォルトの名無しさん
2010/03/05(金) 19:23:34× src="ww.google.ne.jp";
○ src.URL="ww.google.co.jp";
ID付きで追加削除したりするならはじめからDictionaryにしておくべきでしたね
使い勝手がいいからList<>を使っていたけど、データ構造はもうちょっと慎重にすべきでした
ありがとうございました
0172デフォルトの名無しさん
2010/03/05(金) 21:01:03?
(2)は自動的にDispose()はされないってことですか?
>>167
ありがとうございます。
挫折しました。
まだぜんぜん読めるレベルでありませんでした。
0173デフォルトの名無しさん
2010/03/05(金) 21:07:54それはクラスの実装次第
後処理が必ず必要になるようなクラスではGCされるときに自動的に後処理が行われるように
作ってあるはずだけど必ずしもそうだともかぎらない
でもそれはクラスを書いた奴が悪いのでそこまで考えても意味がない
0174148
2010/03/05(金) 21:25:13どうもありがとうございます。その方法でできました。。
助かった〜。ひさしぶりにプログラムやってみまして、
ウィンドウ右上の×印クリックしたときの挙動が違ったので
困っていました。
ちょっと所要で出かけていたので、お礼が遅くなりました。すみませんでした。
ありがとうございました。
0175148
2010/03/05(金) 21:28:250176デフォルトの名無しさん
2010/03/05(金) 21:41:510177デフォルトの名無しさん
2010/03/06(土) 00:46:59C#で作れますか?
0178デフォルトの名無しさん
2010/03/06(土) 00:58:300179デフォルトの名無しさん
2010/03/06(土) 01:11:100180デフォルトの名無しさん
2010/03/06(土) 01:13:46すまん、説明を頼む
0181デフォルトの名無しさん
2010/03/06(土) 01:28:32聞こえた気がした。
0182デフォルトの名無しさん
2010/03/06(土) 02:17:23アラートウインドウ
ttp://youryella.wankuma.com/Library/ClassLibrary/AlertWindow.aspx
0183148
2010/03/06(土) 02:48:38君の「C#」「バルーン」というキーワードに咥えて「タスクトレイ」という3つを
スペースで区切ってグーグルで検索するとたくさん情報がでてくるよ(´・ω・`)
デスクトップの右下あたりをタスクトレイというんだよ(´・ω・`) 。
0184デフォルトの名無しさん
2010/03/06(土) 02:51:410185デフォルトの名無しさん
2010/03/06(土) 02:56:190186デフォルトの名無しさん
2010/03/06(土) 02:57:240187デフォルトの名無しさん
2010/03/06(土) 03:18:01タ ス ク R A Y
0188デフォルトの名無しさん
2010/03/06(土) 03:55:47実はそんなものはない。
0189デフォルトの名無しさん
2010/03/06(土) 04:06:53microsoft.comの中の人もうっかり使うぐらい普及してんだからそんな指摘はナンセンス
0190デフォルトの名無しさん
2010/03/06(土) 04:24:440191デフォルトの名無しさん
2010/03/06(土) 04:34:40monoVMで動かすとSystem.TypeLoadExceptionの例外を吐いて落ちます。
そこで"gmcs"でソースそのものをコンパイルしようとしたのですが
error CS0234: The type or namespace name `Tasks' does not exist in the namespace `System.Threading'.
といってきます。
しかし
ttp://www.go-mono.com/status/status.aspx?reference=4.0&profile=4.0&assembly=mscorlib
ここによればParallel.Forは(たぶん)実装済みとの話です。
なにか勘違いをしているのか?
もしくは手順をまちがえているのか、教えてください。
0192デフォルトの名無しさん
2010/03/06(土) 04:45:09Monoだって.NET4.0相当品はまだRCだろ精々
0193デフォルトの名無しさん
2010/03/06(土) 08:07:25手元にないから確認はできないがコンパイラはdmcsらしい。
gとかdとかどういう基準のネーミングなんだろ。
mcs # C#1.0
gmcs # C#2.0-3.0
smcs # moonlight
dmcs # C#4.0 preview
0194デフォルトの名無しさん
2010/03/06(土) 09:36:07終わったときにでるやつじゃなくて?
ただのバルーンなの?
0195デフォルトの名無しさん
2010/03/06(土) 11:13:36場面で、string[] だったらなんて名前にする?
int n;
string[] ???;
慣用的な名前ってある?
具体的には、
var ??? = text.Split(new[]{'='},2);
var key = ???[0];
var value = ???[1];
みたいな場面で使いたいんだ。
0196デフォルトの名無しさん
2010/03/06(土) 11:17:060197デフォルトの名無しさん
2010/03/06(土) 11:19:060198デフォルトの名無しさん
2010/03/06(土) 11:20:530199デフォルトの名無しさん
2010/03/06(土) 11:22:410200デフォルトの名無しさん
2010/03/06(土) 11:23:310201デフォルトの名無しさん
2010/03/06(土) 11:25:310202デフォルトの名無しさん
2010/03/06(土) 11:43:16string[] って型だけでは、慣用はない。
用途・意図に基づいた名前付けないと。
自分はSplitの戻り値はtokensとか多用。
0203デフォルトの名無しさん
2010/03/06(土) 11:45:01変数名は書く人のポリシーみたいなのが出て面白いな。
俺はnとかiとかは絶対使わない派かな。
0204デフォルトの名無しさん
2010/03/06(土) 12:14:060205デフォルトの名無しさん
2010/03/06(土) 12:20:390206デフォルトの名無しさん
2010/03/06(土) 12:43:30n とか i よりよっぽど悪い。
0207デフォルトの名無しさん
2010/03/06(土) 12:46:000208デフォルトの名無しさん
2010/03/06(土) 12:52:17tmpStringsを型情報というのも賛同できないな
0209デフォルトの名無しさん
2010/03/06(土) 13:33:280210デフォルトの名無しさん
2010/03/06(土) 13:42:34漠然としすぎ
0211デフォルトの名無しさん
2010/03/06(土) 13:46:43LINQ とかで条件絞るとまた別の名前にするしね。
漠然と strings はちょっと範囲広すぎると思う。
0212デフォルトの名無しさん
2010/03/06(土) 13:53:18lstとかdicとか頭につけてるが、これもハンガリアン的なアレなんだろうか
0213デフォルトの名無しさん
2010/03/06(土) 13:58:11ハンガリアンそのものでしょ。
今時そんなことやる人いるのか。
「型名」を「略号」で変数名に組み込むより、
「機能」を「明示的に」変数名に組み込む方がずっと合理的だとは思わないのかな。
0214デフォルトの名無しさん
2010/03/06(土) 14:04:00http://www.nhk.or.jp/professional/mogi_moja.html
0215デフォルトの名無しさん
2010/03/06(土) 14:06:11機能うんぬんもちがうんじゃないかい。
配列だったら ar lst dm あたりを使ってるな。
0216デフォルトの名無しさん
2010/03/06(土) 14:08:330217デフォルトの名無しさん
2010/03/06(土) 14:13:00なんなのその「なのだから」って。
幻聴持ちですか?w
0218デフォルトの名無しさん
2010/03/06(土) 14:17:130219デフォルトの名無しさん
2010/03/06(土) 14:22:03冷静に話しましょう
0220デフォルトの名無しさん
2010/03/06(土) 14:32:34スコープ広くして使いまわしたくなるんだよね
変数名自体よりもそのほうが問題
0221デフォルトの名無しさん
2010/03/06(土) 14:32:54単語帳みたいなイメージでwordsでつける
0222195
2010/03/06(土) 14:33:11慣用されてる名前はないのか。
じゃあ、>>225 が決めてくれ。
0223デフォルトの名無しさん
2010/03/06(土) 14:44:23まして文字列なんてもっとそうだろう。
もしそんな場面があるなら普通にsでいいと思うけど。
0224220
2010/03/06(土) 14:50:25新しい変数を宣言せずにnをそのまま使い回したくならない?
一文字変数がどうとかいうよりそういうのがコードを分かりづらくすると思うんだ
ループカウンタなんかはそもそも使いまわすわけがないのでiでも問題ないけど
0225デフォルトの名無しさん
2010/03/06(土) 14:52:460226デフォルトの名無しさん
2010/03/06(土) 15:00:010227デフォルトの名無しさん
2010/03/06(土) 15:05:270229デフォルトの名無しさん
2010/03/06(土) 16:15:21DLRやMEFみたいにMS-PLで公開されてるのかと思ってた
0230デフォルトの名無しさん
2010/03/06(土) 16:24:08ttp://mono-project.com/Release_Notes_Mono_2.6
> ParallelFx
> To use this code you have to manually enable the .NET 4
> profile using the --with-profile4=yes switch at configure stage.
0231デフォルトの名無しさん
2010/03/06(土) 17:02:30もう異次元すぎるな
こんなの書く日が来るんだろうか
0232デフォルトの名無しさん
2010/03/06(土) 17:50:080233デフォルトの名無しさん
2010/03/06(土) 17:58:050234195
2010/03/06(土) 18:16:42ぼけてくれなくて残念。
ちょい補足。
ruby みたいに多重代入があれば、
key,value = text.Split(new[]{'='},2);
としたいところだが、それができないので一時変数名を決めないといかん。
そんな場合にどうするか。
自分は、ひとに見せる予定がないときは手を抜いて a (arrayの意)。
人に見せる予定があるときは、ary,tokens とかなんだけど、
ソースを読んだ人がわかりやすい名前があればそれに
しとこうと思って、皆に聞いてみました。
0235デフォルトの名無しさん
2010/03/06(土) 19:12:28簡単なプログラムの場合、コンソールで作った方が早いと気づいて
最近はまずコンソールアプリを作って、それを制御するフォームアプリを作るように
しているんですが、おかしいですか?
0236デフォルトの名無しさん
2010/03/06(土) 19:14:320237デフォルトの名無しさん
2010/03/06(土) 19:18:12好みの問題でしょ
VC#ならEEでもGUI作るのは簡単だし
VC++のネイティブとなるとエディションによってはいろいろ面倒だけど
0238デフォルトの名無しさん
2010/03/06(土) 19:19:190239デフォルトの名無しさん
2010/03/06(土) 19:19:48途中で変更はあるにしろ。
0240191
2010/03/06(土) 19:28:48SVNからビルドしたらできるようになりました。
0241デフォルトの名無しさん
2010/03/06(土) 20:34:39いやいや、>>195の例では何のワークかわからんし、テンポラリの文字列という意味でtmpStringだよ。
もっと何の用途にというのがわかれば、具体的な名前つけるけど。
俺からは>>196とか>>197のようなsplitで分割するからsplitted、keyとvalueのペアだからpairとか
そっちの方があり得ない。
まあ、俺が馬鹿という結論でいいよ、この手の論争は疲れるし。
0242デフォルトの名無しさん
2010/03/06(土) 20:34:54ロジックと外観の分離ができてるから良いかもね
0243デフォルトの名無しさん
2010/03/06(土) 20:36:220244デフォルトの名無しさん
2010/03/06(土) 20:38:21ていうかDOS窓とかすでに郷愁を誘う言葉だ
0245デフォルトの名無しさん
2010/03/06(土) 20:39:260246デフォルトの名無しさん
2010/03/06(土) 20:43:01テキストを投げてもらうとかもいいかもね
0247デフォルトの名無しさん
2010/03/06(土) 20:45:02意味がわからんよ
0248デフォルトの名無しさん
2010/03/06(土) 20:46:24ばーかばーか
0249デフォルトの名無しさん
2010/03/06(土) 20:48:40まあやり方はいろいろあるからなんでもいいんじゃないの?
処理部分はC/C++で書いて・・・とかあるとDLLとして使うのもいいし
裏でサービスとして起動しておいて汎用的なアクセスにするでもいいし
0250デフォルトの名無しさん
2010/03/06(土) 20:51:54コンソールアプリはコンソールアプリで楽に自動化できるからあればいいじゃない
で、先にコンソールアプリがあるなら一々クラスライブラリ化するより
GUIアプリはコマンドライン用の文字列作ってコンソールアプリに丸投げした方が手っ取り早いじゃない
0251デフォルトの名無しさん
2010/03/06(土) 20:54:560252デフォルトの名無しさん
2010/03/06(土) 21:00:00一目で型が分かるアレは便利だった
ハンガリアンに批判的なのは低脳プログラマに多い
0253デフォルトの名無しさん
2010/03/06(土) 21:05:38ハンガリアンはなくなって行く方向なのは間違いない
0254デフォルトの名無しさん
2010/03/06(土) 21:07:30単純なパラメータで済むなら楽と言えば楽だし。
0255デフォルトの名無しさん
2010/03/06(土) 21:09:52それを.netスレでいうのはかなり痛いぞ
.netで開発してると過去のみみっちい省略がアホくさく思える
タダ単に古参ギークが新参をバカにしたいだけにしか見えない
アセンブラからいろいろやってきてるが古いやり方で駄目な物は変えるべきだし
変わってる以上は受け入れるべき
こだわってるってことは新しいことについていけない昔を懐かしむだけの
老人に見える。
0256デフォルトの名無しさん
2010/03/06(土) 21:20:32普通にメソッド呼び出しできた方がずっと楽だと思いますがw
バッチファイルやWSHとか、.NET以外の言語からも弄れるようにしたいのならともかく、
.NETの世界で完結していいのならわざわざコンソールアプリにする意味ってあるのかしら。
>>255
どうせ釣りだろうにそうムキにならんでも....
ただ、クラス名にCを付ける習慣まで否定しなくてもよかったんじゃないのかなとは
個人的にはちょっと思う時がある。
そのくせなんでインターフェイスだけIでプリフィクス推奨なんだろう。
0257デフォルトの名無しさん
2010/03/06(土) 22:04:16インターフェースがIから始まってたらクラスの山の中からすぐ探せて便利。
クラスのPrefixがCだとタイプ数が1回増えるだけで意味ない。
てな結論に至ったんじゃない?
0258デフォルトの名無しさん
2010/03/06(土) 22:05:21>ただ、クラス名にCを付ける習慣まで否定しなくても
クラスの塊なのにC付けたらウザいだろ
0259デフォルトの名無しさん
2010/03/06(土) 22:05:59www
0260デフォルトの名無しさん
2010/03/06(土) 22:12:38だから選べる手段のひとつとしてだってばさ。w
プロセス分割の基準はいくつもあるだろ。
0261デフォルトの名無しさん
2010/03/06(土) 22:18:48そこ除く意味が分からない
0262デフォルトの名無しさん
2010/03/06(土) 22:22:33ってことだろ。
0263デフォルトの名無しさん
2010/03/06(土) 22:29:23より簡潔な言語とデザイン画面での操作性にすぐれたもの
多分フリーだとこれ以上のものはないよね?
0264デフォルトの名無しさん
2010/03/06(土) 22:30:41フリーはないねえ
0265デフォルトの名無しさん
2010/03/06(土) 22:35:330266デフォルトの名無しさん
2010/03/06(土) 22:37:170267デフォルトの名無しさん
2010/03/06(土) 22:37:48フリーじゃ無いが。
0268デフォルトの名無しさん
2010/03/06(土) 23:27:16Windows XP以降のOSでアクティブでない通知アイコンが隠せるようになりましたが、
notifyIconをアクティブな状態にするにはShowBalloonTipしかないのでしょうか。
独自のフォームで通知を行い(メーラーやウィルスチェックソフトのように)
その際に通知アイコンを表示したいのです。
0269デフォルトの名無しさん
2010/03/07(日) 00:19:08tmpString はないわ。
0270デフォルトの名無しさん
2010/03/07(日) 00:34:01Formにしろ、notifyIconにしろVisibleプロパティをtrueにすりゃ、アクティプになるだろう・・と思うんだけど
0271デフォルトの名無しさん
2010/03/07(日) 00:45:54未だにまともなプログラミングができないおれ涙目
0272デフォルトの名無しさん
2010/03/07(日) 00:47:470273デフォルトの名無しさん
2010/03/07(日) 00:49:45Windows 7で確認していますが、
Windowsの通知領域アイコンの設定が「通知のみ」になっているとバルーンを出したとき?にしか
表示されなくなるんです。
これを、バルーンを出さずに一時的に表示する方法がないかな、と。
Visibleの変更は試してみましたがだめでした。
0274デフォルトの名無しさん
2010/03/07(日) 00:53:35いろんなプロジェクトに参加していいところを吸収できれば短期間でもすくすくと成長できる。
0275デフォルトの名無しさん
2010/03/07(日) 01:07:44このクラスって何に使うべき?
0276デフォルトの名無しさん
2010/03/07(日) 01:10:430277デフォルトの名無しさん
2010/03/07(日) 01:11:07二重起動を弾くとか
0278デフォルトの名無しさん
2010/03/07(日) 01:14:20{
0279デフォルトの名無しさん
2010/03/07(日) 01:23:08}
0280デフォルトの名無しさん
2010/03/07(日) 01:57:210281デフォルトの名無しさん
2010/03/07(日) 08:24:00専ブラでも作れ
GUIの作り方からいろいろ学べるぞ
0282デフォルトの名無しさん
2010/03/07(日) 09:14:390283デフォルトの名無しさん
2010/03/07(日) 09:20:280284デフォルトの名無しさん
2010/03/07(日) 09:26:110285デフォルトの名無しさん
2010/03/07(日) 09:33:562.System.Net.Sockets で実装する。
3.できあがり。
0286デフォルトの名無しさん
2010/03/07(日) 10:18:580287デフォルトの名無しさん
2010/03/07(日) 11:14:30urlを与えるとhostとか細かく分解処理して管理するクラスだとなんて名前付ければいいだろうw
0288デフォルトの名無しさん
2010/03/07(日) 11:19:410289デフォルトの名無しさん
2010/03/07(日) 11:21:26host+その他
以外もできましたっけ?
0290デフォルトの名無しさん
2010/03/07(日) 11:25:090291デフォルトの名無しさん
2010/03/07(日) 11:38:53という感じでパスがあったとすれば
[host]
[bbb]
とかurlの一部だけを抜きだしたい場合の話ですね
正規表現かけて処理しないと対応できなかった記憶が・・・
0292デフォルトの名無しさん
2010/03/07(日) 11:51:510293デフォルトの名無しさん
2010/03/07(日) 14:44:032ちゃん専ブラって自分用にいろいろカスタマイズしたいし
作ってみたいんだけど参考サイトがあんまりないんだよね
ツインテールの初期のソースとかあったら見てみたいんだけど
今のソースは規模が大きくてもう理解不能
0294デフォルトの名無しさん
2010/03/07(日) 15:36:400295デフォルトの名無しさん
2010/03/07(日) 16:33:03コンソールアプリで作って、プロジェクトの出力の種類をWindowsアプリケーションにすればOK
0296デフォルトの名無しさん
2010/03/07(日) 17:40:52頭の中で実行プロセスをイメージしながら
ソースを見ていると混乱する
少し時間が経ってからクラスやメソッドを見ているとき
これがどのタイミングで実行されるかすぐにはイメージできない
ある動作をさせるとき多くの手段があり過ぎて迷う
0297デフォルトの名無しさん
2010/03/07(日) 18:00:09なんかダメグラマ具合が文章にも出てるね。
文章力とプログラミング能力って相関がありそうだもんなw
0298デフォルトの名無しさん
2010/03/07(日) 18:11:460299デフォルトの名無しさん
2010/03/07(日) 18:20:172ch専用ブラウザの作り方
http://pc12.2ch.net/test/read.cgi/tech/1180406037/400
この辺で最近新規にc#で作ってる人がいるみたいなんでこっちも覗いてみては?
0300デフォルトの名無しさん
2010/03/07(日) 18:48:26処理が細切れになって頭の中でイメージしにくい
0301デフォルトの名無しさん
2010/03/07(日) 19:17:150302デフォルトの名無しさん
2010/03/07(日) 19:28:08どんな言語だって多かれ少なかれそんなもんだろ
0303デフォルトの名無しさん
2010/03/07(日) 19:30:44イベントドリブン「だから」混乱するんじゃない。
イベントドリブン「ですら」混乱するんだよ。
0304デフォルトの名無しさん
2010/03/07(日) 19:52:330305デフォルトの名無しさん
2010/03/07(日) 19:57:48まあいえるんじゃないの?
マウスが動いたら〜、サウンドボードのバッファーが空になったら〜
0306デフォルトの名無しさん
2010/03/07(日) 20:50:17目的は全然違うけどね。
っていうか、割り込み処理って別に大昔じゃないだろうw
マルチタスクOS上のアプリのコーディングでは使わないだけでしょ。
0307デフォルトの名無しさん
2010/03/07(日) 20:52:550308デフォルトの名無しさん
2010/03/07(日) 20:55:400309デフォルトの名無しさん
2010/03/07(日) 21:34:14<div>
<h2>[VAR1]</h2>
<p>[VAR2]<p>
<div>
があるとして、
[VAR〜]に値を流しこんでいきたいのですが、
どんな方法がありますでしょうか。
テンプレートは、
- div:
- h2: VAR1
- p: VAR2
のようなYAMLでもJSONでもなんでもいいのですが、
とにかく、同じようなデータセット?をテンプレートに流し込みたいです
0310デフォルトの名無しさん
2010/03/07(日) 21:36:000311デフォルトの名無しさん
2010/03/07(日) 21:49:22private void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
で処理してるんですけど、処理が終わるまでカーソルの移動がわかりません。
先にカーソルを移動させたいんですけど、どうしたらいいでしょうか。
0312デフォルトの名無しさん
2010/03/07(日) 22:12:01ありがとうございます。
なるほど、普通に置換すればいいのか。
連続で申し訳ないんですが、
フォルダのパスなどの定数ってどこに書くのが適切ですか?
0313デフォルトの名無しさん
2010/03/07(日) 22:33:01アプリケーション構成ファイルとかに書かない?
0314デフォルトの名無しさん
2010/03/07(日) 23:06:31重い処理するならUIをブロックしないように非同期にする
0315デフォルトの名無しさん
2010/03/07(日) 23:15:35それしかないんですね・・・
ありがとうございます。
0316デフォルトの名無しさん
2010/03/07(日) 23:37:28おお
0317デフォルトの名無しさん
2010/03/07(日) 23:48:310318デフォルトの名無しさん
2010/03/08(月) 05:53:43f.Run();
と
Foo f=new Foo();
Thread t= new Thread(new ThreadStart(f.Run));
t.Start();
t.join();
はほぼ同じ動きをすると考えていいですよね?
後者にするとすごく遅くなるんですけど
これは余計なことやってるからだけなんでしょうか?
0319デフォルトの名無しさん
2010/03/08(月) 08:26:130320デフォルトの名無しさん
2010/03/08(月) 08:29:09プロジェクトプロパティの
リソースや、設定っていうタブのことですか?
0321デフォルトの名無しさん
2010/03/08(月) 11:19:46誰か教えてください。
よろしくお願いします。
http://www.dotup.org/uploda/www.dotup.org709383.jpg
0322デフォルトの名無しさん
2010/03/08(月) 11:22:120323デフォルトの名無しさん
2010/03/08(月) 11:25:190324デフォルトの名無しさん
2010/03/08(月) 12:14:15そう 主に設定の方
0325デフォルトの名無しさん
2010/03/08(月) 12:17:340326デフォルトの名無しさん
2010/03/08(月) 15:04:56あれってよくわからんが、自分でapp.configとかいう名前のファイル作って
そこに書きだすのとどう違うんだ?
0327デフォルトの名無しさん
2010/03/08(月) 15:48:13デスクトップアプリで
0328デフォルトの名無しさん
2010/03/08(月) 15:52:05色々あるけど機能としては
IDEが自動的に型指定されたプロパティとしてSettings.名前でアクセスできるラップクラスSettingsを用意してくれる
ユーザースコープの方はSettings.Default.Saveで簡単に保存できる
とか 自分もこういう基礎的な部分以外は使わんから詳しくないけど
アプリケーション設定でもapp.configを使うんだけど
普通直接app.configに値を埋め込む場合は普通configuration/appSettingsを使うのに対して
configuration/configSections/sectionGroupを使って別ツリーに書き出す
0329デフォルトの名無しさん
2010/03/08(月) 17:40:090330デフォルトの名無しさん
2010/03/08(月) 17:46:390331デフォルトの名無しさん
2010/03/08(月) 17:49:54ありがとう。
0332デフォルトの名無しさん
2010/03/08(月) 17:50:34Dictionary<TKey, TValue>.KeyCollection
とか答えちゃうぞ
0333デフォルトの名無しさん
2010/03/08(月) 17:58:00一般的な呼び方がわからなかったので329のように書きましたが
以降はそうさせてもらいます。
0334デフォルトの名無しさん
2010/03/08(月) 20:11:54例外発生時にエラーログを出力したいのですが、
後で統計などを取るためにプログラムから読みやすい形を考えています。
ただし、バイナリはNGにしたいと思います。
独自のErrorクラスを作って、その配列をXmlSerializerや
SoapFormatterでSerializeというのを考えたのですが、
こういう手法というのは一般的に見てどうでしょうか。
書き込むのにDeserialize→配列に追加→Serializeという手順になるので、
パフォーマンス上は不利だとは思いますが、
試しに3MB位までログ容量を増やしても体感上は遅延は感じませんでした。
本番運用では100KB以内で収まる程度だとは思います。
0335デフォルトの名無しさん
2010/03/08(月) 20:13:02XMLにも出力できる
0336デフォルトの名無しさん
2010/03/08(月) 20:15:52ないね
かなり小さいコードでもインテリセンスに頼った方が早かったりする
スクリプト言語はコンパイルが不要なことに意義がある
0337デフォルトの名無しさん
2010/03/08(月) 20:17:050338デフォルトの名無しさん
2010/03/08(月) 20:37:420340デフォルトの名無しさん
2010/03/09(火) 10:10:21あれ結構便利だとは思うけど
やれる事が多いだけに設定がめんどくせぇ・・・
俺の中では設定ファイルの中身グチャグチャにされるイメージがでかいかな・・
今は必要な機能だけ持った独自のログ機能自作して使ってるわ
0341デフォルトの名無しさん
2010/03/09(火) 12:45:06WPFでjpg画像を読み込んでいます。
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(fileName);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
これで、jpgが壊れているときに、
bmp.EndInit();
でエラーになります。
そこで、これ全体をtry-catchして、エラーが出たらDisposeしようと考えました。
catch{
bmp.Dispose();
Close();
}
としたのですが、bmpにはDispose()が見当たりません。
どうやってDisposeして終了したらよいでしょう?
WPF掲示板は初心者の質問には答えていただけないようなので、
こちらに来ました。
よろしくお願いします。
0342デフォルトの名無しさん
2010/03/09(火) 12:46:490343デフォルトの名無しさん
2010/03/09(火) 12:59:43以前とあるソフト書いたときはこんな感じにしたな
FileStream fs = new FileStream(save,FileMode.Open);
b = new Bitmap(fs);
fs.Close();
fs.Dispose();
これだと自分でdiposeできるのでロックがかかったままにならない
どこかにこれはあったはず(@ITあたりにサンプルコードあったはず)
0344デフォルトの名無しさん
2010/03/09(火) 13:03:42それSystem.Drawingや、と
まあWPFでも同じ回避方法になるね
UriSourceじゃなくてStreamSourceを使う
ていうかこれはバグだなー
0346デフォルトの名無しさん
2010/03/09(火) 13:06:27バグというか仕様というか仕様考慮漏れというか
GCをあてにする言語なんでこういう仕様も許容範囲かと
コード書く側でまったく対処できないなら問題だけどね
0347デフォルトの名無しさん
2010/03/09(火) 13:10:12saveってのはこの前のロジックの都合でそうなってるだけで
fileNameとか自分の環境にあったのに書き換えてね
0348デフォルトの名無しさん
2010/03/09(火) 13:13:34いや、内部でStream作ってるんだからそれを例外時にCloseしないのは問題でしょ
「using使えよ」的な話
ストリームをCloseしたときに例外が出たって状況ではないんだから
0349デフォルトの名無しさん
2010/03/09(火) 14:03:42が、下記のコードで、画像が表示されなくなりました。
読み込めていないようです。
どこがまずいでしょう?
BitmapImage bmp = new BitmapImage();
try{
//FileStream fs = new FileStream(fileName, FileMode.Open);
//bmp = new BitmapImage();
//fs.Close();
//fs.Dispose();
bmp.BeginInit();
//bmp.UriSource = new Uri(fileName);
bmp.StreamSource = new FileStream(fileName, FileMode.Open);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.StreamSource.Close();
bmp.StreamSource.Dispose();
bmp.EndInit();
}catch{
Close();
}
0350デフォルトの名無しさん
2010/03/09(火) 14:07:09あとCloseとかDisposeとかは明示的に呼ぶんじゃなくてusing構文で
0351デフォルトの名無しさん
2010/03/09(火) 14:15:210352デフォルトの名無しさん
2010/03/09(火) 14:20:25基本的にオープンの状態を維持して読み直せるようにしないといけない。
0353デフォルトの名無しさん
2010/03/09(火) 14:23:59BitmapCacheOption.OnLoadの場合ロード時=EndInit時にデータを全部メモリにコピーしちゃうから
元Streamがどうなろうがしったこっちゃないよ
0354デフォルトの名無しさん
2010/03/09(火) 14:25:28自分でメモリに上げちゃえばいいんじゃないの?
0355デフォルトの名無しさん
2010/03/09(火) 14:54:55bmp.EndInit();
bmp.StreamSource.Close();
bmp.StreamSource.Dispose();
と順番を変更してうまくいきました。
ありがとうございました。
0356デフォルトの名無しさん
2010/03/09(火) 15:15:28もちろんループをつかって全部−1を掛け算すればいいんだけど、ビット演算とかで簡単にできないかなーと思って
0357デフォルトの名無しさん
2010/03/09(火) 15:17:210358デフォルトの名無しさん
2010/03/09(火) 15:27:460359デフォルトの名無しさん
2010/03/09(火) 15:29:030360デフォルトの名無しさん
2010/03/09(火) 15:30:25int32の場合だと-1かけるっていうのは0xFFFFFFFFをかけるってことだけど
素直に計算したほうがいいんじゃないの?
参考までに
1*-1は0x00000001*0xFFFFFFFF=0xFFFFFFFF
2*-1は0x00000002*0xFFFFFFFF=0xFFFFFFFE
以下略
余計なシフト演算するくらいなら掛け算したほうがいい気がする
0361デフォルトの名無しさん
2010/03/09(火) 15:30:560362デフォルトの名無しさん
2010/03/09(火) 15:46:540363デフォルトの名無しさん
2010/03/09(火) 15:51:38じゃあ、再帰使え
0364デフォルトの名無しさん
2010/03/09(火) 15:51:42これより高速な方法なんてある?
0365デフォルトの名無しさん
2010/03/09(火) 15:54:32そういうのを除けばすでに言語はあまり関係ないよな・・・
0366デフォルトの名無しさん
2010/03/09(火) 16:01:420367デフォルトの名無しさん
2010/03/09(火) 16:16:50int[] val = new int[10];
var tmp =
from n in val
select n * -1;
var minus = tmp.ToArray();
0368デフォルトの名無しさん
2010/03/09(火) 16:18:300369デフォルトの名無しさん
2010/03/09(火) 16:19:48再帰でやるほどでもないだろうし
0370デフォルトの名無しさん
2010/03/09(火) 16:22:48a[0] = -a[0];
a[1] = -a[1];
・・・
さあ全部書くんだ
0371デフォルトの名無しさん
2010/03/09(火) 16:24:500372デフォルトの名無しさん
2010/03/09(火) 16:25:000373デフォルトの名無しさん
2010/03/09(火) 16:29:22まあネタだよね
釣りともいうかも
0374デフォルトの名無しさん
2010/03/09(火) 16:36:21Cとかアセンブラの域になるが。
0375デフォルトの名無しさん
2010/03/09(火) 16:40:370376デフォルトの名無しさん
2010/03/09(火) 16:54:250377デフォルトの名無しさん
2010/03/09(火) 16:59:230378デフォルトの名無しさん
2010/03/09(火) 17:18:06単純でミスがないような後々わかりやすいコードのが大事だろ
0379デフォルトの名無しさん
2010/03/09(火) 18:05:45今更だけど、FileStream.Close()ってDispose呼ぶだけだから、
CloseとDisposeの両方を呼ぶ必要はなく、片方1つで十分のはず。
0380デフォルトの名無しさん
2010/03/09(火) 18:16:11MSDNには「Disposeのtrueと同じ」って書いてあったから
ちょっと違うのかもと思ってた
0381デフォルトの名無しさん
2010/03/09(火) 18:25:00Dispose()はDispose(true)をよんでいる。
0382デフォルトの名無しさん
2010/03/09(火) 18:59:180383デフォルトの名無しさん
2010/03/09(火) 21:11:150384デフォルトの名無しさん
2010/03/09(火) 21:49:10添付ファイルとしていたローカルファイルを削除できなくて悩んだことがあったな。w
この時初めて Dispose の重要性を実感した。
0385デフォルトの名無しさん
2010/03/09(火) 22:21:55どうやったら参照できるようになりますか。
0386デフォルトの名無しさん
2010/03/09(火) 22:25:03プロジェクト参照じゃなくてdllをそのまま配布する場合は必ず生成されたxmlファイルも一緒に
0387デフォルトの名無しさん
2010/03/09(火) 23:32:070388387
2010/03/09(火) 23:47:580389デフォルトの名無しさん
2010/03/10(水) 00:07:210390デフォルトの名無しさん
2010/03/10(水) 00:15:450391デフォルトの名無しさん
2010/03/10(水) 00:18:27いやです
0393デフォルトの名無しさん
2010/03/10(水) 00:28:53いやです
0394デフォルトの名無しさん
2010/03/10(水) 01:51:090395デフォルトの名無しさん
2010/03/10(水) 01:52:310396デフォルトの名無しさん
2010/03/10(水) 02:05:49↑長い
↓こんな感じにできたらいいのに
listview.items[](str,str,str,str)
0397デフォルトの名無しさん
2010/03/10(水) 02:07:27っ 拡張メソッド
0398デフォルトの名無しさん
2010/03/10(水) 13:43:090399デフォルトの名無しさん
2010/03/10(水) 15:02:56下のような変換をするにはどのように書けばいいですか?
string "J" → Keys.J
string "Divide" → Keys.Divide
string "NumPad2" → Keys.NumPad2
0400デフォルトの名無しさん
2010/03/10(水) 15:34:09�@private static List<string> sampleList = new List<string>();として
同じクラス内の以下のスレッドを同時に実行します
スレッド1はsampleListに要素を一つずつaddして追加
スレッド2もsampleListに要素を一つずつaddして追加
スレッド3はsampleListの先頭の要素を取得後、RemoveAt(0)で削除
この場合はSynchronizedは必要ですか?
�Aprivate static int n1;として
2つの同時進行のスレッドからn1の値を変えたりする場合は
Interlockedが必要ですか?
�Bprivate static int n1;として
スレッド1からはn1の値を変更するが、スレッド2からは参照するだけ
ならばInterlockedは必要ないですか?
よろしくお願いします
0401デフォルトの名無しさん
2010/03/10(水) 15:35:43(Keys)Enum.Parse(typeof(Keys), "NumPad2", false);
0402デフォルトの名無しさん
2010/03/10(水) 15:46:530403デフォルトの名無しさん
2010/03/10(水) 15:47:21できました。ありがとうございます!
他にも色々使えそうなので更に勉強してきます。
0404デフォルトの名無しさん
2010/03/10(水) 15:58:590405400
2010/03/10(水) 16:05:14ありがとうございます。
�Bの場合もInterlockedしておいた方がいいという事ですね。。。
もう一つだけ教えてください。
http://msdn.microsoft.com/ja-jp/library/6sh2ey19(VS.80).aspxに
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。
と記載せれているのですが、これはSynchronizedが必要ないという意味ですか?
0406デフォルトの名無しさん
2010/03/10(水) 16:37:15>この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。
>すべてのインスタンス メンバがスレッド セーフになるかどうかは保証されていません。
いらないよ
逆にCountプロパティとかその辺はセーフかどうかなんて保証されてないってこった
>コレクションが変更されない限り、List では、複数の読み込み操作が同時に発生しても問題ありません。
コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。
まれに 1 つ以上の書き込みアクセスによって列挙処理で競合が発生する場合、確実にスレッド セーフにするには、列挙処理が完了するまでコレクションをロックします。
コレクションに対し複数のスレッドがアクセスして読み取りや書き込みを行うことができるようにするには、独自に同期化を実装する必要があります。
と書いてあるがこれ読めば参照時にもロックかけるべきかどうかは判断つくと思うんだけど
0407400
2010/03/10(水) 17:01:26ありがとうございます
まとめると、Listをスレッドセーフで使うには
・public static以外はSynchronizedが必要
・For EachやCountプロパティ等を使用する時はロックが必要
ということでいいのかな。
助かりました、サンクス。
0408デフォルトの名無しさん
2010/03/10(水) 18:46:47常にロックが必要
0409デフォルトの名無しさん
2010/03/10(水) 19:32:29DOBONさんのTipsを見て
Form2 f = new Form2();
f.ShowDialog(this);
f.Dispose();
な感じでForm2をForm1に所有させてやってるんですが
他にやり方とかないでしょうか?
0410デフォルトの名無しさん
2010/03/10(水) 19:39:31クリップボードを中継する
0411デフォルトの名無しさん
2010/03/10(水) 19:42:07それでできるのに何が問題なのかが
重要なんだと思うが・・・・
0412デフォルトの名無しさん
2010/03/10(水) 19:42:12Form2にアクセス用の関数を作って公開する
0413デフォルトの名無しさん
2010/03/10(水) 20:09:20Form1.cs
http://codepad.org/8UBu8se8
Form2.cs
http://codepad.org/ErnDt7Yc
0414デフォルトの名無しさん
2010/03/10(水) 20:39:55テキストボックスのModifiersプロパティをPublicにする
0415デフォルトの名無しさん
2010/03/10(水) 22:13:29状況が分からないのでどういう方法が適切か何ともいえないけど、
Form1とForm2の間に相互に依存関係を持たせたくないのなら、
第三の仲介者役のオブジェクトを間に入れる。
単に依存関係を逆転させたい(Form1はForm2を知るべきでないが、Form2はForm1を知っててもいい)
だけなら、イベントを使ってもいい。
(1) Form1はボタンがクリックされたらテキスト伝達のためのイベント(仮にTransmitTextイベントとする)を発生させるようにする
(2) Form2がForm1の参照を持つ
(3) Form2にForm1のTransmitTextイベントのイベントハンドラを書いて、その中でTextBoxを更新する。
こんな感じ。
0416409
2010/03/10(水) 22:23:46Form1からForm1所有でForm2とForm3を出した際に
Form2の情報をForm3で取得したいときに所有しているのはForm1なので
受け渡しが出来ないのでどうすればいいのか?と考えていました。
0417デフォルトの名無しさん
2010/03/10(水) 22:39:53それは設計がおかしい
と普通の人は考える
0418デフォルトの名無しさん
2010/03/10(水) 22:43:56横の繋がりは必要としない
絶対的な権力を持つボスがすべてを操る
0419デフォルトの名無しさん
2010/03/10(水) 22:48:05そんなレベルで頭捻ったって結果は同じだからとりあえず動けばいい
どこが悪いかはそのうちわかってくる
0420デフォルトの名無しさん
2010/03/10(水) 23:02:07form3に渡すのは不自然だったり、非効率的に思えるかもしれないが
両方のformで利用するデータはform1で管理したほうが
実は安全で効率的なのだ
もしform3がform2とのやり取りだけしかしないなら
form2の子としてform3を宣言すべき
0421デフォルトの名無しさん
2010/03/10(水) 23:10:58データを保持するクラスを別に作って持ちまわる形にする
0422デフォルトの名無しさん
2010/03/10(水) 23:12:540423409
2010/03/10(水) 23:24:17参考にしてC#をちょっとずつやろうと思います。
0424デフォルトの名無しさん
2010/03/10(水) 23:57:04まあ、Formの本来の役割は入力と表示だってことは理解した方がいいよ。
つまりFormの仕事は、ユーザーからの入力を何か別のオブジェクトに伝達したり、
別のオブジェクトからのデータを表示するのが仕事。
PCでいったらモニタやキーボードに相当する部分。
だからそんな部分同士がデータを直接やりとりするのは本来おかしい。
キーボードとモニタの間が配線でつながっててデータやりとりしたらおかしいでしょ?w
キーボードはPCに対して入力データを送るだけ。
モニタはPCからの信号を表示するだけ。
GUIのプログラムも基本同じような考え方で作るべきだ。
Form1はオブジェクトhogeにユーザから入力があったことを伝達するだけ。(ボタンClickイベントハンドラで
hogeの何かのメソッドを呼び出す)
Form2はhogeからの情報を表示するだけ。(hogeからのイベントでTextBoxを更新する)
一見面倒だけどこれが結局シンプルで標準的なやり方。
0426デフォルトの名無しさん
2010/03/11(木) 00:01:530427デフォルトの名無しさん
2010/03/11(木) 00:03:26アクセス用のクラスでも作ってそのインスタンスを教えておけばいいんじゃないの?
参照型の強みだよ
0428デフォルトの名無しさん
2010/03/11(木) 01:11:10�BでInterlockedをどう使うわけ?
せいぜいvolatileじゃないか?
0429デフォルトの名無しさん
2010/03/11(木) 01:15:08�Aだって値の更新をどういう風にやるかによる。
読み取りと書き込みを合わせてtアトミックにやりたいならInterlockedとかがいるが、
条件によってはただ書き込むだけでいいかもしれない。
もしくはvolatileにするくらいでいいかもしれない。
�@は普通ロックが要るが、それはそれとしてListよりQueueの方が向いてないか?
0430デフォルトの名無しさん
2010/03/11(木) 13:19:37最近多い、GUIでプログラム作らせる初心者用入門書の弊害だと思う
0431デフォルトの名無しさん
2010/03/11(木) 13:21:010432デフォルトの名無しさん
2010/03/11(木) 13:22:50あれできないと小規模な開発ならMVCの境目を考えるのあほらしくなるもん
大きくなればMVCしようかとも思えるけど
0433デフォルトの名無しさん
2010/03/11(木) 18:20:00実現する方法があったら教えてほしい。
0434デフォルトの名無しさん
2010/03/11(木) 18:47:57つ[ComboBox]
0435デフォルトの名無しさん
2010/03/11(木) 19:08:57IDEでよくある入力補完を実装したいので、それはNG。
0436デフォルトの名無しさん
2010/03/11(木) 19:11:30一つの項目と同じサイズのテキストボックスを表示して制御をそこへ移して
そこから制御が離れたらテキストボックスの中の文字をリストボックスへ反映すればいいんじゃないの?
0437デフォルトの名無しさん
2010/03/11(木) 19:35:38つ http://netbeans.org/features/ide/editor_ja.html
こういう風にしたいので、その方法だとダメ。
0438デフォルトの名無しさん
2010/03/11(木) 19:38:11リストボックスはあくまで候補の表示だけな
サジェストの候補表示とかをやりたいのか
アクティブにならないForm作ってそこへリストボックス張って候補だしゃいいだろう
半透明表示もできるぞ
0439デフォルトの名無しさん
2010/03/11(木) 20:32:55ためしにやってみたが、リストボックスにフォーカスを合わすと、インクリメンタルサーチができなくなって…エディットぼっくにフォーカスを合わせたままだと、リストボックスの選択項目をキーボードで操作できなくなって…となった。
フォームの初期化時
this.autocomplete_box.Visible = false;
this.Controls.Add(this.autocomplete_box);
文字を入力した
this.input_word += e.KeyChar;
int index = this.autocomplete_box.FindString(this.input_word.ToString());
if (index != ListBox.NoMatches)
{
Point current = this.GetPositionFromCharIndex(this.SelectionStart);
this.autocomplete_box.SelectedIndex = index;
this.autocomplete_box.Location = new Point(current.X, current.Y + this.Font.Height);
this.autocomplete_box.Visible = true;
}
0440デフォルトの名無しさん
2010/03/11(木) 22:07:45Googleサジェストのような挙動ではなく、インテリセンスのような挙動にしたい
つまり、
・補完するのはテキスト全体ではなく、その一部(単語など)
・テキスト入力時には候補の絞込みは行わないで、選択項目のみを変更
ということに相違ないか?
0441デフォルトの名無しさん
2010/03/11(木) 22:08:45それで間違いない。
0442デフォルトの名無しさん
2010/03/11(木) 22:33:590443デフォルトの名無しさん
2010/03/11(木) 22:52:42> リストボックスにフォーカスを合わすと、インクリメンタルサーチができなくなって…
リストボックスに、必要な全てのイベントハンドラを設定すればいい
例えば、
文字はそのままテキストボックスにスルー
上下は選択変更
左右はテキストボックスの方のカレット移動
Enterは確定(Tabも?)
とか自分で決めて適当に処理すればいい
0444デフォルトの名無しさん
2010/03/11(木) 22:58:300445デフォルトの名無しさん
2010/03/11(木) 23:01:18オレも思ったw
0446デフォルトの名無しさん
2010/03/11(木) 23:44:43なるほど。
そうすればいいのか。
答えてくれてありがとう。
0447デフォルトの名無しさん
2010/03/12(金) 03:59:56DropDownStyleプロパティをDropDownListにするといいというのでやってみたところ
たしかにユーザーからの書き込みはできなくなりましたがComboBoxの見た目がTextBox調からButton調になり
Textプロパティをプログラム内部でも書き換えられなくなりました
しかし「DropDownListにするといい」と見つけたいくつかのサイトではそのようになってる様子は見られません
これはVisual C# 2008の仕様か何かなのでしょうか?
0448デフォルトの名無しさん
2010/03/12(金) 05:05:540449デフォルトの名無しさん
2010/03/12(金) 05:09:03発生したときに、入力を受付なくさせるメソッドか何かがあったはず
忘れた
0450デフォルトの名無しさん
2010/03/12(金) 11:03:32GCがあったり色々便利な機能が付いてると思うのですが、ずいぶん叩かれてる印象を受けます
TRUEが1じゃなかったりするのが、あまり好かれないとかそんな感じでしょうか?
0451デフォルトの名無しさん
2010/03/12(金) 11:07:26アンチが多いのは人気の裏返しだよ。
ほんとに悲惨なのはユーザーからの無反応。
TRUE が 1 じゃないとか、たたくポイントじゃないというか、
むしろ TRUE が 1 な方がたたくポイントだろ。
0452デフォルトの名無しさん
2010/03/12(金) 11:10:06ありがとうございます。C#使いたくなってきました
TRUE=1等の暗黙の型変換は悪い意味での慣れでしょうか、
個人的にはちょっと残念なのです
0453デフォルトの名無しさん
2010/03/12(金) 11:13:22C#に使うならC#の作法に従うべきではあるが
これは逆も然り
0454デフォルトの名無しさん
2010/03/12(金) 11:16:29さすがに最近は減ったけど。
0455デフォルトの名無しさん
2010/03/12(金) 11:29:47見向きもされてない所がある
あまりに注目されてない不運な言語だ
0456デフォルトの名無しさん
2010/03/12(金) 11:32:37あとは完璧
0457デフォルトの名無しさん
2010/03/12(金) 11:33:56でもC#覚えれば、他の言語にも馴染みやすいと思うし
初心者向きな言語だと思う
すくなくともVB覚えるよりはいい
0458デフォルトの名無しさん
2010/03/12(金) 11:42:06難しいことするなら難しいことができないC#が「中途半端」になる
見方次第だな
0459デフォルトの名無しさん
2010/03/12(金) 11:52:080460デフォルトの名無しさん
2010/03/12(金) 11:56:59なんか興味ある 詳しく
0461デフォルトの名無しさん
2010/03/12(金) 12:04:260462デフォルトの名無しさん
2010/03/12(金) 12:24:300463デフォルトの名無しさん
2010/03/12(金) 12:26:020464デフォルトの名無しさん
2010/03/12(金) 12:29:460465デフォルトの名無しさん
2010/03/12(金) 12:36:04.NETベースのマイクロコントローラー、FEZ Mini
http://jp.makezine.com/blog/2010/03/hands-on_with_fez_mini_a_net-powere.html
0466デフォルトの名無しさん
2010/03/12(金) 13:05:45その程度で動かなくなるようなコードを書く方が悪い
0467デフォルトの名無しさん
2010/03/12(金) 13:08:14どうせ最速の言語じゃないんなら
コード記述が短くて、動的なほうが手軽というイメージ
smallbasic、Ironpythonでますます中途半端な存在になったな
0468デフォルトの名無しさん
2010/03/12(金) 13:17:56サンクス
おもしろそうだ!!!
おれもやってみてぇ
0469デフォルトの名無しさん
2010/03/12(金) 13:42:310470デフォルトの名無しさん
2010/03/12(金) 13:48:45言語ではC#が一番あるけどな
0471デフォルトの名無しさん
2010/03/12(金) 14:31:190472デフォルトの名無しさん
2010/03/12(金) 15:53:070473デフォルトの名無しさん
2010/03/12(金) 15:55:500474デフォルトの名無しさん
2010/03/12(金) 15:59:140475デフォルトの名無しさん
2010/03/12(金) 17:34:50boardListHtml = sr.ReadToEnd();
sr.Close(); ←これいらないですよね?
}
0476デフォルトの名無しさん
2010/03/12(金) 17:39:580477デフォルトの名無しさん
2010/03/12(金) 17:48:33君は・・・世界が狭いようだな
0478デフォルトの名無しさん
2010/03/12(金) 17:54:40一般庶民の話をしてるんだよ
0479デフォルトの名無しさん
2010/03/12(金) 20:28:17WindowsFormアプリケーションってやると
とっぱじめ最初にFormを継承したForm1が出てきて
それにボタンを貼り付けて、「はじめてのC#」とかいうメッセージボックスを出す
これだけのプログラムでも継承、カプセル、ポリモーフといったオブジェクト指向を使ってるな
初心が意識せずにオブジェクト指向できるようになってる言語?
0480デフォルトの名無しさん
2010/03/12(金) 20:31:330481デフォルトの名無しさん
2010/03/12(金) 20:32:050482デフォルトの名無しさん
2010/03/12(金) 20:32:300483デフォルトの名無しさん
2010/03/12(金) 20:36:510484デフォルトの名無しさん
2010/03/12(金) 20:39:35その観測方法がオカシイ可能性は疑ってみた?
0485デフォルトの名無しさん
2010/03/12(金) 20:49:48private void button1_Click(object sender, EventArgs e)
{
if (label1.Visible == true)
{
label1.Visible = false;
}
else
{
label1.Visible = true;
}
}
Windowsタスクマネージャ開きながらbutton1かちかち押すとメモリ使用量が増えるんだが
0486デフォルトの名無しさん
2010/03/12(金) 21:04:030487デフォルトの名無しさん
2010/03/12(金) 21:04:35完全に別プロジェクトでアプリプロジェクト->ライブラリプロジェクト(デバック)
の参照をつけてやったりするのかな?
0488デフォルトの名無しさん
2010/03/12(金) 21:26:21ばかだなぁ。なければ作ればいいじゃないか。
無知なお客さんを言いくるめるくらいワケないだろ。
‥‥ほんとうに生産効率はいいんだから。
0489デフォルトの名無しさん
2010/03/12(金) 21:37:42別プロジェクト以外ってことは、1つのプロジェクトでexeとdllの両方を出力とか?
普通の方法ではそんなことできないと思うけど
0490デフォルトの名無しさん
2010/03/12(金) 21:54:080491デフォルトの名無しさん
2010/03/12(金) 22:02:36普通そうでしょ。
でもプロジェクト参照は循環参照不可だから、、
複雑なプログラムになってくると案外プロジェクトの切り分けが難しかったりする。
>>489
アセンブリが別とは言ってないんじゃない?
0492487
2010/03/12(金) 22:26:45最終的にアセンブリを一つにするかexeとdllに分けるかで
変わってくる感じですかね
0493デフォルトの名無しさん
2010/03/12(金) 22:37:35internalアクセス修飾を有効活用したいから、という、
人によってはちょっと不純に見えるかもしれない動機の場合もあったりする
0494デフォルトの名無しさん
2010/03/13(土) 02:28:12C#でWEBアプリケーション作りたいのですがお勧めの本があれば教えてください
ttp://ascii.asciimw.jp/books/books/detail/978-4-7561-4999-2.shtml
上記URLのようなものはあるのですがどうも評判が悪いので・・・
また関連書籍にASP.NETが多いですが、ASP.NETの本≒WEBアプリケーションの本という認識であってますか?
0495デフォルトの名無しさん
2010/03/13(土) 02:33:260496デフォルトの名無しさん
2010/03/13(土) 02:39:23自分ブラウザです
IEやfirefoxの簡易版を作りたいです。
0497デフォルトの名無しさん
2010/03/13(土) 02:42:440498デフォルトの名無しさん
2010/03/13(土) 03:25:09それってデスクトップアプリというんだよ
WEBアプリはブラウザをクライアントとするものだから
まったく別物
0499デフォルトの名無しさん
2010/03/13(土) 04:07:21WEBアプリを作るって解釈しておk?
面接でそういう質問があったんだけど。
0500デフォルトの名無しさん
2010/03/13(土) 04:23:41そうだね
JAVA,javascrpt,HTTP,Perl,RCFの知識があるのかってことになる
0501デフォルトの名無しさん
2010/03/13(土) 05:35:470502デフォルトの名無しさん
2010/03/13(土) 05:52:56WEBに関係することって
・クライアント(webブラウザー)そのもの
・クライアント上で動くスクリプトなど
・サーバー側
大きく分けてもこんな感じだしなあ
ものすごく範囲は広いよ
さすがに最近はhttpのプロトコル処理関連まで作るなんてのはないだろうけど
0503デフォルトの名無しさん
2010/03/13(土) 06:13:250504デフォルトの名無しさん
2010/03/13(土) 09:27:23全てクライアント上で動作する物はwebアプリとは言わないだろ基本的に
その面接官もwebを理解してるのかあやしいがweb開発なんて言ったら
重箱の隅から隅まで含まれるぞ
0505デフォルトの名無しさん
2010/03/13(土) 09:30:090506デフォルトの名無しさん
2010/03/13(土) 09:57:460507デフォルトの名無しさん
2010/03/13(土) 10:00:49言わせんな恥ずかしい(AA略
0508デフォルトの名無しさん
2010/03/13(土) 11:18:40ヤホーの知恵袋にでもいってくりゃよかった
なんかゴメン
0509デフォルトの名無しさん
2010/03/13(土) 11:27:00平日に仕事しながら見てるやつて結構とレベル高いと思うけど?
0510デフォルトの名無しさん
2010/03/13(土) 11:34:330511デフォルトの名無しさん
2010/03/13(土) 11:37:260512デフォルトの名無しさん
2010/03/13(土) 11:38:330513デフォルトの名無しさん
2010/03/13(土) 11:43:300514デフォルトの名無しさん
2010/03/13(土) 12:37:35unsafeつかわないと無理?
0515デフォルトの名無しさん
2010/03/13(土) 12:40:49今時共用体とかないわー
0516デフォルトの名無しさん
2010/03/13(土) 13:57:010517デフォルトの名無しさん
2010/03/13(土) 14:03:510518デフォルトの名無しさん
2010/03/13(土) 14:25:17日本語をまともに話せない人がいても仕方ない
0519デフォルトの名無しさん
2010/03/13(土) 14:37:35if (This.Seiyoku >= 95) {
This.Hand.GetTimpo();
for (int i = 0;i < 2000;i++) {
This.Hand.Up();
This.Hand.Down();
}
this.Say("あああああ───────");
}
0520デフォルトの名無しさん
2010/03/13(土) 14:49:420521デフォルトの名無しさん
2010/03/13(土) 15:38:490522デフォルトの名無しさん
2010/03/13(土) 15:50:020523デフォルトの名無しさん
2010/03/13(土) 15:50:470524デフォルトの名無しさん
2010/03/13(土) 15:51:420525デフォルトの名無しさん
2010/03/13(土) 16:15:33CやC++より優秀
0526デフォルトの名無しさん
2010/03/13(土) 16:18:480527デフォルトの名無しさん
2010/03/13(土) 16:49:14ウィルスコード確認しました
0528デフォルトの名無しさん
2010/03/13(土) 17:07:20それはC#のメリットというよりVC#環境限定の話だろ
最初にインテリセンス体験したとき開発者マジキチって思った
0529デフォルトの名無しさん
2010/03/13(土) 17:14:360530デフォルトの名無しさん
2010/03/13(土) 17:15:010531デフォルトの名無しさん
2010/03/13(土) 17:16:540532デフォルトの名無しさん
2010/03/13(土) 17:24:030533デフォルトの名無しさん
2010/03/13(土) 17:36:340534デフォルトの名無しさん
2010/03/13(土) 17:36:59あんなの活用してる人いるのか
っていうかPEZみたいな名前が気に入らん。
ラムネ菓子かっ
0535デフォルトの名無しさん
2010/03/13(土) 17:44:48PEZさんディスってんじゃねー
0536デフォルトの名無しさん
2010/03/13(土) 17:46:51いまさら a += 3 を a = a + 3 って書きたいひとはおらんじゃろ
0537デフォルトの名無しさん
2010/03/13(土) 17:46:580538デフォルトの名無しさん
2010/03/13(土) 17:53:09おまえはおれを怒らせた
0539デフォルトの名無しさん
2010/03/13(土) 18:19:07private変数作ってから、crtl+r, ctrl+eのリファクタの方が便利だと知ってからは使わなくなった。
0540デフォルトの名無しさん
2010/03/13(土) 20:33:49dw: Debug.WriteLine( );
eh: (_sender, _e) => { };
とか
0541デフォルトの名無しさん
2010/03/13(土) 20:53:42なにこのコード
なんでusing使ってるの?
俺がC#触ってない間になんかあったのか
0542デフォルトの名無しさん
2010/03/13(土) 20:55:570543デフォルトの名無しさん
2010/03/13(土) 20:59:540544デフォルトの名無しさん
2010/03/13(土) 21:00:20button1.Click += (sender, e) => MessageBox.Show("こんなのもできるよ");
0545デフォルトの名無しさん
2010/03/13(土) 21:01:47強いて言うなら>>541が触ってない間に>>541からC#の記憶が飛んだんじゃないか
0546デフォルトの名無しさん
2010/03/13(土) 21:50:110547デフォルトの名無しさん
2010/03/13(土) 22:00:410548デフォルトの名無しさん
2010/03/13(土) 22:03:58(´;ω;`)
0549デフォルトの名無しさん
2010/03/13(土) 22:10:030550デフォルトの名無しさん
2010/03/13(土) 22:12:35ラムダ士気って便利だよね。
0551デフォルトの名無しさん
2010/03/13(土) 23:14:10文字列が入ったリストデータをTreeViewに表示する場合
TreeViewを継承した自作クラスにリストデータを直接読み込んで表示するようなメソッドを作るべきか
TreeViewのNodesに追加する処理をForm1でするべきか
どちらがいいのでしょうか?
0552デフォルトの名無しさん
2010/03/13(土) 23:17:310553デフォルトの名無しさん
2010/03/13(土) 23:23:28どっちでもいいんじゃね?
なんでもかんでもFormに書くのもあれだし継承してあれこれ作れるならそういう練習を兼ねて別途設計してもいいだろうし
0554デフォルトの名無しさん
2010/03/13(土) 23:28:22ありがとう
0555デフォルトの名無しさん
2010/03/14(日) 01:10:520556デフォルトの名無しさん
2010/03/14(日) 03:31:22Form1の処理内容ならtextboxなどに表示すればいいですが
form1でインスタンス化したオブジェクト内部の処理内容を表示したい場合
どうすればいいでしょうか?
0557デフォルトの名無しさん
2010/03/14(日) 03:54:06Form1から非同期で動かして定期的に処理状況を調べる
0558デフォルトの名無しさん
2010/03/14(日) 07:39:47諦めます
0559デフォルトの名無しさん
2010/03/14(日) 09:42:11と、偉大なゲイは言いました
0560デフォルトの名無しさん
2010/03/14(日) 11:00:47オブジェクト内部の処理が終わったら textbox に直に書き換えてさせてしまうとか。
他との兼ね合いがないなら、自分はそうする。
0561デフォルトの名無しさん
2010/03/14(日) 11:01:510562デフォルトの名無しさん
2010/03/14(日) 11:43:110563デフォルトの名無しさん
2010/03/14(日) 11:43:44>>558のように言ってるって事は、恐らくその「オブジェクト」の処理は
UIと同じスレッドで動くってことなんだろうから、
それなら単純にその「オブジェクト」のクラスに〜Changed系のイベントを実装して、
Formの方はその〜Changedイベントで表示内容を更新すればいいんだよ。
それが面倒で、かつ更新するコントロールの数が少ないなら、
Formにタイマくっつけてタイマのイベントで表示内容を更新してもいい。
何か難しく考えすぎてないか?
0564デフォルトの名無しさん
2010/03/14(日) 12:09:230565デフォルトの名無しさん
2010/03/14(日) 12:45:49>>560
なるほど、イベントは自前で作った事ないからやってみてもいいかも
簡単なのはtextboxの参照渡すのがいいですね
検討してみます
ありがとうございました
0566デフォルトの名無しさん
2010/03/14(日) 12:59:28>簡単なのはtextboxの参照渡すのがいいですね
こういうやり方は普通は邪道とされている。
馬鹿だと思われたくなければやっちゃダメ。
これがダメな一番の理由はそんなことをしちゃうとそれぞれのクラスの
役割分担が明確じゃなくなるから。
TextBoxの更新を担当するのは、その持ち主であるFormであるべきだとは思わない?
他のオブジェクトがTextBox更新しちゃうのなら、Formの役割って一体何よ。
0567デフォルトの名無しさん
2010/03/14(日) 14:08:520568デフォルトの名無しさん
2010/03/14(日) 14:21:32渡すような馬鹿で間抜けな行為を「設計」とは言わない。
0569デフォルトの名無しさん
2010/03/14(日) 14:22:430570デフォルトの名無しさん
2010/03/14(日) 14:29:27一番いいのはデリゲートだっけ?
0571デフォルトの名無しさん
2010/03/14(日) 14:34:01その処理オブジェクトは、進捗を公開するかしないかを決め、
GUIオブジェクトは、それを見るか見ないか自由にする
0572デフォルトの名無しさん
2010/03/14(日) 14:50:30作ったのならあるわ
Form1.cs
http://codepad.org/1Hh4f1Od
hoge.cs
http://codepad.org/qwrtJJFk
hoge.csは自分でクラスを作ってコード張ってくれ
Form1.csの方はtextboxをDock=Fillで張ってスクロールバーを表示しておけばいいか
あとshownで表示させてるのでイベントハンドラ追加してからコード貼ってくれ
0573デフォルトの名無しさん
2010/03/14(日) 14:51:230574デフォルトの名無しさん
2010/03/14(日) 15:06:300575デフォルトの名無しさん
2010/03/14(日) 15:08:590576デフォルトの名無しさん
2010/03/14(日) 15:10:450577デフォルトの名無しさん
2010/03/14(日) 15:13:03hogehoeは本当はスレッド起動をさせる関数なんだけどその辺は端折ったw
0578デフォルトの名無しさん
2010/03/14(日) 15:23:18http://codepad.org/9LRQpsMq
0579デフォルトの名無しさん
2010/03/14(日) 15:56:25こんな感じで遊んでたんだがApplication.DoEvents入れて経過を分かるようにすると
スレッドの動作が変わった感じなんだが何が変わったんだろう。
Application.DoEvents無し->適度に3スレッドの出力が混じる
Application.DoEvents有り->最初の一回だけ起動した順に結果がでるけど2回目以降は後で起動したスレッドだけ?やってる感じ
0580デフォルトの名無しさん
2010/03/14(日) 15:58:05Application.DoEvents有り
[ 0000 ] 0
[ 0001 ] 0
[ 0002 ] 0
[ 0002 ] 1
[ 0002 ] 2
[ 0002 ] 3
[ 0002 ] 4
[ 0002 ] 5
[ 0002 ] 6
[ 0002 ] 7
[ 0002 ] 8
[ 0002 ] 9
[ 0001 ] 1
[ 0001 ] 2
[ 0001 ] 3
[ 0001 ] 4
[ 0001 ] 5
[ 0001 ] 6
[ 0001 ] 7
[ 0001 ] 8
[ 0001 ] 9
[ 0000 ] 1
[ 0000 ] 2
[ 0000 ] 3
[ 0000 ] 4
[ 0000 ] 5
[ 0000 ] 6
[ 0000 ] 7
[ 0000 ] 8
[ 0000 ] 9
0581デフォルトの名無しさん
2010/03/14(日) 17:43:050582デフォルトの名無しさん
2010/03/14(日) 17:45:05Button1.Clickを、Button2のサイズとか名前とかを変える
みたいなイベントにしたら、Button1はButton2に影響を与えてるけど
これっていけないことなの?
インスタンスはすべて独立させたほうがいい
みたいなこと書いてたんだけど
0583デフォルトの名無しさん
2010/03/14(日) 17:47:20ケースによるんじゃない?
0584デフォルトの名無しさん
2010/03/14(日) 17:57:33どこでそんなこと言ってたのか興味あるから教えて欲しい
0585デフォルトの名無しさん
2010/03/14(日) 18:05:47実際いじってるのは親の Form なんだから、 Button1 が Button2 に影響を
与えてるわけではない
0586デフォルトの名無しさん
2010/03/14(日) 18:10:43関係としては>>572>>578>>579あたりのコードのような状態だからなあ
buttonが直接外の何かに影響するってことは標準ではなくて
イベントハンドラを登録して処理は別途書くよね
0587デフォルトの名無しさん
2010/03/14(日) 18:12:54影響を与えるなというのはメソッド呼び出しするな、と同義になるわけで、
じゃあprivateなメソッドだけを持つ自律的なクラスだけでコードが書けるのかと。
まあ、要するに愚問過ぎるw
>>585
いや意味わからないしw
0588デフォルトの名無しさん
2010/03/14(日) 18:48:37ちゃぁ〜ん
0589デフォルトの名無しさん
2010/03/14(日) 18:48:40ちゃんと表示されてからプログラムが実行されるようにしたい
shownでもフォームが表示されただけでコントロールが
ちゃんと表示されない状態で実行されるのですが
なにか良い方法はないでしょうか?
0590デフォルトの名無しさん
2010/03/14(日) 18:52:110591デフォルトの名無しさん
2010/03/14(日) 18:54:390592デフォルトの名無しさん
2010/03/14(日) 18:54:510593デフォルトの名無しさん
2010/03/14(日) 18:58:100594デフォルトの名無しさん
2010/03/14(日) 19:00:400595デフォルトの名無しさん
2010/03/14(日) 19:03:10事前処理を終了させるのかな
他の言語でもこんな感じ?
0596デフォルトの名無しさん
2010/03/14(日) 19:04:280597デフォルトの名無しさん
2010/03/14(日) 19:07:45Form全体のコントロールを触れないようにして処理した後ユーザーが触れるようにするとか
ちなみにやり方に普通はないよ
ユーザーがフリーズしたんじゃないの?とか
表示されたので触っていいと思ったけどなんか触ったらおかしくなった・・・とか
そういうのを回避できてればいいと思うよ
0598デフォルトの名無しさん
2010/03/14(日) 19:13:580599デフォルトの名無しさん
2010/03/14(日) 19:20:26loadイベントで処理する方がマシか
0600デフォルトの名無しさん
2010/03/14(日) 19:23:430601デフォルトの名無しさん
2010/03/14(日) 19:28:16Loadでやるにしてもスプラッシュウインドウでも出しておかないといらちにはあれだぜ
いらちをだますには適度なタイミングでちびちび変化を見せてあげるほうがいい
0602デフォルトの名無しさん
2010/03/14(日) 19:29:390603デフォルトの名無しさん
2010/03/14(日) 19:31:25病気だけどそんなのはいえないしねえw
0604デフォルトの名無しさん
2010/03/14(日) 19:31:47でなきゃ"Shown"って名前が嘘になっちゃうし。
何がしたくて何を言ってるのかサッパリ意味がわからんな。
0605デフォルトの名無しさん
2010/03/14(日) 19:34:57FormのShownでしょ
確かに上に乗ってるコントロールはFormのコンストラクタでできてるので
問題はないけどshownの段階ではForm上にのってるコントロールのどれかが
何かしら動いてる?から今回の質問なわけでしょ・・
まあ自分のアプリの処理のタイミング調整でなんとかなりそうだけど
0606デフォルトの名無しさん
2010/03/14(日) 19:38:41ごめん真面目に何言ってるのか理解できん。
っていうか、それ>>589が言ってることと明らかに違わないか?w
0607デフォルトの名無しさん
2010/03/14(日) 19:51:19イラチのおれはスプラッシュウィンドウなんて表示しなければ
もっと起動早いだろって思う
0608デフォルトの名無しさん
2010/03/14(日) 19:52:05これじゃね
0610デフォルトの名無しさん
2010/03/14(日) 20:01:350611デフォルトの名無しさん
2010/03/14(日) 20:08:12ブログ主はなんか勘違いしてるな
Appliation.DoEvents()って、そんなもので自分のいってる問題が
本当に解決してると思ってるのかw
悪いけどおめでたすぎるわ。
0612デフォルトの名無しさん
2010/03/14(日) 20:09:57ではズバリ教えて
0613589
2010/03/14(日) 20:13:33ループ処理の中に記述しただけで
今までListViewが随時更新されずに、処理後結果が一気に表示されてたのに
リアルタイムで再描画してるーーー
これをあっちこっちに入れるとしあわせだな
0614デフォルトの名無しさん
2010/03/14(日) 20:14:310615デフォルトの名無しさん
2010/03/14(日) 20:18:38OnShown()なりOnLoad()なりでApplication.Idleとかに紐付けするのが
正攻法だとは思う。
内緒だが、同じことを簡単にやる方法としてはthis.BeginInvoke()を使う、
なんて手もあったりする。
まあ、これってそもそも下らない問題意識だと個人的には思うけどね。
>>589
Application.DoEvents()なんか必要もないのに(必要な場面がそうあるとも思えんけど)
VB厨って言われるよ。
それはともかく、明らかに悪い作法だ。
0616デフォルトの名無しさん
2010/03/14(日) 20:22:160617デフォルトの名無しさん
2010/03/14(日) 20:22:440618589
2010/03/14(日) 20:24:43WEBからファイル落とすときにフリーズ状態になるので
Application.DoEvents()で描画更新されるようになったんだけど
本当は非同期でやるべきなんだおろうけど
0619デフォルトの名無しさん
2010/03/14(日) 20:28:15そう端的に言って努力の方向が間違ってるよ。
0620デフォルトの名無しさん
2010/03/14(日) 20:31:190621デフォルトの名無しさん
2010/03/14(日) 20:46:33とのことだが、キャッチして回復しようとすると「CA1031汎用的な例外をキャッチすんな」って怒られるんですけどどうしろと
HAL9000もバグっちゃうよ
0622デフォルトの名無しさん
2010/03/14(日) 21:01:250623デフォルトの名無しさん
2010/03/14(日) 21:05:39私はあえてこの高度なアルゴリズムに挑むことにする
すべてはより高度なアプリを開発するために
0624デフォルトの名無しさん
2010/03/14(日) 23:08:51この書式をtextBoxに表示するのに利用するにはどうすればいいですか?
0625デフォルトの名無しさん
2010/03/14(日) 23:10:380626デフォルトの名無しさん
2010/03/14(日) 23:13:41これって文字通りintの変数?
だったら
textBox1.Text += intA.ToString();
とか
textBox1.AppendText(intA.ToString());
とか
数字の出力パターンを変えたい場合はintA.ToString("0000")
とかすればいいよ
この辺は調べて
0627デフォルトの名無しさん
2010/03/14(日) 23:47:39これこれ、こういうのがほしかった
ありがとう
0628デフォルトの名無しさん
2010/03/15(月) 00:30:11UML導入するか
0629デフォルトの名無しさん
2010/03/15(月) 00:33:1310個程度のクラスの相関を把握できないでどうするよ
0630デフォルトの名無しさん
2010/03/15(月) 02:22:09これまでドキュメントとか無かった現場なんだろか。
0631デフォルトの名無しさん
2010/03/15(月) 03:25:130632デフォルトの名無しさん
2010/03/15(月) 03:27:51それともUserInputクラス内ではtry文を使わないでProgramクラスだけでやったほうがいいんでしょうか?
public class UserInput
{
public int Input()
{
int a = 0;
try
{
a = Int32.Parse(Console.ReadLine());
}
catch (Exception e)
{
throw e;
}
return a;
}
}
0633デフォルトの名無しさん
2010/03/15(月) 03:28:32class Program
{
static void Main(string[] args)
{
UserInput ui = new UserInput();
try
{
int b = 0;
b = ui.Input();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
0634デフォルトの名無しさん
2010/03/15(月) 04:54:15catch { throw; }
とか何がしたいんだか分からんw
0635デフォルトの名無しさん
2010/03/15(月) 05:52:590636デフォルトの名無しさん
2010/03/15(月) 05:53:230637デフォルトの名無しさん
2010/03/15(月) 06:49:170638デフォルトの名無しさん
2010/03/15(月) 11:59:140639デフォルトの名無しさん
2010/03/15(月) 12:10:410640デフォルトの名無しさん
2010/03/15(月) 13:41:01Convert.ToInt32(textBox1.Text)
とかやってtry catchで判断すればOKだよ
0641デフォルトの名無しさん
2010/03/15(月) 13:58:55って話だ
0642デフォルトの名無しさん
2010/03/15(月) 14:14:230643632
2010/03/15(月) 14:23:37この場合だとTryParseを使ったりすればいいですが
本当に聞きたかったのは
ファイル入出力時のエラーや、WEB操作時のエラーや
オブジェクトがnullだったりなど、Formとは別のクラス内部のエラーが
あった場合に別クラスの内部で例外処理をするのか
Form上で例外処理をするのかがよくわからないんです
一般的にどういうやり方をするのか聞きたかったのですが
うまく説明できなくてすいません
0644デフォルトの名無しさん
2010/03/15(月) 14:26:32C/C++時代だと暴走の元なのでポインターがnullかどうかチェックしたりとかやってたようなのをどうしてるのか?
ってところ?
0645デフォルトの名無しさん
2010/03/15(月) 14:29:44できないなら外に投げる
0646デフォルトの名無しさん
2010/03/15(月) 14:38:08例えばの話に本気になってどうするの。
0647デフォルトの名無しさん
2010/03/15(月) 14:44:48小事に本気になれない奴がどうして大事に本気になれようか
0648デフォルトの名無しさん
2010/03/15(月) 14:50:340649632
2010/03/15(月) 15:05:46多分そういう感じです
例えばフォーム上であるクラスのメソッドを呼び出して
nullが返ってくる場合もあるし、例外で投げられる可能性もあります
ResCollection thread_Honbun=bbs.ReadRes(url); ←例外がでる可能性
thread_honbunを利用 //←nullで例外がでる
なぜこういう質問するかというと
別クラス内部でいくら例外処理をしたところで
結局利用する側のformでやはり同じような例外処理を
しなければならないのでみなさんはどうしているのかと思いまして
0650デフォルトの名無しさん
2010/03/15(月) 15:14:430651デフォルトの名無しさん
2010/03/15(月) 15:32:36CodePlexで他人の書いたコード(なるべくメンバーの多い奴がいい)でも読んでみるといいよ
うんこ漏れそうなくらいtrycatch使いまくりだから
例外は昔の言語のnullチェックとエラー値チェックの代替機能なんだから
エラーチェックそのものをを省くための手段じゃないのよ
目的にしているのはエラーに対して画一的に対処できることね
例えばWin32APIにはnullを返すものもあれば、INVALID_HANDLE_VALUEを返すものもあるし
E_OK、E_SUCCESSなんてのを返すのもある
これら全部例外として括ってしまおうって趣旨だから
0652デフォルトの名無しさん
2010/03/15(月) 15:37:530653632
2010/03/15(月) 15:42:582通りにするほうがいいということかな
確かに今のソースはnullかどうかをform側でも別クラスでも
条件分岐で何重にもやっている状態でしかもやってない場合もあったりと
かなりごちゃごちゃしてます
C#しかやったことないけど、自分は古いやり方をしていたということなのかな
他人のコード見て勉強してみます
どうもありがとう
0654デフォルトの名無しさん
2010/03/15(月) 15:56:140655デフォルトの名無しさん
2010/03/15(月) 16:02:52Replace Error Code with Exception
tp://www.refactoring.com/catalog/replaceErrorCodeWithException.html
Replace Exception with Test
tp://www.refactoring.com/catalog/replaceExceptionWithTest.html
0656デフォルトの名無しさん
2010/03/15(月) 16:06:210657デフォルトの名無しさん
2010/03/15(月) 16:06:58コストがかかるとか言っても継続できねーんだからいいだろうと・・・
0658デフォルトの名無しさん
2010/03/15(月) 16:30:09コード 名前
01 営業部
02 開発部
テーブル課
部コード 課コード 名前
01 01 第一営業
02 01 第一開発
テーブル社員
部 課 名前
01 01 山田太郎
といった データ構造で
社員をDataGridViewにデータバインドで表示する場合、
DataGridViewComboBoxColumを用いて課を表示することはできるでしょうか?
部テーブルは一意キーなので表示できますが
課テーブルは複数キーですので無理ですか?
型付データセットを使っているので、手動で余計なカラムを増やしたくなく、
リレーションをComboBox側のデータバインドでやってしまいたいっていう考えです。
どなたか回答お願いします。
0659デフォルトの名無しさん
2010/03/15(月) 17:03:22部と課をくっつけた一意な文字列のカラムも加工して取ってくるようにして、
課のキーではなくそれにバインドさせたら駄目だっけ?
0660デフォルトの名無しさん
2010/03/15(月) 18:41:16>>578
>>579
デリゲート使うと非常に便利ですね
参考にさせていただきます
ありがとうございました
0661デフォルトの名無しさん
2010/03/15(月) 19:59:42変数に代入するのと同時に処理ができるってのはすばらしい
C言語だと同じようなことをどうやってたんだろうな。
Privateとかないからポインタを引数にとって参照私とかやってたんだろうか。
0662デフォルトの名無しさん
2010/03/15(月) 20:04:52Delphiを作った人と同一人物なの?
0663デフォルトの名無しさん
2010/03/15(月) 20:07:13JavaやC++は今でもそうやってるだろ
0664デフォルトの名無しさん
2010/03/15(月) 20:16:09無いJava, C++, Perl, Rubyが同化してるとだけ言っておこう
C#との類似性がよく指摘されるVisual Basic, JavaScriptにはプロパティが存在する
あとPHPにもプロパティがある
0665デフォルトの名無しさん
2010/03/15(月) 20:19:45古い言語にそんなこといっても仕方ないと思うけどw
0666デフォルトの名無しさん
2010/03/15(月) 20:43:28たしかそう
0667デフォルトの名無しさん
2010/03/15(月) 20:44:48Rubyは新しいぞぞ
0668デフォルトの名無しさん
2010/03/15(月) 20:50:30俺は同意できんけど
0669デフォルトの名無しさん
2010/03/15(月) 20:54:02捨てっかな
0670デフォルトの名無しさん
2010/03/15(月) 20:56:23>>664がプロパティ無いって言語は設計も古いし今となってはそれほど拡張もされてないような物だし
C#もそこそこ年数たったけどVBのよい部分は引き継いでるので似てても不思議ではないし
0671デフォルトの名無しさん
2010/03/15(月) 21:00:10アンダース・ヘルスバーグのことか?
0672デフォルトの名無しさん
2010/03/15(月) 21:18:13そういう歴史を無視した発言はゆとりだから?
0673デフォルトの名無しさん
2010/03/15(月) 21:25:33君の方じゃないの?歴史を無視してるの。
例えばBASICなんてCより古いんだけど。
それに、どの言語も日々仕様を拡張して進歩してる。
しかし、「ゆとり」みたいな無意味な言葉を平気で使える奴は例外なく馬鹿だな本当。
0674デフォルトの名無しさん
2010/03/15(月) 21:31:45「ゆとり世代」実は野心満々ってニュースでやってたなw 努力も勉強もしてない馬鹿なのにw
0675デフォルトの名無しさん
2010/03/15(月) 21:37:00|:::::::::::::;;;ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::::::::::( 」 < MSX-BASICにプロパティがないのはおかしい
ノノノ ヽ_l \______________
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | ゆ | '、/\ / /
/ `./| | と | |\ /
\ ヽ| l, り | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ |
0676デフォルトの名無しさん
2010/03/15(月) 21:40:10ちなみに、「ゆとり教育」なんて臨教審前から始まってる。
臨教審っていつだか知ってる?
君が30代以下なら、君自身もその「ゆとり教育」にどっぷり使ってる世代なんだけど。
そんなことも知らないのな。
0677デフォルトの名無しさん
2010/03/15(月) 21:44:43定番の行動だな
0678デフォルトの名無しさん
2010/03/15(月) 21:46:04最初に触ったマイコンは?
0679デフォルトの名無しさん
2010/03/15(月) 21:46:220680デフォルトの名無しさん
2010/03/15(月) 21:47:470681デフォルトの名無しさん
2010/03/15(月) 21:50:07|:::::::::::::;;;ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::::::::::( 」 < C言語にプロパティがないのはおかしい
ノノノ ヽ_l \______________
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | 高 | '、/\ / /
/ `./| | 齢 | |\ /
\ ヽ| l, 者 | | \__/
\ |  ̄ ̄ ̄ |
⊂|__ ____|
|l_l i l_l |
| ┬ |
0682デフォルトの名無しさん
2010/03/15(月) 21:50:20「言われて」?
お馬鹿な手前の吐く言葉にそんな力があると思ってるのかおめでたいねw
ちなみに、>>673を書いた俺は>>664とは別人物なんだけどね。
だから「言われて」すらないんだけど。
ただ、知った風な馬鹿を見ると叩きたくなっちゃう性分なだけ。
木枯紋次郎だなw
0683デフォルトの名無しさん
2010/03/15(月) 21:51:31一々馬鹿の相手すんな馬鹿
0684デフォルトの名無しさん
2010/03/15(月) 21:53:210685663
2010/03/15(月) 22:01:510686デフォルトの名無しさん
2010/03/15(月) 22:04:20まあこういうネタはよく荒れるんだよw
ちなみにVC++はgetter/setterぽく書くための機能をMSが用意してるんだっけ?
0687デフォルトの名無しさん
2010/03/15(月) 22:37:11AMDのビットスライスam2900でマイコン開発
0688デフォルトの名無しさん
2010/03/15(月) 22:47:000689デフォルトの名無しさん
2010/03/15(月) 23:07:46こんなくだらないことにいちいち突っかかってくるとか
プログラムを組むというのがいかにストレスがたまるかがよくわかるスレであった。
0690デフォルトの名無しさん
2010/03/15(月) 23:50:480691デフォルトの名無しさん
2010/03/16(火) 00:35:030692デフォルトの名無しさん
2010/03/16(火) 01:01:30FileBox eXtenderって奴がwindowsメッセージに割り込んで
いろいろやってるせいだったわ
0693デフォルトの名無しさん
2010/03/16(火) 01:09:39GoogleIMEのせいだったわ
これないと文字打つの面倒なんだよなー
くそおおおお
どうせスニペット使わない機能ないんだろうけど
くそおおお
0694デフォルトの名無しさん
2010/03/16(火) 01:11:270695デフォルトの名無しさん
2010/03/16(火) 01:30:47GoogleIMEがその機能を殺すメッセージを
送ってるんだろうな
だから開いてもすぐ閉じる
0696デフォルトの名無しさん
2010/03/16(火) 02:17:070697デフォルトの名無しさん
2010/03/16(火) 02:17:33これってLoadの動作が一番好ましいんだけど、ShownやShown+DoEventsのほうがいいと感じる人もいるの?
0698デフォルトの名無しさん
2010/03/16(火) 02:30:140699デフォルトの名無しさん
2010/03/16(火) 02:35:07>ユーザーがフリーズしたんじゃないの?とか
>表示されたので触っていいと思ったけどなんか触ったらおかしくなった・・・とか
>そういうのを回避できてればいいと思うよ
これに尽きる
以上
0700デフォルトの名無しさん
2010/03/16(火) 02:39:56関数ポインタ?はあ?Cやってないんだからそんな説明されてもわかんねーよ
簡単なデリゲートの実装例が書かれているが
こんなの普通にメソッド直接呼び出した方が簡単だろってのばっかり
なんでこんなめんどくさい書き方をわざわざしなければならないのかの説明がどこにもない
あーーもーーわかんねーー
0701デフォルトの名無しさん
2010/03/16(火) 02:42:55button.Click += ・・・
とか
0702デフォルトの名無しさん
2010/03/16(火) 02:43:37もろサンプルあるから
0703デフォルトの名無しさん
2010/03/16(火) 02:49:130704デフォルトの名無しさん
2010/03/16(火) 02:58:58言語開発者ってなんでこんな省略の仕方好きなんだろう・・・
0705デフォルトの名無しさん
2010/03/16(火) 02:59:45それぞれの構文が一体何をしているのか
どうしてそういう記述しているのか
さっぱりわからねえええ
おれのキャパシティはここまでか!
0706デフォルトの名無しさん
2010/03/16(火) 03:00:57ここ見てたんだけどさ
http://ufcpp.net/study/csharp/sp3_lambda.html
0707デフォルトの名無しさん
2010/03/16(火) 03:01:020708デフォルトの名無しさん
2010/03/16(火) 03:07:030709デフォルトの名無しさん
2010/03/16(火) 03:08:05イベントはわかる普段使っているし
クリックされるとここのメソッドが使われるんだろうなって
想像できるしわかりやすい
でも、if文の条件式に入れているデリゲートとか
ひとつのメソッド内でデリゲートでいくつかのメソッドを呼び出しているような
多態性?みたいな使い方しているのが実際のプログラミングで必要なのかよって感じ
ただ、二つの振る舞いをするメソッド書けばいいだけじゃない
x*y x+yの2通りできるからってなんだよって感じ
0710デフォルトの名無しさん
2010/03/16(火) 03:08:14今これがラムダ式なんだと脳内一致したんだが
this.MouseWheel += new MouseEventHandler((s, e) =>
{
if (this.webBrowser1.Document == null) return;
r += e.Delta / 120 * 25;
object or = r;
object z = Type.Missing;
((SHDocVw.IWebBrowser2)this.webBrowser1.ActiveXInstance).ExecWB((SHDocVw.OLECMDID)OLECMDID_OPTICAL_ZOOM, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref or, ref z);
});
わざわざ関数にしなくても書けるってのは分かる
0711デフォルトの名無しさん
2010/03/16(火) 03:11:06ぐぐって上位にあるサイトのデリゲート説明はすべて読んだ
でもさっぱりわからない
おおお!デリゲートってめちゃくちゃ便利じゃん
おれもデリゲート使おうという説得力が全然ない
0712デフォルトの名無しさん
2010/03/16(火) 03:11:46まあデリゲート使うような動きをするコード書かなきゃいらないかもね
0713デフォルトの名無しさん
2010/03/16(火) 03:22:25上位サイトのデリゲートの説明って端折りすぎなんだよな
そんなにコード量にならないはずなのになんでそんなコードで説明すんの?
それならxxしたほうがいいじゃんと思ってしまうような説明
0714デフォルトの名無しさん
2010/03/16(火) 03:30:48例えば正規表現置換とか。
static string Test(Match match) {
return String.Format("U+{0:X4}", (int)match.Value[0]);
}
Debug.WriteLine(Regex.Replace("test", ".", new MatchEvaluator(Test)));
結果: U+0074U+0065U+0073U+0074
マッチした文字列をどう変換するかを、呼び出し側が好きにデリゲートで指定できるわけね。
ちなみにラムダ式使うとこう。
Debug.WriteLine(Regex.Replace("test", ".", match => String.Format("U+{0:X4}", (int)match.Value[0])));
0715デフォルトの名無しさん
2010/03/16(火) 03:37:04http://codepad.org/s8jnxIC2
分けるの面倒なんで上から
Form1.Designer.cs
Form1.cs
hoge.cs
hoge.csは自分でクラスを追加してくれ
やろうとしてることはあるスレッドがForm1のtextboxにログを吐くってやつなんだが
hoge.csの中でスレッドを立ててるけどtextboxのインスタンスを渡したのではこける
それを回避するためにログを吐きたくなったとき(ここ重要)に呼び出す関数を登録するようにしたのが
元の>>579
0716デフォルトの名無しさん
2010/03/16(火) 03:48:56そういう説明見てもifで分岐すればいいんじゃないの?って思うんだよ
例えばユーザーがタブブラウザみたいにタブを増やせる場合
なんか使えそうな気もするけどよくわからん
>>715
重い処理は別スレッドでという説明もあるけど
コントロールは操作できないんだよね
だからそういうときには使えるのかも
hogehogeばっかりでそこで何がしたいのかよくわからないけど
じっくり見させてもらうわサンクス
0717デフォルトの名無しさん
2010/03/16(火) 03:50:31とりあえずIDEに貼れw
色分けされて分かりやすくなるから
codepadってC#対応してないから色分けされないんだよな
0718デフォルトの名無しさん
2010/03/16(火) 04:04:03このコードは別スレッドのコントロールを使おうとしてエラーが出るだけど
デリゲートの有用性を説明するための意図的ものなんだよね?
0720デフォルトの名無しさん
2010/03/16(火) 04:09:01こんな手間隙かけてあなたいいひとですね
0721デフォルトの名無しさん
2010/03/16(火) 04:10:50文字の羅列から奇数を導き出すとか、
5以下の数字を見つけるとか
普通にやればいいじゃんって実例は役に立たないよな
0722デフォルトの名無しさん
2010/03/16(火) 04:11:02つーかまあぐぐって上位にでてくるサイトの管理人は頭がいいんだろうけど
頭がいいだけにこういうもうちょっとコード書けば分かりやすいのになあ・・・という
作業をやってなくて理解に悩むことが多いんだよね・・・
atなんとかってサイトのサンプルもひどかったし
0723デフォルトの名無しさん
2010/03/16(火) 04:18:26あれ読んだせいで「デリゲートってすごくわかりにくいんだな。別に無理して使わなくていいか」と放置してたw
0724デフォルトの名無しさん
2010/03/16(火) 04:21:13http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_017/csharp_abc01.html
確かに機能の説明としてはあってるが、それで・・?って感じ
0725デフォルトの名無しさん
2010/03/16(火) 04:25:03そんなの普通に直接メソッド呼び出せばいいだろってのばっかり
0726デフォルトの名無しさん
2010/03/16(火) 05:26:18へえ
0727デフォルトの名無しさん
2010/03/16(火) 08:09:58そのときついでに匿名メソッドの使い方も覚えた
はっきり言って無理に使う必要のない機能ではあると思う
0728デフォルトの名無しさん
2010/03/16(火) 08:24:22あとは非同期処理のコールバックもデリゲート。
もうちょい設計を考えて組もうよ…。
0729デフォルトの名無しさん
2010/03/16(火) 08:35:190730デフォルトの名無しさん
2010/03/16(火) 08:39:22俺は自分サンプルを調べたケースごとにおいておいてあるぞ
だから>>579を出せるんだが・・・
余計なことして寝ないで行かないと・・・
ラジオの解析なんてするんじゃなかったw
0731デフォルトの名無しさん
2010/03/16(火) 08:51:310732デフォルトの名無しさん
2010/03/16(火) 09:00:53例は例なんだよ
実際にそういうコードを使うかどうかは別として構文として覚えろってことで安易な内容で書いてんだろ
極端なことを言えば、たかがデリゲートの説明で数百行あるプロジェクト読まされたらたまんねえだろ
どういう用途で使うの?っていちいちうっせーんだよ
微分に文句垂れる文系高校生かお前は
0733デフォルトの名無しさん
2010/03/16(火) 10:19:27それも初めてという人向けの説明は分けてしないといけないな。
前者の場合機能的な説明だけで済む。
0734デフォルトの名無しさん
2010/03/16(火) 10:27:54shownイベントのh.hogehogeの後に
同じようにforループ書いたら
shown内のforループが一方的に処理されるんだが・・
0735デフォルトの名無しさん
2010/03/16(火) 10:32:26渡す関数によって処理が変えられるから便利じゃん。
よくある用途としては、
非同期処理、オブザーバパターン(イベントハンドラetc)、コールバック処理(htmlをgetして
ゴニョゴニョする関数にコールバックを渡すことでそのゴニョゴニョ部分の処理を指定できるとか)、
あと上で出てたようにログ吐き関数を渡してその関数内でのログ処理の仕方を指定するとか、
引数チェックする関数を渡して引数チェックさせるとか、たくさんあるけど
0736デフォルトの名無しさん
2010/03/16(火) 10:34:220737デフォルトの名無しさん
2010/03/16(火) 10:34:33だったらてめーアセンブラ使ってろカス
低機能で高機能賄えると思うなら使わなくていいっつの
0738デフォルトの名無しさん
2010/03/16(火) 10:51:080739デフォルトの名無しさん
2010/03/16(火) 11:26:17すみません、違いがわかりません
0740デフォルトの名無しさん
2010/03/16(火) 11:29:52オブジェクト中心か、メソッド中心かの違いかな。
Javaの匿名クラスよりは、C# のラムダ式の方が書きやすいと思うけどなぁ。
あっ、あと、マルチキャストデリゲートなるものがある。
0741デフォルトの名無しさん
2010/03/16(火) 11:35:47サポートするのは煩雑だから追加された機能だしねぇ〜。
委譲のための特殊なサポートを言語に追加したことには変わりに無い。
0742デフォルトの名無しさん
2010/03/16(火) 12:35:34直訳すると委譲だけど
0743デフォルトの名無しさん
2010/03/16(火) 14:38:32Cでも関数ポインタ使わなくてもどんなソフトでも書けるだろ。
0744デフォルトの名無しさん
2010/03/16(火) 15:05:400745デフォルトの名無しさん
2010/03/16(火) 15:08:300746デフォルトの名無しさん
2010/03/16(火) 15:15:59経験で学んだ知識は容易にそれを信念として行動することができる。
経済学者が株で失敗する。経営学者が事業で失敗する、よくある話だ。
0747デフォルトの名無しさん
2010/03/16(火) 15:18:270748デフォルトの名無しさん
2010/03/16(火) 15:20:39次にエディタとコンパイラを作ります
0749デフォルトの名無しさん
2010/03/16(火) 15:21:47知識や経験があったらやろうとすら思わない
0750デフォルトの名無しさん
2010/03/16(火) 15:28:210751デフォルトの名無しさん
2010/03/16(火) 16:11:270752デフォルトの名無しさん
2010/03/16(火) 16:24:370753デフォルトの名無しさん
2010/03/16(火) 16:38:550754デフォルトの名無しさん
2010/03/16(火) 16:43:000755デフォルトの名無しさん
2010/03/16(火) 16:59:490756デフォルトの名無しさん
2010/03/16(火) 17:06:000757デフォルトの名無しさん
2010/03/16(火) 18:02:550758デフォルトの名無しさん
2010/03/16(火) 18:18:39Int32.Parseとか
0759デフォルトの名無しさん
2010/03/16(火) 18:23:37System.Convert でだいたいまかなえる
0760デフォルトの名無しさん
2010/03/16(火) 18:33:230761デフォルトの名無しさん
2010/03/16(火) 18:34:400762デフォルトの名無しさん
2010/03/16(火) 18:36:360763デフォルトの名無しさん
2010/03/16(火) 18:45:24BASE64ならメソッド一発だけど、16進数文字列だとそういうのは用意されていない
右方向で辛うじてBitConverter.ToStringが使える程度
0764デフォルトの名無しさん
2010/03/16(火) 18:48:580765デフォルトの名無しさん
2010/03/16(火) 18:54:280766デフォルトの名無しさん
2010/03/16(火) 18:58:390767デフォルトの名無しさん
2010/03/16(火) 19:04:03バイト(byte) -> 16進数文字列(string)
byteのToString()
16進数文字列(string)->バイト(byte)
Convert.ToByte()
を使ってた。
ぐぐれば出てくるレベル
0768デフォルトの名無しさん
2010/03/16(火) 19:09:25<stations area_id="JP13" area_name="TOKYO JAPAN">
こういうxmlの場合どうやって検索かければいいんだろ
0769デフォルトの名無しさん
2010/03/16(火) 19:10:26Directory.GetFilesのオーバーロードが二つしか表示されない
公式見た情報だと3つある
0770デフォルトの名無しさん
2010/03/16(火) 19:15:58どんだけ古いの使ってんだよ。さっさとMSDN更新しろよ。
0771デフォルトの名無しさん
2010/03/16(火) 19:20:50独り言は日記帳にでも
0772デフォルトの名無しさん
2010/03/16(火) 19:26:30古いってダウンロードしてないけどね
0773デフォルトの名無しさん
2010/03/16(火) 20:00:37レジストリに書き込むくせにアンインストーラついてない
0774デフォルトの名無しさん
2010/03/16(火) 20:15:10別にレジストリの値なんか削除されなくてもどうってことないだろう。
んなこと言ってたらシステムドライブの中の訳のわからん深いパスの中に
設定値を保存することが推奨されてる.NETアプリだって使えないよ。
0775デフォルトの名無しさん
2010/03/16(火) 20:18:280776デフォルトの名無しさん
2010/03/16(火) 20:34:010777デフォルトの名無しさん
2010/03/16(火) 20:38:32H2Viewerはあまり知られてないし非公式だからアレだが良ツール
0778デフォルトの名無しさん
2010/03/16(火) 20:41:02VS付属のビュワと違ってタダで配れる以外のメリットはないように感じたが
0779デフォルトの名無しさん
2010/03/16(火) 20:42:58使い慣れたブラウザでMSDN見ちゃうな。
0780デフォルトの名無しさん
2010/03/16(火) 20:58:372007のバージョンだから検索する記事の2007年のもの
なんでこんな古臭いの付属するんだよ
で単体で落としたりバージョンアップしたいのにできないし
0781デフォルトの名無しさん
2010/03/16(火) 21:01:360782デフォルトの名無しさん
2010/03/16(火) 21:19:080783デフォルトの名無しさん
2010/03/16(火) 21:30:22っていうか、こんなの知らない人いるのか
ガキ臭い2ch用語とか使いたくないけど、そんなことじゃ情弱って言われても
仕方ないな
0784デフォルトの名無しさん
2010/03/16(火) 21:47:34>>783
いや、MSDNのダウンロードの仕方は知っている
F1押した時のヘルプのバージョン見てくれ
それが古いのでリンクも古くて困っているんだ
MicrosoftDocumentExplorerのことをさっきから言っているんだよ
MSDNのことを言っているわけじゃない
MSDNライブラリは新しいのでも最新のライブラリではないから結局オンラインで見ることになる
だからバカでかいのをダウンロードしても意味が無いと思っているんだ
0785デフォルトの名無しさん
2010/03/16(火) 21:53:08F1押してもDirectory.GetFilesは3つでてくるけど?
0786デフォルトの名無しさん
2010/03/16(火) 21:53:34重ww
0787デフォルトの名無しさん
2010/03/16(火) 22:02:28何を言ってるのかよく分からんが、"Document Exploter"ってのは
あのビューワ自身のプログラムのことなんだけど分かってる?
F1キーに対応してないのは当たり前。
もともとExpress用のじゃないんだから統合できないに決まってる。
っていうか、あんな初心者向けの機能使ってるのか。
0788デフォルトの名無しさん
2010/03/16(火) 22:13:570789デフォルトの名無しさん
2010/03/16(火) 22:17:33Directory.GetFilesは三つ出る。
Express用だけ新しいのに更新できないという意味?
0790デフォルトの名無しさん
2010/03/16(火) 22:25:25(初心者用)
0791デフォルトの名無しさん
2010/03/16(火) 22:59:03え、じゃあ他にどういう方法があるんですか?
>>789
そのヘルプをみてバージョン教えてください
2007Cop 9.0.3...とかじゃないですか?
0792デフォルトの名無しさん
2010/03/16(火) 23:18:45これでできました
ありがとうございます
0793デフォルトの名無しさん
2010/03/16(火) 23:22:289.0.2.... おれのほうが古い
0794デフォルトの名無しさん
2010/03/16(火) 23:25:53ttp://www.e-moe.net.nyud.net/~makimaki/cgi-bin/upload/src/makimaki0047.jpg
0795デフォルトの名無しさん
2010/03/16(火) 23:30:23アンドゥで戻したいのだけどどうすればいいですか?
*:\RECYCLERの中には数字のファイルがあるだけ
他のソフトの挙動を見ていると、削除後ゴミ箱に実際に送るのは
そのアプリを終了するときにやっているようですが
0796デフォルトの名無しさん
2010/03/16(火) 23:31:24って言ってるんだけど、こんな簡単なことが理解できない人っているんだな実際。
正直こんな人の書いたプログラムは怖くて使いたくない
0797デフォルトの名無しさん
2010/03/16(火) 23:54:21(初心者用)
0798デフォルトの名無しさん
2010/03/16(火) 23:55:57お前が理解できてないんだろ
誰がドキュメントって言ったよ
おれはMSDNダウンロードしてないって何度も言ってるだろ
だからオンライン検索になってるんだよ
ブラウザの話してるのにおまえらが勝手にMSDNだなんだって言い出してるんだよボケ
ほんと理解力ないな
>>780
これみてみろ、どこにMSDNなって書いてんだよハゲ
0799デフォルトの名無しさん
2010/03/16(火) 23:57:18上級者気取りの馬鹿は黙ってろよw
0800デフォルトの名無しさん
2010/03/17(水) 00:03:39コイツらほんとプログラマかw
自分が使ってるブラウザの名前すらわからないのかハゲ
0801デフォルトの名無しさん
2010/03/17(水) 00:04:27Document Explorerにしても、MSDNライブラリをインストールすれば
勝手に(必要なら)アップデートされると思うけど。
というか、Document Explorerのバージョンが古かったら何か問題あるのかね。
よくわからん。
0802デフォルトの名無しさん
2010/03/17(水) 00:08:410803デフォルトの名無しさん
2010/03/17(水) 00:13:15おまえがどういう勘違いしてるかやっと分かったよ。
オンライン検索ってのはDocumentExplorerで検索をかけたときに使われる設定で、
F1キーやキーワード検索じゃオンラインに調べにいかないよ。
DocumentExplorerバージョンが古いとか関係ない。そういう仕様。
素直にMSDNライブラリをダウンロードして更新しろ。
0804デフォルトの名無しさん
2010/03/17(水) 00:17:24っていうか、逆切れまでないにしても、
日ごろ取引先にこの手のまともな日本語でメール一つ書けない人が多すぎて
疲れるよな本当。
文部省は国語の時間に文学鑑賞ばっかり教えないでもっと説明能力を養成する
カリキュラムに変えてほしいよ。
0805デフォルトの名無しさん
2010/03/17(水) 00:23:34>日ごろ取引先にこの手のまともな日本語でメール一つ書けない人が多すぎて
この日本語も相当だと思う
0806デフォルトの名無しさん
2010/03/17(水) 00:27:41君って中学英語は関係代名詞で挫折した口じゃないの?w
0807デフォルトの名無しさん
2010/03/17(水) 00:46:15それはMSDNがインストールされている場合な
おれは入れていないからF1でオンラインに直接検索にいくわけ
で、検索に行くページが2007時点の古い記事ばかりということ
0808デフォルトの名無しさん
2010/03/17(水) 00:49:23ふーん。それは大変だね。
一人で違うことして一人で不便して、でも文句はネットのみんなに言ってw
0809デフォルトの名無しさん
2010/03/17(水) 00:53:35ttp://kazemati.blogspot.com/2009/03/powershell.html
PowerShellの記事だけど。そして「戻す」じゃなくて「元のフォルダに移動」だけど。
Shell.Applicationの代わりにShell32.dllをCOM参照してShell32.Shellをnewすればそう変わらないと思う。
0810デフォルトの名無しさん
2010/03/17(水) 00:54:23splitContainer1.Panel1の幅がsplitContainer1の幅を変えても
動かないようにしたいのですが、どうしたらいいでしょうか。
よろしくお願いします。
0811デフォルトの名無しさん
2010/03/17(水) 00:59:23常に固定するならIsSplitterFixed
そうじゃないならSplitterDistanceを覚えておくとか?
0812デフォルトの名無しさん
2010/03/17(水) 01:00:24どうもありがとうございます
助かりました
0813デフォルトの名無しさん
2010/03/17(水) 01:13:27splitContainer1.SplitterDistance = splitterDistance; としたら一応できました。
>>811
ありがとうございます。
でも分割線がすっごく(・(・(・(・д・)・)・)・)振れます。
Janeはどうやっているのだろう・・・。
0814デフォルトの名無しさん
2010/03/17(水) 01:15:09タブの部分作ってるの?
0815デフォルトの名無しさん
2010/03/17(水) 01:17:37板ツリーと右側の部分です。
0816デフォルトの名無しさん
2010/03/17(水) 01:23:26このrtmpに関連するライブラリ等について情報があれば教えてください
またC#でこんな応用アプリが作れるよ、っていうのがあれば教えてください。
0817デフォルトの名無しさん
2010/03/17(水) 01:24:38同時にSplitterを摘むこともないだろうから摘まれてないSplitterを一時的に固定して
離されたらフリーにするとか
0818デフォルトの名無しさん
2010/03/17(水) 01:25:36>>814が教えてくれます。
0819デフォルトの名無しさん
2010/03/17(水) 01:32:59rtmpは知らん。アドビの作った物だしね
phpなんかだとフリーのコードはあるみたいだけど
0820デフォルトの名無しさん
2010/03/17(水) 01:35:27>>811
>>817
ありがとうございました。
0821デフォルトの名無しさん
2010/03/17(水) 01:40:340822デフォルトの名無しさん
2010/03/17(水) 01:59:45最近はじまったラジオのサイマル放送、radikoはrtmpというプロトコルが使われています。
このrtmpに関連するライブラリ等について情報があれば教えてください
またC#でこんな応用アプリが作れるよ、っていうのがあれば教えてください。
アイデアとしては、radikoはノイズレスですが、逆にAMのあたたかみを入れるためにノイズ音をわざとのっける
アプリケーションを作りたいとおもっております。
このアイデアはまねしないようにお願いします。(まあだれも作らないとは思いますが。。。)
0823デフォルトの名無しさん
2010/03/17(水) 02:23:27rtmpの仕様はアドビのサイトで公開されてるってどこかで見たような…
0824デフォルトの名無しさん
2010/03/17(水) 03:04:53http://www.adobe.com/devnet/rtmp/
出来上がったら教えて。
0825デフォルトの名無しさん
2010/03/17(水) 11:05:29血圧の表を表示しています。
フォーム1のメニューを選択して、元にサブフォームを表示してフォーム2で
1ヶ月の血圧グラフを表示しようとしてるんですけど、
データの受け渡しがうまくいきません。
どうやりかたがありますか?
0826デフォルトの名無しさん
2010/03/17(水) 11:07:22(やる夫のチンコ立つねAA貼りたいくらい
0827デフォルトの名無しさん
2010/03/17(水) 11:23:35http://codepad.org/akzX4pKs
0828デフォルトの名無しさん
2010/03/17(水) 12:48:200829デフォルトの名無しさん
2010/03/17(水) 12:53:39知らぬが仏ってことです
0830デフォルトの名無しさん
2010/03/17(水) 13:00:20老人に言えよ
元は専門性の高い職だったのに文系大量にいれやがって
0831デフォルトの名無しさん
2010/03/17(水) 13:08:47血圧も上がってるよ
0832デフォルトの名無しさん
2010/03/17(水) 14:16:390833デフォルトの名無しさん
2010/03/17(水) 14:27:200834デフォルトの名無しさん
2010/03/17(水) 14:38:160835デフォルトの名無しさん
2010/03/17(水) 14:45:01まぁそうかもね
血圧計についてるソフトかもしれないし
電子カルテは別に難しくもなんともないんだが薬、検査とか多いからめんどくせぇ
しかも病院毎にちょっとずつ違う上に内科、外科でも違ってくるし・・・
これにレセプトとか加えたらたまんねぇなおい・・・
改正毎にちょこちょこメンテ代とれるからおいしいけどね
0836デフォルトの名無しさん
2010/03/17(水) 14:45:130837デフォルトの名無しさん
2010/03/17(水) 14:59:030838デフォルトの名無しさん
2010/03/17(水) 15:08:46C#でのプログラミング業務に就いてもうじき1年なんですが
椅子に長時間、ほとんど同じ姿勢で座りっぱなしなせいか
どうやら痔になってしまったようです
同様の悩みを持つ同僚・先輩もいるんですが、いわば職業病みたいなものだから
しょうがないといわれました・・・みなさんのお尻はどうですか?
何か対策や気をつけること・なってしまった場合の対策など
アドバイスあればご意見うかがいたいので、よろしくお願いします
0839デフォルトの名無しさん
2010/03/17(水) 15:11:16痔になる前から正しい姿勢で座る
痔になる前から1時間ごとに体操をする
痔になる前からディスプレイやキーボードの位置を調整しておく
これでおれは痔にならない自信がある
0840デフォルトの名無しさん
2010/03/17(水) 15:14:56ありがとうございます。
((Form1)this.Owner). を使うことにしました。^^
0841デフォルトの名無しさん
2010/03/17(水) 15:45:26勉強する気がないならどうでもいいけど
0842デフォルトの名無しさん
2010/03/17(水) 16:07:47http://pc12.2ch.net/test/read.cgi/tech/1267668057/652
http://pc12.2ch.net/test/read.cgi/tech/1267668057/659
http://pc12.2ch.net/test/read.cgi/tech/1267668057/676
http://pc12.2ch.net/test/read.cgi/tech/1267668057/684
0843デフォルトの名無しさん
2010/03/17(水) 16:09:07http://pc12.2ch.net/test/read.cgi/tech/1267668057/638
http://pc12.2ch.net/test/read.cgi/tech/1267668057/659
http://pc12.2ch.net/test/read.cgi/tech/1267668057/662
http://pc12.2ch.net/test/read.cgi/tech/1267668057/675
0844デフォルトの名無しさん
2010/03/17(水) 16:12:430845デフォルトの名無しさん
2010/03/17(水) 16:15:550846デフォルトの名無しさん
2010/03/17(水) 16:18:55そういうことは他所でやってくれ
0847デフォルトの名無しさん
2010/03/17(水) 16:19:420848842
2010/03/17(水) 16:21:260849デフォルトの名無しさん
2010/03/17(水) 16:21:57これがRuby信者です
0850デフォルトの名無しさん
2010/03/17(水) 16:35:510851デフォルトの名無しさん
2010/03/17(水) 16:42:46スルーしろとw
同じレベルだから気になるんだよと
0852デフォルトの名無しさん
2010/03/17(水) 16:45:21Rubyスレで揉めてるだけなのに
他のスレに火種持ってくるなと
0853デフォルトの名無しさん
2010/03/17(水) 17:02:50どうして最悪なんですか?
とりあえず、これで動かして次の段階で他の方法を使うことにしようかと。
0855デフォルトの名無しさん
2010/03/17(水) 17:06:48たしかにそうなんだけどw
0856デフォルトの名無しさん
2010/03/17(水) 17:06:55最悪ではあるけど
それで問題が出るまでやり続けて自分で気づくしないと思う
プログラミングなんてそういうものだから
ただ、要領の良い人は先人達に見習ってやる
0857デフォルトの名無しさん
2010/03/17(水) 17:09:05わからねえなら聞けよ
Form間でどういう形式でデータ渡すかわからねーから
サンプルとしてstringにしてあるんだよw
0858デフォルトの名無しさん
2010/03/17(水) 17:14:41それが絶対にダメとは言わないが、Form1に依存するならするで
Form2のコンストラクタやプロパティで明示的にForm1のインスタンスを渡したほうがいい
840だとぱっと見ただけではForm1に依存してないように見えるから質が悪い
0859デフォルトの名無しさん
2010/03/17(水) 17:15:48stringだと値のコピーが渡されるから
例としては悪いね
0860デフォルトの名無しさん
2010/03/17(水) 17:16:14stringは参照だろ
0861デフォルトの名無しさん
2010/03/17(水) 17:17:210862デフォルトの名無しさん
2010/03/17(水) 17:20:070863デフォルトの名無しさん
2010/03/17(水) 17:21:48その作法を学ばないとは
0864デフォルトの名無しさん
2010/03/17(水) 17:25:130865デフォルトの名無しさん
2010/03/17(水) 17:26:03Form2が必要としてるのはForm1が表してるデータだけのはずなのに
Form1のUIにまで依存してるから余計に悪い
0866デフォルトの名無しさん
2010/03/17(水) 17:26:32form2.SendForm(form1)
form1.SendForm(form2)
コントロールはすべてpublicに変える
これでおk
0867デフォルトの名無しさん
2010/03/17(水) 17:28:07データを引数で渡したら時間もリソースも食うじゃない
0868デフォルトの名無しさん
2010/03/17(水) 17:29:02それでどれだけ食うっていうんだよw
0869デフォルトの名無しさん
2010/03/17(水) 17:33:250870デフォルトの名無しさん
2010/03/17(水) 18:46:14では、質問です
RubyやJAVAと比べて
C#にできないことはなんですかぁ?
C#より処理速度速いものってなんですかぁ?
そしてあなたたちは答えます
だからわたしはこういってあげます
linuxやMac限定の話されてもねw
でもこれももう時期払拭します
C#最強時代到来
0871デフォルトの名無しさん
2010/03/17(水) 18:51:23あらあらwRubyでは対抗できなくなってC++信者に七変化ですかw
C++は最強ですよ確かに、私も好きですし否定はしません
しかしですよ、もしC++が亡くなったら何使いますか?
何が2番手にきますか?
そう、もちろんC#ですよねw
C#最強
767 名前:デフォルトの名無しさん[sage] 投稿日:2010/03/12(金) 17:12:30
C#スレはプログラミングの話題がほとんどだが
RubyスレもPythonスレも毎日バグ対処の話題ばかりw
これだけ糞面倒なくせに処理速度はC#の足元にも及ばない
0873デフォルトの名無しさん
2010/03/17(水) 19:46:330874デフォルトの名無しさん
2010/03/17(水) 20:05:130875デフォルトの名無しさん
2010/03/17(水) 21:16:340876デフォルトの名無しさん
2010/03/17(水) 21:26:010877デフォルトの名無しさん
2010/03/17(水) 21:29:410878デフォルトの名無しさん
2010/03/17(水) 22:22:13正直説明がよくわからん
0879デフォルトの名無しさん
2010/03/17(水) 22:27:100880デフォルトの名無しさん
2010/03/17(水) 22:55:570881デフォルトの名無しさん
2010/03/17(水) 23:00:270882デフォルトの名無しさん
2010/03/17(水) 23:00:340883デフォルトの名無しさん
2010/03/17(水) 23:08:470884デフォルトの名無しさん
2010/03/17(水) 23:11:42デリゲート
0885デフォルトの名無しさん
2010/03/18(木) 00:07:16シールクラスか値型じゃなければ、メンバの追加変更なしの空っぽの派生型を作って、
implicitで元の型への暗黙変換だけ定義しとけば機能的には別名と同じかも。
まあ、そうだとしても邪道過ぎるね。
特にVBだとジェネリックの表現が長くて見づらくなるので、こういうことをする誘惑に
駆られたことがある。
0886デフォルトの名無しさん
2010/03/18(木) 01:52:03値を変更不可能にした構造体を作ったことはある
IntPtrでは型が分からないしだからってクラスにするほどのものでもなかったから
0887デフォルトの名無しさん
2010/03/18(木) 11:33:29で?
0888デフォルトの名無しさん
2010/03/18(木) 12:13:39どのようにコーディングするのが妥当ですか?
0889デフォルトの名無しさん
2010/03/18(木) 12:16:170890デフォルトの名無しさん
2010/03/18(木) 12:39:040891デフォルトの名無しさん
2010/03/18(木) 12:39:50DirectX使え
0892デフォルトの名無しさん
2010/03/18(木) 12:41:250893デフォルトの名無しさん
2010/03/18(木) 12:41:57まあフォーマットを限定するなら波形データは単なる配列だからなあ
変換するとなると面倒かも
0894888
2010/03/18(木) 12:51:31Direct Soundですよね?
以前触ったことありますが、繋いで保存なんて出来ましたっけ・・・?
調べてみます。
>>892
ググっても方法見つからなかったので、
http://codezine.jp/article/detail/368?p=2
を参考にMMIOで読み込み、データ部だけを繋いで再生してみましたが、
何も再生されず、ファイル出力したものをWMPで開いてみても、エラーで読めませんでした。
妥当って言い方は間違っていましたね。
0895デフォルトの名無しさん
2010/03/18(木) 12:56:37フォーマットがまったく一緒ならdata部分を連結してチャンクの中の長さとかを変更すれば問題ないよ
でもデータが違うとモノラル、ステレオの対応や8bit,16bitの対応もしないといけない
あとサンプリングレートか
この辺絡むとノイズの問題がでてくるんだよな・・・
0896デフォルトの名無しさん
2010/03/18(木) 12:58:03それを2つ分
で、ヘッダーの情報を結合したデータの長さとかそのへん書き換えてデータ部分を連結させる
で、おわりじゃ?
やったことはないけどフォーマット仕様があるから簡単にできそうだけどなぁ
0897888
2010/03/18(木) 13:06:22やっぱり、この方法しか無いんですかね。。チャンクとフォーマットについて、調べ直してきます。
0898デフォルトの名無しさん
2010/03/18(木) 13:21:55たしか8bitは符号なしで管理してて音が鳴ってない場合は127か128あたり
16bitは符号ありで音が鳴ってない場合0だから単純に計算でいいかも
面倒なのはサンプリングレート変換かな
0899デフォルトの名無しさん
2010/03/18(木) 13:28:170900デフォルトの名無しさん
2010/03/18(木) 14:11:11ふっ
0901デフォルトの名無しさん
2010/03/18(木) 14:18:28それがいちばん正解に近い
と思う
0902デフォルトの名無しさん
2010/03/18(木) 14:52:450903デフォルトの名無しさん
2010/03/18(木) 14:53:23実績のあるものに任せるのは正解な気がするな
0904デフォルトの名無しさん
2010/03/18(木) 14:56:550905デフォルトの名無しさん
2010/03/18(木) 15:01:140906デフォルトの名無しさん
2010/03/18(木) 15:11:47GPL汚染が進んでないのは.NETの良いところだな
0907デフォルトの名無しさん
2010/03/18(木) 15:14:26そのものずばりな本があったw
WAVプログラミング .NET C#で学ぶ音響処理
http://www.cutt.co.jp/book/978-4-87783-218-6.html
まあ自分でいじるのが目的、ってんじゃないならライブラリ探して利用するのが
いいとオレも思う。C/C++用しかなかったら移植してしまうかDLL化して使えばいいしね
0908デフォルトの名無しさん
2010/03/18(木) 15:15:380909デフォルトの名無しさん
2010/03/18(木) 15:38:290910デフォルトの名無しさん
2010/03/18(木) 16:09:45どこまで行けるように頑張ろう
0911デフォルトの名無しさん
2010/03/18(木) 16:30:35専門の勉強しないと
0912デフォルトの名無しさん
2010/03/18(木) 16:39:040913デフォルトの名無しさん
2010/03/18(木) 16:59:570914デフォルトの名無しさん
2010/03/18(木) 17:14:180915840
2010/03/18(木) 22:06:03ありがとうございました。^^
0916デフォルトの名無しさん
2010/03/18(木) 22:17:310917デフォルトの名無しさん
2010/03/18(木) 22:23:50このrtmpに関連するライブラリ等について情報があれば教えてください
またC#でこんな応用アプリが作れるよ、っていうのがあれば教えてください。
0918デフォルトの名無しさん
2010/03/18(木) 22:30:16無いと思うよ
0919デフォルトの名無しさん
2010/03/18(木) 22:33:51何をどうしたんだろうな・・・
スゲー気になる
あと
このスレってまだこっちと分離するの?
C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1265283175/
レベルもそれほど違わないし両方ペース遅いしでまとめてもいいような・・・
0920デフォルトの名無しさん
2010/03/18(木) 22:39:280921デフォルトの名無しさん
2010/03/18(木) 22:43:16ぐぐればそれなりのサンプルでてくるしなあ
2chで聞かれる内容は超初級か、マニアックなところかくらいだしペースは落ちてると思うよ
0922デフォルトの名無しさん
2010/03/18(木) 22:44:520923デフォルトの名無しさん
2010/03/18(木) 22:45:230924デフォルトの名無しさん
2010/03/18(木) 22:46:320925デフォルトの名無しさん
2010/03/18(木) 22:48:130926デフォルトの名無しさん
2010/03/18(木) 22:48:320927デフォルトの名無しさん
2010/03/18(木) 22:52:03これを配列1つごとに改行を入れてstring型のbに代入したいのですがどうすればよいのでしょうか?
0928デフォルトの名無しさん
2010/03/18(木) 22:52:350929デフォルトの名無しさん
2010/03/18(木) 22:54:290930デフォルトの名無しさん
2010/03/18(木) 22:58:020931デフォルトの名無しさん
2010/03/18(木) 23:01:23これ配列1つごとに改行を入れるのってどうすればいいんですか?
0932デフォルトの名無しさん
2010/03/18(木) 23:10:30そのくらいMSDN読めよォオオオオオオオオオオオオオオオオオオオオオオオオオオ
String.Join("\r\n",a);
\r\nでも\nでもEnvironment.NewLineでも好きなの使え
0933デフォルトの名無しさん
2010/03/18(木) 23:11:56コンソールってできたっけ?・・・・
コンソールじゃないとだめなの?
0934デフォルトの名無しさん
2010/03/18(木) 23:12:48ウィンドウがあるとは限らないし
0935デフォルトの名無しさん
2010/03/18(木) 23:14:340936デフォルトの名無しさん
2010/03/18(木) 23:16:260937デフォルトの名無しさん
2010/03/18(木) 23:17:050938デフォルトの名無しさん
2010/03/18(木) 23:19:10すいませんw
ありがとうございます
0939デフォルトの名無しさん
2010/03/19(金) 00:29:55http://codepad.org/vzVW5CQX
うまく動くかどうかは知らん。
0940デフォルトの名無しさん
2010/03/19(金) 02:28:03インデックスが指定できればいいんだけどどうやらなさそうなんですが
0941デフォルトの名無しさん
2010/03/19(金) 02:31:33極端な話、一回目のforeachと二回目のforeachで列挙順が違っても文句は言えない
0942デフォルトの名無しさん
2010/03/19(金) 02:37:34うわーそうなんですか
失敗した・・・
順番も大事なのでList<>で作り直します
ありがとうございました
0943デフォルトの名無しさん
2010/03/19(金) 04:10:17Parseメソッドを使う以外にどんな方法がありますか?
0944デフォルトの名無しさん
2010/03/19(金) 04:13:01など
0945デフォルトの名無しさん
2010/03/19(金) 06:56:390946デフォルトの名無しさん
2010/03/19(金) 10:32:580947デフォルトの名無しさん
2010/03/19(金) 10:45:29お前疲れてるんだよ
AVでもみて一発抜いて寝るべき
0948デフォルトの名無しさん
2010/03/19(金) 11:12:06Directory.GetDirectoriesなどをやったときに「"ファイル名"の一部が見つかりません」
と例外が出てしまいます
よろしくお願いします
0949デフォルトの名無しさん
2010/03/19(金) 11:21:49単にパス間違えてるとかじゃなくて?
0950デフォルトの名無しさん
2010/03/19(金) 11:29:280951デフォルトの名無しさん
2010/03/19(金) 11:44:15フォルダ名などの末尾に全角スペースが入っているからのようです
0952デフォルトの名無しさん
2010/03/19(金) 11:47:390953デフォルトの名無しさん
2010/03/19(金) 12:08:12ありがとうございます
0954デフォルトの名無しさん
2010/03/19(金) 12:08:28.NETじゃ\\.\+フルパスによる指定ができないから
0955デフォルトの名無しさん
2010/03/19(金) 13:17:14以下コードだと、宣言が重複していますとコンパイラに怒られます。
�@のクラス名か�Aの公開変数名を変えればいいのですが、
ほかに適切な名前がないので、困っています。
変数名をキャメル表記にすると、内部変数の命名規則とかぶってしまうし。
皆さんなら、どっちをどんな名前に変えますか?
class GlovalData{
class InspectVals{ //--�@
...
}
public static InspectVals InspectVals = new InspectVals() //---�A
}
0956デフォルトの名無しさん
2010/03/19(金) 13:19:070957955
2010/03/19(金) 13:29:11現状はデータ種別ごとに階層化させたくて、
こんな構造になってます。
別に外部クラスにしてもいいのですが、
この場合も何も考えずコーディングすると結局クラス名と公開変数が
かぶってしまうのですが、この場合の命名規則についても、
どうすればいいかよくわかっていません。
クラスは先頭にCとかプレサフィックスをつけるべきなんでしょうか?
0958デフォルトの名無しさん
2010/03/19(金) 13:35:07本末転倒
クラス(構造体)名と識別子名が被ってるのなんか沢山あるから気にしなくていい
たとえばRectangle.Sizeとか
0959デフォルトの名無しさん
2010/03/19(金) 14:44:20どこか詳しいサイトやぐぐるためのキーワードがあれば教えてください
0960デフォルトの名無しさん
2010/03/19(金) 14:47:050961デフォルトの名無しさん
2010/03/19(金) 17:39:48まず、内部クラスを外に見せるのはガイドライン違反。
それから、型の名前とプロパティ名を一致させるのはガイドラインではむしろ推奨。
0962デフォルトの名無しさん
2010/03/19(金) 19:57:23まあ既に指摘されてるけど内部クラスを公開するのはおかしいよね。
ただ、内部クラスの「型」を公開するのはよくないけど、
内部クラスのインスタンスを公開するのは別に悪くないと思う。
何が言いたいかっていうと、公開する「型」は名前空間直下で定義して
(つまり内部クラスじゃない)、内部クラスはその型の派生型としてprivateで定義すれば
>>955のやりたいようなことは一応できるよと。
0963デフォルトの名無しさん
2010/03/19(金) 20:40:19言語ヲタさん、説明サンキュー!
0964デフォルトの名無しさん
2010/03/19(金) 20:58:50別にそんなヲタ好みのアクロバティックな手法ってことないと思うけど
0965デフォルトの名無しさん
2010/03/19(金) 21:21:41thx
0966デフォルトの名無しさん
2010/03/19(金) 21:32:28それ意味無いよ
どうせ余所で勝手に派生型作られたら同じこと
素直に名前空間直下で宣言すればいいと思う
勝手にインスタンス作られるのが嫌ならコンストラクタをinternalに
0967966
2010/03/19(金) 21:35:26外側のインスタンスフィールドにアクセスしたいというような
内部クラスが外側に密接に結びついてる場合は別だよ
0968デフォルトの名無しさん
2010/03/19(金) 21:54:12パソコンやっててもオタクと言われなくて
おれが中学のとき丁度初代シムシティが出た頃
プログラミングに熱中してたらオタク扱いされたな
でもその後、パソコンやっていた奴と
パソコンをバカにしていた奴らの差は開くことになたがなw
0969デフォルトの名無しさん
2010/03/19(金) 22:02:21あ、今もか
0970デフォルトの名無しさん
2010/03/19(金) 22:08:17インスタンスを外に公開するのにあえて内部クラスを選択する理由は、
外側のクラスのpivateメンバ(フィールドに限らない)にアクセスできることぐらいで、
そしてそういう使い方がしたい場合は稀にはあるでしょ。
クラスをネストしてもインスタンスの生成を禁止することはできない。
そういうことがしたい場合も、>>962に書いたように抽象型のみ公開するのが普通じゃないの。
0971デフォルトの名無しさん
2010/03/20(土) 00:47:01こんなスレ居る(プログラム書いてる)時点で、大した差なさそうだけど・・・w
0972デフォルトの名無しさん
2010/03/20(土) 01:30:44それプラスitem追加した順番に並ぶようなクラスは
どうすれば作れますか?
0973デフォルトの名無しさん
2010/03/20(土) 01:31:56>Directoryみたいな機能があって
>それプラスitem追加した順番に並ぶようなクラスは
>どうすれば作れますか?
えw
自分で文字にしたのがすでに仕様じゃん
0974デフォルトの名無しさん
2010/03/20(土) 01:38:25>>941
こういうことしたいんですけど
foge<obj1,obj2>
こんな感じで
0975デフォルトの名無しさん
2010/03/20(土) 01:39:32で?
0976デフォルトの名無しさん
2010/03/20(土) 01:40:49DirectoryじゃくDictionaryなの?
0977デフォルトの名無しさん
2010/03/20(土) 01:50:11内部にDictionary<TKey,TValue>とList<TKey>持ったIDictionary<TKey,TValue>実装クラス作ればいいよ
0978デフォルトの名無しさん
2010/03/20(土) 01:51:430979デフォルトの名無しさん
2010/03/20(土) 01:56:39書いてる途中で正解が書き込まれてた
0980デフォルトの名無しさん
2010/03/20(土) 02:00:39途中から追加した順番に要素を検索するクラスが
作りたいのです
と言わなくても理解してくれた超能力者がいたので助かりました
>>977のようなクラスは例えば
class foge
{
Dictionary<TKey,TValue>
List<TKey>
}
みたいになるんですよね?
そうじゃなくて
Foge<string,myclass> f=new Foge<string,myclass>();
for(int idx=9;idx<f.Count;idx++ )
{
myclass mc=f.items[idx];
}
のようにしたいのです
0981デフォルトの名無しさん
2010/03/20(土) 02:02:46自分でできそうなもんだが
0982デフォルトの名無しさん
2010/03/20(土) 02:06:02自分がやるとオシャレじゃないので
もっとスマートに実現してくれるひとはいるかなと
思いまして
0983デフォルトの名無しさん
2010/03/20(土) 02:07:26こういう感じにしたいのです
for(int idx=9;idx<f.Count;idx++ )
{
myclass mc=f[idx];
}
0984デフォルトの名無しさん
2010/03/20(土) 02:07:58そこまで分かってるなら検索ワードも浮かびそうだし
ぐぐれば出てきそうだけどな
というかその程度の実装で答えもらってると後で苦労しそうだけどな・・・・
0985デフォルトの名無しさん
2010/03/20(土) 02:10:380986デフォルトの名無しさん
2010/03/20(土) 02:12:100987デフォルトの名無しさん
2010/03/20(土) 02:12:28>>980を踏んだ人は新スレを建てて下さい。
0988デフォルトの名無しさん
2010/03/20(土) 02:15:54List<string> g = new List<string>();
for(int idx=9;idx<f.Count;idx++ )
{
myclass mc=f[g[idx]];
}
0989980
2010/03/20(土) 02:17:06http://pc12.2ch.net/test/read.cgi/tech/1269018938/
立てたので教えてくださいお願いします
0991デフォルトの名無しさん
2010/03/20(土) 02:20:440992980
2010/03/20(土) 02:22:18これだとアイテム追加する度に
二つの変数にそれぞれキーとかインデックスとか入れないとだめですよね
f.Add(string,item)
だけで済むようにしたいんです
>>991
ひとつの行いをするのに二つのクラスを使うなんてスマートじゃないです
0993デフォルトの名無しさん
2010/03/20(土) 02:23:54そこまで分かってるならクラス自分で実装しろよ
お前がわからないのはクラスの作り方だろ?
0995デフォルトの名無しさん
2010/03/20(土) 02:25:52ふらっとC#,C♯,C#(初心者用) Part57
http://pc12.2ch.net/test/read.cgi/tech/1269018938/2
のサイトに貼って添削してもらう形で動け
0997デフォルトの名無しさん
2010/03/20(土) 02:27:33いや二つだよ
0998デフォルトの名無しさん
2010/03/20(土) 02:42:20このくらいはできるようにならんと
0999デフォルトの名無しさん
2010/03/20(土) 03:33:291000デフォルトの名無しさん
2010/03/20(土) 03:48:40バーカ
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。