5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ふらっとC#,C♯,C#(初心者用) Part62

1 :デフォルトの名無しさん:2010/08/08(日) 12:08:26
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっとC#,C♯,C#(初心者用) Part61
http://hibari.2ch.net/test/read.cgi/tech/1277597122/

■関連スレ
C#, C♯, C#相談室 Part61
http://hibari.2ch.net/test/read.cgi/tech/1280008155/
VB.NET質問スレ(Part34)
http://pc12.2ch.net/test/read.cgi/tech/1270998481/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/

■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php

2 :デフォルトの名無しさん:2010/08/08(日) 17:13:59


3 :デフォルトの名無しさん:2010/08/08(日) 18:06:27
よん

4 :デフォルトの名無しさん:2010/08/08(日) 19:57:51
さん

5 :デフォルトの名無しさん:2010/08/08(日) 20:09:08
そういえばヨン様消えたねw

6 :デフォルトの名無しさん:2010/08/08(日) 22:21:26
あら、いい男

7 :デフォルトの名無しさん:2010/08/09(月) 02:36:53
新井素子

8 :デフォルトの名無しさん:2010/08/09(月) 02:45:36
嫌なニヤケ面

9 :デフォルトの名無しさん:2010/08/09(月) 02:47:02
やめい

10 :デフォルトの名無しさん:2010/08/10(火) 14:14:19
ToolStripのRenderingModeをSystemにすると下の方に表示される余白を消すにはどうすればいいですか?
ツールバーの背景色を変えてもそこだけ色が変わらないので困ってます。

11 :デフォルトの名無しさん:2010/08/11(水) 21:08:19
Visual C# 2008 絶賛入門中でして。
以下のようなデータテーブルがあり、これのメンテ画面を作ろうというんですが。
[データテーブル]
Nendo, Kamoku1, Kamoku2, Kingaku, ...

Nendo・Kamoku1・Kamoku2はコンボボックスで、他はテキストボックス。
Nendoを選ぶとKamoku1のコンボボックスのデータが絞り込まれると。
[年度]
Nendo, ....
[科目マスタ1]
Nendo, Kamoku1, Kamokumei
[科目マスタ2]
Nendo, Kamoku1, Kamoku2 ,Kamokumei

見よう見まねというかADO.NET入門の本をみて
データベースに接続してDataSetを作り、
データテーブルのデータソースをWindows Formデザイナーで、ドラッグ&ドロップしたら、
フォームにコンボボックスやら配置された。
っていうとこまできました。

あとどうやるんすか?
Nendoコンボボックス単体はちゃんと表示されるんですが。Kamoku1・Kamoku2の絞り込みが
やりかたわかりません。

Accessのときは、cbxNendo_AfterUpdateイベントでcbxKamoku1のSQLを書き換えてました。


12 :デフォルトの名無しさん:2010/08/11(水) 23:25:03
Accessと同様に、cbxNendoのSelectedIndexChangedイベントで
SelectedValueプロパティ(ValueMemberプロパティが設定されている場合)かSelectedItemプロパティの値を
条件に追加したcbxKamoku1用のSQLを作成したもので再度DataSetまたはDataTableで結果を取得して、
cbxKamoku1のDataSourceに設定すればいいんじゃね?

13 :デフォルトの名無しさん:2010/08/11(水) 23:27:30
あ、SelectedItemの場合は内部はDataRow型かDataRowView型となるのでキャストしないといけない。

14 :デフォルトの名無しさん:2010/08/13(金) 00:41:47
PerlなどのWWW::Mechanizeのように直前の状態を保ったまま次のアクセスをする方法を教えてください
具体的にはログイン→書き込みを行ないたいのですが、書き込みのところでログイン状態が解除されていしまします。

15 :デフォルトの名無しさん:2010/08/13(金) 02:08:39
Cookie保持させればええんのじゃあ?
HttpWebRequestのCookieContainerプロパティは既定で空になってるから自分でnewして突っ込まないと駄目だ

16 :デフォルトの名無しさん:2010/08/13(金) 11:34:52
>>15
ありがとうございます出来ました

17 :デフォルトの名無しさん:2010/08/13(金) 23:04:24
他人のソースコードを見る際に、クラスやメソッド単位であれば問題なく見れますが、
ソースファイルが大量にあったりすると、すぐに全体像(クラス同士の依存関係とか)を掴握出来なくなってしまいます。
どうすればこの壁を乗り越えられるでしょうか orz

18 :デフォルトの名無しさん:2010/08/13(金) 23:06:13
クラスダイアグラムでも出せば?

19 :デフォルトの名無しさん:2010/08/13(金) 23:08:52
まぁちなみにEE使ってる貧乏人さん用はありませんよ

20 :17:2010/08/13(金) 23:10:26
貧乏人さんです(´・ω・`)

21 :デフォルトの名無しさん:2010/08/13(金) 23:11:38
やーい

22 :デフォルトの名無しさん:2010/08/17(火) 12:39:00
Doxygen使ってみるとか

23 :デフォルトの名無しさん:2010/08/18(水) 06:16:46
ttp://www.atmarkit.co.jp/fdotnet/special/networkprog/networkprog_02.html
TcpClientクラスについて勉強しています
これとほぼ同じプログラムを作ってるのですがインターネットを介して接続するにはIPアドレスをどう指定すればよいのでしょうか
IPアドレス確認君などででたIPアドレスをそのまま指定しても繋がりません。

24 :デフォルトの名無しさん:2010/08/18(水) 06:21:17
基本的にはそれでいいんだけど、ルータが間にあるなら、
パケットが到達できるように設定しないとだめ。

ルータの説明書読んでみてね。

25 :デフォルトの名無しさん:2010/08/18(水) 06:24:38
>>24
ありがとうございます。間違えたところで悩んでいたようですね
説明書引っ張り出してきます

26 :23:2010/08/18(水) 07:19:42
すみませんルータの説明書を読み直したんですけれども今一度の項目化わかりませんでした
検索ワード等のヒントいただけますか

27 :デフォルトの名無しさん:2010/08/18(水) 07:35:31
ポート開放とかポート転送とか
WAN側(インターネット側)からの接続要求を
LAN側(内側)のどのPCに振り分けるか、を設定する

28 :デフォルトの名無しさん:2010/08/18(水) 10:13:49
ルーターのメーカーによって呼び方が違うから機種名書いた方が早い
IPマスカレードとか書いてない?

29 :デフォルトの名無しさん:2010/08/18(水) 10:15:28
あとPC側でセキュリティしっかりやってるならDMZにPCのアドレス
指定する手もある。

30 :デフォルトの名無しさん:2010/08/18(水) 19:11:17
ポートフォワード

31 :デフォルトの名無しさん:2010/08/18(水) 19:13:21
つかそんなことまでこのスレで対応するのか
珍しく優しいじゃんお前ら

32 :デフォルトの名無しさん:2010/08/19(木) 21:16:08
質問です
部品として設置したボタンを押したときに
画像や音楽ファイルのURLを指定してIE右クリックメニューの
名前を付けて保存と同じようにダイアログを出して保存するにはどうしたらいいのでしょうか?
リンクを直接右クリックして保存するのではなく一度URLを変更するので
webページ閲覧中に右クリックで保存という方法はできませんでした

33 :デフォルトの名無しさん:2010/08/19(木) 21:38:24
もう少し状況を詳しく書こうな。WebBrowserコントロールを使ってる、とかさ。
部品として設置したボタン、ってそもそもなんだよ?

34 :デフォルトの名無しさん:2010/08/19(木) 21:39:06
もうちょっと詳しく

35 :デフォルトの名無しさん:2010/08/19(木) 21:53:31
言葉足らずですいません
音楽ファイルのストリーミングのようなURLはページに表示されているのですが
それをそのまま右クリックで保存にしてもダウンロードできないので
ストリーミング用URLをちょっと変更しなくてはならないんです
そこでいったんクリップボードへコピーしその状態でフォームに設置したボタンを押すことで
クリップボードの内容のURL変更はできたのですが
名前を付けて保存を押した時のようなダウンロード開始ができませんでした
URLが指定されているときそれに対して名前を付けて保存、のような動作はできますか?

36 :デフォルトの名無しさん:2010/08/19(木) 22:00:08
全然詳しくなってないんだけど…
本当に答えて欲しいんかい

37 :デフォルトの名無しさん:2010/08/19(木) 22:06:45
まずはっきりしたいのがwebブラウザーのコンポーネント上の話?
それともwebブラウザーコンポーネントを使わないで実現しようとしてるの?

38 :デフォルトの名無しさん:2010/08/19(木) 22:07:59
非表示のブラウザーにその変更したURLを渡せば
勝手にDLダイアログ出してくれるんじゃないの?

39 :デフォルトの名無しさん:2010/08/19(木) 22:07:59
>>35
要するにこれ出したいんだろ
http://youryella.wankuma.com/images/blog/20070617/msdn200706download1.gif

40 :デフォルトの名無しさん:2010/08/19(木) 22:08:45
>>39
先は長いなw

41 :デフォルトの名無しさん:2010/08/19(木) 22:09:09
-4%って何だろうな

42 :デフォルトの名無しさん:2010/08/19(木) 22:11:02
そろそろ、あきらめろ厨の出番↓

43 :デフォルトの名無しさん:2010/08/19(木) 22:12:41
質問者のレベルだとWebBrowserは使ってないと思うで
あくまでIEと補助プログラムの話だとオモ

44 :デフォルトの名無しさん:2010/08/19(木) 22:18:52
それどころか、C#を使ってるのかすら怪しいなw

45 :デフォルトの名無しさん:2010/08/19(木) 22:22:21
ストリームで直接ファイルに書き出そうとするのなら結構ややこしいと思う。
しょぼいダウンローダーだと画像ファイルを指定して、画像をダウンロードしたと思ったら、
中身は勝手にDLするなみたいなHTMLファイルだったりとかw

46 :デフォルトの名無しさん:2010/08/19(木) 22:35:02
何の話だと思ってみてみたら、余計にワケがわからなかった
初心者だとか英語圏だとかそんなチャチなもんじゃ断じてねえ
もっと根本的な恐怖を味わったぜ
これほどのエスパー募集はそうそうお目にかかれねえな

つか、HTMLの話でしたなんてふざけたオチじゃないだろーな

47 :デフォルトの名無しさん:2010/08/19(木) 23:03:24
DownloadFileで保存するとかじゃダメなんだよな?

48 :デフォルトの名無しさん:2010/08/20(金) 01:20:18
整理(おそらくこう言っているのだと思う)

1.IE上(webbrowser上ではない)のストリーミングのリンクをコピーしてクリップボードに入れる(手動)

2.自作アプリのボタンを押すとクリップボードの内容(リンク)を書き換える

3.そのリンク先をIE上でダウンロード、もしくは自作アプリでIEのダウンロードフォルダを出して保存したい


要望
3.の方法を教えてほしい

49 :デフォルトの名無しさん:2010/08/20(金) 01:22:48
まあある程度上達?するとこんな回りくどい方法はとらないな

50 :デフォルトの名無しさん:2010/08/20(金) 01:59:19
かなり上達するとこの方法に戻ってくるけどな

51 :デフォルトの名無しさん:2010/08/21(土) 02:44:13
using(var wc = new System.Net.WebClient()){
 wc.DownloadFile("保存したいファイルのURL", "保存するファイル名");
}

これじゃだめなんだよね?

52 :デフォルトの名無しさん:2010/08/21(土) 15:18:17
ダメです。それだとキャンセル出来ないじゃないですか



偽物です…

53 :デフォルトの名無しさん:2010/08/21(土) 15:24:59
じゃあHttpWebRequest使って自前で書け

54 :デフォルトの名無しさん:2010/08/23(月) 10:25:01
イメージリストに画像を追加する際にインデックス番号を指定して追加することは可能ですか?

55 :54:2010/08/23(月) 10:49:39
すみません、質問が何か違っていたので再度質問させてください。
リストビューで画像の一覧を表示したいのですが、フォームを表示するのにとても時間がかかるので、
メインのスレッドでは以下のようにし、
string[] pics = Directory.GetFiles(@"画像の入ったフォルダ");
for (int i = 0; i < pics.Length; i++)
{
listView1.Items.Add(new ListViewItem(pics[i], i));
}
画像はこの後に別スレッドで取得するようにしてみました。
その際別スレッドを複数立ち上げて取得させると、Images.Addでは予め設定してあるインデックス番号と合わず
表示される画像の順番がめちゃくちゃになってしまいます。
何か良い解決方法ありましたら教えてください。

56 :デフォルトの名無しさん:2010/08/23(月) 11:05:01
スレッドにnew { Name = pics[i] , Index = i }でも渡しとけよそんなもの

57 :デフォルトの名無しさん:2010/08/23(月) 11:07:05
はぁ?

58 :デフォルトの名無しさん:2010/08/23(月) 11:08:56
>>55
ListViewItemにはImageKeyっていうプロパティがあってね

59 :58:2010/08/23(月) 11:11:33
ImageKey=ファイルのパス

ListViewItem.ImageKey = pics[i];

60 :54:2010/08/23(月) 11:28:15
>>56
レスありがとうございます
回答していただいたのに申し訳ないんですが、自分の知識ではいまいち理解出来ずでした・・・

>>58-59
レスありがとうございます
ファイルのパスを指定することが出来るんですね
そのやり方で無事順番通りに表示することが出来ました

ありがとうございました

61 :デフォルトの名無しさん:2010/08/23(月) 11:39:12
なによりだ

62 :デフォルトの名無しさん:2010/08/24(火) 13:48:55
Directory.Exists() メソッド でフォルダの存在確認をしたとき
Directory.Delete メソッド などで削除したばかりのときには
かならずしも「存在していないこと」が反映されていない場合がありました。
(実際には常にそういう状態でした)ExplorerでもFolderTreeのNodeに
フォルダが残っているように表示されていて、最新の状態に更新としないと
消えないで残ったままになっている場合が多いのと似た感じです。

これをDirectoryInfoのサブフォルダ配列をGetして確かめるとそこでは
削除されたフォルダは消えていました。常にこれで確かめてやればいいのかも
しれませんが、これによらず、Directoryクラスで最新の状態を反映するように
するための方法はありますでしょうか?よろしくお願いします。


63 :デフォルトの名無しさん:2010/08/24(火) 14:14:08
>>62
俺もそれ経験がある

64 :デフォルトの名無しさん:2010/08/24(火) 14:23:24
それで何がまずいんだ?
調べた時に確実に存在してても、操作するときに別プロセスから消されてたとか
普通にあるだろうし。

65 :デフォルトの名無しさん:2010/08/24(火) 14:28:57
使う直前にExistしたって駄目だよ
DirectoryNotFoundをちゃんとcatchしませう

66 :デフォルトの名無しさん:2010/08/24(火) 14:37:47
なるほど

67 :デフォルトの名無しさん:2010/08/24(火) 21:16:47
KTMでも使えばいいんじゃね?

68 :デフォルトの名無しさん:2010/08/24(火) 21:59:45
カツミのED58

69 :デフォルトの名無しさん:2010/08/25(水) 00:23:07
>>65
たしかにそういう扱いにならざるを得ないようですね。わかりました。
ありがとうございました。

>>64
>調べた時に確実に存在してても、操作するときに別プロセスから消されてたとか
>普通にあるだろうし

考え方として、その1行前でExistsチェックして存在したのに、すぐ次の瞬間にない
という場合が絶対に皆無かといえば絶対に皆無とは言い切れないと思いますものの、
通常のフォルダ利用においては、99%以上の確率で「状態は一致する」と言えると
思います。そのわずかの時刻差で状態が異なる場合は非常に稀であると。

そこで、Existsチェックを要求した時点で仮に「本当に存在していない」のであれば、
その場合には「存在していない」という返答を返すのが、本来「正しい」機能だろうと
考えます。ところが、このDirectory.Exists() メソッド はそうはなっていない、
ということで、おっしゃっている主旨とは関係なく、「正しく機能していない」と
いえるのではないかと。

70 :デフォルトの名無しさん:2010/08/25(水) 00:24:51
おまいのアプリは常にメモリ不足、ディスク容量不足、スレッド不足、こういうのに全て対応して復帰可能にしてあるのか?

71 :デフォルトの名無しさん:2010/08/25(水) 01:11:13
Queue asdfに中身が存在している間だけwhileを回したいのですが、

do{

}while(!=asdf.empty)

のようなことをC#でするための書き方を教えてください

72 :デフォルトの名無しさん:2010/08/25(水) 01:22:25
Queue.Count>0でええやんけ

73 :デフォルトの名無しさん:2010/08/25(水) 17:05:10
ビジネスアプリケーション開発環境「Visual Studio LightSwitch」ベータ版が公開
http://www.forest.impress.co.jp/docs/news/20100824_388969.html

本ソフトは、業務用アプリケーションの開発に特化した“Visual Studio”。Visual BasicやC#といった
プログラミング言語を利用して、「Silverlight」ベースのビジネスアプリケーションを開発できる。
開発したアプリケーションはローカル上のみならず、「Silverlight」プラグインを導入した各種Webブラウザー
から利用したり、同社のクラウドサービス “Windows Azure”上に設置することも可能だ。

だそうだ

74 :デフォルトの名無しさん:2010/08/25(水) 19:49:08
コピペ王に、俺はなる!

だそうだ

75 :デフォルトの名無しさん:2010/08/25(水) 20:00:38
宣伝乙
買わんけど

76 :デフォルトの名無しさん:2010/08/25(水) 22:17:33
えっ
無料配布じゃないの?

77 :デフォルトの名無しさん:2010/08/25(水) 22:30:19
VSのおまけでしょ。

78 :デフォルトの名無しさん:2010/08/25(水) 23:23:12
VBしかしらん超初心者ですまん。
列挙型って値をキャストして参照するのって
ダメな使い方なん? こんな感じ↓

------------------------------
enum Em
{
  家電 = 1,
  書籍,
  家具
}

int hoge = 2;

if(hoge == (int)Em.家電) {
// なんか処理
}
------------------------------

intの宣言のところを↓にすればってことだろうけど、、、

Em hoge = Em.書籍;

既存システムの改修なんでそうしようとすると
いろいろ他に範囲が出てしまって。。。


79 :デフォルトの名無しさん:2010/08/25(水) 23:27:21
好きにすればいいよ

80 :デフォルトの名無しさん:2010/08/25(水) 23:28:20
列挙型使わなきゃいい。

81 :デフォルトの名無しさん:2010/08/25(水) 23:30:04
「値をキャストして参照する」ってどういう意味ずら

82 :デフォルトの名無しさん:2010/08/25(水) 23:32:06
普通はキャストしないで使うべきだろうな
どうしても必要な部分だけキャストする。

83 :78:2010/08/25(水) 23:44:58
いろいろ意見有難うございます。

>>79
了解です。私よりC#分かってない後輩に
「真似するなよ」って一言いっておけばいいかなw

>>80
Const に変更した方がいいですかね。

>>81
「値をキャストして使用する」ってことでm(_  _)m

>>82
普通はキャストしない風潮ですよね。
ただ中身の値と照合したい時があったりで(汗)


84 :デフォルトの名無しさん:2010/08/26(木) 07:10:56
列挙型じゃなくて連想配列にしたらいいよ

85 :デフォルトの名無しさん:2010/08/26(木) 10:23:24
C/C++と共通で使うやつで、enum使いたいのにint要求する関数が
あったりするな。そんなときはキャストはするけど
そういう場合、enumの全ての項目に省略せずに数値設定するな

86 :デフォルトの名無しさん:2010/08/26(木) 10:54:55
Panelの中に以下みたいな感じでbutton1にコントロール配列でボタンを作るようにしたんだけど

System.Windows.Forms.PictureBox[] TestButton;
private void button1_Click(object sender, EventArgs e)
{
this.SuspendLayout();
for (int i = 0; i < 10; i++)
{
TestButton[i] = new System.Windows.Forms.Button();
TestButton[i].Name = i;
TestButton[i].Location =
new Point(panel1.Location.X + 30 , panel1.Location.Y + 100*i);
}
panel2.Controls.AddRange(TestButton);
panel2.ResumeLayout();
}

コントロール配列を作ったらpanelとかのAnchorがNoneと同じ状態(formを動かしても位置が変わらない)
になっちゃったんですが、これを元通りに直すことはできますか?

87 :デフォルトの名無しさん:2010/08/26(木) 11:22:08
二つのテキストの差分をプログラム上で取得表示したいのですが
どのようなライブラリがありますか?

a.txt
abc
abcabc

b.txt
bbc
abcabc

差分結果
++bbc
--abc

こんな感じの標準的な仕様に沿った表記をしたいのです

88 :デフォルトの名無しさん:2010/08/26(木) 11:28:29
diff

89 :デフォルトの名無しさん:2010/08/26(木) 11:35:32
それをやるライブラリ、なにかありませんか?

90 :デフォルトの名無しさん:2010/08/26(木) 12:37:35
WebBrowserでNavigatedしたときに、そのDocumentに自動的にFocusが移ってしまう
ようで、他のコントロールにあるFocusが勝手に持って行かれるのを防ぎたい。
(WebBrowser自体にはGotFocusされてはいないようですが、なぜか他のコントロールが
LostFocusしてしまうのです)どうすればFocus持って行かれないようにできるでしょうか?

91 :デフォルトの名無しさん:2010/08/26(木) 12:44:24
>>90
アクティブにしたいコントロールのインスタンスを格納すると(まあ管理してるのは参照だろうけど)
アクティブにしてくれる機能があったのでNavigatに入る前に
そこを調べて何かしらのインスタンスを把握しておけば?

92 :デフォルトの名無しさん:2010/08/26(木) 13:08:44
>>89
ttp://www.google.co.jp/search?q=diff+%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&hl=ja

93 :デフォルトの名無しさん:2010/08/26(木) 13:38:29
>>91
そういう便利な機能が付随していたんですか!知りませんでした。
ちなみにそのプロパティのようなものはなんという名前か、
教えていただけたらありがたいです。何というものでしょうか?

94 :デフォルトの名無しさん:2010/08/26(木) 13:45:17
あれなんだっけかな・・・

ここか相談室の方の過去ログをWebBrowser関連で調べるとでてくるはず
そのときの質問者は確かWebBrowserの中のページだかにフォーカスを入れたいとかなんとか言ってたような

95 :86:2010/08/26(木) 16:40:51
あっ、SuspendLayout()、ResumeLayout()あたりが怪しいのかな
調べなおしてきます

96 :デフォルトの名無しさん:2010/08/26(木) 23:55:54
// Size of receive buffer.
public const int BufferSize = 256;
// Receive buffer.
public byte[] buffer = new byte[BufferSize];

constはOKでreadonryはなぜ駄目なんでしょうか?

97 :デフォルトの名無しさん:2010/08/27(金) 00:00:43
constはコンパイル時にリテラル値として置き換えられるから
原理上初期化がいらない
readonlyは単なるフィールドなので初期化が終わるまで駄目

98 :デフォルトの名無しさん:2010/08/27(金) 20:16:30
string str = "hoge<>foo<>bar<>monyo";
というstringがあって、
string s[] = str.Split("<>".ToCharArray());
すると、
s[0] = "hoge"
s[1] = ""
s[2] = "foo"
s[3] = ""
となるのですが、これはこういうものなのでしょうか?
期待値は
s[0] = "hoge"
s[1] = "foo"
s[2] = "bar"
s[3] = "monyo"
なのですが。

99 :デフォルトの名無しさん:2010/08/27(金) 20:24:06
区切り記号に'<'と'>'を指定してるからみょうちきりんな結果になってんだろ

String.Split(new []{"<>"},StringSplitOptions.None);にしろ

100 :デフォルトの名無しさん:2010/08/27(金) 20:40:37
おお、区切り文字列を渡していたつもりで、区切り文字を列挙したものを
渡していたわけですね。ありがとうございます。解決しました。

101 :デフォルトの名無しさん:2010/08/29(日) 20:40:28
質問です
一文字いれたら数字が返ってくるようスイッチ文を書く場合・・・
http://ideone.com/89ddg
caseが5つで上記のように書けるとおもいますが
20行ほどに分岐増えた場合、そのままベタ書きで書くのも能が無いと思うのです。
でもどうしたら?ってのが解らない。テーブルルックアップ?

皆さんならどうします?

102 :デフォルトの名無しさん:2010/08/29(日) 20:43:02
素直にテーブル書く

103 :デフォルトの名無しさん:2010/08/29(日) 21:01:50
>>101
20ならcaseのままで行く。
結局テーブルにしたって
20行分Add書くんだろ?

104 :デフォルトの名無しさん:2010/08/29(日) 21:21:57
外部ファイルに保存して読み込むのが普通だろ

105 :デフォルトの名無しさん:2010/08/29(日) 21:26:27
>>104
例を見る限り値は固定だろ
そんなものいちいち外部ファイルなんてしねーよ。

あれか?、メッセージボックスのテキストなんかの文字列定数を
外部ファイルで管理しちゃうような化石人間?w

106 :デフォルトの名無しさん:2010/08/29(日) 21:30:06
場合によっては外だしも有効だけどな。

107 :デフォルトの名無しさん:2010/08/29(日) 21:59:11
>>106
どういう場合?

108 :デフォルトの名無しさん:2010/08/29(日) 22:06:36
>>107
そりゃ避妊だろうな

109 :デフォルトの名無しさん:2010/08/29(日) 22:07:01
ローカライズだけ別会社でやるときとか、
リビルドやらアプリ配布がそうそうできない環境とか。

110 :デフォルトの名無しさん:2010/08/29(日) 22:13:04
なんで誰も連想配列(ドトネトだとDictionaryか)を推さないの?
俺が話しを誤読してるのか?

111 :デフォルトの名無しさん:2010/08/29(日) 22:15:44
>>110 はい では言いだしっぺの法則で サンプルよろしく♪

112 :デフォルトの名無しさん:2010/08/29(日) 22:18:02
たかだか20個で連想配列ねぇ
O(1)に毒されてるな

113 :デフォルトの名無しさん:2010/08/29(日) 22:20:59
>>109
そのどの場合でも普通にリソースファイルでいいじゃん?
なんで外部ファイル?

114 :デフォルトの名無しさん:2010/08/29(日) 22:21:41
真面目な話、>>112みたいなセンスの人が糞コード量産してるんだろうなと思う。
何事も程度問題ではあるけど、この場合個数の問題ではないんだけどね

115 :デフォルトの名無しさん:2010/08/29(日) 22:21:52
>>112
その表記MSDNとかでもよく見るけどよくわからん
ONとかもあるよね?
ちょっと解説してほしい。
王長嶋?

116 :デフォルトの名無しさん:2010/08/29(日) 22:22:22
>>115
くたばれよ

117 :デフォルトの名無しさん:2010/08/29(日) 22:23:16
質問者が個数を指定しているのに個数の問題ではないってどういうこと??
隠された命題でも発見しちゃったの?

118 :デフォルトの名無しさん:2010/08/29(日) 22:24:11
>>113
フリーソフトなんかの場合、その方がローカライズの作業がやりやすい、
というメリットはあるかもしれない。

ドトネトの場合はコードはかえって複雑になるけど

119 :デフォルトの名無しさん:2010/08/29(日) 22:26:26
意味もなく一般化して考えるのが正しいと思ってるからだよ。

120 :デフォルトの名無しさん:2010/08/29(日) 22:27:26
別にリソースファイルでもいいよ。

121 :デフォルトの名無しさん:2010/08/29(日) 22:30:20
単に連想配列使った方が見やすいって言ってんでしょ

122 :デフォルトの名無しさん:2010/08/29(日) 22:30:26
>>118
ローカライズのしやすさと
リソースファイルにするか外部ファイルにするかの問題は
全く関係ないだろ?

別会社でローカライズするならなおさらのこと。

頭おかしいんじゃね?

123 :デフォルトの名無しさん:2010/08/29(日) 22:34:35
>>122
頭オカシイのはお前さん。

フリーソフト(だからフリーソフトだ、と言ってるのに「別会社」ってw)なんか
作ったことがない俺でも、文字列リソースをプレーンテキストにしておけば、
プログラマじゃない人にもローカライズ作業を丸投げできることは想像に難くない。

なんでその程度の想像力もない馬鹿なのにそんな偉そうなのか。
それは自分の馬鹿が自覚できないほど頭が悪いからなんだろうな

124 :デフォルトの名無しさん:2010/08/29(日) 22:35:34
全然違うと思うが・・・

125 :デフォルトの名無しさん:2010/08/29(日) 22:37:08
>>115
そのネタ20年以上前からある

126 :デフォルトの名無しさん:2010/08/29(日) 22:40:33
>>123
お前は配布するファイル自体をローカライズする人に作らせるの?wwwwwwww
それならてきすとふぁいる(笑)でもいいかもしれんがwwwwwwwwwwww

普通は、ローカライズしてもらったリソースを開発者が梱包すんだろが。
今はその梱包の仕方を言ってんだろ?w

127 :デフォルトの名無しさん:2010/08/29(日) 22:41:35
>>123
自分の馬鹿が自覚できないほど頭が悪い人がいた

128 :デフォルトの名無しさん:2010/08/29(日) 22:41:47
大本の議論から離れすぎだろ
>>101がそんな回答求めてると思ってんの?

129 :デフォルトの名無しさん:2010/08/29(日) 22:42:27
>123
想像に難くない(キリッ



130 :デフォルトの名無しさん:2010/08/29(日) 22:43:36
>>128
別に>>101向け回答に限定して議論してる訳じゃないんじゃないの
質問者が聞いていること以外レスしちゃいけないLRなんてあったっけ

131 :デフォルトの名無しさん:2010/08/29(日) 22:44:17
>>123
頭オカシイのはお前さん。

132 :デフォルトの名無しさん:2010/08/29(日) 22:45:04
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

133 :デフォルトの名無しさん:2010/08/29(日) 22:45:53
>>130
>>1読んで消えうせろ

134 :デフォルトの名無しさん:2010/08/29(日) 22:46:52
でも相談室も荒れてるでよ。
なんか地球市民がどうたら言ってるし。

135 :デフォルトの名無しさん:2010/08/29(日) 22:47:34
優しくしてやれよ。 >>1も読めんのか?

136 :デフォルトの名無しさん:2010/08/29(日) 22:48:14
>>126
現にそういう方法論を取ってるフリーソフトも山ほどあるし、
フリーソフトのローカライズ用のテキストファイルだけ配布してる人間も
山ほどいるんだけどね。

無知って素敵だな。他人から見れば滑稽にしか思えんけど。

137 :135:2010/08/29(日) 22:48:25
俺が優しくなかった。

138 :デフォルトの名無しさん:2010/08/29(日) 22:48:51
優しくしてね///

139 :101:2010/08/29(日) 22:50:17
質問した101ですが、白熱してますね。
なんか俺の為に喧嘩するのはヤメテ〜

つか初心者過ぎて、if文とcace文以外の方法を知らないんです。
クレクレ君でスミマセンが、111に同じくソースのサンプルで見せてくれませんか?
そのほうが、私の勉強に・・・。どうかお願いです。

素直にテーブル
外部ファイルに
連想配列
リソースファイル

色々出てきて目が点なんです。
鳩山由紀夫に豆鉄砲見たいな顔してレスリロードしてます。
後学の為にも、それぞれコードで教えてください。
でもって、そのあとで、あ〜だこーだ言った方が建設的じゃありません?

ちなみに21個版でケースでゲす。
ttp://ideone.com/WriA2

140 :デフォルトの名無しさん:2010/08/29(日) 22:50:50
>>133
想像に難くない馬鹿も消え失せろ

141 :デフォルトの名無しさん:2010/08/29(日) 22:51:31
const string CHECK_STR = "__LFV_______XY";
return CHECK_STR.Contains(str) ? .IndexOf(str) + 0x90 : 0x00;

142 :デフォルトの名無しさん:2010/08/29(日) 22:51:52
>>139
これならswitchで十分。
つかswitchしかあり得ない。

143 :デフォルトの名無しさん:2010/08/29(日) 22:53:00
>>141
二文字とかもあるなら無理だな。

144 :101:2010/08/29(日) 23:25:20
>>142 力強いご助言ありがとうございます。

急に静かになった・・・。ソレもソレで少し寂しいよう。

145 :デフォルトの名無しさん:2010/08/29(日) 23:50:51
きっとみんなコード書いてるところなんだよ

146 :デフォルトの名無しさん:2010/08/30(月) 00:05:55
書いてねーよ

147 :デフォルトの名無しさん:2010/08/30(月) 00:30:16
そもそもなぜこういうことをしないといけないかの背景がわからないとコードは書けんと思うけどな
case文の例題として与えられたとかならともかく

最初からすべての組み合わせが決まっているのか
それとも後から変更や追加があるのか、あるのなら誰がそれをするのか
仕様がわからないのにコードなんか書けないよ

148 :デフォルトの名無しさん:2010/08/30(月) 00:30:25
>>144

>>141で回答が出たからな
後は自分の例に当てはまるかどうか…

149 :デフォルトの名無しさん:2010/08/30(月) 00:35:07
>>148
141ってどこが回答なの?
まったく質問主の条件を満たしてないと思うんだけど

150 :デフォルトの名無しさん:2010/08/30(月) 00:35:14
それはいい回答とは思えんな。(個人の感想です)

151 :デフォルトの名無しさん:2010/08/30(月) 00:37:50
でもお高いんでしょう?

152 :デフォルトの名無しさん:2010/08/30(月) 00:38:10
>>150
そうかなあ
8ビットbasic時代の一般的なテクニックなんだけどね

俺も同じものを書こうと思ったら先を越されていた

153 :デフォルトの名無しさん:2010/08/30(月) 00:41:41
そういうのはテクニックではなく「悪弊」と言うんだ普通は

154 :デフォルトの名無しさん:2010/08/30(月) 00:41:55
良く見ると、入力がアンダーバーの場合の処理が抜けてるね

155 :デフォルトの名無しさん:2010/08/30(月) 00:44:08
アンダースコア

156 :デフォルトの名無しさん:2010/08/30(月) 00:44:54
>>152
必要な範囲が広がったとき、入力超えちゃったとき面倒だったっしょ?分かってるはず。

157 :デフォルトの名無しさん:2010/08/30(月) 00:45:53
>>156
全く面倒ではないよ

158 :デフォルトの名無しさん:2010/08/30(月) 00:48:45
お代官様、俺は大体その組合せで何をしたいのか解ったぜ?
確かにミ社のコンポーネント使いづらいよな。自作したい気持ちは解る。
Rのときは10進でZRのときはアドレス16進って所に注意な。

159 :デフォルトの名無しさん:2010/08/30(月) 00:56:35
NCプログラムあたり?

160 :101:2010/08/30(月) 01:20:59
>一文字いれたら数字が
って言っちゃった俺がそもそも悪い。ゴメン。2文字があった。

158あ、やっぱり解ります? w ハシゴ屋のお仕事暇なんで興味本位で・・・
使ったこと無いんだけれど代官山ってオムロン以外でも使えたっけ?

今 来られた方々へ
つまらぬコトで60スレも消費してしまいました。

161 :デフォルトの名無しさん:2010/08/30(月) 02:44:10
sine

162 :デフォルトの名無しさん:2010/08/30(月) 07:36:15
輝け! Shining

163 :デフォルトの名無しさん:2010/08/30(月) 18:11:12
int? →int に変換したいんだが、どうすればいい?

164 :デフォルトの名無しさん:2010/08/30(月) 18:18:06
Nullable<T>の…プロパティをよく見ろ

165 :デフォルトの名無しさん:2010/08/30(月) 18:22:05
>>164
HasValueがtrue時に、value参照かね?

166 :デフォルトの名無しさん:2010/08/30(月) 18:37:39
??false

167 :デフォルトの名無しさん:2010/08/30(月) 20:04:34
Nullable<T>って、implicitでTに変換できたら何か問題あるのかね。
普通はそういう仕様にすると思うんだが、このあたりのMS様のセンスはよくわからない。

168 :デフォルトの名無しさん:2010/08/30(月) 20:48:48
>>167
問題あるだろ。
implicit にヌルポ発生させるのもどうかと。

あと、C# の型変換に関する方針は、
「範囲の広い型から狭い型への変換は明示」。
T? の方が T より広い(T + null)んで、それとの一貫性もあると思う。

169 :デフォルトの名無しさん:2010/08/30(月) 21:08:18
>>168
どうしてHasValueはOKで暗黙変換はNGなの?
よく分からん発想だ。

こんなものの価値は、明らかに(そうしたい時には)Tと等価(透過じゃない)に
扱えることのあるのに。

170 :デフォルトの名無しさん:2010/08/30(月) 21:09:31
ごめん上はHasValueじゃなくてValueね

171 :デフォルトの名無しさん:2010/08/30(月) 21:12:34
解説

不要なキャストを省けるため、暗黙の型変換を行う場合はソース コードが読みやすくなります。
ただし、暗黙の型変換では、一方の型からもう一方の型へ明示的にキャストする必要がないため、
予期しない結果が発生しないように注意する必要があります。
暗黙の演算子は、通常、プログラマが変換を認識していなくても安全に使用できるように、
変換中に例外をスローしたり情報を失ったりしないことが必要です。
このような条件を満たせない変換演算子には、explicit キーワードを使用する必要があります。
詳細については、「変換演算子の使用 (C# プログラミング ガイド)」を参照してください。

172 :デフォルトの名無しさん:2010/08/30(月) 21:17:40
TryParseなんか無くていいじゃんって議論に似てる
んなわけないだろ

173 :デフォルトの名無しさん:2010/08/30(月) 21:22:57
>>171
そのあたりの話は分かるんだけどね。
原理原則はそれでいいとして、Nullable<T>の場合も本当にその原則を
適用すべきかどうかというと、俺はそうは思わない。

繰り返しになるけど、こんなものTと同じに扱いたいときに同じに扱えなきゃ、
有用性半減だろ。

>>172
全然違う。
Nullable<T>の意味の特殊性をよく考えてくれ。
っていうか、Nullable<T>使ったことあって言ってるのかそれ。

174 :デフォルトの名無しさん:2010/08/30(月) 21:25:18
同じように扱いたくない場合の方が大半なので結構です

175 :デフォルトの名無しさん:2010/08/30(月) 21:26:21
勝手に思ってりゃあいいじゃん
そうでなければMSに陳情してこい
ここはお前のグチ発表会場じゃないんで

176 :171:2010/08/30(月) 21:28:24
俺は思わないって…。
お前がどう思おうが大概の人はどうでもいいよ。

177 :デフォルトの名無しさん:2010/08/30(月) 21:30:46
>>176
みっともないな。
今日はこのぐらいにしといたるわ、にしか読めない。
しかし、馬鹿はまだ救いもあるけどガキ臭い奴は嫌だね。

178 :デフォルトの名無しさん:2010/08/30(月) 21:33:08
それってお前はまだ救いがあるって言ってるのか?

179 :デフォルトの名無しさん:2010/08/30(月) 21:35:47
根拠は俺がそう思うからだってのの方が数段ガキ臭いような…

180 :デフォルトの名無しさん:2010/08/30(月) 21:36:49
現実世界の対面のコミュニケーションだと「モジモジ君」なコミュニケーション弱者に限って、
掲示板では面識もない相手をいきなり「お前」呼ばわり。

そういう自分に何も戦慄を感じないなら、立派な廃人だと思うがな。

181 :デフォルトの名無しさん:2010/08/30(月) 21:37:21
ここはお互いに

暗黙のキャストを許可することによってどういうメリットがあるのか
暗黙のキャストを許可しないことによってどういうメリットがあるのか

を書くべきじゃね
はいどうぞ書きたまえ

182 :デフォルトの名無しさん:2010/08/30(月) 21:39:05
なにやら現実世界がどうとか語り始めましましたよ。

183 :デフォルトの名無しさん:2010/08/30(月) 21:39:29
>>181
だから、書いてるでしょ?

184 :デフォルトの名無しさん:2010/08/30(月) 21:41:46
>>169
Value は OK じゃねぇよ。
T? x からの変換は T y = x ?? defaultValue; でやる。

>>173
T? と T 一緒に扱えたらダメだろ。
null 勝手に握りつぶされるとか、絶対酷い人的ミス起こすぞ。

>>181
人的ミスの一言に尽きるだろ。
だから、型変換しても情報落ちしない場合にのみ暗黙キャストを認めてる。

185 :デフォルトの名無しさん:2010/08/30(月) 21:41:58
いや〜妄想しか見えんわ。

186 :デフォルトの名無しさん:2010/08/30(月) 21:45:02
さすがにint a = new Nullable<int>int(0);が許容されるとか寒気がする

187 :デフォルトの名無しさん:2010/08/30(月) 21:45:41
スレがのびてると思ったら馬鹿が来てたのか

キャスト不要にしろというなら最初から ?使うなよ…

188 :デフォルトの名無しさん:2010/08/30(月) 21:46:05
>>184
だから、Valueを使おうがHasValueのチェックを忘れたら、結局同じこと。
だから「フールプルーフのために暗黙変換禁止」というのは理由にならない。

189 :デフォルトの名無しさん:2010/08/30(月) 21:47:16
>>188
だからといって暗黙のキャストをデフォルト動作にすべきとはならないだろww

190 :デフォルトの名無しさん:2010/08/30(月) 21:48:01
キャスト時にHasValueのチェックなんかやらないだろ
何のための??なん

191 :デフォルトの名無しさん:2010/08/30(月) 21:50:13
>>188
同じじゃねーよ


192 :デフォルトの名無しさん:2010/08/30(月) 21:50:58
そういう発想って「推定有罪」みたいだね。

普通は(その方が便利なものを)禁止する場合に理由が必要だと考えるのじゃないの?
なんで「手を縛るな」というのり理由が必要なの?
よくわからん発想だ。

193 :デフォルトの名無しさん:2010/08/30(月) 21:51:41
”チェックを忘れたら同じだ”なんていろいろ適応できそうだぞ

利用に際してチェックが必要な奴は全て否定できるな

194 :デフォルトの名無しさん:2010/08/30(月) 21:51:55
>>188
いや、だから、HasValueとかValueなんてC#で直接使わないんだってば。
普通 ?? 使う。
HasValueとかは他の.NET言語との相互運用のためにあるとでも思っといてOK。

195 :デフォルトの名無しさん:2010/08/30(月) 21:52:54
馬鹿のアプリから
InvalidOperationException
が発生する!

196 :デフォルトの名無しさん:2010/08/30(月) 21:53:31
まぁなんでも許容してたらCやC++みたいになった訳で
Javaなんかも基本は推定有罪で動いてるじゃないか

197 :デフォルトの名無しさん:2010/08/30(月) 21:55:12
>>184
そんな変換が許されるなら最初からNullableなんて使わないだろw

198 :デフォルトの名無しさん:2010/08/30(月) 21:55:51
>>181
デメリット

InvalidOperationException
InvalidOperationException
InvalidOperationException
InvalidOperationException
InvalidOperationException
InvalidOperationException

199 :デフォルトの名無しさん:2010/08/30(月) 21:56:15
お馬鹿さんに合わせる風潮だからフールプルーフが基本になってるのよ
スーパープログラマーの人には悪いが底辺に合わせてくれ
人が集まらない

200 :デフォルトの名無しさん:2010/08/30(月) 21:56:52
>>194
それはさすがに極論。
純粋に値が設定されてない状態の表現に使う場合の方がむしろ多いと思うが

201 :デフォルトの名無しさん:2010/08/30(月) 21:58:01
InvalidOperationException

202 :デフォルトの名無しさん:2010/08/30(月) 21:58:43
>InvalidOperationException

これは分かったから
しつこい

203 :デフォルトの名無しさん:2010/08/30(月) 22:00:41
>>200
== null でよくね?C# において HasValue の存在意義ある?

204 :デフォルトの名無しさん:2010/08/30(月) 22:02:07
>>203
HasValueの方が読みやすい人もいる

205 :デフォルトの名無しさん:2010/08/30(月) 22:02:37
暗黙のキャスト箇所でnull例外が出て
例外なんて出さないで暗黙で0代入しとけやって馬鹿が言いそう…

206 :デフォルトの名無しさん:2010/08/30(月) 22:05:47
>>204
参照型と同じ感覚で使う方がいいと思うんだけどなぁ。
まあ、あるものは使えばいいとは思うけど。

207 :デフォルトの名無しさん:2010/08/30(月) 22:06:39
眠くなってきました

208 :デフォルトの名無しさん:2010/08/30(月) 22:09:29
推定有罪が出てきた所は無理やりすぎてちょっと笑った。

209 :デフォルトの名無しさん:2010/08/30(月) 22:11:32
全然面白くねーから
この話終わりな

↓はい次の方

210 :デフォルトの名無しさん:2010/08/30(月) 22:22:24
えええっと
話題なんてないよ。。。

x=x+1で

x=0.5にならないのは何でですか?はあと

211 :デフォルトの名無しさん:2010/08/30(月) 22:23:32
>>210
今の C# なら、Solve(x => x == x + 1) とかで 0.5 を作れそうだよなぁ。

212 :デフォルトの名無しさん:2010/08/30(月) 22:27:28
x=Mathematic.Eval(...);

213 :デフォルトの名無しさん:2010/08/30(月) 22:28:07
x=0.5だと0.5=1.5になるじゃんwwwwwアホ乙wwwwww

214 :デフォルトの名無しさん:2010/08/30(月) 22:28:09
じゃぁ>>139のコードについて、あ〜だこーだ再開

215 :デフォルトの名無しさん:2010/08/30(月) 22:35:16
>>214
ちょwww
コード変わってるwwww

216 :デフォルトの名無しさん:2010/08/30(月) 22:39:57
プレザンス\(^o^)/

217 :デフォルトの名無しさん:2010/08/30(月) 22:41:50
いつまでも昨日の俺だと思うなよ…

218 :デフォルトの名無しさん:2010/08/31(火) 00:17:08
歌丸です

219 :デフォルトの名無しさん:2010/08/31(火) 00:26:41
質問させていただきます
今常駐アプリを作っていて、キーの監視について悩んでいます

自分が作成している常駐アプリは特定のキーが押された場合に非アクティブでも反応し
それに応じた動作を行うというものです


キーを監視する方法は、Win32APIのSetWindowsHookEx()かなんかそこらへんを見ればいいとか書いてあったような気がするんですが
実際の実装方法が分かりません
わかりづらくてもうしわ家ありませんがよろしくお願いします

220 :デフォルトの名無しさん:2010/08/31(火) 00:28:28
>>219
http://ufcpp.net/study/csharp/sp_pinvoke.html#sample
こんなの?

221 :デフォルトの名無しさん:2010/08/31(火) 01:29:22
気ぃ付けや!
 あんたの事やで?!
   そのバック♪

222 :デフォルトの名無しさん:2010/08/31(火) 01:53:09
設定
■〜〜
■〜〜
□〜〜
□〜〜
■〜〜
保存

save.txt
1,2,5

もし、設定ファイルの中に1が会ったとき(設定で1が有効になっている時)にイベントを起こす
ということをやりたいです
ただ、設定項目の数が不定でいくつにも増える可能性があります
こういう場合はどういう風に実装すればいいでしょうか

設定ファイルの中身を配列に保存していけばいいのかな?


223 :デフォルトの名無しさん:2010/08/31(火) 01:55:58
意味が分からない。

コンストラクターなり、event なりでイベントハンドラーを渡しておいて、
LoadSetting(path); 的な呼び出しした瞬間に、その設定ファイル読みに行って、
その条件な時にイベントハンドラー呼び出しするってこと?

それともファイルの更新監視とか必要?
他のアプリインスタンスと競合起こしたりはする?

224 :デフォルトの名無しさん:2010/08/31(火) 01:57:42
とりあえず、設定の保存形式自分で作ろうとすんな。
.NETの場合、XMLSerializerなりDataContractSerializerなり使え。

ファイルの更新監視するならFileSystemWatcher。

225 :デフォルトの名無しさん:2010/08/31(火) 02:00:42
xmlは冗長だから嫌いです

226 :デフォルトの名無しさん:2010/08/31(火) 02:01:24
じゃあC#使うなよ

227 :デフォルトの名無しさん:2010/08/31(火) 02:02:52
んな実も蓋もない

228 :デフォルトの名無しさん:2010/08/31(火) 02:05:15
とりあえずLoad時だけでいいなら
配列がどうこうじゃなく読んだ時にイベントハンドラ呼べばいいだけよね

229 :デフォルトの名無しさん:2010/08/31(火) 02:08:54
>>223-224
説明下手でごめんなさい
@ある文章中の特定キーワードにひっかかるようにしたい
A特定キーワードは必ず数字2文字
B特定キーワードはユーザーが自由に設定できる(しかし、範囲は00〜99まで)

こういう場合、テキストに特定キーワードを,で区切るなりして保存して
配列にひたすら読み込んで
配列の大きさぶんだけforでマッチするか比較するみたいな感じでいいんでしょうか

何かすごく無駄な気もするんですが他に思い浮かばなくてorz
良い方法あったらお願いします
xml調べてみます……

230 :デフォルトの名無しさん:2010/08/31(火) 02:21:40
イベントのイの字も出てこない件

231 :デフォルトの名無しさん:2010/08/31(火) 08:34:52
うん、イベントのイの字もないなぁ。

>>229
var r = new Regex("パターン");
var m = r.Match(読み込んだ文字列);
if (m.Success)

じゃダメなの?

あと、配列じゃなくて IEnumerable になるように作ればメモリの無駄は少ないよ。

232 :デフォルトの名無しさん:2010/08/31(火) 09:17:34
パターンが100あるからきつそう…

233 :デフォルトの名無しさん:2010/08/31(火) 09:20:36
パターンは一つだろw

234 :デフォルトの名無しさん:2010/08/31(火) 10:18:59
>>231
検出した後どうするんだろうね

それに合った動作も定義して100分岐するのかな

235 :デフォルトの名無しさん:2010/08/31(火) 12:37:59
DateTime.Today.DayOfYearなどで得られる年間積算日みたいな感じに
3桁の数字を渡して○月×日の形に変換するにはどんな方法があるんでしょうか?

236 :デフォルトの名無しさん:2010/08/31(火) 12:43:32
なにがしたいの

237 :デフォルトの名無しさん:2010/08/31(火) 13:05:09
>>235
お前は閏年を知らないのか?

238 :デフォルトの名無しさん:2010/08/31(火) 13:07:47
DateTime.AddDays メソッド

239 :デフォルトの名無しさん:2010/08/31(火) 13:23:35
>>236-238
DateTime.AddDaysで解決しました
ありがとうございました

240 :デフォルトの名無しさん:2010/08/31(火) 14:25:15
>>222みたいな「~を読んだらイベント」の構造って超使いづらいよね
SAXは糞だからXmlReaderはプル型にしたとMSDNに書いてあるけど全面的に同意

241 :デフォルトの名無しさん:2010/08/31(火) 18:24:19
>>229
http://ideone.com/RTlGI
こんな感じ?
キーワードに対応するActionを任意のコードにしたいとなると、それはそれで対応しないといけないけど。

242 :デフォルトの名無しさん:2010/08/31(火) 18:59:26
@"\d\d"

var
var
var

243 :デフォルトの名無しさん:2010/09/01(水) 01:42:12
初心者すぎる質問ですまん。
try〜catchの書き方なのだが、必要な箇所にだけ書け! という
規約を忠実に守って書いてみた。
内容はDBから取ってきた値を画面に表示する単純なもの。
(ただし結構ソースは長い)

穴があくくらいソースを見てみたが、エラーが想定できる
箇所はDBアクセスの1箇所だけだったので、そこだけ
try〜catchで囲って想定できる例外処理をした。

……これで正しい書き方といっていいのでしょうか?

誰かに「こいつtry〜catch全然使ってねーよ!大丈夫か?」とか
思われるんちゃうかと思ってしまうのだが(汗)


244 :デフォルトの名無しさん:2010/09/01(水) 01:50:22
「誰か」の神経質さによるからなんとも言えん

245 :243:2010/09/01(水) 01:58:08
だいたいどこの現場も、メソッドの中身はまるまる
try〜catchで囲ってるケースが多いし、逆に必ず
全てにtry〜catchを記述しろという現場もありました。
それになんとなくその方が安心できる気もするしw

まあ最終的に例外時に正しいログさえ採取できれば、どの
書き方でもいい感じもしますが、さすがに今回
ソース書いてみて、一箇所しかtry〜catchがないと
自分でも「これで大丈夫か?」と思ってしまうわけでw


246 :デフォルトの名無しさん:2010/09/01(水) 02:39:31
なぜそう思うのかを自分なりに考えてみるべき

247 :デフォルトの名無しさん:2010/09/01(水) 02:41:04
語尾にwが付いてるとそれだけで馬鹿っぽいなw

248 :デフォルトの名無しさん:2010/09/01(水) 03:29:28
俺のとこはすべてのメソッドに try〜catch 書いて throw してる。
で一番上の階層でメッセージを出したりログ出力したり。
そうしないと例外がどのメソッドで起きたかわかんないよね。確か。

249 :デフォルトの名無しさん:2010/09/01(水) 06:02:32
そんなこともないけどな。

250 :デフォルトの名無しさん:2010/09/01(水) 09:05:30
>>245
全部 try catch で囲むとか Java の悪習過ぎるだろ。

ほんとは、try catch で例外握りつぶすんじゃなくて、
単体テストで想定外の例外でなくなるまでテストやるべき。

でも、客に納品したプログラムが「未処理例外で止まりました」ってエラーメッセージだすと、
客にすごい嫌な顔されるとかで、「握りつぶす」って選択肢でダメなしのぎ方する人多いと聞くけど。

251 :デフォルトの名無しさん:2010/09/01(水) 09:06:19
>>248
例外、スタックトレース情報持ってるじゃない。


252 :デフォルトの名無しさん:2010/09/01(水) 09:09:34
初心者スレなんだと実感するね

253 :デフォルトの名無しさん:2010/09/01(水) 09:46:38
初心者じゃなくても Java あがりの人はやっちゃいがちだけどね。

254 :デフォルトの名無しさん:2010/09/01(水) 11:15:38
あえて例外を発生させるケース以外は
tryはfinallyとの組み合わせでしか使わないな

255 :デフォルトの名無しさん:2010/09/01(水) 11:25:58
finallyもあんまり使わないな
ロックの解放やAPI呼び出しの後処理くらい
後者は本当はCERでやったほうがいいらしいけど

256 :243:2010/09/01(水) 22:17:52
いろいろの意見有難うございます。

とりあえず自分を信じて、エラーが発生する可能性が
ゼロの処理(メソッド)では例外処理はしない方向で。
それで例え1箇所しか例外処理しかしてないクラスに
なっても、デバックに必要なログ、トレースがとれてるの
あれば、これでよしということで。

257 :デフォルトの名無しさん:2010/09/01(水) 22:19:21
眠くて誤字多いw

×例外処理しかしてない

○例外処理してない

とりあえずどうもです。

258 :デフォルトの名無しさん:2010/09/01(水) 23:22:19
全メソッドでtry-catchとかって、
いったいキャッチして何してるわけ?
何もせずにスタックトレース消すような再スローしてるだけのは見たことあるが。


259 :デフォルトの名無しさん:2010/09/01(水) 23:32:09
>>253

260 :デフォルトの名無しさん:2010/09/01(水) 23:49:05
また「例外を握りつぶす」とかいうよくわからん用語を使ってる人がいるな。

>>256
プログラマが想定してないことが起こったときには、そのプログラムは強制終了させられるべき。
なぜなら以降の正常な動作が期待できず、危険だから。
この基本だけ頭に入れておけばOK。例外機構はそもそもそのための道具の一つ。

なんかデバッグのツールみたいに考えている人も多いけど、少なくともそんなのは
主目的じゃない

そういう風に考えると、ただ再スローしてるだけのコードの意味がわからない。

261 :デフォルトの名無しさん:2010/09/01(水) 23:53:20
お前あんだけ大叩きされたくせにまだいたのか。

262 :デフォルトの名無しさん:2010/09/01(水) 23:56:59

なんのことだ

263 :デフォルトの名無しさん:2010/09/01(水) 23:58:34
例外を握りつぶす
例外を捨てる

って良く使うよ…

264 :デフォルトの名無しさん:2010/09/02(木) 00:01:15
Javaやってると検査例外にthrows書くのが面倒臭いから
全部catchして再スローする奴がいるんだよ

とんでもないアンチパターンなのは言わずもがな

265 :デフォルトの名無しさん:2010/09/02(木) 00:03:10
例外を握りつぶすって言えば、全部catchして何もしない(例外をなかったことにする)ことだろ。

266 :デフォルトの名無しさん:2010/09/02(木) 00:03:38
Googleに

例外 に

まで入れただけで「例外 握りつぶす」がサジェストされるくらいメジャーでポピュラーな語だけどな
例外 握りつぶすで検索すると関連キーワードにjavaって出るのが最悪

267 :デフォルトの名無しさん:2010/09/02(木) 00:05:20
>>265
>>260はよくわからん用語って言ってるから意味以前に言葉を知らんのとおも。

268 :デフォルトの名無しさん:2010/09/02(木) 00:05:29
つまり
>>260が異端児

269 :デフォルトの名無しさん:2010/09/02(木) 00:07:22
>>264
おめーJavaやったことないだろ。
そういう時はcatchなんかせずthrows Exceptionと書くのだよ。
酷い悪習なのはその通りなので否定しない。

270 :デフォルトの名無しさん:2010/09/02(木) 00:08:01
別に知らなくてもいい単語だし異端というほどでもない

271 :デフォルトの名無しさん:2010/09/02(木) 00:12:29
ぐぐれば一瞬で解決するような事すら調べようとしない人って

272 :デフォルトの名無しさん:2010/09/02(木) 00:14:03
少なくとも頑固者で偏屈物で嫌われ者

273 :デフォルトの名無しさん:2010/09/02(木) 00:15:09
回復できそうなところだけcatchして後は放置だわ
ExecutionEngineExceptionとかcatchしてどないせえっちゅうねん

274 :デフォルトの名無しさん:2010/09/02(木) 00:17:38
自分でどうにもならないものは上位に判断仰ぐのが基本。

275 :デフォルトの名無しさん:2010/09/02(木) 00:21:21
上司は部下のせいにしますが

276 :デフォルトの名無しさん:2010/09/02(木) 00:23:01
>>272 自己分析?

277 :デフォルトの名無しさん:2010/09/02(木) 00:24:44
初心者スレで俗語知らなかったくらいでこんな叩かなくてもいいじゃん…

278 :デフォルトの名無しさん:2010/09/02(木) 00:25:24
例外、いろんなタイプあるからなぁ。

ArgumentException みたいに事前に引数のチェック入れたらほぼ駆逐できるもの
→ これは出ないようにテスト時に全部取るもの

通信エラーとかファイルの競合とか、どうあがいても例外発生避けれないけど
適切にリカバリーするすべがあるもの
→ catch してリカバー

OutOfMemory みたいに出たら終わりなもの
→ 絶対 catch しちゃダメ

とか。

279 :デフォルトの名無しさん:2010/09/02(木) 00:30:50
CEでデカイ画像開くときに
OutOfMemoryをキャッチして処理したことがある

280 :デフォルトの名無しさん:2010/09/02(木) 00:32:56
質問はtry-catchの範囲をどうするかって話だったが
基本的には回復する内容によって適切な範囲が決まるはず

281 :デフォルトの名無しさん:2010/09/02(木) 00:33:08
馬鹿ばかりで話にならん。

「よく使われる」ことと「意味が明確」なことは全く別の事柄で、
俺は後者について怪しいと言ってるんだけど。

「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。

「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を
言わんとしてるんだろうと想像するが。例外に関して重要なことはプログラマがそれをちゃんと
想定しているか否かであって、「握り潰す」かどうかではない。

単にキャッチして伝達も処理もしないことが正常、という場合だってあるのに
「握りつぶす」なんて言い回しを平気で使えるガサツさは俺には理解できない。

282 :デフォルトの名無しさん:2010/09/02(木) 00:35:57
Bitmap.FromFileがファイルをサポートしてない時にOutOfMemoryException出すよね
これどうにかならんのかw

283 :デフォルトの名無しさん:2010/09/02(木) 00:38:13
>>261って何のことだと思ってたが
昨日Nullable<T>のキャストで昨日暴れた人か…
連日素人知識でご苦労様です

284 :デフォルトの名無しさん:2010/09/02(木) 00:43:17
>>282
ただそっとcatchするだけ…

285 :デフォルトの名無しさん:2010/09/02(木) 00:44:10
>>281
もう帰っていいよ。
お前に用事なんか質問者も含めて誰1人ないから。

286 :デフォルトの名無しさん:2010/09/02(木) 00:44:18
頑固者で偏屈物で嫌われ者

287 :デフォルトの名無しさん:2010/09/02(木) 00:44:57
どのくらい顔真っ赤にして書いたんだろうな

288 :デフォルトの名無しさん:2010/09/02(木) 00:46:24
偏屈と嫌われはともかく頑固は当たってるね…

289 :デフォルトの名無しさん:2010/09/02(木) 00:51:22
頑固というのは自分の意見に固執することを言うんだろうが、
自分の「愚見」に固執している奴が相手を指して「お前は頑固だ....」

そういうことばのセンスをしているから「例外を握りつぶす」なんて言い回しに
何も疑問を感じないのだろう。

まあ言葉に対する感受性以前に、自分を棚に上げる自己中心性という要素もある(そちらの方が大きい?)がw


290 :デフォルトの名無しさん:2010/09/02(木) 00:53:49
なんか病気っぽいな

291 :デフォルトの名無しさん:2010/09/02(木) 00:56:15
ぽいじゃないだろw

292 :デフォルトの名無しさん:2010/09/02(木) 00:57:36
推定有罪が出てきた時点で林先生コースだと思ってました。

293 :デフォルトの名無しさん:2010/09/02(木) 00:57:36
病気だ。

294 :デフォルトの名無しさん:2010/09/02(木) 00:59:04
プログラマになるとこうなるよ、という遠回しな警鐘

295 :デフォルトの名無しさん:2010/09/02(木) 01:01:03
>>281>>289
マジキチ

296 :デフォルトの名無しさん:2010/09/02(木) 01:02:03
危険な仕事だな。

297 :デフォルトの名無しさん:2010/09/02(木) 01:02:33
>281
気持ちはわかる
だがしかしそれは
青信号は青じゃなくて緑だと言い張るおっさんのようでもある

298 :デフォルトの名無しさん:2010/09/02(木) 01:02:44
プログラマ辞めますか?人間辞めますか?

で、後者を選んだ結果がアレか。恐ろしい

299 :デフォルトの名無しさん:2010/09/02(木) 01:05:38
>自分を棚に上げる自己中心性という要素
自己紹介乙

300 :デフォルトの名無しさん:2010/09/02(木) 01:05:40
これで偏屈物、嫌われ者も確定したな

301 :デフォルトの名無しさん:2010/09/02(木) 01:08:43
なんだか悲しくなってきたから寝る。

302 :デフォルトの名無しさん:2010/09/02(木) 01:28:13
どうせまた来て馬鹿にされるんだろ

303 :デフォルトの名無しさん:2010/09/02(木) 01:33:09
ここまで一致団結してたたかれるレベルの人、ム板じゃ珍しい気も。


304 :デフォルトの名無しさん:2010/09/02(木) 01:44:30
>>251
デバッグなしで実行したら、スタックトレースにも例外の発生したメソッドの情報もってなくない?

ttp://ideone.com/fTKgS

これ実行すると Mainでエラーってでて、Hoge2にtry-catch書くとHoge2でエラーって取れるんだけど
Mainにtry-catchを書くだけでHoge2で例外が起きたことを取得する方法ってあるの?

305 :デフォルトの名無しさん:2010/09/02(木) 01:50:21
改めてログを見返すと>>123で叩かれてるのも同じ人のような感じがする。
これは…素養かもしれん。

306 :デフォルトの名無しさん:2010/09/02(木) 02:00:50
もはやアイドルだな

307 :デフォルトの名無しさん:2010/09/02(木) 02:01:15
>>281
お前の思い込み。

>「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。
疑問を感じてないとかじゃなくて、普通に悪い意味で消し去ってしまってる場合を意味して使うことが多いだろう。
分かっていてあえてやってる場合は、それ自体は悪くないが、あくまでこういう理由であえてやってるんだってのを強調するために、
わざと握りつぶすというような言い方をすることもある。
いずれにしても

>「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を
>言わんとしてるんだろうと想像するが。
勝手な想像で偉そうにぬかすなあほ。

>>260
>プログラマが想定してないことが起こったときには、そのプログラムは強制終了させられるべき。
>なぜなら以降の正常な動作が期待できず、危険だから。
>この基本だけ頭に入れておけばOK。例外機構はそもそもそのための道具の一つ。

>なんかデバッグのツールみたいに考えている人も多いけど、少なくともそんなのは
>主目的じゃない
危険だから強制終了させるためだけなら、例外なんて機構はいらないんだよ。
異常発生時点で無条件にプロセス強制終了させりゃいいんだ。
そうじゃない目的があるから例外処理という機構があるのは明らか。


308 :デフォルトの名無しさん:2010/09/02(木) 02:04:35
叩かれたくてやってるんじゃないの?
素でやってるんだったら凄い。

309 :デフォルトの名無しさん:2010/09/02(木) 02:04:49
ああ念のため言っとくが、
>プログラマが想定してないことが起こったときには、そのプログラムは強制終了させられるべき。
>なぜなら以降の正常な動作が期待できず、危険だから。
別にこれを否定してるんじゃないからね。


310 :デフォルトの名無しさん:2010/09/02(木) 02:06:01
>>307
お願いだからもう止めてやれよマジで

311 :デフォルトの名無しさん:2010/09/02(木) 02:38:48
かまうなよ
どうしてもってんなら他のスレでやってくれ

312 :デフォルトの名無しさん:2010/09/02(木) 02:53:41
WindowsMobileのアプリを作ろうと思い書籍を買ってきたのですが、C#の説明が無いため
C#の入門書の購入を考えております。
入門書といっても、スクリーンショットを見ながらここをクリックして〜みたいなものではなく、
文法説明などC#の入門書でお勧め書籍はありますでしょうか?

C、Perlの基本的な知識ならあると思っております。



313 :デフォルトの名無しさん:2010/09/02(木) 03:35:36
WindowsPhoneじゃなくてWindowsMobileなの?
WMはVS2010で開発できないけど大丈夫?(VS2008Std以上必須)

314 :デフォルトの名無しさん:2010/09/02(木) 06:50:37
.NET CF3.5で勉強をしています。

画面を上下に分け、上部がタップされとき/下部がタップされたときに処理を行わせたいのですが、画面を上下に分ける方法にはどのようなものがありますか?
ボタンを配置して背景を透過にしてもボーダーが表示されてしまいます。

背景に写真を配置し、そのうえでタップを行いたいのでボーダも表示されてほしくありません。

315 :デフォルトの名無しさん:2010/09/02(木) 10:29:42
>>313
VS2005std, VS2008proじゃね?

316 :デフォルトの名無しさん:2010/09/02(木) 10:32:40
>>312
紙にこだわらないなら C# でググればOK。

317 :デフォルトの名無しさん:2010/09/02(木) 11:07:07
>>312
新プログラミング環境 C#がわかる+使える (@IT技術叢書シリーズ)

318 :313:2010/09/02(木) 12:38:31
>>314
はい。WindowsMobileです。
手元に機会があるので、WMで勉強を始めてみようと思っています。
VS2008proのライセンスを持っています。

>>316
ありがとうございます。
私が古い人間なのか、モニタの文章をずっと眺めているのが苦手なので、
印刷物であればとおもっています。
pdfなどであれば、印刷するのですが。

>>317
ありがとうございます。
しらべてみます。

319 :デフォルトの名無しさん:2010/09/02(木) 13:34:51
CFってもう消えるよ
今後はSilverlightに統合される

320 :デフォルトの名無しさん:2010/09/02(木) 13:57:35
そんなこと言っても手持ち機器はCFしか対応してない

321 :313:2010/09/02(木) 14:27:15
>>319
ありがとうございます。
>>320がいわれているとおり、私の手持ちにWMがあるため
これ用のアプリケーションを作ってみようと思います。

322 :デフォルトの名無しさん:2010/09/02(木) 15:22:45
他の言語や.NET開発の経験はあるの?
プログラミング初心者なんだったら最初からわざわざ特殊な開発環境選ぶのは時間の無駄だよ
勉強だったらWindows上だけでやって、慣れてからやりたいことやればいい

323 :デフォルトの名無しさん:2010/09/02(木) 15:27:39
>>322
WM6の本買ったんだからそれでいいんじゃない?
GPS使ったりハードキー使ったりして楽しいよ

WM5かもしれないけど

324 :デフォルトの名無しさん:2010/09/02(木) 15:31:29
好き好きだと思うけどCFは通常より面倒なのは覚悟するべし
情報が少ないってのもあるけどNotSupportedExceptionとか頻発するし
凝ったことやろうとするとP/Invokeしまくりだし

325 :デフォルトの名無しさん:2010/09/02(木) 15:51:37
WindowsMobileならeMbedded Visual C++がいいよ。ただだし。

326 :デフォルトの名無しさん:2010/09/02(木) 17:58:16
visual Studio C#でWebBrowserを作って Webページを表示して そのWebページにあるボタンをクリックするにはどうしたらいいですか?

>WebBrowserを作って Webページを表示
まではできています
ですが ページを表示した後 ボタンをクリックするのがうまくできません
どうしたらいいでしょうか?

以下ソースコードです
HtmlElementCollection all = webBrowser1.Document.All;
HtmlElementCollection forms = all.GetElementsByName("exec");
forms[0].InvokeMember("click");

327 :デフォルトの名無しさん:2010/09/02(木) 18:09:51
その話題は秋田

328 :デフォルトの名無しさん:2010/09/02(木) 18:17:08
もうその話題出てたのか

どこにあんの?

329 :デフォルトの名無しさん:2010/09/02(木) 18:20:45
何度も何度も出てきて吐きそう

330 :デフォルトの名無しさん:2010/09/02(木) 18:25:47
質問スレ、しかも初心者スレなら
同じ質問が何度も何度も出てきてあたりまえなんだから
それが気に入らないなら見なきゃいいんじゃないかn

331 :デフォルトの名無しさん:2010/09/02(木) 18:29:06
たまにしか見ないのにいつもこの話題

332 :デフォルトの名無しさん:2010/09/02(木) 18:33:40
同じ質問ばかりなんだったら 前に質問された時の答えでもコピペすりゃいいんじゃね?

333 :デフォルトの名無しさん:2010/09/02(木) 18:49:54
C#スレよりもVBスレに多いネタだな

334 :326:2010/09/02(木) 19:01:22
すみません 既出質問でしたか

それでは どこで質問をすればいいのでしょうか


335 :デフォルトの名無しさん:2010/09/02(木) 19:08:01
普通はグダグダ引っ張らずに
過去スレ見ろで済ます

336 :デフォルトの名無しさん:2010/09/02(木) 19:18:50
嫌なら見るな

337 :デフォルトの名無しさん:2010/09/02(木) 19:20:10
>>334
Google

338 :デフォルトの名無しさん:2010/09/02(木) 19:23:55
初心者が躓くポイントなんていつの時代も変らんだろうに
なぜか検索エンジンを使わないという点まで含めて

おまいらはそんな基本的なことにも気付かないアホなの?死ぬの?

339 :デフォルトの名無しさん:2010/09/02(木) 19:34:01
質問なんて所詮ネタだろ

340 :326:2010/09/02(木) 19:35:50
webBrowserを全て表示しておらず
Documentを取得できていないことが分かりました


ですが 今度はwebBrowserを完全に表示する方法が分かりません
DocumentCompletedの使い方もよくわかりません

341 :デフォルトの名無しさん:2010/09/02(木) 19:42:17
>>340
プロパティのイベント表示からダブルクリックしてDocumentCompleteはつくったの?

342 :314:2010/09/02(木) 19:53:12
どなたかわかりませんか?

343 :デフォルトの名無しさん:2010/09/02(木) 20:33:17
>>307
いかにも地頭が悪い人間がいいそうな「とっ散らかった」物言いだな。

>危険だから強制終了させるためだけなら、例外なんて機構はいらないんだよ。
>異常発生時点で無条件にプロセス強制終了させりゃいいんだ。

異常事態発生 ≠ 危険。
俺はプログラマが想定していない事態が発生した場合、それ以降の正常な動作は
期待できないから「危険」だと言ったが、異常事態即ち危険である、などとは言ってない。

というか、俺が言おうが言うまいが「異常事態発生 ≠ 危険」。

こういうガサツで大雑把な思考をする人間は、プログラマ向いてない。

344 :デフォルトの名無しさん:2010/09/02(木) 20:36:47
>>342
意味がよくわからない

もっと詳しく

345 :314:2010/09/02(木) 21:42:11
>>344
すみません。もう一度書きなおします。

.NET CF3.5を利用して、以下を実現したいと思っております。

画面を上下の2つに分け写真を背景に起き、上部がタップされた時か下部がタップされた時に処理を行わせたいと考えています。
ボタンを2つ作成し、DockをTopとBottomに配置すれば再現できればと思うのですが、ボタンだとボーダーが表示されてしまいます。

どうかこれを実現できないでしょうか?



346 :デフォルトの名無しさん:2010/09/02(木) 21:49:11
Mouse系のイベントとか・・・ないんだっけか。

347 :デフォルトの名無しさん:2010/09/02(木) 21:57:12
座標で判断すればいいだろJK

348 :デフォルトの名無しさん:2010/09/02(木) 22:24:30
PictureBoxのMouseDownイベントハンドラ

349 :デフォルトの名無しさん:2010/09/03(金) 03:08:36
List<T>の要素をカウントしたかったらcountでいいんだけれど
じゃぁ
List<List<T>>()の中に入ってる各アイテムの
各要素の全個数をカウントするにはどうすりゃ簡潔?
for (int i=0; i < L.count ; i++) {のなかでグルグル廻すしかない?

350 :デフォルトの名無しさん:2010/09/03(金) 03:17:59
// List<List<int>> list

list.Sum(n => n.Count)

351 :デフォルトの名無しさん:2010/09/03(金) 09:00:31
ttp://ideone.com/AVDkz

某サイトのTwitterにPostするプログラムなんですがそのままだと401返されて動きません
TL取得するだけならちゃんと動作してくれます
どこを修正すれば動くようになりますか?


352 :デフォルトの名無しさん:2010/09/03(金) 09:15:57
まさかとは思うけど定数そのまんま使ってねえよな

353 :デフォルトの名無しさん:2010/09/03(金) 09:28:45
そんなわけないだろ…。

354 :デフォルトの名無しさん:2010/09/03(金) 11:00:53
TwitterでBASIC認証方式が終了しただけ

スレチ

355 :デフォルトの名無しさん:2010/09/03(金) 12:28:15
スレチなのはそうだけど351はちゃんとOAuthの認証しとるがな

BASIC認証方式が終了しただけ(キリリッ

356 :デフォルトの名無しさん:2010/09/03(金) 13:16:15
P/Invokeってなんてよむの
ぴんぼけ?

357 :デフォルトの名無しさん:2010/09/03(金) 13:17:45
ピーインヴォークでいいじゃないですか

358 :デフォルトの名無しさん:2010/09/03(金) 15:58:40
C++へ文字列を渡すプログラムをC#で作っているのですが、ユニコードで
渡したいのにS-JISに変換されてしまいます。
ソースの要点だけ上げると、

[StructLayout(LayoutKind.Sequential)]
struct MsgStruct
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string msg;
}
で送る構造体の宣言
MsgStruct msg = new MsgStruct();
msg.msg = (引数のstring型文字列);
で内容を設定し
IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MsgStruct)));
Marshal.StructureToPtr(msg, ptr, false);
でメモリ領域確保してポインタ取得し
WIN32APIのプロセス間通信の関数に渡して送っているのですが、
「お」が0x82a8(s-jis)として受渡されて、C++側の「お」0x304a(ユニコード)
と違うと判定されて一致のチェックができません。
どうすればユニコードに変換して送信出来るのでしょうか?
いろいろサイトを見てもC#はユニコードを元々使ってるようで、なぜs-jisに変わってしまうのか分かりません。


359 :デフォルトの名無しさん:2010/09/03(金) 16:00:41
CharSet指定できるんじゃね?

360 :デフォルトの名無しさん:2010/09/03(金) 16:12:21
>>359
[DllImport("kernel32.dll", SetLastError = true)]
static extern unsafe int WriteFile(IntPtr handle, IntPtr buffer,
int numBytesToWrite, IntPtr numBytesWritten, NativeOverlapped* lpOverlapped);
このdllImportのところにCharSet=CharSet.Unicodeを入れるという事でしょうか?
本当に初心者なので分かりません。
データ自体はバイナリとして送ってると思うし、引数にもC#のstring型を入れれるようなものは有りません。


361 :デフォルトの名無しさん:2010/09/03(金) 16:14:29
.NET CF3.5使ってるやつってなんなの?
.NET CF2.0で作れよ

そうおもわないか?

362 :デフォルトの名無しさん:2010/09/03(金) 16:29:16
思いますん

363 :デフォルトの名無しさん:2010/09/03(金) 16:32:16
http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.charset(v=VS.80).aspx

364 :デフォルトの名無しさん:2010/09/03(金) 16:41:16
CF3.5のプロジェクトをCF2.0のプロジェクトには変換できへんの?
まちがって3.5で作ったプロジェクトがあるんだが。

365 :デフォルトの名無しさん:2010/09/03(金) 16:45:18
>>363

ありがとうございます。まさにビンゴでした。
構造体の属性のキャラセットでユニコード指定すると正常にユニコードで送信されました。
キャラセットが指定されないデフォだとANSIになってしまっていたので、
どう工夫して文字列入れても上手くいかなかったという事ですね・・・。

366 :デフォルトの名無しさん:2010/09/03(金) 18:10:38
>>364
えらい抽象的だな

csファイルをCF2.0プロジェクトに突っ込んで
不具合箇所を手で書き変えろ

formで詰まる予感

まあ新しく作ったほうがいい場合のほうが多いと思うけど

367 :デフォルトの名無しさん:2010/09/03(金) 22:24:12
webbrowserでリンクの数を取得するのを

HtmlDocument Doc = webBrowser1.Document;
int a = doc.GetElementsByTagName("A").Count;
String aaa = a.ToString();
MessageBox.Show(aaa);

でやろうとしたらエラーになった
どうすればいい?


368 :デフォルトの名無しさん:2010/09/03(金) 22:25:14
名前じゃないだろうなぁ。

369 :デフォルトの名無しさん:2010/09/03(金) 22:34:02
あぁゴメン
タイプミスしてた

HtmlDocument Doc じゃなくて
HtmlDocument doc だ

370 :デフォルトの名無しさん:2010/09/03(金) 22:43:17
エラーが出るのならエラーメッセージくらい書いたら?
documentCompleted まで待った?
document.Anchors ってのもあるよ?

371 :デフォルトの名無しさん:2010/09/03(金) 22:56:38
自己解決した

string str = "リンク数を取得するページのURL";
webBrowser1.Navigate(str);
wait();
HtmlDocument doc = webBrowser1.Document;
int a = doc.GetElementsByTagName("A").Count;

これでおkなんだが…
〜番目のリンクのinnerTextを取得するにはどうしたらいい?

372 :デフォルトの名無しさん:2010/09/03(金) 23:49:00
ええええええええええええええ

373 :デフォルトの名無しさん:2010/09/03(金) 23:51:10
MSDNのURLと日本語の読み方を教えてやれ

374 :デフォルトの名無しさん:2010/09/03(金) 23:53:14
>>371
そこまでできるならわかりそうな物だがな

配列かアレイか忘れたけどurlを複数取り出さないとだめだったんじゃないかな?

375 :デフォルトの名無しさん:2010/09/03(金) 23:56:23
>>371

それ自己解決ちゃうで〜

376 :デフォルトの名無しさん:2010/09/04(土) 00:00:19
しかもinnerText取得して何するのかなw

hrefがいるんじゃないの?

377 :デフォルトの名無しさん:2010/09/04(土) 00:12:34
>>348
MouseDownはCFじゃつかえんだろ

378 :351:2010/09/04(土) 01:07:20
>>352
設定してます、タイムラインの取得はできました

>>354
OAuth認証のコードらしいのですが認証できてないみたいで……
どこで質問すれば良いでしょうか?

379 :デフォルトの名無しさん:2010/09/04(土) 01:19:50
そんなことより、WindowsMobileでバックライトの制御ってどうやるんだ。
結構アプリケーションがあるから、できないことはないはずなんだけど。

しってるひといる?明るさの調整がしたい

380 :デフォルトの名無しさん:2010/09/04(土) 03:38:52
いる?と訊かれたら脊髄反射で答えちゃう
いらない。

381 :デフォルトの名無しさん:2010/09/04(土) 03:53:36
うっせボケ

382 :デフォルトの名無しさん:2010/09/04(土) 04:04:23
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。なので、お を付けて・・・

お馬鹿はお黙りなさいまし

383 :デフォルトの名無しさん:2010/09/04(土) 04:04:39
せやな

384 :デフォルトの名無しさん:2010/09/04(土) 07:24:52
>>380
押尾wwwwwwww

385 :デフォルトの名無しさん:2010/09/04(土) 09:17:29
>>379
ココで聞いても無理かもな
windowsでもWin32API使わないとそれらしいこと出来ないから
機種依存かAPIをP/Iする必要があるかもしれない

ググったほうがいい

見つからなかったら本に載ってないか調べたらいい

386 :デフォルトの名無しさん:2010/09/04(土) 14:06:23
すみません。質問いいですか?

あるソフト(A)と自分のソフト(B)が共通のソフト(C)にアクセスしようとします。
共通のソフト(C)には排他制御をかけたいのでAとBでセマフォを使おうかとなりました。
※Aの開発者とは連絡が密に取れません
※私は素人です

セマフォとはOSが持っている「見えない環境変数」(カウンタ?)見たいなもので
勝手に名前をつけて使うものですか?

そして各々が名前を頼りに状態を知るという感じなのでしょうか。

スレ違いかとは思いますがC#しか分からないものでしてこちらに質問させていただきました。

宜しくお願いいたします。

387 :デフォルトの名無しさん:2010/09/04(土) 14:15:07
その※読んで俺らにどうしろと…

システムの中に名前のあるオブジェクトを作成して、それをお互いのプロセスで共有するという発想は正しい
使うのはSemaphoreじゃなくMutex
Mutexを使ってお互いが所有権を取り合いながら動けばいい

388 :デフォルトの名無しさん:2010/09/04(土) 14:21:14
>>387
>読んで俺らにどうしろと…

確かに・・・。

ご教示頂いた方法を私なりに解釈した結果
自分のアプリ(B)でMutexオブジェクトをPublicで公開。
そこをAがチェックって事ですか?

Aの開発者は社外者でB自体を公開することは出来ないのですが
オブジェクト名だけ知らせるだけで可能なのでしょうか。

あほな質問ですみません。


389 :デフォルトの名無しさん:2010/09/04(土) 14:23:52
それでいいよ。

390 :デフォルトの名無しさん:2010/09/04(土) 14:24:48
名前が共通していれば公開メンバにする必要なし

391 :デフォルトの名無しさん:2010/09/04(土) 14:32:58
>>389
>>390
ありがとうございました。

なんだか不思議な感じですね。

int hoge ←例えばこのhogeを相手に教えるだけで(int型では無理でしょうが)認識できる感じなのですね。

というよりOSがhogeを認識しているのでしょうか。

相手が非.NET言語でも問題ないのですよね?

392 :デフォルトの名無しさん:2010/09/04(土) 14:34:11
ない

393 :デフォルトの名無しさん:2010/09/04(土) 14:36:11
>>392
ありがとうございます。

ほんとにここの皆さんは頼りになりますね。
これからも宜しくお願い致します。

失礼します

394 :デフォルトの名無しさん:2010/09/04(土) 14:36:38


395 :デフォルトの名無しさん:2010/09/04(土) 17:26:23
Threading.Timerを使って別スレッドで動かしてるコードに、ハンドルされていない例外が
発生してもデバッガが反応してくれない。何も言わずすっと落ちてしまうけどなんで?
デバッグ→例外で「スローされるとき」にチェックを入れてれば、例外発生時にブレーク
してくれるけど。
あ、もちろん「ユーザーにハンドルされていないとき」にはチェック入ってる。
メインスレッドで同じ処理させたらちゃんとブレークかかって例外ヘルパーが出る。


396 :デフォルトの名無しさん:2010/09/04(土) 17:31:00
こっちとか。
過疎ってるけど。
ttp://hibari.2ch.net/test/read.cgi/tech/1049116134/
それよりはこっちか。
ttp://hibari.2ch.net/test/read.cgi/tech/1063453024/

397 :デフォルトの名無しさん:2010/09/04(土) 17:39:32
>>395
デバッガって結構気まぐれなところがあるのは確かだね。
Windows Formのアプリで普通にUIスレッドで発生した例外でも、ちゃんと発生箇所で
表示される場合もあれば、何故かApplication.Runの箇所で止まる場合もあったり。

あとプロジェクト分けてると、スタートアップ以外のプロジェクト(アセンブリ)で
例外が発生すると、ちゃんとキャッチしてるのに停止したり。


2010はまだ本格的に使ってないから改善されてるかどうか知らんけど

398 :デフォルトの名無しさん:2010/09/04(土) 17:50:50
スレッドの機構考えてみよう

スレッドで別々に例外発生したらデバッガがどうなるかとか
発想出来ないのかな?

399 :デフォルトの名無しさん:2010/09/04(土) 17:54:32
そういう回りくどいオナニー回答入らんよ。

400 :デフォルトの名無しさん:2010/09/04(土) 17:57:50
マルチスレッドのそれぞれのスレッドから
GUIの同じコンポーネントに同時に
アクセスしても大丈夫なんでしょうか?

401 :デフォルトの名無しさん:2010/09/04(土) 18:00:48
さぁ?

402 :デフォルトの名無しさん:2010/09/04(土) 18:51:52
WindowsMobileでホールドイベントの取得ってどうやるの

403 :デフォルトの名無しさん:2010/09/04(土) 19:09:02
>>402
お前聞いてばかりいないで少しは自分で調べろや!

404 :デフォルトの名無しさん:2010/09/04(土) 19:10:22
>>1には優しく返答せよと記されているはずだが

405 :デフォルトの名無しさん:2010/09/04(土) 19:16:23
>>400
駄目

406 :デフォルトの名無しさん:2010/09/04(土) 19:20:52
排他制御は自分でかけるんだっけ?

407 :デフォルトの名無しさん:2010/09/04(土) 23:24:53
>>139 だれも真面目に答えないので俺が。
こう書けば、脱初心者風に背伸びした気分になれる。 まぁ気分だけだけどね。
Dictionary<string,byte> dict=new Dictionary<string,byte>();
dict.Add("M",0x90);
dict.Add("SM",0x91);
dict.Add("L",0x92);
dict.Add("F",0x93);
dict.Add("V",0x94);
dict.Add("X",0x9C);
dict.Add("Y",0x9D);
dict.Add("B",0xA0);
dict.Add("SB",0xA1);
dict.Add("D",0xA8);
dict.Add("SD",0xA9);
dict.Add("ZR",0xB0);
dict.Add("R",0xB0);
dict.Add("W",0xB4);
dict.Add("SW",0xB5);
dict.Add("TC",0xC0);
dict.Add("TN",0xC2);
dict.Add("CC",0xC3);
dict.Add("CN",0xC5);
dict.Add("SC",0xC6);
dict.Add("SN",0xC8);

byte DeviceCode =0x00;
dict.TryGetValue("V",out DeviceCode);

Console.WriteLine(DeviceCode.ToString("X"));

408 :デフォルトの名無しさん:2010/09/04(土) 23:33:29
的を射てない質問かもしれませんがよろしくお願いします
ブラウジングしている時、サイトを開いたりボタンをクリックしたりするだけでダウンロードがなされることがあると思います
その時にダウンロードされるファイルをプログラムからダウンロード出来ないでしょうか?
ひとしきり思いつく範囲では調べたのですが、これといった情報にたどり着けませんでした
どういう単語で調べるといい、のようなヒントでもいただけるとありがたいです

409 :デフォルトの名無しさん:2010/09/04(土) 23:45:44
パケットキャプチャして、どんな通信が行われてるのか確認してみ。

410 :デフォルトの名無しさん:2010/09/04(土) 23:58:41
http


411 :デフォルトの名無しさん:2010/09/05(日) 00:01:30
html

412 :デフォルトの名無しさん:2010/09/05(日) 01:40:28
Console.WriteLine(BitConverter.ToString(byteArray[]));
がハイフン区切りで羅列してくれるんだけれど、なんか大きなお世話。
数珠繋ぎで欲しい場合って

for (int i = 0; i < byteArray.Length; i++) {
Console.Write("{0:X2}", byteArray[i]);
}
ってぐるぐる廻すしか方法無い?

413 :デフォルトの名無しさん:2010/09/05(日) 02:16:57
>>412
String.Replaceで"-"除去するとか。

414 :デフォルトの名無しさん:2010/09/05(日) 03:18:31
string hex = byteArray.Aggregate(new StringBuilder(byteArray.Length * 2),
    (sb, b) => { sb.AppendFormat("{0:X2}", b); return sb; },
    sb => sb.ToString());

適当に書いたから合ってるかは分からん

415 :デフォルトの名無しさん:2010/09/05(日) 10:06:51
>>408
javascriptです
Ajaxという技術を使ってる場合もあります

416 :デフォルトの名無しさん:2010/09/05(日) 10:35:05
なぜJavaScriptスレで聞かないのか。

417 :デフォルトの名無しさん:2010/09/05(日) 10:40:49
それはJavaScriptだと分からなかったからだろう
何故このスレなのかはよく分からんが

スレ立てるまでもない質問スレとかあるのに

418 :デフォルトの名無しさん:2010/09/05(日) 11:20:33
フラッシュかもよ…

419 :デフォルトの名無しさん:2010/09/05(日) 11:24:01
え?
確かにAdobe Flashかも…
サイト開いたらダウンロード中って出るよな…

早とちりしたか… orz

420 :デフォルトの名無しさん:2010/09/05(日) 11:49:06
>サイト開いたらダウンロード中って出るよな…

これだけでFlashだと考える人って

421 :デフォルトの名無しさん:2010/09/05(日) 11:50:53
ほんと素人が多いなこのスレ

422 :デフォルトの名無しさん:2010/09/05(日) 11:59:22
初心者用だし。

423 :デフォルトの名無しさん:2010/09/05(日) 12:08:34
素人とキチガイと…

424 :デフォルトの名無しさん:2010/09/05(日) 12:11:46
無職とニートと粘着と糖質

425 :デフォルトの名無しさん:2010/09/05(日) 12:43:32
webページにあるinputのhidden属性のvalueを取得するにはどうしたらいいですか

426 :デフォルトの名無しさん:2010/09/05(日) 12:52:10
type=hidden 以外のと同じやり方で取得できるだろ
特別なのは type=file だけだし

427 :デフォルトの名無しさん:2010/09/05(日) 13:11:19
それができないんですが…

HtmlElementにはGetElementsByTagNameは無い
HtmlElementCollection にはGetAttributeが無い

428 :デフォルトの名無しさん:2010/09/05(日) 13:16:13
使うのはHtmlElementのGetAttributeだろ
INPUTはHtmlElementだろ
typeはINPUTの属性だろ

429 :デフォルトの名無しさん:2010/09/05(日) 13:19:52
http://d.hatena.ne.jp/unibon/20080224/p6
ここでも参考にすればええと思う

430 :デフォルトの名無しさん:2010/09/05(日) 13:23:15
というか

>HtmlElementにはGetElementsByTagNameは無い

>HtmlElement.GetElementsByTagName メソッド
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.htmlelement.getelementsbytagname%28v=VS.80%29.aspx

何かを勘違いしているとしか思えない。

431 :デフォルトの名無しさん:2010/09/05(日) 13:26:01
HtmlElementCollectionにGetAttrを使おうとしてるから、
HtmlElementCollectionが属性のコレクションだと勘違いしてるんじゃねえの。
それ属性のコレクションじゃなくて要素のコレクション。

432 :デフォルトの名無しさん:2010/09/05(日) 13:33:54
>>429を参考にしてできました
ありがとうございました

433 :デフォルトの名無しさん:2010/09/05(日) 13:34:46
せやな

434 :デフォルトの名無しさん:2010/09/05(日) 13:56:56
webBrowserにあるボタンをクリックした後の待ち時間を設定するのがうまくいかないんだけどどうしたらいいのかな…

435 :デフォルトの名無しさん:2010/09/05(日) 13:58:41
do
{
Application.DoEvents();
} while (webBrowser1.ReadyState != WebBrowserReadyState.Complete);

でボタンをクリックした後の待機をやろうとしたら動かなかった

436 :デフォルトの名無しさん:2010/09/05(日) 14:03:49
死ねばいい

437 :デフォルトの名無しさん:2010/09/05(日) 14:09:21
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
>なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

438 :デフォルトの名無しさん:2010/09/05(日) 14:25:33
408です
みなさまお返事ありがとうございます
C#のこのスレでお尋ねしたのは、C#でダウンロードするプログラムを考えていたためでした
まだどうすればいいかは把握出来ていませんが、キーワードを元に色々ググッてみようと思います
ありがとうございました


439 :デフォルトの名無しさん:2010/09/05(日) 15:01:18
結局質問内容がわからずじまい

440 :デフォルトの名無しさん:2010/09/05(日) 15:36:07
test

441 :デフォルトの名無しさん:2010/09/05(日) 17:45:58
>>421-424
ヒント 同じ穴の狢

442 :デフォルトの名無しさん:2010/09/05(日) 18:47:29
int [] x;
int [] y;

といった配列のマージってどのようにすればいいでしょうか?
CopyToとかよくわからない。


443 :デフォルトの名無しさん:2010/09/05(日) 19:00:53
x.Concat(y).ToArray();

444 :デフォルトの名無しさん:2010/09/05(日) 19:06:59
>>443
ありがとうございます!さすがです。

445 :デフォルトの名無しさん:2010/09/05(日) 19:09:30
マージだとOrderBy要らないか?

446 :デフォルトの名無しさん:2010/09/05(日) 19:29:11
>>445
どうするの?

447 :デフォルトの名無しさん:2010/09/05(日) 19:31:10
併合した後のデータが整列されていることを望んでるかどうか分からんかったから書いてない。

448 :デフォルトの名無しさん:2010/09/05(日) 21:27:15
>>414 ぱっと見で解読出来る初心者はまず居ないと思う。まだ413の方がマシじゃ?

449 :デフォルトの名無しさん:2010/09/06(月) 19:53:23
C#ASP.NETでの質問です。環境はvisual studio 2008です。
やりたいことは、テキストボックスに文字を入力して、
Enterキーを押すと、その文字列をSessionに渡して、
違うウインドウを開く、ということです。
次の例だと、AAA.aspxからBBB.aspxを開きたいわけです。
これで、基本は希望通りの動きをするのですが、
BBB.aspxが開かないことがあります。
改善点等ありましたら、よろしくお願いします。
下のbutton_sub内でwindow.open('BBB.aspx', '---');
とすれば、今のところ必ず開きそうだったので、
javascript部分でSession情報への代入が出来れば、
いけそうだったのですが、javascriptではSession情報
いじれないんですよね?


450 :デフォルトの名無しさん:2010/09/06(月) 19:54:09
>>449のソースです
AAA.aspx
<script language="Javascript">
function button_sub() {
if (window.event.keyCode == 13) {
if (document.activeElement.id == "txt" || document.activeElement.id == "Select_DropDownList") {
var send_str;
send_str = document.getElementById("txt").value + "\n" + document.getElementById("Select_DropDownList").value
CallServer(send_str, "");
}
}
}
</script>
</body>
<script language="javascript">
function ReceiveServerData(rValue) {
// loopWait(500);
window.open('BBB.aspx', '他のaspx');
}
</script>


451 :デフォルトの名無しさん:2010/09/06(月) 19:54:52
>>449-450の続き
AAA.aspx.cs
public partial class AAA : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
protected System.Collections.Specialized.ListDictionary catalog;
protected String returnValue;

protected void Page_Load(object sender, EventArgs e)
{
String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");
String callbackScript;
// 略

////////////////////////////////////////////////////////////////////
// JavaScriptからのコールバック処理を設定する。
////////////////////////////////////////////////////////////////////
callbackScript = "function CallServer(arg, context)" +
"{ " + cbReference + ";}";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"CallServer", callbackScript, true);
}


452 :デフォルトの名無しさん:2010/09/06(月) 19:55:33
>>449-451の続き
////////////////////////////////////////////////////////////////////
// JavaScriptからのコールバック処理を設定する。
////////////////////////////////////////////////////////////////////
public void RaiseCallbackEvent(String eventArgument)
{
// System.Threading.Thread.Sleep(500);
string[] str;
string word;
str = eventArgument.Split('\n');
if (str.Length >= 2)
{
Session["Text"] = str[str.Length - 1];
word = str[0];
}
else
{
Session["Target"] = Select_DropDownList.SelectedValue;
word = eventArgument;
}
return;
}
/// <summary>
/// JavaScriptへ結果を応答する
/// </summary>
/// <returns>処理結果</returns>
public String GetCallbackResult()
{
return returnValue;
}
}

453 :デフォルトの名無しさん:2010/09/06(月) 19:56:15
>>449-452です。
素人まるだしで、恥ずかしいのですが、よろしくお願いします。

454 :デフォルトの名無しさん:2010/09/06(月) 20:18:39
セッションなんかいらんだろ?
クエリ文字列かパス情報辺りでやりな。

こういうのにセッション使うと、格納と読み出しのタイミングを図る必要が出てくる。
格納前に読みこんだら意味ないからな。


455 :デフォルトの名無しさん:2010/09/06(月) 21:11:36
セッションはCookieにもっとけば、自動的に引き渡されるよ。

456 :デフォルトの名無しさん:2010/09/06(月) 21:32:12
ブラウザCookie拒否してたらどうする?

457 :デフォルトの名無しさん:2010/09/06(月) 21:37:21
知るかハゲ

458 :デフォルトの名無しさん:2010/09/06(月) 22:07:19
Aページのボタンで Bページを新規ウインドウで開いて
BページでAページの内容(テキストボックス)を取得すればいいだけでは?
PostBackUrl Bにして、 onclientclick="window.document.forms[0].target='_blank';" で。
Bで ((TextBox)Page.PreviousPage.FindControl("TextBox1")).Text で取得したのを セッションにいれると

459 :デフォルトの名無しさん:2010/09/07(火) 00:35:39
インストーラ作成時にアプリケーションフォルダの中にファイルを入れています。(プライマリ出力と同フォルダ)
このファイルを参照したいのですが、どのようにディレクトリを取得できるのでしょうか?

.\\hoge.txtでは実行時にファイルが見つからないと言われます。

460 :デフォルトの名無しさん:2010/09/07(火) 02:25:00
TCPClientてBackgroundWorkerでInvokeで呼んだら非同期通信になるかな?
MSDNの.net.Socketの非同期クライアントの例の処理が読んでも解らんから楽したい。

461 :デフォルトの名無しさん:2010/09/07(火) 04:44:08
スレッドハンドルってどうやって取りゃいいの?P/Invokeで使いたいんだけど

462 :デフォルトの名無しさん:2010/09/07(火) 04:56:50
取れないし使えない

463 :デフォルトの名無しさん:2010/09/07(火) 04:59:59
なんだカレントスレッドしか取れんのか

464 :デフォルトの名無しさん:2010/09/07(火) 05:01:10
そういう問題でもない
マネージスレッドとアンマネージスレッドは1:1で対応しない
だからP/Iにマネージスレッドハンドル渡しても使えない

465 :デフォルトの名無しさん:2010/09/07(火) 10:33:00
>>460
なるだろうけど(Invokeはたぶんいらない)その非同期パターンは.NETでよく出てくるから逃げずに理解するべき
ファイルのダウンロードも同じパターンだからWebRequestなんかで調べればわかりやすい例がたくさん出てくる

466 :デフォルトの名無しさん:2010/09/07(火) 13:04:21
>>459
インストーラじゃなくてアプリ実行時に参照したいんだよね?
WinFormならApplication.StartupPathとか
あとはAssembly.Locationとか
その辺とPath.Combineする

467 :デフォルトの名無しさん:2010/09/08(水) 17:22:18
フォルダやドライブのアイコンってどうやって取得するのでしょうか

468 :デフォルトの名無しさん:2010/09/08(水) 17:29:00
静的に欲しいだけならshell32.dllからLoadIcon
動的に欲しいのなら取り敢えずSHGetFileInfo

469 :デフォルトの名無しさん:2010/09/08(水) 21:24:36
>>468
適当に検索して以下の方法で解決しました
http://madcap-labo.com/cs/getIcon.html

470 :デフォルトの名無しさん:2010/09/09(木) 08:36:43
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/710resumedown/resumedown.html
この記事を参考に分割ダウンロードをさせることに成功しました。
しかし、
進捗状態(どれだけダウンロードしたか)や
ダウンロード速度(KB/s)の出力がうまくいかず困っています。

webclientでしたらそのような情報を出すことに成功したのですが
HttpWebRequest/HttpWebResponseクラスではわかりません。

ご教授よろしくお願いします。

471 :デフォルトの名無しさん:2010/09/09(木) 09:26:40
×ご教授

○ご教示

ご教授だと過剰なので相手を馬鹿にしているように取られる
冗談の場合を除いて、実生活で使っちゃだめ

472 :デフォルトの名無しさん:2010/09/09(木) 09:52:42
ご教授って言うと毎回どこからともなく沸いてきて、本題の回答をせずに消えていく。あれは何なんだろう不思議だ

473 :デフォルトの名無しさん:2010/09/09(木) 10:23:38
HttpWebResponseにContent-Lengthと
ダウンロード開始からの経過時間と
既にダウンロードしたバイト数をカウントておけばそれぞれ算出できるだろう

Transfer-Encoding: ChunkedだとContent-Lengthが使えないので進捗は出せません
この場合IEも速度以外表示しませんが

474 :デフォルトの名無しさん:2010/09/09(木) 14:44:55
windowsmobileのソフトウェア開発の勉強をしてみようと思っています。
windowsでの開発自体が初めてなのですが、C#や.NETについて
おすすめの参考書籍はありませんか?

プログラミング自体はLinuxでの経験があるので、本当の入門書ではなく
参考書籍のようなものが希望です。

475 :デフォルトの名無しさん:2010/09/09(木) 14:45:50
「ご教示」の説明をしようとすると、>>472みたいなのが毎回どこからともなく沸いてきて雑談めいたレスを残していく。何なんだろう不思議だ

476 :デフォルトの名無しさん:2010/09/09(木) 14:53:47
>毎回どこからともなく沸いてきて

それだけ気にしてる人が多いってことだろ。
毎回同じやつが指摘してるとでも思ってんのかね。

477 :476:2010/09/09(木) 14:54:48
おっと、私は>>472に言ったのであって、>>475には言ってないのでよろしく。

478 :デフォルトの名無しさん:2010/09/09(木) 16:24:41
対数で保持しているSqlServer.floatのデータを
C#でdoubleで受けてToString()すると対数のまま文字列にされてしまうんですが
小数で文字列にしたいんですがどうしたらいいでしょう。
"2.4-E5" を "0.000024"としたい。
よろしくお願いします。

479 :デフォルトの名無しさん:2010/09/09(木) 16:29:20
Decimalで受けてみたら?
検証してないからうまくいくかどうかわからんけど

480 :デフォルトの名無しさん:2010/09/09(木) 16:32:07
カスタム数値書式指定文字列使って
小数点以下の桁指定文字を350個ほど並べとけばいいんじゃないかな

481 :デフォルトの名無しさん:2010/09/09(木) 16:55:41
ToString("#0.#########################################################")
こんな感じか

482 :デフォルトの名無しさん:2010/09/09(木) 17:51:00
もう少しマシな回答はないのか

483 :デフォルトの名無しさん:2010/09/09(木) 18:24:36
XPのネットワークアイコンみたいに、通信があったときをlabelに色で表示したいんですけど、
どのようにして通信を取得すればいいのでしょうか。

484 :デフォルトの名無しさん:2010/09/09(木) 18:28:43
WindowsFilteringPlatform使う方法しか知らない

485 :デフォルトの名無しさん:2010/09/09(木) 19:26:20
>>471
指摘ありがとうございます。
これから先この言葉を使って恥をかくことはなさそうです。

>>473
回答ありがとうございます。
DLするファイルサイズとDLしたファイルサイズを取得することができました。
%完了 というのも頑張って実装したいと思います。

486 :デフォルトの名無しさん:2010/09/09(木) 22:23:44
.Net 2.0のC#でWindows Formを使ったプログラムを書いているのですが、
わからないことが発生してしまいました。

数値だけではなく、帯域を表現できる入力コントロールとして、
TrackBarではなく、HScrollBarを使おうと思ったのですが、
最小値(Minimum)と最大値(Maximum)は設定できたのですが、
スクロールバーのバー部分の幅の設定の仕方がわからないでいます。

 どなたか、ご存知の方、または、お勧めの代替え案などがありましたら
教えていただけませんでしょうか。

以上、よろしくお願いいたします。

487 :デフォルトの名無しさん:2010/09/09(木) 22:56:33
LargeChangeが兼ねる

488 :デフォルトの名無しさん:2010/09/09(木) 23:08:20
> 487

なるほど・・・
PageUp/PageDown時のスクロールサイズ->ページサイズ->バーのサイズ
でしたか・・・

ありがとうございました、解決いたしました。


489 :デフォルトの名無しさん:2010/09/09(木) 23:10:35
>>486
MSDNライブラリの「使用例」の説明を読んだ感じでは、

[ハンドルの幅] / [ハンドルの稼動部分の幅] = LargeChange / (Maximum - Minimum)

になる感じかね。
ハンドルの稼動部分の幅は正確にはわからないが、
クライアント領域の幅で代用すればOKなんじゃないの?

490 :デフォルトの名無しさん:2010/09/10(金) 03:18:02
>>489

ご回答ありがとうございます。

今回、AutoScrollで表示されるスクロールバーではなく、
HScrollBar単体での使用であったため、ClientSize
を使った計算ができなかったための質問でした。


491 :デフォルトの名無しさん:2010/09/10(金) 03:39:47
メモリーに入りきらないぐらい巨大な文字列にたいして正規表現で検索をしたいんだが、.netに付属の奴だとstringしか渡せない
charenumratorなどのイテレーターを渡すことのできる正規表現クラスはないの?

492 :デフォルトの名無しさん:2010/09/10(金) 09:09:08
そんなものはない
巨大文字列を適切な個所で区切って使え
以上

493 :デフォルトの名無しさん:2010/09/10(金) 09:56:18
byte[] bytes = object;
のようにobjectの型も含めてバイト配列にする方法とそれを復元する方法はありませんか?
ファイルに保存するのではなく単にバイト配列とそれを復元したいのです。

494 :デフォルトの名無しさん:2010/09/10(金) 10:05:59
IFormatter実装してる何らかのクラスを使う
Streamにしか出力できないので適当に変換する必要がある

495 :デフォルトの名無しさん:2010/09/10(金) 10:20:32
>>493
BinaryFormatter

496 :493:2010/09/10(金) 10:41:35
MemoryStreamとBinaryFormatterを利用するのが簡単そうなのでとりあえずそうしてみたのですが、
こういう方法を多用しまくっても問題ないのでしょうか?。

497 :デフォルトの名無しさん:2010/09/10(金) 10:48:12
ふつう使わない

というか使う必要がない!
何に使うか疑問

498 :デフォルトの名無しさん:2010/09/10(金) 11:01:24
するのは構わないよ
勝手にしてくれ

499 :デフォルトの名無しさん:2010/09/10(金) 11:11:16
>>496
メモリイメージそのまま使いたいってのが仕様なんだったらそうすりゃいいんだけどさ、
整数のエンディアンとか、構造体のアラインメント/パッキングとか、
色々問題あるよ。
.NET 内だけで使うにしても、x86とx64間で何か困りそう。

500 :デフォルトの名無しさん:2010/09/10(金) 11:21:28
BinaryFormatterってメモリイメージじゃないでしょ?

501 :デフォルトの名無しさん:2010/09/10(金) 11:30:08
>>500
あれって内部的にエンディアンどうするとかって仕様で決まってたんだっけ?

502 :デフォルトの名無しさん:2010/09/10(金) 11:35:56
BinaryFormatterってXMLシリアライズのように
要素の型と値を抽出したあとに
バイナリで保存してるだけでしょ

503 :デフォルトの名無しさん:2010/09/10(金) 16:37:51
とあるクラスからForm1の変数(もしくはプロパティ)を読みたいときに、
そのクラスから以下のように呼び出しても良いのでしょうか?

Form1 f1 = new Form1();
var foo = f1.bar

なんかメインフォームを呼ぶのってダメなような気がするのですが、
他に方法が思い付かなくて。

504 :デフォルトの名無しさん:2010/09/10(金) 16:40:39
お前この前VIPで質問してただろ
いい加減クラスとインスタンスの区別を付けろ

505 :デフォルトの名無しさん:2010/09/10(金) 16:46:08
するのは構わないよ
が、きっと君の目的は達成できない

506 :デフォルトの名無しさん:2010/09/10(金) 16:58:22
>>504
VIPとは?

別クラスでボタンコントロールをインスタンス化して、そのボタンのプロパティとイベントハンドラーを設定。
メインフォームのロードで別クラスを呼び複数のボタンをフォームに配置。

としたときに、ボタンをクリックしたときにメインフォームで持っている構造体の中の変数を呼びたいのです。

507 :デフォルトの名無しさん:2010/09/10(金) 17:02:51
それでいいよ。
上手く行かなかったらもう一度来なさい。

508 :デフォルトの名無しさん:2010/09/10(金) 17:03:03
変数を呼ぶとはなんぞや

509 :デフォルトの名無しさん:2010/09/10(金) 17:05:09
newしたってそのメインフォームとはイコールにならないことが理解できなければ100万年かかっても無理

Form1 mainForm = new Form1();
Form1 form = new Form1();

この場合
mainFrom ≠ form

510 :デフォルトの名無しさん:2010/09/10(金) 17:07:06
そういうどうしようもない部分って誰が教えてくれるんだろう。

511 :デフォルトの名無しさん:2010/09/10(金) 17:10:46
イベントハンドラのsenderを見りゃあいいだけだよね

512 :デフォルトの名無しさん:2010/09/10(金) 17:17:59
private void button_Click(object sender, EventArgs e)
{
MessageBox.Show(((Form)sender).Size.ToString());
}

こういうこったろ

513 :デフォルトの名無しさん:2010/09/10(金) 17:20:14
かーもねっ

514 :デフォルトの名無しさん:2010/09/10(金) 18:03:12
>>505,509の言ってた意味が分かりました。
メインのForm1で持ってる変数も、newしたForm1の変数はnullなんですね。^^;

>>512
Form1に構造体(field)の二次元配列(array)があって、
ラベルのクラスのクリックイベントハンドラでその構造体の中の変数を読みたいんです。
実際はMessageBox.Show()ではないですけど、
クリックされたコントロールの名前と構造体のlabelName変数が一致したとき、
同じ構造体のMessageを読むといった事がしたいのです。

for (int i = 0; i <= 4; i++){
for (int n = 0; n <= 4; n++){
if (((Label)sender).Name == field.array[i, n].labelName){
MessageBox.Show(field.array[i, n].Message);
break;
}
}
}

515 :デフォルトの名無しさん:2010/09/10(金) 18:05:46
…labelの親は誰だと思う?

516 :デフォルトの名無しさん:2010/09/10(金) 18:09:12
>>515
ラベルクラスで「this.」と打っても、インテリセンスにownerが出てこないので
親はいないのかと・・・。

517 :デフォルトの名無しさん:2010/09/10(金) 18:11:37
オーナーじゃありませんパレントです

518 :デフォルトの名無しさん:2010/09/10(金) 18:33:17
>>492
境界のところで一致するような正規表現をつっこんだら、ややこしいことになる
boostにはイテレーターを突っ込むことのできる正規表現クラスがあるんだが、C++のやつをC#で呼び出すことはできないよな…?

519 :デフォルトの名無しさん:2010/09/10(金) 18:38:36
>>518
C++のやつをC#で呼び出すことはできないよな…?

できますがな
APIとかばりばりで使えますぜ
VB6グラマーの大好きなお作法ができる

520 :デフォルトの名無しさん:2010/09/10(金) 18:48:17
>>519
そのやり方でC++で書かれたクラスのインスタンスを作ることはできる?

521 :デフォルトの名無しさん:2010/09/10(金) 18:51:06
>>520
しらん

面倒なら以前どこかのスレで見かけたがwininetを使ってproxyタイプの
簡易サーバー書いてそいつにc#のhttp通信関連で通信して処理させればいい

522 :デフォルトの名無しさん:2010/09/10(金) 18:54:49
C++のクラスの方をCOMコンポーネントにしてしまえばそのままマーシャリングできる
それが面倒なら関数とクラスポインタでチマチマやるしかないね

523 :デフォルトの名無しさん:2010/09/10(金) 19:01:21
早くやってることがDQNだと気づけ!

524 :デフォルトの名無しさん:2010/09/10(金) 19:26:06
>>517
以下のように書いて出来ました!
((TestApp.Form1)(((Label)sender).Parent)).field.array[i, j].labelName

ありがとうございました。

525 :デフォルトの名無しさん:2010/09/10(金) 19:32:46
すごすぎる

526 :デフォルトの名無しさん:2010/09/10(金) 19:36:03
>>502
それだとエンディアンやばそうじゃない?
実際、monoな人がぼやいてたような。
まあ、それ言い出すと他のシリアライズ手法も怪しいらしいけど。

527 :デフォルトの名無しさん:2010/09/10(金) 19:39:04
久しぶりに酷いコードをみた


528 :デフォルトの名無しさん:2010/09/10(金) 19:40:37
恐怖を感じた

529 :デフォルトの名無しさん:2010/09/10(金) 19:42:38
うんこまんひどす…

530 :デフォルトの名無しさん:2010/09/10(金) 19:42:55
なーに、lispだと思えばなんて事は無い

531 :デフォルトの名無しさん:2010/09/10(金) 19:43:35
スマートさを求めた結果がこれだよ。

532 :デフォルトの名無しさん:2010/09/10(金) 19:47:32
ぱっと見Lispっぽいなw

533 :524:2010/09/10(金) 19:49:01
>>527
俺の事?
デバッグ中にウォッチで見つけたからその通りに書きました。
なにかもっとスマートな書き方があるのでしょうか?

534 :デフォルトの名無しさん:2010/09/10(金) 19:51:03
楽天RSS?

535 :デフォルトの名無しさん:2010/09/10(金) 21:09:59
これはガチガチに凝り固まった頭なのか?それとも柔らか頭の為せる業なのか!
オツムかち割ってみてみたい。こんな発想出来るのは偉人か奇人の紙一重だろう。
一応褒めてるんだぜ? おめでて〜頭だ。

536 :デフォルトの名無しさん:2010/09/10(金) 21:24:24
BinaryFormatterは環境に依存しないだろ。


537 :デフォルトの名無しさん:2010/09/10(金) 22:38:30
前に>>524みたいなキャスト書いた事あるけどアカンの?

538 :デフォルトの名無しさん:2010/09/10(金) 23:51:27
自分なら何行かに分けて書くと思うけど、好みの問題の域を出てないと思うなぁ。

そもそもsenderからParent取ってってやらないといけないのがなんか避けたい実装な気もするけど。


539 :デフォルトの名無しさん:2010/09/11(土) 00:48:36
余程特殊な理由でもない限り、
コントロールのイベントハンドラを所有者のフォーム以外に書いているとしたら、
もうかなり腐臭の漂うウンココード。

普通にコントロールのイベントハンドラを所有者のフォームに書いているとしたら、
わざわざハンドラのsenderから辿って所有者のフォームの参照を取るのは間抜けすぎる。

たぶん>>524は後者だと思うが、「広域変数はダメ」って意味を勘違いしてるのかな。

540 :デフォルトの名無しさん:2010/09/11(土) 01:03:34
俺thisで済むのでもふつうにsenderから取ってたわ。
せっかく送られてきたのを使わないともったいない気がして。

541 :デフォルトの名無しさん:2010/09/11(土) 08:42:21
自前のクラス内じゃないのか?

で、form持ってないんだろ

542 :デフォルトの名無しさん:2010/09/11(土) 13:22:54
>>520
>>522
ありがとう
楽にとはいかないのか…
さすがにそこまでするのはめんどくさいから行単位でRegexに文字列を渡すことにしてみる

543 :539:2010/09/11(土) 16:55:05
すごすぎる(´・ω・`)

544 :デフォルトの名無しさん:2010/09/11(土) 18:09:00
>>542
>>542
>>542

545 :デフォルトの名無しさん:2010/09/11(土) 19:44:53
int[] x = {1,2,4,7};
int[] y = {1,2,5,7}

xとyにない数値を求めたいのだが、

この場合は、5を算出したい。どうすれば?



546 :デフォルトの名無しさん:2010/09/11(土) 19:45:46
上は、まちがい


int[] x = {1,2,4,7};
int[] y = {1,2,4,5,7}

xとyにない数値を求めたいのだが、

この場合は、5を算出したい。どうすれば?



547 :デフォルトの名無しさん:2010/09/11(土) 19:47:31
ループさせればいいじゃん。何で悩むんだか。

548 :デフォルトの名無しさん:2010/09/11(土) 19:49:45
xとyにない数値って何

549 :デフォルトの名無しさん:2010/09/11(土) 19:57:12
var z = y.Exact(x);

普通にループ使えよ

550 :デフォルトの名無しさん:2010/09/11(土) 20:15:44
とりあえず,対称差だとすると下のどちらか

var z = x.Except(y).Union(y.Except(x));
var z = x.Union(y).Except(x.Intersect(y));

>>548
「xとy(のどちらか片方)に(しか)ない」と言いたかったとか?
元の文とは全く意味が異なるけど

>>549
Exactって何ぞや?拡張メソッドにも見当たらないんだが

551 :デフォルトの名無しさん:2010/09/11(土) 20:17:31
はふぅ

552 :デフォルトの名無しさん:2010/09/11(土) 20:58:04

X、Yの差集合と
Y、Xの差集合での和集合ですね。

553 :デフォルトの名無しさん:2010/09/11(土) 21:24:15
富豪的プログラミングで行こう

554 :デフォルトの名無しさん:2010/09/11(土) 21:25:24
int[] x = {1,5,2,7,1,4,7,4};
から重複をとっぱらって
int[] y={1,2,4,5,7}
と順に並べたい。けど、どうすれば?

555 :デフォルトの名無しさん:2010/09/11(土) 21:29:07
OrderBy().Distinct().ToArray()

556 :デフォルトの名無しさん:2010/09/11(土) 21:29:51
ぴゅっ

557 :デフォルトの名無しさん:2010/09/11(土) 21:36:14
すみません。高齢者向けのフリーソフト(ブラウザ)を開発したいんですが、
ジャパネットとかで売ってるパソコンのスペックでもC#で開発したのは動きますか?

558 :デフォルトの名無しさん:2010/09/11(土) 21:37:24
わからん


559 :デフォルトの名無しさん:2010/09/11(土) 21:40:51
>>555
OrderBy()
ラムダ式いるのでは?

560 :デフォルトの名無しさん:2010/09/11(土) 21:41:50
>>557
2007年にジャパネットで売ってたメモリ512MBのVistaとか?

561 :デフォルトの名無しさん:2010/09/11(土) 22:42:13
それOS動かすだけで精一杯だろ

562 :デフォルトの名無しさん:2010/09/11(土) 23:26:37
>>541
どうやらまともに理解しているのアナタだけみたいですね

563 :デフォルトの名無しさん:2010/09/12(日) 00:03:36
>>562
馬鹿か

564 :デフォルトの名無しさん:2010/09/12(日) 00:30:04
まあね

565 :デフォルトの名無しさん:2010/09/12(日) 10:45:44
型推論はVC#のどのバージョンいくつから使えて、.NETのバージョンはどれ以降ならOKか、
同じように拡張メソッドはどのバージョンか、LINQはどのバージョンか、ラムダ式はどうか
……というのが表にまとまってるウェブページってありますか?

566 :デフォルトの名無しさん:2010/09/12(日) 11:00:36
わざわざまとめるほど複雑かね?

567 :デフォルトの名無しさん:2010/09/12(日) 11:03:58
イメージリストに画像を追加する際にインデックス番号を指定して追加することは可能ですか?

568 :デフォルトの名無しさん:2010/09/12(日) 11:04:44
LINQを実装するために型推論も拡張メソッドもラムダ式も導入されたんじゃねえの
全部仕様はC#3.0、VSは2008、.NET Frameworkは3.5のような気がする

勘で書いてるので合ってるとは思わない

569 :デフォルトの名無しさん:2010/09/12(日) 11:11:01
そのリストが欲しいといってんだろ。
あるのかは知らない。

570 :デフォルトの名無しさん:2010/09/12(日) 11:13:14
>>567
無理

>>568
.NET Frameworkのバージョンは2.0で十分だよ、型推論も拡張メソッドもラムダ式もクエリ式も言語の機能
まあSystem.Core.dllが用意されてない.NET3.0以前はクエリ式はまともに書けないだろうけど

571 :デフォルトの名無しさん:2010/09/12(日) 11:16:30
常識的に考えてあるわけない
wikipediaみて自分で作れ

572 :デフォルトの名無しさん:2010/09/12(日) 11:16:53
ImageCollection.Addの(string,Image)使ってindexを文字列にして渡せばぁ

573 :デフォルトの名無しさん:2010/09/12(日) 13:40:16
うん

574 :デフォルトの名無しさん:2010/09/12(日) 13:50:29
>>565

C#

VS2005→つかえない。
VS2008→つかえる。
VS2010→つかえる。

VB.NET は
VS2010→つかえる。

でいいんじゃ?



575 :デフォルトの名無しさん:2010/09/12(日) 13:58:58
>>565
それ、全部 3.0 じゃん。


576 :デフォルトの名無しさん:2010/09/12(日) 14:43:14
>>574
それ .net のバージョンじゃない

577 :デフォルトの名無しさん:2010/09/12(日) 20:06:19
.NET2.0で使えるC#3.0
推論型, 匿名型, 暗黙型付け配列
コレクションのイニシャライザ, オブジェクトのイニシャライザ
パーシャルメソッド, 自動プロパティ, ラムダ式
(自前で用意すれば使える)拡張メソッド, LINQ

・拡張メソッドはExtensionAttributeを自前で用意すれば2.0ターゲットでも使える
namespace System.Runtime.CompilerServices {
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)]
public sealed class ExtensionAttribute : Attribute {}
}
・LINQ to Objectはいくつかオープンソースの実装がある
http://www.albahari.com/nutshell/linqbridge.aspx

殆どが使える。例外は式木関連ぐらいか。

578 :デフォルトの名無しさん:2010/09/12(日) 20:14:42
>>577
.NET2.0で使えるC#3.0 って何?

579 :651:2010/09/12(日) 20:18:22
え?

580 :デフォルトの名無しさん:2010/09/12(日) 20:23:35
>>578
C# 3.0 って .NET 3.5 と同時にリリースされたものだけど、
別に .NET 2.0 上で動くアプリも C# 3.0 で書ける。

ただ、.NET 2.0 には標準クエリな拡張メソッドがないってのが問題なんだけど、
同じものを自作しちゃえば OK。



581 :デフォルトの名無しさん:2010/09/12(日) 20:42:51
具体的に言うと、VS2008でターゲットを.NET 2.0にするとそう言う状態になる

582 :565:2010/09/12(日) 21:45:15
>>577 ありがとうございました。

583 :デフォルトの名無しさん:2010/09/13(月) 15:05:24
(´・ω・)・・・

584 :デフォルトの名無しさん:2010/09/13(月) 18:19:08
はずかしい質問なのですが・・・

int i;
char text[100];

text[1] = (char)i;

これをC#で書き直すとどうすればいいのですか?

585 :デフォルトの名無しさん:2010/09/13(月) 18:28:59
いみふ

586 :デフォルトの名無しさん:2010/09/13(月) 18:30:19
>>584
int i;
char[] text = new char[100];
text[1] = Convert.ToChar(i);


587 :デフォルトの名無しさん:2010/09/13(月) 18:33:07
(。∀。)

588 :デフォルトの名無しさん:2010/09/13(月) 18:34:00
>>585>>586
ありがとうございます。
テストしてみます。

589 :デフォルトの名無しさん:2010/09/13(月) 18:38:00
>>585
分からんかったら書き込むなハナクソ

590 :デフォルトの名無しさん:2010/09/13(月) 18:41:50
言語すら書いてないわけだが

591 :デフォルトの名無しさん:2010/09/13(月) 18:42:21
言語関係無しに見たら分かるだろw

592 :デフォルトの名無しさん:2010/09/13(月) 20:12:19
(・∀・)

593 :デフォルトの名無しさん:2010/09/13(月) 20:53:08
>>584は確かにイミフ
(char)('a' + i)とか(char)('0' + 1)とかだったらわかるけど
単に数値をそのまま文字にキャストすることなんて滅多にないと思う
Cだったらbyte代わりにcharを使ってるとかじゃないか?

594 :デフォルトの名無しさん:2010/09/13(月) 21:48:56
バイナリ部分とテキスト部分が混じってるファイルをバイナリで開いて、
テキスト部分を読み込むときにああいう書き方をしたことはある。

595 :デフォルトの名無しさん:2010/09/13(月) 23:40:41
Dictionary<string, string> subHash = new Dictionary<string, string>();
Dictionary<string, Dictionary<string, string>> MainHash = new Dictionary<string, Dictionary<string, string>>();

MainHash の Key が変わるごとに、Value となるsubHash を .clear したいのですが、
連想配列の値を連想配列にした場合は、どのようにして値渡しで宣言すればよいでしょうか?
out をつけて宣言をすると型が違うので使えないとエラーになりました

596 :デフォルトの名無しさん:2010/09/13(月) 23:48:40
>>595
>Key が変わるごとに
DictionaryにKeyなんてプロパティは存在しないでしょ。
自分が何を言っているのか理解してる?

597 :デフォルトの名無しさん:2010/09/13(月) 23:52:08
>out をつけて宣言をすると型が違うので使えないとエラー

ここのコードをエラーが表示されてる状態でいいから貼れ
イマイチ言わんとしている事が伝わってこない

598 :デフォルトの名無しさん:2010/09/13(月) 23:59:43
>>596
Dictionary<TKey, TValue>のつもりで書いていました
ループで回して値を追加しようと思っています

SubHash["新宿区1"] = "50";
SubHash["新宿区2"] = "70";
MainHash["東京都"] = SubHash;

SubHash;.clear;

SubHash["中央区1"] = "100";
SubHash["中央区2"] = "200";
MainHash["千葉県"] = SubHash;

SubHash;.clear;


>>597
連想配列は参照渡しなので、値渡しでクリアの際に消えないようにと考えています
Dictionary<string, Dictionary<string, string>> MainHash = new Dictionary<string, out Dictionary<string, string>>();

599 :デフォルトの名無しさん:2010/09/14(火) 00:03:00
コードを見ても何したいのか分からないが、ひょっとしてこういう事なんだろうか
var main = new Dictonary<string, Dictionary<string, string>>();
var sub = new Dicitonary<string, string>();
sub.Add("a", "b");
sub.Add("c", "d");
main.Add("A", sub);
sub = new Dicitonary<string, string>();
sub.Add("1", "2");
main.Add("B", sub);

600 :デフォルトの名無しさん:2010/09/14(火) 00:04:03
>>598
phperっぽいな

値型がボックス化で参照型になった物を例外として
参照型は値型に変えられない

のでインスタンスは個別に生成しないと駄目

601 :デフォルトの名無しさん:2010/09/14(火) 00:09:48
>>599
はいその通りです
ループの中で再宣言をするとエラーになるので、宣言する際の型で値渡しにしようとしておりました

>ローカルの変数 'SubHash' をこのスコープで宣言することはできません。
>これは、'親またはカレント' スコープで別の意味を持つ 'SubHash' の意味が変更されるのを避けるためです。

>>600
インスタンスは個別に作らないといけないんですね
値渡しの方法はあきらめてロジックを見直してみます


ありがとうございました

602 :デフォルトの名無しさん:2010/09/14(火) 04:27:37
.NETとC#でプログラムを作成すると、絶対にウインドウを生成してしまうのでしょうか?
呼び出されるとあるコードを実行して終了したいので、ウインドウなどは必要ありません

603 :デフォルトの名無しさん:2010/09/14(火) 04:32:25
ウィンドウなしのプログラムも作れるよ

604 :デフォルトの名無しさん:2010/09/14(火) 05:30:46
いきなりフォームデザイナが起動するのですが、どうするんですか?

605 :デフォルトの名無しさん:2010/09/14(火) 05:34:42
Program.csでApplication.Runやらずにやりたいことすればいい


606 :デフォルトの名無しさん:2010/09/14(火) 05:35:02
>>604
Program.csてのがあるよね

それがFormなどが開く前に実行されてそこでFormのインスタンスを作成してるの
その中のコードを潰しちゃえばFormは作成されない

607 :デフォルトの名無しさん:2010/09/14(火) 06:39:20
ありがとうございます
しらべてみます

608 :デフォルトの名無しさん:2010/09/14(火) 06:55:58
ウインドウを作るのと作らないとではそんなにメモリ消費量かわんの?

609 :デフォルトの名無しさん:2010/09/14(火) 06:57:22
計ってみればいいじゃん

610 :デフォルトの名無しさん:2010/09/14(火) 06:58:31
>>608
Formだけだとどれくらいだろう
今のPCだと誤差だと思うけどねえ

でもFormのメンバ関数とか見てると数バイトってレベルではないとは思うけど

611 :デフォルトの名無しさん:2010/09/14(火) 08:35:08
VB.NETのスレが無いのですみません。
Dim [source] As TreeNode = _
CType(e.Data.GetData(GetType(TreeNode)), TreeNode)
上記の[source]ってどういう意味でしょうか?
なぜ[ ] がついているんでしょうか?

612 :デフォルトの名無しさん:2010/09/14(火) 09:24:25
VB.NETスレあるだろ。ちゃんと探せ
…と思ったが、どうやら新スレ立ってないぽいな。

スレ違いなんで向うで聞いてくれ

VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/

613 :デフォルトの名無しさん:2010/09/14(火) 10:19:57
・・・

614 :デフォルトの名無しさん:2010/09/14(火) 11:18:16
スレ立ててやったのかw

615 :デフォルトの名無しさん:2010/09/14(火) 11:45:00
VBにSourceなんていう予約語はなかったはずだが
もしかして識別子全てに[]付けてる痛い人なのかな

616 :デフォルトの名無しさん:2010/09/14(火) 11:47:20
コピペ元はDOBONの記事っぽいけど、そこでは混在してるな
よくわからない

617 :デフォルトの名無しさん:2010/09/14(火) 12:24:29
(´・ω・`)…

618 :デフォルトの名無しさん:2010/09/14(火) 23:33:16
>>610
それはギャグで言ってるのか?


619 :デフォルトの名無しさん:2010/09/14(火) 23:35:15
>>618
マジレスおねがいします

620 :デフォルトの名無しさん:2010/09/14(火) 23:55:09
断る

621 :デフォルトの名無しさん:2010/09/15(水) 01:02:04
変わらないと思う理由は?

622 :デフォルトの名無しさん:2010/09/15(水) 06:21:34
Emitっちゅうのが何者かわからないのですが、どのようなものなのでしょうか

623 :デフォルトの名無しさん:2010/09/15(水) 08:33:07
インラインアセンブラみたいなもの
実行時にILを書き下してそのまま実行させられる
大量にリフレクションを使用するような用途(シリアライザや言語処理系など)の高速化に用いられる

624 :デフォルトの名無しさん:2010/09/15(水) 10:17:42


625 :デフォルトの名無しさん:2010/09/15(水) 13:29:08
Emitが使えない場合はどうするんですか

626 :デフォルトの名無しさん:2010/09/15(水) 13:49:13
普通にリフレクションとコード

627 :デフォルトの名無しさん:2010/09/15(水) 17:00:21
>>626
おめえうぜえわ
分からないならいちいちレスすんなks

628 :デフォルトの名無しさん:2010/09/15(水) 17:10:37
と、分からないksがファビョっています

629 :デフォルトの名無しさん:2010/09/15(水) 19:38:15
ksって何? コロ助?

630 :デフォルトの名無しさん:2010/09/15(水) 20:07:22
List<string[]> array = new List<string[]>();

for (int i = 0; i < 5; i++){
array.add(new string[]{"foo" + i.ToString(), "bar" + i.ToString() });
}

このarrayのソートはどうすればいいのでしょうか

631 :デフォルトの名無しさん:2010/09/15(水) 20:14:14
したいようにすればいいよ
何をどう並べるのか分からんわ

632 :デフォルトの名無しさん:2010/09/15(水) 20:16:20
foo0
foo1
foo2
foo3
foo4
と並べたいんです。
>>630は参考程度のコードなので
もう並んでるってのは無しでお願いします。

633 :デフォルトの名無しさん:2010/09/15(水) 20:23:23
いやだ

634 :デフォルトの名無しさん:2010/09/15(水) 20:24:16
Arrayクラスのメンバ全部確認しろ
staticメソッドのSで始まる辺りを特によく見ろ

635 :デフォルトの名無しさん:2010/09/15(水) 20:29:54
どちらかというとList(T)クラスだと思う。

636 :デフォルトの名無しさん:2010/09/15(水) 20:34:24
要件次第だけどもねぇ。
List.Sort か、LINQ の OrderBy か、最初から SortedDictionary/SortedSet 使えよってのか。


637 :デフォルトの名無しさん:2010/09/15(水) 20:41:07
ジャグ配列になってるせいでArray.Sort()もarray.Sort()も使えないようです。

638 :デフォルトの名無しさん:2010/09/15(水) 20:47:34
ごめん俺の方がよく見てなかった

639 :デフォルトの名無しさん:2010/09/15(水) 20:59:24
C# ASP.NETで質問です。
やりたいことは、webアプリから、ファイルサーバーにあるファイルの
アクセス権限の取得です。
ttp://support.microsoft.com/kb/306158/ja
この辺を参考に試してみましたが、デバッグではともかく
IISで動作させると、File.GetAccessControl()で失敗します。

なにかこの辺の情報、もしくは情報の載っているサイトの紹介をお願いします。

640 :デフォルトの名無しさん:2010/09/15(水) 21:00:11
あー。
じゃあ、(from x in array from y in x select y).OrderBy(x => x) で。

641 :デフォルトの名無しさん:2010/09/15(水) 22:24:55
WindowsMobileのプログラミングをしようと思い調べているのですが、
このスレッドを読んでいて>>319を見つけました。
.NET CFが消えるということなのですが、具体的にはどういうことなのでしょうか?

642 :デフォルトの名無しさん:2010/09/15(水) 22:26:11
うがー

643 :デフォルトの名無しさん:2010/09/15(水) 22:29:27
array.Sort((x, y) => x[0].CompareTo(y[0]))
でいいと思うのだがどうか。

644 :デフォルトの名無しさん:2010/09/15(水) 22:33:35
>>641
WindowsMobile6.xならSilverlight気にしないでCFやればいい

645 :デフォルトの名無しさん:2010/09/15(水) 22:43:07
>>639
Web.configのidentity要素を設定して対象のファイルに対する適切な権限を持ったユーザに偽装するとか、
AppPoolのIDを変更してみるとか。
サイトはよくわかんないけど。

646 :デフォルトの名無しさん:2010/09/15(水) 23:09:12
>File.GetAccessControl()
何が死体の?


647 :デフォルトの名無しさん:2010/09/15(水) 23:35:24
>>643
出来ました!
ありがとうございました

648 :デフォルトの名無しさん:2010/09/15(水) 23:38:49
きた

649 :デフォルトの名無しさん:2010/09/16(木) 00:34:38
>>641
そのまんま
今後出るのはSilverlightベースのAPIになる
といってもSilverlight自体CFを本にしてるのでほとんど一緒だけどGUI関連はガラガラポン

650 :デフォルトの名無しさん:2010/09/16(木) 01:44:44

  。    。 スポポポポーン!!!
 。 。 。 ゚
  。゚。゜。 ゚。 。
 /  /
( Д )

651 :デフォルトの名無しさん:2010/09/16(木) 06:56:38
お前の目玉はいくつあるんだ。

652 :デフォルトの名無しさん:2010/09/16(木) 12:34:53
>>643
そんな簡単にできるのか
すごいな

653 :デフォルトの名無しさん:2010/09/16(木) 14:43:49
>>483です
Windows Filtering Platformを調べたけど、
サンプルコードが全然出てきませんね。

654 :デフォルトの名無しさん:2010/09/16(木) 14:48:10
>>653
これでも読みながら作れ
http://msdn.microsoft.com/en-us/library/aa366504%28v=VS.85%29.aspx

655 :デフォルトの名無しさん:2010/09/16(木) 14:48:32
Console.Read()
で、1〜9以外を無効化したいんだけどどうやればいいの

whileとかで無限ループで
12とかやると
1〜9を選んで下さい
みたいに出るんじゃなく
キーボードの1〜9しか受け付けない、1〜9のどれかを
押したら即座に反映される

みたいなのをやりたいんだけど!

656 :デフォルトの名無しさん:2010/09/16(木) 14:54:50
あー、マーシャリングがちゃんと書けることが前提

まずフィルタを登録する
次にフィルタにコールアウト関数を登録する
コールアウト関数はフィルタにマッチしたら呼ばれる
あとはメッセージでも投げて点滅させればいい

そういう用途には使ったことはないが
コールアウトを使ったパケットフィルタリングが可能なことは前に確かめた

657 :デフォルトの名無しさん:2010/09/16(木) 14:56:17
IP Helper API使えば簡単ジャン

658 :デフォルトの名無しさん:2010/09/16(木) 15:03:33
>>655
Console.ReadKey

659 :デフォルトの名無しさん:2010/09/16(木) 16:38:13
IP Helperで通信の検出なんかできたっけ

660 :デフォルトの名無しさん:2010/09/16(木) 16:44:32
ポーリングでなら

661 :デフォルトの名無しさん:2010/09/16(木) 16:55:50
なるほど

662 :デフォルトの名無しさん:2010/09/16(木) 23:55:31
MHTファイルに保存したくて
CDO.MessageClass の CreateMHTMLBody(url, CDO.CdoMHTMLFlags.cdoSuppressAll, "", "");
を使ったのですが、同じURLにも関わらずIEで名前を付けて保存を実行するより
ファイルサイズも小さく、一部の情報欠落してしまってます。
どう対応すればよいのでしょうか?

663 :デフォルトの名無しさん:2010/09/17(金) 00:29:58
スレ違いだ
お前はExcelの使い方がわからないときに「C++で作られてるから」とC++スレで質問するのか?

664 :デフォルトの名無しさん:2010/09/17(金) 00:40:12

  。    。 スポポポポーン!!!
 。 。 。 ゚
  。゚。゜。 ゚。 。
 /  /
( Д )

665 :デフォルトの名無しさん:2010/09/17(金) 01:01:07
よく分からんが取り合えずSuppressAllだとなんか保存するのを抑制しそうだが

666 :デフォルトの名無しさん:2010/09/17(金) 02:42:21
別スレッドで自身のインスタンスにあるプロパティを変更するのって問題ない?

667 :デフォルトの名無しさん:2010/09/17(金) 02:45:42
ものによる

668 :デフォルトの名無しさん:2010/09/17(金) 02:50:08
>>665
ネット上のサンプルではcdoSuppressNone
だったので、こちらを使ってみてたのですが
駄目でした。
それで、フラグをいろいろ変更して試してました。 


669 :デフォルトの名無しさん:2010/09/17(金) 05:34:50
コマンドライン向けに作ったC言語のアプリケーションがあるのですが、そのアプリケーションを実行して
実行結果をウインドウに表示したいのですが、どうすればいいですか?

670 :デフォルトの名無しさん:2010/09/17(金) 05:38:28
    // hoge.exeを起動して、Process のインスタンスを取得する
    System.Diagnostics.Process hProcess = System.Diagnostics.Process.Start("hoge.exe");

    // 終了するまで待機する
    hProcess.WaitForExit();


671 :デフォルトの名無しさん:2010/09/17(金) 09:25:59
もっと単純な書き方がありそうに思うのですが、ありませんか?

List<string> lists = new List<string>();
int index = lists.FindIndex(x=>x == string);

672 :デフォルトの名無しさん:2010/09/17(金) 10:21:34
意味が分からない
何がしたいのか日本語で書け

673 :デフォルトの名無しさん:2010/09/17(金) 10:45:09
>>672
意味が分からないのならスルーしたら?

例え日本語で書いたとしてもオマエは煽りしか書かなそうだしな

674 :デフォルトの名無しさん:2010/09/17(金) 10:57:10
>>671
static

675 :662:2010/09/17(金) 11:23:07
CDO.MessageClassのCreateMHTMLBody は
IEの保存と違って
どうやら再帰的な外部ファイルの読み込みには
サポートしてないらしいですね。

Chilkat のライブラリを使えば問題は解決しそうだけど
お金かかるみたいだし
自作するしかないのかな。


676 :デフォルトの名無しさん:2010/09/17(金) 11:25:28
たぶん>>671はIndexOfの存在を聞いてるんだと思うぞ
ラムダ式書くのがアホ臭いってことでしょ

int index = lists.IndexOf(string);

677 :デフォルトの名無しさん:2010/09/17(金) 11:58:16
わかんないならレスしないでくださいー
親切心であろうと自己満足であろうと邪魔にしかならないので

678 :デフォルトの名無しさん:2010/09/17(金) 12:05:09
自己矛盾レス乙です

679 :デフォルトの名無しさん:2010/09/17(金) 12:05:14
了解

680 :デフォルトの名無しさん:2010/09/17(金) 12:07:40
理解した
もう無駄なレスはしないと誓うぜ

681 :デフォルトの名無しさん:2010/09/17(金) 12:11:21
VC#2005使ってると、匿名デリゲートじゃなくて、
Javaの匿名クラスが使いたくなることがあるんだけど、
VC#2010だと出来たりします?

買おうか迷い中なのです。

682 :デフォルトの名無しさん:2010/09/17(金) 12:13:58
>>681
レスしようと思ったけど
よくわからないのにレスしたらまた怒られるし
やめとくわ

683 :デフォルトの名無しさん:2010/09/17(金) 12:15:04
俺も怒られそうだからやめとく
ゴメンな^^;

684 :デフォルトの名無しさん:2010/09/17(金) 12:15:56
Javaの匿名クラスと同じ物は無いな
匿名型は使いどころは全く違うし

685 :デフォルトの名無しさん:2010/09/17(金) 12:48:06
むむむ、残念。

Java使ってると逆に C# が懐かしくなるんですけどね。
簡単なところで、partial クラスとか。


686 :デフォルトの名無しさん:2010/09/17(金) 13:07:45
何とかしろヘジ

687 :デフォルトの名無しさん:2010/09/17(金) 13:24:43
>>681
答え分かるんだけど
よくわからない野次馬に怒られるし
やめとくわ

688 :デフォルトの名無しさん:2010/09/17(金) 13:58:36
www
レス禁断症状www
www

689 :デフォルトの名無しさん:2010/09/17(金) 14:07:42
                       /: : : : : : : : : : : : :
                   | : : : : : : : : : : : : :  や     よ  つ
                   | : : : : : : : : : : : : :  め    く  れ
 チラッ            __    ゝ . __: : : : : : : : :  と    わ  l
.      r‐-==ニ二     `ヽ_____  Τニi┬-  く    か
       `>‐┬――- 、 ∨       `ヾ=L}    わ     ら  俺
      /⌒ヽ | 、_ __   ヽ |         \}    l     な  答
      /    \ | rq __   ||ニ=-       ヽ         い  え
.    /-‐=ミ ヽ|  ノ     リ^i-‐      Y   |ヽ、答     野  分
.   {7 ̄\  `|   ‐ァ    〃―-      | }  ,′: え   次  か
. ー--/     ヽ_,∧     / -‐=ミ    j/ /::::::: 分    馬  る
.   ′    /    ー--‐く/     ∧  ∠..__/:::::::::: か    に  ん
      /           /    /__{/      ̄ ̄る    怒   だ
     /         , '      /            ん    ら  け
.    /             /     ′           だ   れ  ど
.  /             /     /               け   る
                /    /              ど    し
             /  /                な
.             /   ′                 l
           ,イ   /
         〃///
        {/イ

いるよね
こういう人www


>>681
C#に完全なJava互換を夢見ていると痛い目みるよ

690 :デフォルトの名無しさん:2010/09/17(金) 14:09:04
FormのResizeを、Width:Height=4:3とかの縦横比固定に制限したいのですが、
横方向は良いんですが、縦方向が上手く行きません。

MSDNのControl.Resizeイベントの項目に正方形の例があって、
これを試しても、上下方向の伸び縮みはダメです。

何か制限とかあるのでしょうか。

691 :デフォルトの名無しさん:2010/09/17(金) 14:12:15
>>690
>MSDNのControl.Resizeイベントの項目に正方形の例
URLプリーズ

692 :デフォルトの名無しさん:2010/09/17(金) 14:13:21
制限じゃなくて理屈の問題
Control.Resizeの例だとHeight = Widthにしてるんだから高さ変えても横幅に戻されるのは当然でしょ
前回のサイズを覚えておいてどっちにリサイズされたかを判断して
幅を高さに合わせるか高さを幅に合わせるか決める

ただし斜め方向のリサイズが鬼門

693 :test:2010/09/17(金) 14:22:27
test

694 :デフォルトの名無しさん:2010/09/17(金) 14:30:16
斜め方向の場合はアス比をいちいち計算して4:3より大きかった時は縦を補正、小さいときは横を補正

695 :デフォルトの名無しさん:2010/09/17(金) 14:31:15
すればマウスカーソルがウィンドウ枠から飛び出すことが無くなる

696 :デフォルトの名無しさん:2010/09/17(金) 14:48:26
 
 
 

 
 


697 :690:2010/09/17(金) 14:51:40
>>691
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.resize%28VS.80%29.aspx

>>692
そこは解っていて、回避しています。

>>694
Matn.Abs(今回のWidth - 前回のWidth) > Math.Abs(今回のHeight - 前回のHeight)
で変化の大きい方を選択して、前者の場合はHeightを、後者ではWidthを比から求めています

どうも、前回のHeightってのが更新されないのが原因みたいで、
前回のWidthと一緒にリサイズ後に取得しているのに、その様に更新されていかない...

Formの最大や最小も制限してたりするので、シンプルなProject作って試してみます


698 :デフォルトの名無しさん:2010/09/17(金) 14:52:54
空白は甘え

699 :690:2010/09/17(金) 15:30:14
失礼しました
正方形のサンプルを新規で直したらフツーに動きました

逆にコレから肉付けしていきます

以下にソースを

int x, y;
private void Form1_Load(object sender, EventArgs e)
{
x = this.Width;
y = this.Height;
}
private void Form1_Resize(object sender, EventArgs e)
{
Control control = (Control)sender;
if (Math.Abs(control.Size.Height - y) > Math.Abs(control.Size.Width - x)){
control.Size = new Size(control.Size.Height, control.Size.Height);
}
else{
control.Size = new Size(control.Size.Width, control.Size.Width);
}
this.Refresh();
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
Control control = (Control)sender;
x = control.Size.Width;
y = control.Size.Height;
}

スレ汚しごめんなさい

700 :デフォルトの名無しさん:2010/09/17(金) 16:12:41
このスレではcodepadとかgithubに投稿して質問するのはタブーですか?

701 :デフォルトの名無しさん:2010/09/17(金) 16:22:37
>>700
むしろそうしてください

>>701のようなのがどっちかといえばめんどくさいw
インデントは取れちゃってるし・・w

一応>>1-3くらいにここに貼ってねって書いてあるだけどねw

702 :デフォルトの名無しさん:2010/09/17(金) 16:23:18
あああ
自分の書き込みに安価してどうするw

>>699のようなコード◎貼りはちょっと・・・

703 :デフォルトの名無しさん:2010/09/17(金) 16:24:03
スレ汚しにもほどがあるからな

704 :デフォルトの名無しさん:2010/09/17(金) 16:58:11


705 :デフォルトの名無しさん:2010/09/17(金) 17:00:47
いちいち見に行くの面倒くさいからここに書いてくれ

706 :デフォルトの名無しさん:2010/09/17(金) 19:42:35
1から10の数字を足すコードはこれでいいですか?
もっと良い書き方がありましたらご教示おねがいします

int sum = 0;
for (int i=1; i<=10; i++){
sum = sum + i;
}

707 :デフォルトの名無しさん:2010/09/17(金) 19:43:59
>>706
質問する前にこれ全部読みなさい
http://msdn.microsoft.com/ja-jp/library/6a71f45d%28VS.80%29.aspx

708 :デフォルトの名無しさん:2010/09/17(金) 19:52:20
>>706
var sum = Enumerable.Range(1, 10).Sum();


709 :デフォルトの名無しさん:2010/09/17(金) 19:54:59
int sum=55;

710 :デフォルトの名無しさん:2010/09/17(金) 19:58:48
良い書き方を聞かれると変態的な書き方を答えたくなるものだ…。

711 :デフォルトの名無しさん:2010/09/17(金) 20:04:39
>>707
どこか演算子間違ってますか?

>>706
スマートで便利ですね。参考になります

712 :デフォルトの名無しさん:2010/09/17(金) 20:14:03
int aho=-1;

713 :デフォルトの名無しさん:2010/09/17(金) 20:22:47
リファレンス見れば分かるようなことを
疑問に思うたびに聞いて回答つくの待つのかって話

22分待つ前に解決するだろ?

714 :デフォルトの名無しさん:2010/09/17(金) 20:25:44
>>711
間違ってますか?じゃねえよ。
質問する前に全部読めっつったろ。
疑問符使う前にまず読め。

715 :デフォルトの名無しさん:2010/09/17(金) 20:28:20
申し訳ないけど優しくレスしてください
ここではそれがルール

716 :デフォルトの名無しさん:2010/09/17(金) 20:39:09
はじめにリファレンスなど参照くださいまし。ふくよかなお方。

717 :デフォルトの名無しさん:2010/09/17(金) 20:40:56
sum = sum + i;
が気に入らないのかな。
sum += i;
があるのに。

まあでも、正直、この手の代入演算子、ほんとに必要だったかどうか…

718 :デフォルトの名無しさん:2010/09/17(金) 20:45:22
>>707
それ読んで理解したら解決するの?するわけねーだろ。

719 :デフォルトの名無しさん:2010/09/17(金) 20:47:19
int sum=10*(1+10)/2;

720 :デフォルトの名無しさん:2010/09/17(金) 20:55:00
”良い書き方”ってのが抽象的なんだよなー
代入演算子は趣味に近いからまずどうでもいいとして

上達してくれば良い書き方ってある程度身につくものでしょう?
例えばこのスレの人間でも>>708に対して「スマートで便利ですね」なんて感想を抱く奴は1割もいないと思う

”良い書き方”であると判断するためには
これがなぜ”良い書き方”なのか?を理解していなければ意味がないわけよ
そこをショートカットして”良い書き方”だけ知ったとしても変化に対応できない
このコードの”良い書き方”はどうなりますか?このコードではどうなりますか?って

721 :デフォルトの名無しさん:2010/09/17(金) 20:57:29
今日の晩御飯はおそば
まで読んだ。

722 :デフォルトの名無しさん:2010/09/17(金) 20:58:27
いや、スマートで便利だと思うわ。
目からウロコ。

723 :デフォルトの名無しさん:2010/09/17(金) 21:05:05
  。    。 スポポポポーン!!!
 。 。 。 ゚
  。゚。゜。 ゚。 。
 /  /
( Д )

724 :デフォルトの名無しさん:2010/09/17(金) 21:06:42
ウロコっつーかイクラか数の子のようだな

725 :デフォルトの名無しさん:2010/09/17(金) 21:06:41
>>708
スマートで便利ですね

726 :デフォルトの名無しさん:2010/09/17(金) 21:09:04
別にマの育成スレでもないのだから
答えたい奴が答えて答えたくない奴は答えないでいいと思うよ
それが気に食わないのなら見なければいい

727 :デフォルトの名無しさん:2010/09/17(金) 21:38:16
  。    。 スポポポポーン!!!
 。 。 。 ゚
  。゚。゜。 ゚。 。
 /  /
( Д )

728 :デフォルトの名無しさん:2010/09/17(金) 21:38:49
>>714
すいません意味がわかりません
sum += iと書いたほうがいって事ですか?

729 :デフォルトの名無しさん:2010/09/17(金) 21:41:54
答えたくなくても答えたってかまわないし、気に入らないのを見るのも自由。

730 :デフォルトの名無しさん:2010/09/17(金) 21:43:24
昨日相談室で荒らしてたバカがまたここで荒らしてるんじゃねえの

731 :デフォルトの名無しさん:2010/09/17(金) 21:45:53
そんなことよりクワガタ虫の話でもしようぜ(バグ取り的な意味で)

732 :デフォルトの名無しさん:2010/09/17(金) 21:47:26
特徴からしてそうだな
http://hibari.2ch.net/test/read.cgi/tech/1280008155/937


733 :デフォルトの名無しさん:2010/09/17(金) 21:48:03
グラマって変な正義感を持った奴が多いよなw
間違った考えの奴は俺が正す!(キリッみたいな思考の押し付けが多い希ガス
他人のコーディングルールを直しまくる病気みたいな人に多い
小さな親切、大きなお世話w

734 :706:2010/09/17(金) 21:56:25
こういう書き方を覚えたのに書いておきます
int sum = (1 + 10) * 10 / 2;

ちと>>707さんに言いたい事がよく分かりませんでしたが〆ます

735 :720:2010/09/17(金) 21:58:41
俺は>>732とは違うぞ
見たくなけりゃ見なければいいというのも至極最もだと思うよ

特徴って句読点も口調も違うじゃん

736 :デフォルトの名無しさん:2010/09/17(金) 22:00:00
よくわからんが数列のサンプルがマイクロソフトにあったん?

737 :デフォルトの名無しさん:2010/09/17(金) 22:02:39
いやおめぇさん、荒らしは特徴を消してこそプロよ

738 :デフォルトの名無しさん:2010/09/17(金) 22:03:47
>>719
ちょww質問者気づいてなかったのかスルーされてんぞw

739 :デフォルトの名無しさん:2010/09/17(金) 22:36:19
>>732
その被害妄想、もう立派な病気だと思うわw

っていうか、自分の気に障る奴はみんな敵、という2chには多い敵味方二元論的
思考をする奴の特徴がよく表れてるな。

ストーカーか気色悪いわ。

740 :719:2010/09/17(金) 22:52:34
>>734 おいこら! 腕立て50回の刑じゃ

741 :デフォルトの名無しさん:2010/09/17(金) 23:01:55
やーだお

742 :デフォルトの名無しさん:2010/09/17(金) 23:04:35
んで>>707は何故リファレンスを読めって言ったの?


743 :デフォルトの名無しさん:2010/09/17(金) 23:05:37
お勉強になるからだよ

744 :デフォルトの名無しさん:2010/09/17(金) 23:10:04
初心者が>>707読めるならこんなスレ要らん

745 :デフォルトの名無しさん:2010/09/17(金) 23:14:35
sum = sum + iもsum += iも別に書き方が違うだけで同じことだから707はもっと凄いことに気づいたんじゃないの?

746 :デフォルトの名無しさん:2010/09/17(金) 23:15:56
自分の知っていることに対してだけ高圧的な態度になるのはダメだね

747 :デフォルトの名無しさん:2010/09/17(金) 23:27:55
もうだめ猫のスレ

748 :デフォルトの名無しさん:2010/09/17(金) 23:29:44
>>745
その程度であんな必死にリファレンス嫁って意味プ

749 :デフォルトの名無しさん:2010/09/17(金) 23:31:33
>>706 >>720 >>738
煽りじゃなくて本気だからちゃんと聞いてくれ
>>719 が正解だと思う

>>734 で結論も出てるね

とにかく順番に真面目に足すのが一番最悪

750 :デフォルトの名無しさん:2010/09/17(金) 23:31:47
ム板らしくないな

751 :デフォルトの名無しさん:2010/09/17(金) 23:35:02
富豪的プログラミングで行こうぜ

752 :デフォルトの名無しさん:2010/09/17(金) 23:37:22

int sum = (1 + 11) * 11 / 2;

753 :デフォルトの名無しさん:2010/09/17(金) 23:39:46
int i = 10;
int sum = (1 + i) * i / 2;

754 :デフォルトの名無しさん:2010/09/17(金) 23:40:06
いや、でも、今回みたいに「10までの和」っていう10がハードコードされてるなら、
var sum = 55; が一番効率いいわけだし。
変数使って n までの和なら var sum = (n * (n + 1)) / 2; がいいだろうし、
実は後々任意の配列の和になるとかなら var sum = array.Sum(); だろうし。

755 :デフォルトの名無しさん:2010/09/17(金) 23:40:25
自己愛性人格障害とはなにか
http://homepage1.nifty.com/eggs/narcis.html

 他人から侮辱されたと思い込んだりした場合、自分を守るために、非常に激しく怒ったりします。
あまりにも自己中心的な怒り方なのですが、本人は必死です。

 妄想の種になるようなものがないときは、他人の欠点を捜し出して見下したりします。ありとあらゆる
理由をつけて他人を見下します。「貧乏人の癖に」、「不細工な顔をしているくせに」、「頭が悪いくせに」etc...。
実際にどうであるかということよりも、とにかく見下すことができればそれでいいのです。

 もともと、裏付けのない優越感ですので、話のつじつまを合わせるために嘘をつくこともありますが、
本人には嘘をついているという意識はあまりありません。ときにはホラ話のように、話がどんどん大きく
なっていって、どこまで本当なのか分からなくなります。

756 :デフォルトの名無しさん:2010/09/17(金) 23:41:45
コピペ君って馬鹿だな、まで読んだ。

757 :デフォルトの名無しさん:2010/09/17(金) 23:42:41
●持ちだとIPわかるからおもすれwww

758 :デフォルトの名無しさん:2010/09/17(金) 23:43:45
>>754
それ1〜10の値が出てこないじゃん

759 :デフォルトの名無しさん:2010/09/17(金) 23:45:29
IP見れるのは権限与えてもらってる人だけだから●は見えないです

760 :デフォルトの名無しさん:2010/09/17(金) 23:48:00
>>756
>>755

761 :デフォルトの名無しさん:2010/09/17(金) 23:50:02
精神的な疾患の話?

762 :デフォルトの名無しさん:2010/09/17(金) 23:58:52
Start:
文字入力
入力された文字数n取得
if (n == 0)
{
goto Start;
}
else
{
while (i < n)
{
char valnum = enc[i];
switch (valnum)
{
case 'a':
number = 1;
break;



}
i++;
}

こんな感じの作ってるんですが

最後にループを抜けた時、
ループを抜けるまでに変数numberに代入された値を

一週目の値、二週目の値、三週目の値・・・

というように順番に表示するのってどうすれば良いんでしょうか

763 :デフォルトの名無しさん:2010/09/18(土) 00:01:49
>>739
お前は本物っぽいなw

764 :デフォルトの名無しさん:2010/09/18(土) 00:05:10
さいしょのgoto はdo while でいいな。

while() {
 n = ...
 system.diagnostics.debug.writeline(n);
}

765 :デフォルトの名無しさん:2010/09/18(土) 00:07:23
あぁ、number だったか。まぁいいや。

766 :デフォルトの名無しさん:2010/09/18(土) 00:09:34

string input = String.Empty;
do
{
input = Console.ReadLine();
} while (input.Length == 0);

foreach (char c in input)
{
Console.WriteLine((short)c - 96);
}

767 :デフォルトの名無しさん:2010/09/18(土) 00:16:12
String.Emptyじゃなくてnullのような気がするけど…まあいいか
好みだよな好み

768 :デフォルトの名無しさん:2010/09/18(土) 00:19:21
それはどうでもいいが、マジックナンバーは感心しない

769 :デフォルトの名無しさん:2010/09/18(土) 00:24:48
goto久しぶりに見た
switch caseでもしばらく使わなかったけど

770 :デフォルトの名無しさん:2010/09/18(土) 00:41:59
switch caseって使わないの?

771 :デフォルトの名無しさん:2010/09/18(土) 00:47:11
switch内でgoto caseで他のケースに飛ぶやつだろ
やってることは普通にgotoだから上向きに飛ばしたりすると簡単にスパゲティになる

772 :デフォルトの名無しさん:2010/09/18(土) 00:51:19
使えるのは知ってるが今のところ使ったことはない。

773 :デフォルトの名無しさん:2010/09/18(土) 01:01:44
いじってたら訳分かんなくなっちった

書き忘れ
入力された英文字を数値に変換するプログラムです

>>764
名前 'system' は現在のコンテキスト内に存在しません。て出ます…

>>766
エラーは出ないんですが何も起こりません…
打ち忘れてたんですが i++の前に

Console.Write("{0} → {1}\n", valnum, number); //enc入力された文字 valnum入力されたi番目の文字 numberは変換後の数値

で文字が変換されているか見てるんですがそれ以降の表示が何もないです
どの部分に打ち込めばいいのでしょう?

774 :デフォルトの名無しさん:2010/09/18(土) 01:09:51
宿題か?

775 :デフォルトの名無しさん:2010/09/18(土) 01:18:33
>>774
趣味というか暇潰しの領域です・・・

776 :デフォルトの名無しさん:2010/09/18(土) 01:21:54
何を参考にやってます?

777 :デフォルトの名無しさん:2010/09/18(土) 01:24:41
>>773
>>764 は電車の中で打ったから
めんどくさくて、大文字が小文字になってる。

VisualStudio が正確なスペルを教えてくれると思うんだが。
もしかして、VSEE ですらないのかな。

ならばたぶん、ぐぐるとよい。

778 :デフォルトの名無しさん:2010/09/18(土) 01:28:41
なるべく>>762>>773を残しつつ書いたつもり
http://ideone.com/4PaTQ

>>766は何も起こらないって事はないと思うがなあ

779 :デフォルトの名無しさん:2010/09/18(土) 01:32:45
お騒がせしました 解決しました

>>766のやり方で無事出来ました
こんな数行で済むとは恐ろしいものです…
これを元に色々弄っていきたいと思います

>>776
暇がある時に++c++;という所や猫でもわかるプログラミングという所を覗いて読んで
後々打つ時に参考にしてます

780 :デフォルトの名無しさん:2010/09/18(土) 01:35:56
>>778
おお!!こんな感じです!ありがとうございます!
すごい参考になりました。どうもです〜

781 :デフォルトの名無しさん:2010/09/18(土) 01:55:42
複数行テキストボックスのTextChangedイベントに適当に処理を書き
(自分はApplication.DoEvents()と書きました)、実行時にテキストボックスに
・まずなにか文字列を入力
・IMEをONにして、文字列を選択状態にする
・日本語を入力し、確定
すると文字列の順番が入れ替わってしまい、
「あいう」と打つと「うあい」のように末尾の文字が先頭に来てしまいます

TextChangedイベントハンドラを削除するとこの現象はなくなりました
普段はGoogle日本語入力を使っていますがMSIMEを使っても同様です
TextChangedイベントを使いつつこの現象を回避できないでしょうか?

WinXPSP3 VisualC#2008Express

782 :デフォルトの名無しさん:2010/09/18(土) 02:17:15
>>781
ちったあ生きてるうちに頭使おうよ。
問題は「TextChangedイベントのイベントハンドラがあるかないか」なの?
違うでしょ。

イベントハンドラの中で何をやっているか、それが問題なんじゃないの?
Application.DoEvents()って何のためですか、って人に聞かれて答えられる?
答えられないはずだよね。

783 :デフォルトの名無しさん:2010/09/18(土) 02:39:00
>>782
すみません、言葉が足りなかったと思います。
TextChangedイベントは、日本語で例えば「あいう」と打てば
「あ」「い」「う」と3回発生すると思うのですが、問題はこの発生する順番でして、
文字列を選択した状態から入力した場合にはこの順番通りに発生して
くれません。
→「いうあ」となってしまいます。すみません>>781はちょっと間違いました

一方イベントハンドラの内容をコメントアウトする、あるいはハンドラを削除
した場合には入力した順番のまま文字が確定されます。

DoEvents()そのものは無意味です。MessageBox.Show()でもなんでもいいです。
なぜTextChangedイベントハンドラ内でなにか処理を行う場合、
文字列の選択状態から入力した際にハンドラが呼ばれる順番が
変わってしまうのか?というのが私の質問です。

784 :デフォルトの名無しさん:2010/09/18(土) 03:12:55
ちっとも再現しないが
Application.DoEventsもMessageBox.Showも無意味なんて言葉で片付くほど単純なメソッドじゃないぞ
Debug.WriteLineぐらいで確認してみ

785 :デフォルトの名無しさん:2010/09/18(土) 03:33:29
>>784
Debug.WriteLine(textBox1.Text);
とだけ書いてみると出力は「あいう」

Application.DoEvents();
をそのすぐ下に追加すると「いうあ」

という順番でイベントが発生しました。おっしゃるとおりテストのつもりで
使ったDoEventsに原因があったようです(現在のイベントが後回しにされてしまう?)
TextChangedイベントハンドラ内ではDoEventsを使わないことにしました。
ありがとうございました。

786 :デフォルトの名無しさん:2010/09/18(土) 03:38:09
そこだけに限らずApplication.DoEventsなんて使うなよ

787 :デフォルトの名無しさん:2010/09/18(土) 05:44:27
C#のハッシュテーブルの使い方がよくわかりません。
Perlでいうところの、
{
title => time,
body => 'DESCRIPTION',
}
このような連想配列を作りたいのですが、C#ではどのようにかけばいいのでしょうか。
連想配列は無名でなくてもかまいません。

788 :デフォルトの名無しさん:2010/09/18(土) 06:18:13
こんなんだめなん?それともGenericを使いたい?

Hashtable ht = new Hashtable();

ht["time1"] = "DESCRIPTION1";
ht["time2"] = "DESCRIPTION2";

foreach (string key in ht.Keys) {
Console.WriteLine("{0} : {1}", key, ht[key]);
}
Console.ReadLine();

if (ht.ContainsKey("time2"))
Console.WriteLine("{0} is contained.", "time2");
Console.ReadLine();

789 :デフォルトの名無しさん:2010/09/18(土) 06:50:18
今更Hashtableは無いな
Dictionary<TKey, TValue>で

790 :デフォルトの名無しさん:2010/09/18(土) 06:59:28
Hashtable ht = new Hashtable({"title": time, "body": "DESCRIPTION"});
こんな風に書けないんでしょうか


791 :デフォルトの名無しさん:2010/09/18(土) 07:48:38
C#3.0以降なら
new Dictionary<string, string>() { { "title", time }, { "body", "DESC" } };

792 :デフォルトの名無しさん:2010/09/19(日) 03:32:03
成功するとstring、失敗するとfaultが返ってくるWebAPIをたたくアプリケーションを作成しているのですが、
faultとはC#ではなににあたるのでしょうか

793 :デフォルトの名無しさん:2010/09/19(日) 03:55:41
例外

794 :デフォルトの名無しさん:2010/09/19(日) 05:50:48
Listboxで未選択はどのように取得するのでしょうか?
ToString()で比較するときに、未選択の状態を文字列と比較しようとするとエラーが出てしまいます。

795 :デフォルトの名無しさん:2010/09/19(日) 06:19:28
選択されてるインデックスが-1になってるはず
具体的なプロパティ名は忘れた SelectedIndexだったかなあ?

796 :デフォルトの名無しさん:2010/09/19(日) 06:29:29
selectedIndexで評価できるのはわかるのですが、SelectedItemでは評価できないのでしょうか?

797 :デフォルトの名無しさん:2010/09/19(日) 07:08:30
>>796
http://www.apfield.jp/csgarden/listbox.html#listbox11

798 :デフォルトの名無しさん:2010/09/19(日) 07:46:04
複数のフォームで共有したい複数の変数があるのですがnamespace直下に以下のような形で
作るのはやはり好ましくないでしょうか?。
あれ、型はpublicでも保有するデータを各フォームでprivate Configにしておけば問題ないと
考えてもいいのかな?。

namespace{
public struct Config
{
public string 秘密の鍵;
}
}

799 :デフォルトの名無しさん:2010/09/19(日) 08:00:53
>>798
共有って一言で書いてあるから要件が不明
それで動くならそれで構わないんでないかと答える

800 :デフォルトの名無しさん:2010/09/19(日) 08:36:07
>>799
ありがと
同期の必要は無く定数のように使いまわしたかっただけなので大丈夫?です

801 :デフォルトの名無しさん:2010/09/19(日) 09:24:44
public string 秘密の鍵;


802 :デフォルトの名無しさん:2010/09/19(日) 09:32:00
インターフェイスの利点となぜ使うのかがよくわからないのですが、
わかりやすい説明や、例えなどはありませんでしょうか。

803 :デフォルトの名無しさん:2010/09/19(日) 09:47:10
・実装を隠蔽して抽象データ構造のアクセサのみでプログラムを書ける ← 具象クラスでも出来ること
・実装を強制してヒューマンエラーを少なくできる ← 具象クラスでは出来ないこと
・実装を後回し(or プラグイン)にしてコアルーチンとの癒着による弊害を抑える

あと抽象データ構造の内部実装に深くかかわるコンストラクタは記述できない点もあるね

インタフェースってば抽象データ構造そのものだから具象クラスとほとんど変わらない
未実装の場合はコンパイラが警告してくれるくらい


どういう前提知識を持っているのかわからねーので、例えはきっと他の人が書いてくれるはず

804 :デフォルトの名無しさん:2010/09/19(日) 11:44:01
誤解されるように書くとインターファイスは資格のようなもの

805 :デフォルトの名無しさん:2010/09/19(日) 12:03:35
とりあえず、仮想メソッドとか動的ディスパッチの利点はわかってんのかな?
実装と規約の分離とか。

あと、abstract class と比べての利点なのか、
動的言語みたいな runtime な型チェックと比べての利点なのか、
一部の関数型言語みたいな non-intrusive な型制約と比べての利点なのか。

上から順に、
abstract class と違って多重継承時に問題を抱えない
静的に型を解決できるんで、コンパイル時点でミスを洗い出せる&開発環境の補助受けやすい
関数内部のうかつな変更で利用者側に迷惑かけない
とか。

806 :デフォルトの名無しさん:2010/09/19(日) 12:28:42
>>804
誤解されるように書くのかw

807 :デフォルトの名無しさん:2010/09/19(日) 12:38:18
別に使わなくてもプログラム書けるのなら 使わなくてよくないですか?

808 :デフォルトの名無しさん:2010/09/19(日) 12:39:08
うん。

809 :デフォルトの名無しさん:2010/09/19(日) 12:39:11
構わないよ
もともと提供された機能を全て利用してプログラミングしてる奴などいないんだ
必要になったものをそのときだけ使えばいい

810 :デフォルトの名無しさん:2010/09/19(日) 12:40:52
>>807
その理屈でいえば制御構文はifとgotoだけでいいことになる
メソッドもクラスもいらん

811 :デフォルトの名無しさん:2010/09/19(日) 12:49:25
>>802
家電のインターフェイスと同じ。
異質の物でも同じ物とみなして使いたいことってしばしばあるわけ。

例えば、PC、HDDレコーダー、TVゲームはそれぞれ異質なものだが、「映像ソース」
という面では同じものとみなすことができる。

そして、「映像ソース」という意味での同一性を体現しているのが、例えばHDMIという
インターフェイスだと考えることができる。

こういう視点で、例えばIDisposableとかIEnumerableみたいな具体的なインターフェイスの
使われ方を眺めてみればきっと腑に落ちると思うよ。(この二つはC#で特別扱いされてるから
あんまり適切じゃないかもしれんけど....)

812 :デフォルトの名無しさん:2010/09/19(日) 13:14:38
IDisposableはともかくIEnumerableは特別扱いされてない
C#のコンパイラはけっこうダックタイピング的な動作をする

813 :デフォルトの名無しさん:2010/09/19(日) 13:19:50
>>810
個人なら別にいいんだけどね、書けるもんなら書けば?で。

>>812
foreach はね。
でも、(コンパイラ機能じゃないけど)LINQ だと特別な位置にいるわけで。

814 :デフォルトの名無しさん:2010/09/19(日) 13:23:33
LINQのクエリ式も特定のインターフェイスには全く依存してないよ
whereが.Whereに変換されるだけの超簡単仕様

815 :デフォルトの名無しさん:2010/09/19(日) 13:35:26
クエリ式だけが LINQ じゃないってば。
Enumerable に定義された IEnumerable の拡張メソッド群の話。

816 :デフォルトの名無しさん:2010/09/19(日) 13:37:13
違うか、IEnumerable を特別たらしめてるのはむしろ yield return で、
だから LINQ 標準で IEnumerable の拡張メソッドは充実してると考えるべきか。

817 :デフォルトの名無しさん:2010/09/19(日) 13:39:42
たまにはQueryableのことも思い出してあげてください

818 :デフォルトの名無しさん:2010/09/19(日) 13:40:06
ああyieldがあったな
>>812はちょっと嘘だ

819 :デフォルトの名無しさん:2010/09/19(日) 14:45:36
Nullable<T> みたいなクラスを作ろうとしているのだけど、

public struct MyNullable<T> where T : struct
{
 public MyNullable(T value) { }
 public static implicit operator MyNullable<T>(T value) { }
}

という風に書くと、

MyNullable<int> a = null;  // Null 非許容の値型であるため、null を 'MyNullable<int>' に変換できません。

となってしまうのですが、なんか良い解決方法ないですか?

820 :デフォルトの名無しさん:2010/09/19(日) 14:49:50
struct→class

821 :デフォルトの名無しさん:2010/09/19(日) 14:52:47
System.Nullable<T>がstructなのにnullを代入できるのは
単にコンパイラがこの型を特別視してるからだよ

822 :デフォルトの名無しさん:2010/09/19(日) 14:54:05
自分でstrict指定しておいてこの言い草じゃコンパイラさんも報われないな

823 :デフォルトの名無しさん:2010/09/19(日) 15:09:35
>>819
意味があるかどうかわからないけど、Nullable<T>からMyNullable<T>への暗黙変換を
定義しておけばそういう記述も可能にはなるみたい。

824 :デフォルトの名無しさん:2010/09/19(日) 15:48:48
 public MyNullable<T>(T? value) { }
 public static implicit operator MyNullable<T>(T? value) { return MyNullable<T>(value); }

で、なんとかなりましたー。
お答え感謝です。

825 :デフォルトの名無しさん:2010/09/19(日) 15:50:16
ブラウザでsubmitボタンのあるhtmlを開いて、そのボタンを押すプログラムってどのライブラリを使えばできますか?
マウスの位置を移動してクリックするのではなく、アクティブじゃなくても直接押せる感じの事がやりたいのですが方法がわかりません

826 :デフォルトの名無しさん:2010/09/19(日) 16:13:34
WebBrowser使ってDOMからbutton要素取ってきてonclick呼べばいい
HTMLやJavaScriptが分からないならスレ違い

827 :デフォルトの名無しさん:2010/09/19(日) 18:46:06
>>825
invokeMember(”click”)
ttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/085de807-5a6e-4ddc-a88e-bd2af822524a

828 :デフォルトの名無しさん:2010/09/19(日) 19:21:27
submitボタン, html, ライブラリ と ブラウザ の抽象レベルが違っているのできっとおっぱお

829 :デフォルトの名無しさん:2010/09/20(月) 00:35:22
(´・ω・`)かいーの

830 :デフォルトの名無しさん:2010/09/20(月) 00:38:50
もう1年ぐらいC#触ってないや・・・忘れたかも・・・

831 :802:2010/09/20(月) 06:29:55
>>803
詳しくありがとうございます。
自分が勉強しているサンプルソースコードに、インターフェイスで変数宣言していて
それにインターフェイスでキャストしたものを代入している分があるので、インターフェイスの
意味が全く分からなくなってしまい、質問させていただきました。
書き込み後もいろいろと調べているのですが、その文の意味が全く分からずになやんでおります。

>>805
現在勉強中のため、理解不足の点もあるかと思います。
ありがとうございます。



832 :デフォルトの名無しさん:2010/09/20(月) 06:52:58
>>825
この質問よく見るけどGETとかPOSTじゃだめなのか

833 :デフォルトの名無しさん:2010/09/20(月) 08:11:08
C#の勉強のために、オライリーの「プログラミング C#」を読んでいたのですが
途中から理解できなくなってしまいました。
内容で言うと、基本構文は理解できたのですが、インデクサあたりからわけがわからなくなり、
そこから先はほとんど読みませんでした。

基本構文はわかったつもりなのですが、それから1つステップが先の書籍などはありませんか?


834 :デフォルトの名無しさん:2010/09/20(月) 08:13:44
>>831
調べるより馴れる方がいいんでないの?
とりあえずサンプルコード打ち込んで実行してみて具合を掴まないことには理解出来ないと思うよ

835 :デフォルトの名無しさん:2010/09/20(月) 08:18:34
オライリーのC#クックブックとか。
あと、特定の構文だけ分からない程度まで分かってきたんなら、ネットで調べるのもアリだな。

836 :833:2010/09/20(月) 08:31:24
>>835
ありがとうございます。
C言語とPerlを少しかじったくらいの知識しかないため、オブジェクト指向にも難儀しています・・。

まずはクックブックを立ち読みしてみます。

837 :デフォルトの名無しさん:2010/09/20(月) 09:21:31
俺はいまだに構造体になぜ引数なしのコンストラクタが作れないのかわからん。
めっさ不便なんだが。

838 :デフォルトの名無しさん:2010/09/20(月) 09:24:55
>>837
>引数なしのコンストラクタが作れない
あってもコントラクタ側は無視すればいいし、利用する側はダミー値入れとけばええのとちゃうの?


839 :デフォルトの名無しさん:2010/09/20(月) 09:31:18
staticメンバ関数作れば良いじゃない

840 :デフォルトの名無しさん:2010/09/20(月) 09:31:33
引数なしのコンストラクタを作ると、
構造体の配列を作ったときにコンストラクタが連続呼び出しされるだろ。
それの途中で例外が発生したらどうなるのか。

841 :デフォルトの名無しさん:2010/09/20(月) 09:51:41
作成されたものはデストラクトすればいいんじゃないの

842 :デフォルトの名無しさん:2010/09/20(月) 09:56:36
・パフォーマンスが落ちるから
・default(Hoge)を使えば初期化されていないインスタンスが作れてしまうから

843 :デフォルトの名無しさん:2010/09/20(月) 10:07:45
>・default(Hoge)を使えば初期化されていないインスタンスが作れてしまうから
これは後付じゃないかな?

844 :デフォルトの名無しさん:2010/09/20(月) 10:15:23
そのうち、適当な理由をつけて、多重継承してもいいんじゃないのとか言い出しそうだな。

845 :デフォルトの名無しさん:2010/09/20(月) 10:18:07
>>831
ローカル変数なら、C# だと var で宣言すりゃいいと思う。
インターフェイスで宣言するのは Java 屋さんの書いたコードに多いかな。

メソッドの引数とかはインターフェイスにしとかないと汎用性落ちるけども。

>>833
「どういう構文がある」なんて覚え方しようとするから理解できないんじゃないの?
「どうしてそういう構文がある」「「その構文を何に使う」で考えてる?

http://ufcpp.net/study/csharp/oo_indexer.html
↑この辺りの概要呼んでみても意味わからない?

846 :デフォルトの名無しさん:2010/09/20(月) 10:20:43
int a=bでコンストラクタが働いたら不都合だからじゃないの?

847 :デフォルトの名無しさん:2010/09/20(月) 10:31:40
>>842
配列の初期化でも初期化されていないインスタンスが作れてしまう
構造体が0初期化されるのでゼロページが割り当てられる

一応CLRの仕様としては構造体のデフォルトコンストラクタを定義できる。でも>>842なんかの事情でC#では作れないようにしてある。

848 :デフォルトの名無しさん:2010/09/20(月) 11:26:52
確かに>>846の場合ってどうなるんだろうな
恐らく今のCLRではaのコンストラクタは呼ばれないだろうけど
副作用があるかもしれないから正式に構造体のデフォルトコンストラクタをサポートするのであれば呼ぶべきな気はする

849 :デフォルトの名無しさん:2010/09/20(月) 11:39:42
だから C# は構造体を 0 初期化&bitwise コピー にしたんでは。

850 :デフォルトの名無しさん:2010/09/20(月) 13:13:23
文字列の最後の文字を確認したいのですが、
string hoge = "hello";
hoge[hoge.length - 1];
もっとスマートに確認する方法はありませんか?

851 :デフォルトの名無しさん:2010/09/20(月) 13:16:31
すみません
hoge.Textですね。

852 :デフォルトの名無しさん:2010/09/20(月) 13:16:47
>>850
Extension method の Last か LastOrDefault とか

853 :デフォルトの名無しさん:2010/09/20(月) 13:20:05
PHPやPerlから来たのかな
遅くなるかもしれないメソッド増やすよりそっちのほうがスマート

854 :デフォルトの名無しさん:2010/09/20(月) 13:22:54
そろそろスマート厨と定義してほしい
こんなんでLINQ呼ぶな

855 :デフォルトの名無しさん:2010/09/20(月) 13:33:39
イテレータは前→後ろしか実装してないからLastってO(n)かな?

856 :デフォルトの名無しさん:2010/09/20(月) 13:48:09
>>855
as とか is 使って型判定して、
List とかだったら [Count - 1] を返すみたいな処理入れてたはず。

857 :デフォルトの名無しさん:2010/09/20(月) 13:50:37
今、逆コンパイルして確認してみたけど、
IList<T> だったら [Count - 1] 返してるけど、
配列だった場合は特別な処理してなくて、普通に O(n) な処理だった。


858 :デフォルトの名無しさん:2010/09/20(月) 13:56:31
別に100万回呼ばれるメソッドでもなけりゃあ書いて良いんじゃないの>Last
まあ俺は書かないけどね

859 :デフォルトの名無しさん:2010/09/20(月) 14:06:05
>>857
配列はIList<T>だ
StringはもちろんIList<T>ではないが

860 :デフォルトの名無しさん:2010/09/20(月) 14:25:57
そろそろstringの最初の一文字取り出すメソッドが必要とされてくる…

String.First()

861 :デフォルトの名無しさん:2010/09/20(月) 14:27:39
[0]でいいだろーがw

862 :デフォルトの名無しさん:2010/09/20(月) 14:30:27
>>861
スマートじゃありません><

そろそろstringの最初の二文字目を取り出すメソッドが 必要とされてくる…

Char String.Second()

863 :デフォルトの名無しさん:2010/09/20(月) 14:42:48
treeviewにある全てのtreenodeを拾いたいのですが
ttp://msdn.microsoft.com/ja-jp/library/wwc698z7(VS.85).aspx
よりスマートな方法はないでしょうか?

864 :デフォルトの名無しさん:2010/09/20(月) 14:48:05
さすがにネタすぎる

865 :デフォルトの名無しさん:2010/09/20(月) 15:00:52
IEnumerable<TNode> WalkTree(TNode node, Func<TNode, IEnumerable<TNode>> childrenSelector) {
yield return node;
foreach (var child in
childrenSelector(node)
.SelectMany(n => WalkTree(n, childrenSelector))) {
yield return child;
}
}

foreach (var node in WalkTree(treeView, n => n.Nodes)) {
MessageBox.Show(node.Text);
}
合ってるかは知らん

866 :デフォルトの名無しさん:2010/09/20(月) 15:04:11
スマァァァァァァァァァァァァァァトッッッッッッッッッ!!!

867 :デフォルトの名無しさん:2010/09/20(月) 15:20:44
>>857
配列はIList<T>だ
StringはもちろんIList<T>ではないが

868 :デフォルトの名無しさん:2010/09/20(月) 15:21:48
厨じゃなくて病

869 :デフォルトの名無しさん:2010/09/20(月) 18:28:21
学習の為IPチャットを作りたいと思います
相手とのデータの送受信はソケットを使う認識で合ってますでしょうか?
片方が予め相手のIPを教えてもらい、そのIPのPCに接続するって感じですかね?


870 :デフォルトの名無しさん:2010/09/20(月) 18:31:30
それでいいと思うよ

871 :デフォルトの名無しさん:2010/09/20(月) 18:34:15
ICQ

872 :デフォルトの名無しさん:2010/09/20(月) 18:37:03
I Seek You

873 :デフォルトの名無しさん:2010/09/20(月) 18:45:09
環境によるがDDNSでも設定すればいちいちIPを教えあわないでもいいよ

874 :デフォルトの名無しさん:2010/09/20(月) 19:27:20
(´・ω・`)照れ

875 :デフォルトの名無しさん:2010/09/20(月) 20:24:23
Debug.writelineで、「名前 'Debug' は現在のコンテキスト内に存在しません。」となってしまいます。

using System.Diagnostics; は記述してあります。

原因はどのようなことでしょうか。 お願いします。


876 :デフォルトの名無しさん:2010/09/20(月) 20:30:50
Release Build

877 :デフォルトの名無しさん:2010/09/20(月) 20:35:21
正確にはWriteLineだし、どこかで、おっちょこちょいしてるんじゃないか?

878 :デフォルトの名無しさん:2010/09/20(月) 20:44:23
System(アセンブリ)のリンクし忘れじゃないか

879 :デフォルトの名無しさん:2010/09/20(月) 21:40:54
とにかくCPUに負荷を与えるようなものを作ってみたいのですが上手くいきません
円周率計算してみたりしましたがエンコードのように4コアをべたっと100%にするにはスレッドでしょうか
何かヒントをください

880 :デフォルトの名無しさん:2010/09/20(月) 21:52:01
スレッドがいやならプロセスを複数動かせばいいじゃない

881 :デフォルトの名無しさん:2010/09/20(月) 21:54:52
スレッド4つで中身空のforループ

882 :デフォルトの名無しさん:2010/09/20(月) 22:00:33
コア数以上のスレッドを立ち上げて、それぞれがっつり計算するといいよ。

883 :デフォルトの名無しさん:2010/09/20(月) 22:08:08
>>880-882
ありがとう。試してみます

884 :デフォルトの名無しさん:2010/09/20(月) 22:15:45
4.0のパラレル何ちゃらを四つ使うのはダメなん?

885 :デフォルトの名無しさん:2010/09/20(月) 22:21:57
パンプルピンプルだとスレッドがいくつ動くかはわからない

886 :デフォルトの名無しさん:2010/09/20(月) 22:51:50
フレームワークを覚える前にデザインパターンを先に覚えたほうがいいですか?

887 :デフォルトの名無しさん:2010/09/20(月) 22:55:28
最近のフレームワークはそれ自体がデザインパターンの具体例みたいなもんだからなぁ。
個人的には具体例見ながら学んだ方がいいと思うんで、いきなりフレームワーク覚えりゃいいんじゃないのと思う。


888 :デフォルトの名無しさん:2010/09/20(月) 22:57:23
フレームワークは覚えるようなもんじゃないと思う。

889 :デフォルトの名無しさん:2010/09/20(月) 23:02:14
C#2.0ベースのコードをC#4.0でコンパイルした場合、C#2.0のランタイムが入っているPCでも動くのでしょうか?

890 :デフォルトの名無しさん:2010/09/20(月) 23:03:44
よくある、ツールメニュー→設定ダイアログ画面みたいなもの作ってみたいんだけれど
子フォーム出して文字や数字を初期値から変更して「適用」「OK」「Cancel」する
サンプルってありますでしょうか?
本屋でC#の本漁って見たけれど、一枚フォームで完結したものばっかりで。
あったと思ったらメッセージボックスしか説明無かったり。

設定値はMainFormにおいておいてLoad時点で先に画面用意しておいて、
設定ダイアログ画面開くときにコピー値与えて
閉じるときはcloseせずにhideしたらいいのかな?とイメージしつつも、なんか先達があらまほしけれ。

891 :デフォルトの名無しさん:2010/09/20(月) 23:05:26
>>889
基本無理。

892 :デフォルトの名無しさん:2010/09/20(月) 23:06:08
>>890
普通に子フォームをShowDialog()すればいいよ。

893 :デフォルトの名無しさん:2010/09/20(月) 23:11:35
>>890
普通にメインフォームの設定と同じ設定フォームのプロパティを用意しておいて

設定フォーム 設定 = new 設定フォーム();
設定.設定プロパティ = this.設定プロパティ
if (設定プロパティ.ShowDialog() == DialogResult.OK){
this.設定プロパティ = 設定.設定プロパティ
}

みたいな?

894 :デフォルトの名無しさん:2010/09/20(月) 23:12:23
>>890
質問内容がとっ散らかってないか?
何が聞きたいのか明確でないと、数少ないまともな人ほど回答できないよ

895 :833:2010/09/20(月) 23:18:27
C#で書かれたプログラムのサンプルがあまり見つからなかったのですが、
フォームなども扱ってる簡単なアプリケーションで、
ソースコードが公開されているものはありませんでしょうか。

読んで勉強してみたいのですが。

896 :デフォルトの名無しさん:2010/09/20(月) 23:58:19
>>895
C# Form HelloWorld

897 :デフォルトの名無しさん:2010/09/21(火) 00:00:22
>>893
× if (設定プロパティ.ShowDialog() == DialogResult.OK){
○ if (設定.ShowDialog() == DialogResult.OK){

898 :デフォルトの名無しさん:2010/09/21(火) 00:00:49
左下のようなプログラムは、C#ではどのように書けばよろしいのでしょうか?


 --- C ---             --- C# ---
void func(int hoge[]){}     public static void func( ??? ){}

int main(void){          public static void Main(){
  int hoge[10][10]={・・・};    int[,] hoge={・・・};
  func(hoge[5]);         func( ??? );
  return 0;
}                  }

899 :890:2010/09/21(火) 00:01:24
・設定値を設定管理する子フォーム(設定フォーム)がいます。
・設定メニューストリップメニューでShowDialog()しようかと
・閉じて、また開いたらまたnewするよ?いいのかなぁ。
 メインのフォームロードしたときにnewしておいてあとは「見せる/隠す」切替がいいのかなぁ?
・設定値はメインフォーム側で記録管理した方がいいのかな?
  子フォーム作ったんだから、設定値欲しけりゃ子を見に行けという処理が普通なのかな?
・設定値は値一個一個渡すのが普通なのかな?構造体とかクラスでヒトカタマリにして値渡しするのが普通なのかな?
・と、ともかく他人の書いたもので基本的な作りから勉強してみたい。
列挙してみますとこのような感じなのですが、具体的に質問する力が無くてすみません。
検索しようにも こんな感じで、どう聞いたら、何処から手をつければって時点でつまづいてます。

>if (設定プロパティ.ShowDialog() == DialogResult.OK){
すみません。素でコレが出てきませんでした。
子フォームのOKボタンダブルクリックしてイベント作っちゃって頭の中「???」状態でして。

・TextとNameを「OK」にしたボタンをDialogResult.OKに割り付けるにはどうするの?
 (↑いま新たに疑問追加↑。ちょっとDialogResult.OKでググって来ますんで、
  そうすれば解ると思いますんで、解らないときには改めて質問します。)

900 :デフォルトの名無しさん:2010/09/21(火) 00:06:23
好きにしろよ

901 :デフォルトの名無しさん:2010/09/21(火) 00:08:38
>>899
>「OK」にしたボタンをDialogResult.OKに割り付けるにはどうするの?

VisualStudioのボタンのプロパティにDialogResutってのがあるからそこでOKを選択くするのが簡単

902 :デフォルトの名無しさん:2010/09/21(火) 00:09:18
>>899
特に問題が無いので、全部やってもいいです

903 :890:2010/09/21(火) 00:24:43
>OKボタンを作成するには、フォームにButtonコントロールを追加し、DialogResultプロパティを「OK」にします。キャンセルボタンは同様に・・・
dobonさんで書いてありました。901さんありがとうございます。

>//自分自身のフォームを閉じる
>this.Close();
>
>補足:ShowDialogメソッドによりモーダルフォームとして表示した場合、そのフォームのCloseメソッドを呼び出しても
>フォームのリソースは解放されません。リソースを解放するためには、Disposeメソッドを呼び出す必要があり・・・
こうですか?if (設定.ShowDialog() == DialogResult.CANCEL){設定.Dispose()}

904 :デフォルトの名無しさん:2010/09/21(火) 00:32:19
>>903
DialogResutに関係無しにShowDialogしらフォームにDisposeは必要

if (設定.ShowDialog() == Dialog.OK){
処理
}
設定.Dispose();

905 :デフォルトの名無しさん:2010/09/21(火) 00:34:58
C#はなんで
public Constructor() : this(nullpo)
{
}
のコロンから右の部分のような書き方をわざわざサポートしてるの?
ブロックの先頭にthis(nullpo);って書けばよくね?

906 :833:2010/09/21(火) 00:35:45
>>896
http://msdn.microsoft.com/ja-jp/library/k1sx6ed2(VS.80).aspx
これのことでしょうか?
もう少し大きめのサンプルはありませんか?
クラスを分けている実例やFormコードのサンプルが見てみたいです。

907 :デフォルトの名無しさん:2010/09/21(火) 00:37:12
>>906
2ch viewer の twintail

908 :デフォルトの名無しさん:2010/09/21(火) 00:38:30
>>904
そんなの普通はわざわざDisposeしなくてOK。
必須という意味で必用と言ってるのなら、それは正しくないでしょ。

909 :デフォルトの名無しさん:2010/09/21(火) 00:40:18
今まで考えたことなかったんだけど、
ソースコード配布する時って、ソリューションディレクトリを配布するの?
あそこには何のPCの情報とか、ユーザ名の情報とかってはいってないの?

910 :デフォルトの名無しさん:2010/09/21(火) 00:44:21
*.user, *.suo とかを削除しておけばOK

911 :890:2010/09/21(火) 00:44:47
>フォームにDisposeは必要
また勉強になります。質問連投でスミマセンした。
そのへんのノウハウ一個一個尋ねてると、他の皆さんのご迷惑になりますんで
なにかそのサンプルみたいな、お約束みたいな、定石な事柄がまとまっているところご存知でしょうか?
餌があったら口塞がってその間、静かにしてますんで・・・。

912 :デフォルトの名無しさん:2010/09/21(火) 00:47:53
>>906
ググったら結構な数出てこない?
http://www.google.co.jp/search?complete=1&hl=ja&source=hp&q=C%23+Form+HelloWorld

> クラスを分けている実例やFormコードのサンプルが見てみたいです。 
?こういうこと?
http://www.google.co.jp/search?hl=ja&safe=off&complete=1&q=C%23+Form+Partial+Sample

913 :890:2010/09/21(火) 00:50:45
書いた後に気が付いた >>908 え?えっ?
初心者過ぎてどれが「そんなの」に該当するときなのかわかって無いけど、
もしかして「OKで閉じたとき」は明示しなくとも勝手に開放してくれるということでしょうか?

914 :890:2010/09/21(火) 01:00:55
ふがー

915 :デフォルトの名無しさん:2010/09/21(火) 01:09:55
890のなりすましさんが出てきましたのでROMに戻ります。他の皆さんのご迷惑になってますんで。
なにかそのサンプルみたいな、お約束みたいな、定石な事柄がまとまっているところご存知でしょうか?

916 :デフォルトの名無しさん:2010/09/21(火) 01:10:58
GCのファイナライザでdispose()も呼ばれたっけ?

917 :デフォルトの名無しさん:2010/09/21(火) 01:18:29
public struct Hoge{
public string hoge;
}

Hoge hgoe = new Hoge();
Hoge[] hogeArr = new Hoge[10];

なで、構造体を宣言する時は()がいって、構造体配列のときはいらないのですか?

918 :デフォルトの名無しさん:2010/09/21(火) 01:37:53
親が子供生んだんだろ?だったら親が最後まで看取れよ?
いらない子になったんだったら、親は責任持って子供を殺すべき。
他人に始末させるなんてクズのすることだ。

919 :デフォルトの名無しさん:2010/09/21(火) 01:40:50
>>905
base()と合わせるため

920 :デフォルトの名無しさん:2010/09/21(火) 01:47:32
>>917
Hoge[] hogeArr = new Hoge[10];
の後でも
Hoge hoge = new Hoge();
と同じように
hogeArr[i] = new Hoge();
が必要だよ
つまり一緒で、違いはない

921 :デフォルトの名無しさん:2010/09/21(火) 02:15:19
>>918前後の脈略ナシに鬼女板にコピペしたら大炎上だなw

922 :デフォルトの名無しさん:2010/09/21(火) 02:27:47
>>905
「先頭にだけ書けるメソッド呼び出し」みたいなのが気持ち悪かったんじゃない?

923 :デフォルトの名無しさん:2010/09/21(火) 03:24:26
CheckedListBoxで選択されているものがあるかどうかの判定はどうすればいいのでしょうか

924 :デフォルトの名無しさん:2010/09/21(火) 03:31:00
CheckedIndicesとかのCount確認すりゃいいんじゃね

925 :デフォルトの名無しさん:2010/09/21(火) 05:06:36
Panelにコントロールをいくつか乗っけていて、ボタンを押すとパネル上のコントロールをすべて初期化したいのですが、
どのようにすれば実現できるでしょうか?
クリアボタンのようなイメージです。

926 :デフォルトの名無しさん:2010/09/21(火) 05:28:59
>>925
具体的にどの点を質問しているの?
1 Panelにコントロールをいくつか乗っける方法
2 ボタンを押したことを検出する方法
3 パネル上のコントロールを全て得る方法
4 コントロールを初期化する方法

4の初期化する方法は実装次第なので、初期化動作についての追加情報が必要

927 :デフォルトの名無しさん:2010/09/21(火) 05:31:39
何をどう読んだら4以外の選択肢が出てきたんだ?
それを俺は知りたい。

928 :デフォルトの名無しさん:2010/09/21(火) 05:40:55
>>926
4になります。追加情報とはどういうものでしょうか。

パネル上にはTextBoxやCheckedListBox、DataTimePickerなどいくつかのコントロールを配置しています。
textBoxには""を代入することで初期化していたのですが、DataTimePickerは初期化した時点の日付に設定するなどの
処理があるので、そういう初期化処理をまとめてする方法がないかと思い質問させていただきました。

929 :デフォルトの名無しさん:2010/09/21(火) 05:52:36
>>927
ESPなら答えてよ

930 :デフォルトの名無しさん:2010/09/21(火) 05:56:27
>>928
コントロールの種類ごとに共通性が無いのなら、種類ごとに全て書くしかない
もしくは強引にnewしちゃうとか(笑

931 :デフォルトの名無しさん:2010/09/21(火) 06:21:03
エスパー以前にどう考えても4だろ
文面読んでわからんか

932 :デフォルトの名無しさん:2010/09/21(火) 06:58:21
>>926
> Panelにコントロールをいくつか乗っけていて、
これで1の選択肢がないことはわかるだろ?な?わかるだろ?

> ボタンを押すとパネル上のコントロールをすべて初期化したいのですが
3の選択肢には一切触れられてないだろ?これもわかるよな?

残るのは2の選択肢だが、クリックの検出方法がわからないならそう書くんだ。
これは残念だが文面からは分かりづらいが、世間一般ではわかるんだ。
この辺がお前には難しいかもしれんが、文面からの情報だけではわからないんだ。

文面の情報でわからない以上、世間知らずのお前にはわからなくても仕方ない。
だから、次からは考えて2と4の選択肢だけが出るように頑張ろうな。

933 :デフォルトの名無しさん:2010/09/21(火) 07:10:49
>>926が逆にエスパーだわww

934 :デフォルトの名無しさん:2010/09/21(火) 07:12:37
>>932
いや、そこまで考えてないし
色々がんばって説明付けて貰っているところ悪いんだけど、
そういうエスパーな人は回答する方で頑張って貰えませんか?

あと視野狭いとか童貞とか呼ばれてませんか?

935 :デフォルトの名無しさん:2010/09/21(火) 07:16:16
なんか盛り上がっているようなので

>>925の質問の内容って「Panelにコントロールをいくつか乗っけていて、ボタンを押すとパネル上のコントロールをすべて初期化したい」わけなんだけど、
どこをどう解釈したら、
> > Panelにコントロールをいくつか乗っけていて、 
> これで1の選択肢がないことはわかるだろ?な?わかるだろ? 

> > ボタンを押すとパネル上のコントロールをすべて初期化したいのですが 
> 3の選択肢には一切触れられてないだろ?これもわかるよな? 

> 残るのは2の選択肢だが、クリックの検出方法がわからないならそう書くんだ。 
ここまで勝手に推測して断定しちゃえるの。
質問者が何を行ったのか全く書いてないよ?

936 :デフォルトの名無しさん:2010/09/21(火) 07:17:12
フヒッ
朝だけどおやすみー

937 :デフォルトの名無しさん:2010/09/21(火) 07:22:45
必死すぎワロタw

938 :デフォルトの名無しさん:2010/09/21(火) 07:24:48
視野狭いとか童貞とか呼ばれてませんか?wwwwwwwwwwwwwww


939 :デフォルトの名無しさん:2010/09/21(火) 07:27:49
突然童貞とかいいだすやつはだいたい童貞。もしくは素人童貞。

940 :デフォルトの名無しさん:2010/09/21(火) 07:27:55
童貞に失礼だろう

941 :デフォルトの名無しさん:2010/09/21(火) 07:31:41
童貞とか言い出した時点でお前の負けは確定

942 :デフォルトの名無しさん:2010/09/21(火) 07:35:05
秋の学際でシフト表作ることになったんですけどVBとC#でもできますか?
10人くらいで仕事割り降るんですけど、Excelで入力していて間違ったときに作り直すのがめんどいです

943 :デフォルトの名無しさん:2010/09/21(火) 07:44:24
おばあちゃんに、こういう人を見ても指をさしたり笑ったりしたらダメって言われてたんだ。

はげくそワロタwwwwwwwww





視野狭いとか童貞とか呼ばれてませんか? キリッ

944 :デフォルトの名無しさん:2010/09/21(火) 07:49:09
あんまスレをしっかりとは読んでないけど、俺は>>926で「確かに」と思ったぞ。
「A∩Bをどうしたらいいですか?」と聞いたら、Aを聞いてるのかBを聞いてるのか不明なわけだし。

945 :デフォルトの名無しさん:2010/09/21(火) 07:52:24
童貞じゃなかったらなんなんだよw(キリッ
処女でも言い出す気化w(ワロタ
どうていちんぽシコシコしちゃって今日も気持ちよかったでちゅかーww

悔しかったら何かしゃべってみろや童貞
あ、日本語のおべんきょうもまだでちゅねー
むずかしいぶんしょうはよめなかったもんねー^^

946 :デフォルトの名無しさん:2010/09/21(火) 07:54:39
出社前の貴重な時間に恥ずかしい一面を暴かれちゃって今日も一日お疲れさまです^^

947 :デフォルトの名無しさん:2010/09/21(火) 07:57:06
>>944
「確かに」と思うのと、一般解はちがいだろ。
明らかに>>926は曲解

948 :デフォルトの名無しさん:2010/09/21(火) 07:58:08
明らかとか言っちゃうのが何度いわせれば

949 :デフォルトの名無しさん:2010/09/21(火) 07:58:59
あれ・・怖くなったんだけど、もしかして本当に危ない子だったの・・・?

950 :デフォルトの名無しさん:2010/09/21(火) 08:01:07
そんなことより、>>926の書き込みを抽出しようぜ

951 :デフォルトの名無しさん:2010/09/21(火) 08:02:47
曲解というか、無理な荒探しって感じ。

952 :デフォルトの名無しさん:2010/09/21(火) 08:14:10
さすがに1はないけどな

953 :デフォルトの名無しさん:2010/09/21(火) 08:22:36
必死なことと面白がってやってることがこれだけ違うとはじめて知った

954 :デフォルトの名無しさん:2010/09/21(火) 08:30:01
>>951
そうそう、そんな感じ。

955 :デフォルトの名無しさん:2010/09/21(火) 08:46:28
>>942
できるけど、そのままExcelで作ったほうがはるかに楽。

繰り返しのめんどくさいところはマクロを使うとかすると良いよ。

956 :デフォルトの名無しさん:2010/09/21(火) 08:51:56
>>925
void init() {
 textbox1.Text = "";
 textbox2.Text = "";
 (ry
}

みたいな関数をボタンを押されたときと、
フォームが最初に表示するときに呼んであげればよい。

957 :デフォルトの名無しさん:2010/09/21(火) 09:10:31
>>926は難癖つけてるだけだろ。


958 :デフォルトの名無しさん:2010/09/21(火) 09:17:20
俺としては、>>930
> もしくは強引にnewしちゃうとか(笑
このほうが気になる。

newしてどうするんだ?

959 :デフォルトの名無しさん:2010/09/21(火) 10:50:52
ネットワークからデータをダウンロードしてきてフォームに表示しているコードがあるのですが、
起動時にダウンロードして表示させるとネットワークからデータのダウンロードが終わってから
表示されているのか、ウインドウの表示まで10秒くらいかかってしまいます。

すぐにウインドウを表示させるにはどうすればよいでしょうか?

960 :デフォルトの名無しさん:2010/09/21(火) 11:03:00
>>959
Application.DoEvents();

961 :デフォルトの名無しさん:2010/09/21(火) 11:05:16
>>959
FormのLoadイベントで書いてるのとちゃうの?
Shownイベントで行うとかすればいけるのとちゃうの?

962 :959:2010/09/21(火) 11:07:54
ありがとうございました。shownイベントで実現できそうです。やってみます。

963 :959:2010/09/21(火) 11:57:36
shownイベントw使ってみたのですが、ウインドウは表示されるものの、ウインドウ内のコントロールが
全く表示されずに、ネットワーク通信が終わるまで応答なしになってしまいます。

ほかの解決方法はないでしょうか?

964 :デフォルトの名無しさん:2010/09/21(火) 12:01:12
>>963
見せちゃいけない箇所はモザイクでもかけてSSでもだせw
要領を得ない・・・・


965 :959:2010/09/21(火) 12:10:52
>>964
すみません。

画像を掲載しても何も表示されないのですが、
http://imageil.net/128504007901.jpg
こうなります。

アプリケーションをダブルクリックすると、すぐにウインドウ自体は表示されるのですが
中身のコントロールがネットワーク通信が終わるまで表示されません。

966 :デフォルトの名無しさん:2010/09/21(火) 12:10:52
ShownイベントはForm上のコントロールが表示される前に発生するからな

通信する部分をループ使って書いてない場合は、通信部分を別スレッドで実行すれば?
ループ使ってる場合はループの中でApplication.DoEvents()を呼び出してメッセージを処理すればおk

967 :デフォルトの名無しさん:2010/09/21(火) 12:11:02
ネットワーク通信なんか非同期でやれ

968 :デフォルトの名無しさん:2010/09/21(火) 12:11:53
だれかがDoEventsっていってんだろうが

もしくはスレッド使ってまじめにやるかだな

969 :デフォルトの名無しさん:2010/09/21(火) 12:14:10
>>965
Loadイベントでもいいので通信用スレッドを立ち上げて通信させつつ
受信が終わったら表示用の関数を呼び出してもらうとかしないとだめかなあ

970 :デフォルトの名無しさん:2010/09/21(火) 12:20:02
>>964==>>926だな

971 :デフォルトの名無しさん:2010/09/21(火) 13:14:29
>>959
WebClient.DownloadDataAsync
WebClient.DownloadStringAsync

972 :デフォルトの名無しさん:2010/09/21(火) 13:31:00
キチガイが現れたわけでもなしに
なんでこんなに伸びてんだろ

973 :デフォルトの名無しさん:2010/09/21(火) 14:31:38
不況だしみんな暇なんじゃね?

974 :デフォルトの名無しさん:2010/09/21(火) 14:59:44
ふらっとC#,C♯,C#(初心者用) Part63
http://hibari.2ch.net/test/read.cgi/tech/1285048678/

975 :デフォルトの名無しさん:2010/09/21(火) 15:00:28
埋め

976 :デフォルトの名無しさん:2010/09/21(火) 15:03:29
埋めには早すぎる

977 :デフォルトの名無しさん:2010/09/21(火) 15:45:47
C#ってなんですか?

978 :デフォルトの名無しさん:2010/09/21(火) 15:49:02
ド#だよ

979 :デフォルトの名無しさん:2010/09/21(火) 17:00:01
C#メジャーの略式です

980 :デフォルトの名無しさん:2010/09/21(火) 17:09:41
いやソ#だな

981 :デフォルトの名無しさん:2010/09/21(火) 17:33:24
FileStream.Writeで一度に書き込める最大byteサイズはlongの限界?それともハードの限界?
それともメモリが許す限りでしょうか?

982 :デフォルトの名無しさん:2010/09/21(火) 17:39:22
メモリの制限が先に来ると思う
ハードの方はバッファリングすりゃいいだけだし

983 :デフォルトの名無しさん:2010/09/21(火) 17:45:15
メモリじゃなくてCLRの制限
int以上はダメ

984 :981:2010/09/21(火) 17:53:14
あれ、長さはintでしたか何処かでlongを見た覚えたあったのですが。
ありがと。

985 :デフォルトの名無しさん:2010/09/21(火) 17:55:19
longなのはファイル長

986 :デフォルトの名無しさん:2010/09/21(火) 18:07:36
ライセンスがGPLの外部DLLを利用してC#でプログラムを作った場合
作ったプログラムもGPLで配布しないとダメですか?
配布方法は以下の2パターンのどちらかを考えてます

1.作ったプログラムのみ配布。外部DLLが配布先からDLしてもらう
2.外部DLLも含めて作ったプログラムを配布


987 :デフォルトの名無しさん:2010/09/21(火) 18:18:42
>>986
その DLL を使用することを前提に作ってあるならば
どんな方法でも GPL 汚染しちゃうと思うよ。

くわしいことは知らないけどね。


988 :デフォルトの名無しさん:2010/09/21(火) 18:21:47
配布形態はどっちでもいい

GPLを適用するかどうかは結構曖昧で…
とりあえずDLLが無いと動かないなら、GPLの言う派生に当たると思っていい

動的リンクの見解は主張する人間によって結構違う

989 :デフォルトの名無しさん:2010/09/21(火) 18:25:02
GPLのDLLがなくても一部の機能は使えるとか
もしくは代替機能がある程度の依存性ならどうなる?


990 :デフォルトの名無しさん:2010/09/21(火) 18:26:52
LGPLなら感染しないんだっけ

991 :デフォルトの名無しさん:2010/09/21(火) 18:28:05
権利者が派生の範囲をどう捕らえるかによる
権利者に聞け

992 :デフォルトの名無しさん:2010/09/21(火) 18:32:45
リンク云々じゃなく同じアドレス空間に読み込まれたら駄目だとか
ネットワーク挟んでSOAPでやり取りしても駄目だとか
各々いろいろ見解がある
もはやGPLの文章だけ見て判断するのは無理

993 :デフォルトの名無しさん:2010/09/21(火) 18:33:59
>>991
GPLなんだからもはや権利者の意向は関係ない
仮にマルチライセンスで他のライセンスの方に従うのならGPL関係ない

994 :デフォルトの名無しさん:2010/09/21(火) 18:35:15
いやそのGPLの派生の定義が曖昧だから各々の解釈によるってんだけどね…
日本語が通じなさそうだからどうでもいいか

995 :デフォルトの名無しさん:2010/09/21(火) 18:38:15
>>993
こういう前後の脈絡を読まないで突っ込んでくる人最近増えたよねえ。
ツイッターのせいかね。

996 :デフォルトの名無しさん:2010/09/21(火) 18:39:46
昔からいるだろ

997 :デフォルトの名無しさん:2010/09/21(火) 18:41:00
ま、結局は各々じゃなくて裁判所の解釈によるんだけどね。



998 :デフォルトの名無しさん:2010/09/21(火) 18:44:00
GPLの内容について司法判断が下されたことってあるんかな。
示談ばっかりだから気になるっちゃ気になる。

999 :デフォルトの名無しさん:2010/09/21(火) 18:45:42
GPL汚染マジ怖い

続きはライセンスの隔離スレでやれ

1000 :デフォルトの名無しさん:2010/09/21(火) 18:47:39
隔離されるような話題なんだな、やっぱり

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

215 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)