ふらっとC#,C♯,C#(初心者用) Part62
に
よん
さん
そういえばヨン様消えたねw
あら、いい男
新井素子
嫌なニヤケ面
やめい
ToolStripのRenderingModeをSystemにすると下の方に表示される余白を消すにはどうすればいいですか? ツールバーの背景色を変えてもそこだけ色が変わらないので困ってます。
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を書き換えてました。
Accessと同様に、cbxNendoのSelectedIndexChangedイベントで SelectedValueプロパティ(ValueMemberプロパティが設定されている場合)かSelectedItemプロパティの値を 条件に追加したcbxKamoku1用のSQLを作成したもので再度DataSetまたはDataTableで結果を取得して、 cbxKamoku1のDataSourceに設定すればいいんじゃね?
あ、SelectedItemの場合は内部はDataRow型かDataRowView型となるのでキャストしないといけない。
PerlなどのWWW::Mechanizeのように直前の状態を保ったまま次のアクセスをする方法を教えてください 具体的にはログイン→書き込みを行ないたいのですが、書き込みのところでログイン状態が解除されていしまします。
Cookie保持させればええんのじゃあ? HttpWebRequestのCookieContainerプロパティは既定で空になってるから自分でnewして突っ込まないと駄目だ
他人のソースコードを見る際に、クラスやメソッド単位であれば問題なく見れますが、 ソースファイルが大量にあったりすると、すぐに全体像(クラス同士の依存関係とか)を掴握出来なくなってしまいます。 どうすればこの壁を乗り越えられるでしょうか orz
クラスダイアグラムでも出せば?
まぁちなみにEE使ってる貧乏人さん用はありませんよ
20 :
17 :2010/08/13(金) 23:10:26
貧乏人さんです(´・ω・`)
やーい
Doxygen使ってみるとか
基本的にはそれでいいんだけど、ルータが間にあるなら、 パケットが到達できるように設定しないとだめ。 ルータの説明書読んでみてね。
>>24 ありがとうございます。間違えたところで悩んでいたようですね
説明書引っ張り出してきます
26 :
23 :2010/08/18(水) 07:19:42
すみませんルータの説明書を読み直したんですけれども今一度の項目化わかりませんでした 検索ワード等のヒントいただけますか
ポート開放とかポート転送とか WAN側(インターネット側)からの接続要求を LAN側(内側)のどのPCに振り分けるか、を設定する
ルーターのメーカーによって呼び方が違うから機種名書いた方が早い IPマスカレードとか書いてない?
あとPC側でセキュリティしっかりやってるならDMZにPCのアドレス 指定する手もある。
ポートフォワード
つかそんなことまでこのスレで対応するのか 珍しく優しいじゃんお前ら
質問です 部品として設置したボタンを押したときに 画像や音楽ファイルのURLを指定してIE右クリックメニューの 名前を付けて保存と同じようにダイアログを出して保存するにはどうしたらいいのでしょうか? リンクを直接右クリックして保存するのではなく一度URLを変更するので webページ閲覧中に右クリックで保存という方法はできませんでした
もう少し状況を詳しく書こうな。WebBrowserコントロールを使ってる、とかさ。 部品として設置したボタン、ってそもそもなんだよ?
もうちょっと詳しく
言葉足らずですいません 音楽ファイルのストリーミングのようなURLはページに表示されているのですが それをそのまま右クリックで保存にしてもダウンロードできないので ストリーミング用URLをちょっと変更しなくてはならないんです そこでいったんクリップボードへコピーしその状態でフォームに設置したボタンを押すことで クリップボードの内容のURL変更はできたのですが 名前を付けて保存を押した時のようなダウンロード開始ができませんでした URLが指定されているときそれに対して名前を付けて保存、のような動作はできますか?
全然詳しくなってないんだけど… 本当に答えて欲しいんかい
37 :
デフォルトの名無しさん :2010/08/19(木) 22:06:45
まずはっきりしたいのがwebブラウザーのコンポーネント上の話? それともwebブラウザーコンポーネントを使わないで実現しようとしてるの?
非表示のブラウザーにその変更したURLを渡せば 勝手にDLダイアログ出してくれるんじゃないの?
-4%って何だろうな
そろそろ、あきらめろ厨の出番↓
質問者のレベルだとWebBrowserは使ってないと思うで あくまでIEと補助プログラムの話だとオモ
それどころか、C#を使ってるのかすら怪しいなw
ストリームで直接ファイルに書き出そうとするのなら結構ややこしいと思う。 しょぼいダウンローダーだと画像ファイルを指定して、画像をダウンロードしたと思ったら、 中身は勝手にDLするなみたいなHTMLファイルだったりとかw
何の話だと思ってみてみたら、余計にワケがわからなかった 初心者だとか英語圏だとかそんなチャチなもんじゃ断じてねえ もっと根本的な恐怖を味わったぜ これほどのエスパー募集はそうそうお目にかかれねえな つか、HTMLの話でしたなんてふざけたオチじゃないだろーな
DownloadFileで保存するとかじゃダメなんだよな?
整理(おそらくこう言っているのだと思う) 1.IE上(webbrowser上ではない)のストリーミングのリンクをコピーしてクリップボードに入れる(手動) 2.自作アプリのボタンを押すとクリップボードの内容(リンク)を書き換える 3.そのリンク先をIE上でダウンロード、もしくは自作アプリでIEのダウンロードフォルダを出して保存したい 要望 3.の方法を教えてほしい
まあある程度上達?するとこんな回りくどい方法はとらないな
かなり上達するとこの方法に戻ってくるけどな
using(var wc = new System.Net.WebClient()){ wc.DownloadFile("保存したいファイルのURL", "保存するファイル名"); } これじゃだめなんだよね?
ダメです。それだとキャンセル出来ないじゃないですか 偽物です…
じゃあHttpWebRequest使って自前で書け
イメージリストに画像を追加する際にインデックス番号を指定して追加することは可能ですか?
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では予め設定してあるインデックス番号と合わず 表示される画像の順番がめちゃくちゃになってしまいます。 何か良い解決方法ありましたら教えてください。
スレッドにnew { Name = pics[i] , Index = i }でも渡しとけよそんなもの
はぁ?
>>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 レスありがとうございます
ファイルのパスを指定することが出来るんですね
そのやり方で無事順番通りに表示することが出来ました
ありがとうございました
なによりだ
62 :
デフォルトの名無しさん :2010/08/24(火) 13:48:55
Directory.Exists() メソッド でフォルダの存在確認をしたとき Directory.Delete メソッド などで削除したばかりのときには かならずしも「存在していないこと」が反映されていない場合がありました。 (実際には常にそういう状態でした)ExplorerでもFolderTreeのNodeに フォルダが残っているように表示されていて、最新の状態に更新としないと 消えないで残ったままになっている場合が多いのと似た感じです。 これをDirectoryInfoのサブフォルダ配列をGetして確かめるとそこでは 削除されたフォルダは消えていました。常にこれで確かめてやればいいのかも しれませんが、これによらず、Directoryクラスで最新の状態を反映するように するための方法はありますでしょうか?よろしくお願いします。
>>62 俺もそれ経験がある
それで何がまずいんだ? 調べた時に確実に存在してても、操作するときに別プロセスから消されてたとか 普通にあるだろうし。
使う直前にExistしたって駄目だよ DirectoryNotFoundをちゃんとcatchしませう
なるほど
KTMでも使えばいいんじゃね?
カツミのED58
69 :
デフォルトの名無しさん :2010/08/25(水) 00:23:07
>>65 たしかにそういう扱いにならざるを得ないようですね。わかりました。
ありがとうございました。
>>64 >調べた時に確実に存在してても、操作するときに別プロセスから消されてたとか
>普通にあるだろうし
考え方として、その1行前でExistsチェックして存在したのに、すぐ次の瞬間にない
という場合が絶対に皆無かといえば絶対に皆無とは言い切れないと思いますものの、
通常のフォルダ利用においては、99%以上の確率で「状態は一致する」と言えると
思います。そのわずかの時刻差で状態が異なる場合は非常に稀であると。
そこで、Existsチェックを要求した時点で仮に「本当に存在していない」のであれば、
その場合には「存在していない」という返答を返すのが、本来「正しい」機能だろうと
考えます。ところが、このDirectory.Exists() メソッド はそうはなっていない、
ということで、おっしゃっている主旨とは関係なく、「正しく機能していない」と
いえるのではないかと。
おまいのアプリは常にメモリ不足、ディスク容量不足、スレッド不足、こういうのに全て対応して復帰可能にしてあるのか?
Queue asdfに中身が存在している間だけwhileを回したいのですが、 do{ }while(!=asdf.empty) のようなことをC#でするための書き方を教えてください
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”上に設置することも可能だ。
だそうだ
コピペ王に、俺はなる! だそうだ
宣伝乙 買わんけど
えっ 無料配布じゃないの?
VSのおまけでしょ。
VBしかしらん超初心者ですまん。 列挙型って値をキャストして参照するのって ダメな使い方なん? こんな感じ↓ ------------------------------ enum Em { 家電 = 1, 書籍, 家具 } int hoge = 2; if(hoge == (int)Em.家電) { // なんか処理 } ------------------------------ intの宣言のところを↓にすればってことだろうけど、、、 Em hoge = Em.書籍; 既存システムの改修なんでそうしようとすると いろいろ他に範囲が出てしまって。。。
好きにすればいいよ
列挙型使わなきゃいい。
「値をキャストして参照する」ってどういう意味ずら
普通はキャストしないで使うべきだろうな どうしても必要な部分だけキャストする。
83 :
78 :2010/08/25(水) 23:44:58
いろいろ意見有難うございます。
>>79 了解です。私よりC#分かってない後輩に
「真似するなよ」って一言いっておけばいいかなw
>>80 Const に変更した方がいいですかね。
>>81 「値をキャストして使用する」ってことでm(_ _)m
>>82 普通はキャストしない風潮ですよね。
ただ中身の値と照合したい時があったりで(汗)
列挙型じゃなくて連想配列にしたらいいよ
C/C++と共通で使うやつで、enum使いたいのにint要求する関数が あったりするな。そんなときはキャストはするけど そういう場合、enumの全ての項目に省略せずに数値設定するな
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を動かしても位置が変わらない) になっちゃったんですが、これを元通りに直すことはできますか?
二つのテキストの差分をプログラム上で取得表示したいのですが どのようなライブラリがありますか? a.txt abc abcabc b.txt bbc abcabc 差分結果 ++bbc --abc こんな感じの標準的な仕様に沿った表記をしたいのです
diff
それをやるライブラリ、なにかありませんか?
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に入る前に
そこを調べて何かしらのインスタンスを把握しておけば?
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()あたりが怪しいのかな 調べなおしてきます
// Size of receive buffer. public const int BufferSize = 256; // Receive buffer. public byte[] buffer = new byte[BufferSize]; constはOKでreadonryはなぜ駄目なんでしょうか?
constはコンパイル時にリテラル値として置き換えられるから 原理上初期化がいらない readonlyは単なるフィールドなので初期化が終わるまで駄目
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" なのですが。
区切り記号に'<'と'>'を指定してるからみょうちきりんな結果になってんだろ String.Split(new []{"<>"},StringSplitOptions.None);にしろ
おお、区切り文字列を渡していたつもりで、区切り文字を列挙したものを 渡していたわけですね。ありがとうございます。解決しました。
101 :
デフォルトの名無しさん :2010/08/29(日) 20:40:28
質問です
一文字いれたら数字が返ってくるようスイッチ文を書く場合・・・
http://ideone.com/89ddg caseが5つで上記のように書けるとおもいますが
20行ほどに分岐増えた場合、そのままベタ書きで書くのも能が無いと思うのです。
でもどうしたら?ってのが解らない。テーブルルックアップ?
皆さんならどうします?
素直にテーブル書く
>>101 20ならcaseのままで行く。
結局テーブルにしたって
20行分Add書くんだろ?
外部ファイルに保存して読み込むのが普通だろ
>>104 例を見る限り値は固定だろ
そんなものいちいち外部ファイルなんてしねーよ。
あれか?、メッセージボックスのテキストなんかの文字列定数を
外部ファイルで管理しちゃうような化石人間?w
場合によっては外だしも有効だけどな。
ローカライズだけ別会社でやるときとか、 リビルドやらアプリ配布がそうそうできない環境とか。
なんで誰も連想配列(ドトネトだとDictionaryか)を推さないの? 俺が話しを誤読してるのか?
>>110 はい では言いだしっぺの法則で サンプルよろしく♪
たかだか20個で連想配列ねぇ O(1)に毒されてるな
>>109 そのどの場合でも普通にリソースファイルでいいじゃん?
なんで外部ファイル?
真面目な話、
>>112 みたいなセンスの人が糞コード量産してるんだろうなと思う。
何事も程度問題ではあるけど、この場合個数の問題ではないんだけどね
>>112 その表記MSDNとかでもよく見るけどよくわからん
ONとかもあるよね?
ちょっと解説してほしい。
王長嶋?
質問者が個数を指定しているのに個数の問題ではないってどういうこと?? 隠された命題でも発見しちゃったの?
>>113 フリーソフトなんかの場合、その方がローカライズの作業がやりやすい、
というメリットはあるかもしれない。
ドトネトの場合はコードはかえって複雑になるけど
意味もなく一般化して考えるのが正しいと思ってるからだよ。
別にリソースファイルでもいいよ。
単に連想配列使った方が見やすいって言ってんでしょ
>>118 ローカライズのしやすさと
リソースファイルにするか外部ファイルにするかの問題は
全く関係ないだろ?
別会社でローカライズするならなおさらのこと。
頭おかしいんじゃね?
>>122 頭オカシイのはお前さん。
フリーソフト(だからフリーソフトだ、と言ってるのに「別会社」ってw)なんか
作ったことがない俺でも、文字列リソースをプレーンテキストにしておけば、
プログラマじゃない人にもローカライズ作業を丸投げできることは想像に難くない。
なんでその程度の想像力もない馬鹿なのにそんな偉そうなのか。
それは自分の馬鹿が自覚できないほど頭が悪いからなんだろうな
全然違うと思うが・・・
>>123 お前は配布するファイル自体をローカライズする人に作らせるの?wwwwwwww
それならてきすとふぁいる(笑)でもいいかもしれんがwwwwwwwwwwww
普通は、ローカライズしてもらったリソースを開発者が梱包すんだろが。
今はその梱包の仕方を言ってんだろ?w
>>123 自分の馬鹿が自覚できないほど頭が悪い人がいた
大本の議論から離れすぎだろ
>>101 がそんな回答求めてると思ってんの?
>123 想像に難くない(キリッ
>>128 別に
>>101 向け回答に限定して議論してる訳じゃないんじゃないの
質問者が聞いていること以外レスしちゃいけないLRなんてあったっけ
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
でも相談室も荒れてるでよ。 なんか地球市民がどうたら言ってるし。
>>126 現にそういう方法論を取ってるフリーソフトも山ほどあるし、
フリーソフトのローカライズ用のテキストファイルだけ配布してる人間も
山ほどいるんだけどね。
無知って素敵だな。他人から見れば滑稽にしか思えんけど。
137 :
135 :2010/08/29(日) 22:48:25
俺が優しくなかった。
優しくしてね///
139 :
101 :2010/08/29(日) 22:50:17
質問した101ですが、白熱してますね。
なんか俺の為に喧嘩するのはヤメテ〜
つか初心者過ぎて、if文とcace文以外の方法を知らないんです。
クレクレ君でスミマセンが、111に同じくソースのサンプルで見せてくれませんか?
そのほうが、私の勉強に・・・。どうかお願いです。
素直にテーブル
外部ファイルに
連想配列
リソースファイル
色々出てきて目が点なんです。
鳩山由紀夫に豆鉄砲見たいな顔してレスリロードしてます。
後学の為にも、それぞれコードで教えてください。
でもって、そのあとで、あ〜だこーだ言った方が建設的じゃありません?
ちなみに21個版でケースでゲす。
ttp://ideone.com/WriA2
const string CHECK_STR = "__LFV_______XY"; return CHECK_STR.Contains(str) ? .IndexOf(str) + 0x90 : 0x00;
>>139 これならswitchで十分。
つかswitchしかあり得ない。
144 :
101 :2010/08/29(日) 23:25:20
>>142 力強いご助言ありがとうございます。
急に静かになった・・・。ソレもソレで少し寂しいよう。
きっとみんなコード書いてるところなんだよ
書いてねーよ
そもそもなぜこういうことをしないといけないかの背景がわからないとコードは書けんと思うけどな case文の例題として与えられたとかならともかく 最初からすべての組み合わせが決まっているのか それとも後から変更や追加があるのか、あるのなら誰がそれをするのか 仕様がわからないのにコードなんか書けないよ
>>148 141ってどこが回答なの?
まったく質問主の条件を満たしてないと思うんだけど
それはいい回答とは思えんな。(個人の感想です)
でもお高いんでしょう?
>>150 そうかなあ
8ビットbasic時代の一般的なテクニックなんだけどね
俺も同じものを書こうと思ったら先を越されていた
そういうのはテクニックではなく「悪弊」と言うんだ普通は
良く見ると、入力がアンダーバーの場合の処理が抜けてるね
アンダースコア
>>152 必要な範囲が広がったとき、入力超えちゃったとき面倒だったっしょ?分かってるはず。
お代官様、俺は大体その組合せで何をしたいのか解ったぜ? 確かにミ社のコンポーネント使いづらいよな。自作したい気持ちは解る。 Rのときは10進でZRのときはアドレス16進って所に注意な。
NCプログラムあたり?
160 :
101 :2010/08/30(月) 01:20:59
>一文字いれたら数字が って言っちゃった俺がそもそも悪い。ゴメン。2文字があった。 158あ、やっぱり解ります? w ハシゴ屋のお仕事暇なんで興味本位で・・・ 使ったこと無いんだけれど代官山ってオムロン以外でも使えたっけ? 今 来られた方々へ つまらぬコトで60スレも消費してしまいました。
sine
輝け! Shining
int? →int に変換したいんだが、どうすればいい?
Nullable<T>の…プロパティをよく見ろ
>>164 HasValueがtrue時に、value参照かね?
??false
Nullable<T>って、implicitでTに変換できたら何か問題あるのかね。 普通はそういう仕様にすると思うんだが、このあたりのMS様のセンスはよくわからない。
>>167 問題あるだろ。
implicit にヌルポ発生させるのもどうかと。
あと、C# の型変換に関する方針は、
「範囲の広い型から狭い型への変換は明示」。
T? の方が T より広い(T + null)んで、それとの一貫性もあると思う。
>>168 どうしてHasValueはOKで暗黙変換はNGなの?
よく分からん発想だ。
こんなものの価値は、明らかに(そうしたい時には)Tと等価(透過じゃない)に
扱えることのあるのに。
ごめん上はHasValueじゃなくてValueね
解説 不要なキャストを省けるため、暗黙の型変換を行う場合はソース コードが読みやすくなります。 ただし、暗黙の型変換では、一方の型からもう一方の型へ明示的にキャストする必要がないため、 予期しない結果が発生しないように注意する必要があります。 暗黙の演算子は、通常、プログラマが変換を認識していなくても安全に使用できるように、 変換中に例外をスローしたり情報を失ったりしないことが必要です。 このような条件を満たせない変換演算子には、explicit キーワードを使用する必要があります。 詳細については、「変換演算子の使用 (C# プログラミング ガイド)」を参照してください。
TryParseなんか無くていいじゃんって議論に似てる んなわけないだろ
>>171 そのあたりの話は分かるんだけどね。
原理原則はそれでいいとして、Nullable<T>の場合も本当にその原則を
適用すべきかどうかというと、俺はそうは思わない。
繰り返しになるけど、こんなものTと同じに扱いたいときに同じに扱えなきゃ、
有用性半減だろ。
>>172 全然違う。
Nullable<T>の意味の特殊性をよく考えてくれ。
っていうか、Nullable<T>使ったことあって言ってるのかそれ。
同じように扱いたくない場合の方が大半なので結構です
勝手に思ってりゃあいいじゃん そうでなければMSに陳情してこい ここはお前のグチ発表会場じゃないんで
176 :
171 :2010/08/30(月) 21:28:24
俺は思わないって…。 お前がどう思おうが大概の人はどうでもいいよ。
>>176 みっともないな。
今日はこのぐらいにしといたるわ、にしか読めない。
しかし、馬鹿はまだ救いもあるけどガキ臭い奴は嫌だね。
それってお前はまだ救いがあるって言ってるのか?
根拠は俺がそう思うからだってのの方が数段ガキ臭いような…
現実世界の対面のコミュニケーションだと「モジモジ君」なコミュニケーション弱者に限って、 掲示板では面識もない相手をいきなり「お前」呼ばわり。 そういう自分に何も戦慄を感じないなら、立派な廃人だと思うがな。
ここはお互いに 暗黙のキャストを許可することによってどういうメリットがあるのか 暗黙のキャストを許可しないことによってどういうメリットがあるのか を書くべきじゃね はいどうぞ書きたまえ
なにやら現実世界がどうとか語り始めましましたよ。
>>169 Value は OK じゃねぇよ。
T? x からの変換は T y = x ?? defaultValue; でやる。
>>173 T? と T 一緒に扱えたらダメだろ。
null 勝手に握りつぶされるとか、絶対酷い人的ミス起こすぞ。
>>181 人的ミスの一言に尽きるだろ。
だから、型変換しても情報落ちしない場合にのみ暗黙キャストを認めてる。
いや〜妄想しか見えんわ。
さすがにint a = new Nullable<int>int(0);が許容されるとか寒気がする
スレがのびてると思ったら馬鹿が来てたのか キャスト不要にしろというなら最初から ?使うなよ…
>>184 だから、Valueを使おうがHasValueのチェックを忘れたら、結局同じこと。
だから「フールプルーフのために暗黙変換禁止」というのは理由にならない。
>>188 だからといって暗黙のキャストをデフォルト動作にすべきとはならないだろww
キャスト時にHasValueのチェックなんかやらないだろ 何のための??なん
そういう発想って「推定有罪」みたいだね。 普通は(その方が便利なものを)禁止する場合に理由が必要だと考えるのじゃないの? なんで「手を縛るな」というのり理由が必要なの? よくわからん発想だ。
”チェックを忘れたら同じだ”なんていろいろ適応できそうだぞ 利用に際してチェックが必要な奴は全て否定できるな
>>188 いや、だから、HasValueとかValueなんてC#で直接使わないんだってば。
普通 ?? 使う。
HasValueとかは他の.NET言語との相互運用のためにあるとでも思っといてOK。
馬鹿のアプリから InvalidOperationException が発生する!
まぁなんでも許容してたらCやC++みたいになった訳で Javaなんかも基本は推定有罪で動いてるじゃないか
>>184 そんな変換が許されるなら最初からNullableなんて使わないだろw
>>181 デメリット
InvalidOperationException
InvalidOperationException
InvalidOperationException
InvalidOperationException
InvalidOperationException
InvalidOperationException
お馬鹿さんに合わせる風潮だからフールプルーフが基本になってるのよ スーパープログラマーの人には悪いが底辺に合わせてくれ 人が集まらない
>>194 それはさすがに極論。
純粋に値が設定されてない状態の表現に使う場合の方がむしろ多いと思うが
InvalidOperationException
>InvalidOperationException これは分かったから しつこい
>>200 == null でよくね?C# において HasValue の存在意義ある?
>>203 HasValueの方が読みやすい人もいる
暗黙のキャスト箇所でnull例外が出て 例外なんて出さないで暗黙で0代入しとけやって馬鹿が言いそう…
>>204 参照型と同じ感覚で使う方がいいと思うんだけどなぁ。
まあ、あるものは使えばいいとは思うけど。
眠くなってきました
推定有罪が出てきた所は無理やりすぎてちょっと笑った。
全然面白くねーから この話終わりな ↓はい次の方
えええっと 話題なんてないよ。。。 x=x+1で x=0.5にならないのは何でですか?はあと
>>210 今の C# なら、Solve(x => x == x + 1) とかで 0.5 を作れそうだよなぁ。
x=Mathematic.Eval(...);
x=0.5だと0.5=1.5になるじゃんwwwwwアホ乙wwwwww
214 :
デフォルトの名無しさん :2010/08/30(月) 22:28:09
じゃぁ
>>139 のコードについて、あ〜だこーだ再開
プレザンス\(^o^)/
いつまでも昨日の俺だと思うなよ…
歌丸です
219 :
デフォルトの名無しさん :2010/08/31(火) 00:26:41
質問させていただきます 今常駐アプリを作っていて、キーの監視について悩んでいます 自分が作成している常駐アプリは特定のキーが押された場合に非アクティブでも反応し それに応じた動作を行うというものです キーを監視する方法は、Win32APIのSetWindowsHookEx()かなんかそこらへんを見ればいいとか書いてあったような気がするんですが 実際の実装方法が分かりません わかりづらくてもうしわ家ありませんがよろしくお願いします
気ぃ付けや! あんたの事やで?! そのバック♪
222 :
デフォルトの名無しさん :2010/08/31(火) 01:53:09
設定 ■〜〜 ■〜〜 □〜〜 □〜〜 ■〜〜 保存 save.txt 1,2,5 もし、設定ファイルの中に1が会ったとき(設定で1が有効になっている時)にイベントを起こす ということをやりたいです ただ、設定項目の数が不定でいくつにも増える可能性があります こういう場合はどういう風に実装すればいいでしょうか 設定ファイルの中身を配列に保存していけばいいのかな?
意味が分からない。 コンストラクターなり、event なりでイベントハンドラーを渡しておいて、 LoadSetting(path); 的な呼び出しした瞬間に、その設定ファイル読みに行って、 その条件な時にイベントハンドラー呼び出しするってこと? それともファイルの更新監視とか必要? 他のアプリインスタンスと競合起こしたりはする?
とりあえず、設定の保存形式自分で作ろうとすんな。 .NETの場合、XMLSerializerなりDataContractSerializerなり使え。 ファイルの更新監視するならFileSystemWatcher。
xmlは冗長だから嫌いです
じゃあC#使うなよ
んな実も蓋もない
とりあえずLoad時だけでいいなら 配列がどうこうじゃなく読んだ時にイベントハンドラ呼べばいいだけよね
>>223-224 説明下手でごめんなさい
@ある文章中の特定キーワードにひっかかるようにしたい
A特定キーワードは必ず数字2文字
B特定キーワードはユーザーが自由に設定できる(しかし、範囲は00〜99まで)
こういう場合、テキストに特定キーワードを,で区切るなりして保存して
配列にひたすら読み込んで
配列の大きさぶんだけforでマッチするか比較するみたいな感じでいいんでしょうか
何かすごく無駄な気もするんですが他に思い浮かばなくてorz
良い方法あったらお願いします
xml調べてみます……
イベントのイの字も出てこない件
うん、イベントのイの字もないなぁ。
>>229 var r = new Regex("パターン");
var m = r.Match(読み込んだ文字列);
if (m.Success)
じゃダメなの?
あと、配列じゃなくて IEnumerable になるように作ればメモリの無駄は少ないよ。
パターンが100あるからきつそう…
パターンは一つだろw
>>231 検出した後どうするんだろうね
それに合った動作も定義して100分岐するのかな
DateTime.Today.DayOfYearなどで得られる年間積算日みたいな感じに 3桁の数字を渡して○月×日の形に変換するにはどんな方法があるんでしょうか?
なにがしたいの
DateTime.AddDays メソッド
>>236-238 DateTime.AddDaysで解決しました
ありがとうございました
>>222 みたいな「~を読んだらイベント」の構造って超使いづらいよね
SAXは糞だからXmlReaderはプル型にしたとMSDNに書いてあるけど全面的に同意
@"\d\d" var var var
初心者すぎる質問ですまん。 try〜catchの書き方なのだが、必要な箇所にだけ書け! という 規約を忠実に守って書いてみた。 内容はDBから取ってきた値を画面に表示する単純なもの。 (ただし結構ソースは長い) 穴があくくらいソースを見てみたが、エラーが想定できる 箇所はDBアクセスの1箇所だけだったので、そこだけ try〜catchで囲って想定できる例外処理をした。 ……これで正しい書き方といっていいのでしょうか? 誰かに「こいつtry〜catch全然使ってねーよ!大丈夫か?」とか 思われるんちゃうかと思ってしまうのだが(汗)
「誰か」の神経質さによるからなんとも言えん
245 :
243 :2010/09/01(水) 01:58:08
だいたいどこの現場も、メソッドの中身はまるまる try〜catchで囲ってるケースが多いし、逆に必ず 全てにtry〜catchを記述しろという現場もありました。 それになんとなくその方が安心できる気もするしw まあ最終的に例外時に正しいログさえ採取できれば、どの 書き方でもいい感じもしますが、さすがに今回 ソース書いてみて、一箇所しかtry〜catchがないと 自分でも「これで大丈夫か?」と思ってしまうわけでw
なぜそう思うのかを自分なりに考えてみるべき
語尾にwが付いてるとそれだけで馬鹿っぽいなw
俺のとこはすべてのメソッドに try〜catch 書いて throw してる。 で一番上の階層でメッセージを出したりログ出力したり。 そうしないと例外がどのメソッドで起きたかわかんないよね。確か。
そんなこともないけどな。
>>245 全部 try catch で囲むとか Java の悪習過ぎるだろ。
ほんとは、try catch で例外握りつぶすんじゃなくて、
単体テストで想定外の例外でなくなるまでテストやるべき。
でも、客に納品したプログラムが「未処理例外で止まりました」ってエラーメッセージだすと、
客にすごい嫌な顔されるとかで、「握りつぶす」って選択肢でダメなしのぎ方する人多いと聞くけど。
>>248 例外、スタックトレース情報持ってるじゃない。
初心者スレなんだと実感するね
初心者じゃなくても Java あがりの人はやっちゃいがちだけどね。
あえて例外を発生させるケース以外は tryはfinallyとの組み合わせでしか使わないな
finallyもあんまり使わないな ロックの解放やAPI呼び出しの後処理くらい 後者は本当はCERでやったほうがいいらしいけど
256 :
243 :2010/09/01(水) 22:17:52
いろいろの意見有難うございます。 とりあえず自分を信じて、エラーが発生する可能性が ゼロの処理(メソッド)では例外処理はしない方向で。 それで例え1箇所しか例外処理しかしてないクラスに なっても、デバックに必要なログ、トレースがとれてるの あれば、これでよしということで。
眠くて誤字多いw ×例外処理しかしてない ○例外処理してない とりあえずどうもです。
全メソッドでtry-catchとかって、 いったいキャッチして何してるわけ? 何もせずにスタックトレース消すような再スローしてるだけのは見たことあるが。
また「例外を握りつぶす」とかいうよくわからん用語を使ってる人がいるな。
>>256 プログラマが想定してないことが起こったときには、そのプログラムは強制終了させられるべき。
なぜなら以降の正常な動作が期待できず、危険だから。
この基本だけ頭に入れておけばOK。例外機構はそもそもそのための道具の一つ。
なんかデバッグのツールみたいに考えている人も多いけど、少なくともそんなのは
主目的じゃない
そういう風に考えると、ただ再スローしてるだけのコードの意味がわからない。
お前あんだけ大叩きされたくせにまだいたのか。
? なんのことだ
例外を握りつぶす 例外を捨てる って良く使うよ…
Javaやってると検査例外にthrows書くのが面倒臭いから 全部catchして再スローする奴がいるんだよ とんでもないアンチパターンなのは言わずもがな
例外を握りつぶすって言えば、全部catchして何もしない(例外をなかったことにする)ことだろ。
Googleに 例外 に まで入れただけで「例外 握りつぶす」がサジェストされるくらいメジャーでポピュラーな語だけどな 例外 握りつぶすで検索すると関連キーワードにjavaって出るのが最悪
>>264 おめーJavaやったことないだろ。
そういう時はcatchなんかせずthrows Exceptionと書くのだよ。
酷い悪習なのはその通りなので否定しない。
別に知らなくてもいい単語だし異端というほどでもない
ぐぐれば一瞬で解決するような事すら調べようとしない人って
少なくとも頑固者で偏屈物で嫌われ者
回復できそうなところだけcatchして後は放置だわ ExecutionEngineExceptionとかcatchしてどないせえっちゅうねん
自分でどうにもならないものは上位に判断仰ぐのが基本。
上司は部下のせいにしますが
初心者スレで俗語知らなかったくらいでこんな叩かなくてもいいじゃん…
例外、いろんなタイプあるからなぁ。 ArgumentException みたいに事前に引数のチェック入れたらほぼ駆逐できるもの → これは出ないようにテスト時に全部取るもの 通信エラーとかファイルの競合とか、どうあがいても例外発生避けれないけど 適切にリカバリーするすべがあるもの → catch してリカバー OutOfMemory みたいに出たら終わりなもの → 絶対 catch しちゃダメ とか。
CEでデカイ画像開くときに OutOfMemoryをキャッチして処理したことがある
質問はtry-catchの範囲をどうするかって話だったが 基本的には回復する内容によって適切な範囲が決まるはず
馬鹿ばかりで話にならん。 「よく使われる」ことと「意味が明確」なことは全く別の事柄で、 俺は後者について怪しいと言ってるんだけど。 「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。 「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を 言わんとしてるんだろうと想像するが。例外に関して重要なことはプログラマがそれをちゃんと 想定しているか否かであって、「握り潰す」かどうかではない。 単にキャッチして伝達も処理もしないことが正常、という場合だってあるのに 「握りつぶす」なんて言い回しを平気で使えるガサツさは俺には理解できない。
Bitmap.FromFileがファイルをサポートしてない時にOutOfMemoryException出すよね これどうにかならんのかw
>>261 って何のことだと思ってたが
昨日Nullable<T>のキャストで昨日暴れた人か…
連日素人知識でご苦労様です
>>281 もう帰っていいよ。
お前に用事なんか質問者も含めて誰1人ないから。
頑固者で偏屈物で嫌われ者
どのくらい顔真っ赤にして書いたんだろうな
偏屈と嫌われはともかく頑固は当たってるね…
頑固というのは自分の意見に固執することを言うんだろうが、 自分の「愚見」に固執している奴が相手を指して「お前は頑固だ....」 そういうことばのセンスをしているから「例外を握りつぶす」なんて言い回しに 何も疑問を感じないのだろう。 まあ言葉に対する感受性以前に、自分を棚に上げる自己中心性という要素もある(そちらの方が大きい?)がw
なんか病気っぽいな
ぽいじゃないだろw
推定有罪が出てきた時点で林先生コースだと思ってました。
病気だ。
プログラマになるとこうなるよ、という遠回しな警鐘
危険な仕事だな。
>281 気持ちはわかる だがしかしそれは 青信号は青じゃなくて緑だと言い張るおっさんのようでもある
プログラマ辞めますか?人間辞めますか? で、後者を選んだ結果がアレか。恐ろしい
>自分を棚に上げる自己中心性という要素 自己紹介乙
これで偏屈物、嫌われ者も確定したな
なんだか悲しくなってきたから寝る。
どうせまた来て馬鹿にされるんだろ
ここまで一致団結してたたかれるレベルの人、ム板じゃ珍しい気も。
>>251 デバッグなしで実行したら、スタックトレースにも例外の発生したメソッドの情報もってなくない?
ttp://ideone.com/fTKgS これ実行すると Mainでエラーってでて、Hoge2にtry-catch書くとHoge2でエラーって取れるんだけど
Mainにtry-catchを書くだけでHoge2で例外が起きたことを取得する方法ってあるの?
改めてログを見返すと
>>123 で叩かれてるのも同じ人のような感じがする。
これは…素養かもしれん。
もはやアイドルだな
>>281 お前の思い込み。
>「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。
疑問を感じてないとかじゃなくて、普通に悪い意味で消し去ってしまってる場合を意味して使うことが多いだろう。
分かっていてあえてやってる場合は、それ自体は悪くないが、あくまでこういう理由であえてやってるんだってのを強調するために、
わざと握りつぶすというような言い方をすることもある。
いずれにしても
>「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を
>言わんとしてるんだろうと想像するが。
勝手な想像で偉そうにぬかすなあほ。
>>260 >プログラマが想定してないことが起こったときには、そのプログラムは強制終了させられるべき。
>なぜなら以降の正常な動作が期待できず、危険だから。
>この基本だけ頭に入れておけばOK。例外機構はそもそもそのための道具の一つ。
>
>なんかデバッグのツールみたいに考えている人も多いけど、少なくともそんなのは
>主目的じゃない
危険だから強制終了させるためだけなら、例外なんて機構はいらないんだよ。
異常発生時点で無条件にプロセス強制終了させりゃいいんだ。
そうじゃない目的があるから例外処理という機構があるのは明らか。
叩かれたくてやってるんじゃないの? 素でやってるんだったら凄い。
ああ念のため言っとくが、 >プログラマが想定してないことが起こったときには、そのプログラムは強制終了させられるべき。 >なぜなら以降の正常な動作が期待できず、危険だから。 別にこれを否定してるんじゃないからね。
かまうなよ どうしてもってんなら他のスレでやってくれ
312 :
デフォルトの名無しさん :2010/09/02(木) 02:53:41
WindowsMobileのアプリを作ろうと思い書籍を買ってきたのですが、C#の説明が無いため C#の入門書の購入を考えております。 入門書といっても、スクリーンショットを見ながらここをクリックして〜みたいなものではなく、 文法説明などC#の入門書でお勧め書籍はありますでしょうか? C、Perlの基本的な知識ならあると思っております。
WindowsPhoneじゃなくてWindowsMobileなの? WMはVS2010で開発できないけど大丈夫?(VS2008Std以上必須)
314 :
デフォルトの名無しさん :2010/09/02(木) 06:50:37
.NET CF3.5で勉強をしています。 画面を上下に分け、上部がタップされとき/下部がタップされたときに処理を行わせたいのですが、画面を上下に分ける方法にはどのようなものがありますか? ボタンを配置して背景を透過にしてもボーダーが表示されてしまいます。 背景に写真を配置し、そのうえでタップを行いたいのでボーダも表示されてほしくありません。
>>313 VS2005std, VS2008proじゃね?
>>312 紙にこだわらないなら C# でググればOK。
>>312 新プログラミング環境 C#がわかる+使える (@IT技術叢書シリーズ)
318 :
313 :2010/09/02(木) 12:38:31
>>314 はい。WindowsMobileです。
手元に機会があるので、WMで勉強を始めてみようと思っています。
VS2008proのライセンスを持っています。
>>316 ありがとうございます。
私が古い人間なのか、モニタの文章をずっと眺めているのが苦手なので、
印刷物であればとおもっています。
pdfなどであれば、印刷するのですが。
>>317 ありがとうございます。
しらべてみます。
CFってもう消えるよ 今後はSilverlightに統合される
そんなこと言っても手持ち機器はCFしか対応してない
321 :
313 :2010/09/02(木) 14:27:15
>>319 ありがとうございます。
>>320 がいわれているとおり、私の手持ちにWMがあるため
これ用のアプリケーションを作ってみようと思います。
他の言語や.NET開発の経験はあるの? プログラミング初心者なんだったら最初からわざわざ特殊な開発環境選ぶのは時間の無駄だよ 勉強だったらWindows上だけでやって、慣れてからやりたいことやればいい
>>322 WM6の本買ったんだからそれでいいんじゃない?
GPS使ったりハードキー使ったりして楽しいよ
WM5かもしれないけど
好き好きだと思うけどCFは通常より面倒なのは覚悟するべし 情報が少ないってのもあるけどNotSupportedExceptionとか頻発するし 凝ったことやろうとするとP/Invokeしまくりだし
WindowsMobileならeMbedded Visual C++がいいよ。ただだし。
visual Studio C#でWebBrowserを作って Webページを表示して そのWebページにあるボタンをクリックするにはどうしたらいいですか? >WebBrowserを作って Webページを表示 まではできています ですが ページを表示した後 ボタンをクリックするのがうまくできません どうしたらいいでしょうか? 以下ソースコードです HtmlElementCollection all = webBrowser1.Document.All; HtmlElementCollection forms = all.GetElementsByName("exec"); forms[0].InvokeMember("click");
その話題は秋田
もうその話題出てたのか どこにあんの?
何度も何度も出てきて吐きそう
質問スレ、しかも初心者スレなら 同じ質問が何度も何度も出てきてあたりまえなんだから それが気に入らないなら見なきゃいいんじゃないかn
たまにしか見ないのにいつもこの話題
同じ質問ばかりなんだったら 前に質問された時の答えでもコピペすりゃいいんじゃね?
C#スレよりもVBスレに多いネタだな
334 :
326 :2010/09/02(木) 19:01:22
すみません 既出質問でしたか それでは どこで質問をすればいいのでしょうか
普通はグダグダ引っ張らずに 過去スレ見ろで済ます
嫌なら見るな
初心者が躓くポイントなんていつの時代も変らんだろうに なぜか検索エンジンを使わないという点まで含めて おまいらはそんな基本的なことにも気付かないアホなの?死ぬの?
質問なんて所詮ネタだろ
340 :
326 :2010/09/02(木) 19:35:50
webBrowserを全て表示しておらず Documentを取得できていないことが分かりました ですが 今度はwebBrowserを完全に表示する方法が分かりません DocumentCompletedの使い方もよくわかりません
>>340 プロパティのイベント表示からダブルクリックしてDocumentCompleteはつくったの?
342 :
314 :2010/09/02(木) 19:53:12
どなたかわかりませんか?
>>307 いかにも地頭が悪い人間がいいそうな「とっ散らかった」物言いだな。
>危険だから強制終了させるためだけなら、例外なんて機構はいらないんだよ。
>異常発生時点で無条件にプロセス強制終了させりゃいいんだ。
異常事態発生 ≠ 危険。
俺はプログラマが想定していない事態が発生した場合、それ以降の正常な動作は
期待できないから「危険」だと言ったが、異常事態即ち危険である、などとは言ってない。
というか、俺が言おうが言うまいが「異常事態発生 ≠ 危険」。
こういうガサツで大雑把な思考をする人間は、プログラマ向いてない。
345 :
314 :2010/09/02(木) 21:42:11
>>344 すみません。もう一度書きなおします。
.NET CF3.5を利用して、以下を実現したいと思っております。
画面を上下の2つに分け写真を背景に起き、上部がタップされた時か下部がタップされた時に処理を行わせたいと考えています。
ボタンを2つ作成し、DockをTopとBottomに配置すれば再現できればと思うのですが、ボタンだとボーダーが表示されてしまいます。
どうかこれを実現できないでしょうか?
Mouse系のイベントとか・・・ないんだっけか。
座標で判断すればいいだろJK
PictureBoxのMouseDownイベントハンドラ
List<T>の要素をカウントしたかったらcountでいいんだけれど じゃぁ List<List<T>>()の中に入ってる各アイテムの 各要素の全個数をカウントするにはどうすりゃ簡潔? for (int i=0; i < L.count ; i++) {のなかでグルグル廻すしかない?
// List<List<int>> list list.Sum(n => n.Count)
ttp://ideone.com/AVDkz 某サイトのTwitterにPostするプログラムなんですがそのままだと401返されて動きません
TL取得するだけならちゃんと動作してくれます
どこを修正すれば動くようになりますか?
まさかとは思うけど定数そのまんま使ってねえよな
そんなわけないだろ…。
TwitterでBASIC認証方式が終了しただけ スレチ
スレチなのはそうだけど351はちゃんとOAuthの認証しとるがな BASIC認証方式が終了しただけ(キリリッ
356 :
デフォルトの名無しさん :2010/09/03(金) 13:16:15
P/Invokeってなんてよむの ぴんぼけ?
ピーインヴォークでいいじゃないですか
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に変わってしまうのか分かりません。
CharSet指定できるんじゃね?
>>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型を入れれるようなものは有りません。
.NET CF3.5使ってるやつってなんなの? .NET CF2.0で作れよ そうおもわないか?
思いますん
364 :
デフォルトの名無しさん :2010/09/03(金) 16:41:16
CF3.5のプロジェクトをCF2.0のプロジェクトには変換できへんの? まちがって3.5で作ったプロジェクトがあるんだが。
>>363 ありがとうございます。まさにビンゴでした。
構造体の属性のキャラセットでユニコード指定すると正常にユニコードで送信されました。
キャラセットが指定されないデフォだとANSIになってしまっていたので、
どう工夫して文字列入れても上手くいかなかったという事ですね・・・。
>>364 えらい抽象的だな
csファイルをCF2.0プロジェクトに突っ込んで
不具合箇所を手で書き変えろ
formで詰まる予感
まあ新しく作ったほうがいい場合のほうが多いと思うけど
webbrowserでリンクの数を取得するのを HtmlDocument Doc = webBrowser1.Document; int a = doc.GetElementsByTagName("A").Count; String aaa = a.ToString(); MessageBox.Show(aaa); でやろうとしたらエラーになった どうすればいい?
名前じゃないだろうなぁ。
あぁゴメン タイプミスしてた HtmlDocument Doc じゃなくて HtmlDocument doc だ
エラーが出るのならエラーメッセージくらい書いたら? documentCompleted まで待った? document.Anchors ってのもあるよ?
自己解決した string str = "リンク数を取得するページのURL"; webBrowser1.Navigate(str); wait(); HtmlDocument doc = webBrowser1.Document; int a = doc.GetElementsByTagName("A").Count; これでおkなんだが… 〜番目のリンクのinnerTextを取得するにはどうしたらいい?
ええええええええええええええ
MSDNのURLと日本語の読み方を教えてやれ
374 :
デフォルトの名無しさん :2010/09/03(金) 23:53:14
>>371 そこまでできるならわかりそうな物だがな
配列かアレイか忘れたけどurlを複数取り出さないとだめだったんじゃないかな?
しかも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でバックライトの制御ってどうやるんだ。 結構アプリケーションがあるから、できないことはないはずなんだけど。 しってるひといる?明るさの調整がしたい
いる?と訊かれたら脊髄反射で答えちゃう いらない。
うっせボケ
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。なので、お を付けて・・・ お馬鹿はお黙りなさいまし
せやな
>>379 ココで聞いても無理かもな
windowsでもWin32API使わないとそれらしいこと出来ないから
機種依存かAPIをP/Iする必要があるかもしれない
ググったほうがいい
見つからなかったら本に載ってないか調べたらいい
386 :
デフォルトの名無しさん :2010/09/04(土) 14:06:23
すみません。質問いいですか? あるソフト(A)と自分のソフト(B)が共通のソフト(C)にアクセスしようとします。 共通のソフト(C)には排他制御をかけたいのでAとBでセマフォを使おうかとなりました。 ※Aの開発者とは連絡が密に取れません ※私は素人です セマフォとはOSが持っている「見えない環境変数」(カウンタ?)見たいなもので 勝手に名前をつけて使うものですか? そして各々が名前を頼りに状態を知るという感じなのでしょうか。 スレ違いかとは思いますがC#しか分からないものでしてこちらに質問させていただきました。 宜しくお願いいたします。
その※読んで俺らにどうしろと… システムの中に名前のあるオブジェクトを作成して、それをお互いのプロセスで共有するという発想は正しい 使うのはSemaphoreじゃなくMutex Mutexを使ってお互いが所有権を取り合いながら動けばいい
>>387 >読んで俺らにどうしろと…
確かに・・・。
ご教示頂いた方法を私なりに解釈した結果
自分のアプリ(B)でMutexオブジェクトをPublicで公開。
そこをAがチェックって事ですか?
Aの開発者は社外者でB自体を公開することは出来ないのですが
オブジェクト名だけ知らせるだけで可能なのでしょうか。
あほな質問ですみません。
それでいいよ。
名前が共通していれば公開メンバにする必要なし
>>389 >>390 ありがとうございました。
なんだか不思議な感じですね。
int hoge ←例えばこのhogeを相手に教えるだけで(int型では無理でしょうが)認識できる感じなのですね。
というよりOSがhogeを認識しているのでしょうか。
相手が非.NET言語でも問題ないのですよね?
ない
>>392 ありがとうございます。
ほんとにここの皆さんは頼りになりますね。
これからも宜しくお願い致します。
失礼します
応
Threading.Timerを使って別スレッドで動かしてるコードに、ハンドルされていない例外が 発生してもデバッガが反応してくれない。何も言わずすっと落ちてしまうけどなんで? デバッグ→例外で「スローされるとき」にチェックを入れてれば、例外発生時にブレーク してくれるけど。 あ、もちろん「ユーザーにハンドルされていないとき」にはチェック入ってる。 メインスレッドで同じ処理させたらちゃんとブレークかかって例外ヘルパーが出る。
>>395 デバッガって結構気まぐれなところがあるのは確かだね。
Windows Formのアプリで普通にUIスレッドで発生した例外でも、ちゃんと発生箇所で
表示される場合もあれば、何故かApplication.Runの箇所で止まる場合もあったり。
あとプロジェクト分けてると、スタートアップ以外のプロジェクト(アセンブリ)で
例外が発生すると、ちゃんとキャッチしてるのに停止したり。
2010はまだ本格的に使ってないから改善されてるかどうか知らんけど
スレッドの機構考えてみよう スレッドで別々に例外発生したらデバッガがどうなるかとか 発想出来ないのかな?
そういう回りくどいオナニー回答入らんよ。
マルチスレッドのそれぞれのスレッドから GUIの同じコンポーネントに同時に アクセスしても大丈夫なんでしょうか?
さぁ?
402 :
デフォルトの名無しさん :2010/09/04(土) 18:51:52
WindowsMobileでホールドイベントの取得ってどうやるの
>>402 お前聞いてばかりいないで少しは自分で調べろや!
排他制御は自分でかけるんだっけ?
>>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
的を射てない質問かもしれませんがよろしくお願いします ブラウジングしている時、サイトを開いたりボタンをクリックしたりするだけでダウンロードがなされることがあると思います その時にダウンロードされるファイルをプログラムからダウンロード出来ないでしょうか? ひとしきり思いつく範囲では調べたのですが、これといった情報にたどり着けませんでした どういう単語で調べるといい、のようなヒントでもいただけるとありがたいです
パケットキャプチャして、どんな通信が行われてるのか確認してみ。
http
html
Console.WriteLine(BitConverter.ToString(byteArray[])); がハイフン区切りで羅列してくれるんだけれど、なんか大きなお世話。 数珠繋ぎで欲しい場合って for (int i = 0; i < byteArray.Length; i++) { Console.Write("{0:X2}", byteArray[i]); } ってぐるぐる廻すしか方法無い?
>>412 String.Replaceで"-"除去するとか。
string hex = byteArray.Aggregate(new StringBuilder(byteArray.Length * 2), (sb, b) => { sb.AppendFormat("{0:X2}", b); return sb; }, sb => sb.ToString()); 適当に書いたから合ってるかは分からん
>>408 javascriptです
Ajaxという技術を使ってる場合もあります
なぜJavaScriptスレで聞かないのか。
それはJavaScriptだと分からなかったからだろう 何故このスレなのかはよく分からんが スレ立てるまでもない質問スレとかあるのに
フラッシュかもよ…
え? 確かにAdobe Flashかも… サイト開いたらダウンロード中って出るよな… 早とちりしたか… orz
420 :
デフォルトの名無しさん :2010/09/05(日) 11:49:06
>サイト開いたらダウンロード中って出るよな… これだけでFlashだと考える人って
ほんと素人が多いなこのスレ
初心者用だし。
素人とキチガイと…
無職とニートと粘着と糖質
webページにあるinputのhidden属性のvalueを取得するにはどうしたらいいですか
type=hidden 以外のと同じやり方で取得できるだろ 特別なのは type=file だけだし
それができないんですが… HtmlElementにはGetElementsByTagNameは無い HtmlElementCollection にはGetAttributeが無い
使うのはHtmlElementのGetAttributeだろ INPUTはHtmlElementだろ typeはINPUTの属性だろ
HtmlElementCollectionにGetAttrを使おうとしてるから、 HtmlElementCollectionが属性のコレクションだと勘違いしてるんじゃねえの。 それ属性のコレクションじゃなくて要素のコレクション。
>>429 を参考にしてできました
ありがとうございました
せやな
webBrowserにあるボタンをクリックした後の待ち時間を設定するのがうまくいかないんだけどどうしたらいいのかな…
do { Application.DoEvents(); } while (webBrowser1.ReadyState != WebBrowserReadyState.Complete); でボタンをクリックした後の待機をやろうとしたら動かなかった
死ねばいい
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 >なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
438 :
デフォルトの名無しさん :2010/09/05(日) 14:25:33
408です みなさまお返事ありがとうございます C#のこのスレでお尋ねしたのは、C#でダウンロードするプログラムを考えていたためでした まだどうすればいいかは把握出来ていませんが、キーワードを元に色々ググッてみようと思います ありがとうございました
結局質問内容がわからずじまい
test
int [] x; int [] y; といった配列のマージってどのようにすればいいでしょうか? CopyToとかよくわからない。
x.Concat(y).ToArray();
マージだとOrderBy要らないか?
併合した後のデータが整列されていることを望んでるかどうか分からんかったから書いてない。
>>414 ぱっと見で解読出来る初心者はまず居ないと思う。まだ413の方がマシじゃ?
C#ASP.NETでの質問です。環境はvisual studio 2008です。 やりたいことは、テキストボックスに文字を入力して、 Enterキーを押すと、その文字列をSessionに渡して、 違うウインドウを開く、ということです。 次の例だと、AAA.aspxからBBB.aspxを開きたいわけです。 これで、基本は希望通りの動きをするのですが、 BBB.aspxが開かないことがあります。 改善点等ありましたら、よろしくお願いします。 下のbutton_sub内でwindow.open('BBB.aspx', '---'); とすれば、今のところ必ず開きそうだったので、 javascript部分でSession情報への代入が出来れば、 いけそうだったのですが、javascriptではSession情報 いじれないんですよね?
>>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>
>>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);
}
>>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;
}
}
セッションなんかいらんだろ? クエリ文字列かパス情報辺りでやりな。 こういうのにセッション使うと、格納と読み出しのタイミングを図る必要が出てくる。 格納前に読みこんだら意味ないからな。
セッションはCookieにもっとけば、自動的に引き渡されるよ。
ブラウザCookie拒否してたらどうする?
知るかハゲ
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では実行時にファイルが見つからないと言われます。
TCPClientてBackgroundWorkerでInvokeで呼んだら非同期通信になるかな? MSDNの.net.Socketの非同期クライアントの例の処理が読んでも解らんから楽したい。
スレッドハンドルってどうやって取りゃいいの?P/Invokeで使いたいんだけど
取れないし使えない
なんだカレントスレッドしか取れんのか
そういう問題でもない マネージスレッドとアンマネージスレッドは1:1で対応しない だからP/Iにマネージスレッドハンドル渡しても使えない
>>460 なるだろうけど(Invokeはたぶんいらない)その非同期パターンは.NETでよく出てくるから逃げずに理解するべき
ファイルのダウンロードも同じパターンだからWebRequestなんかで調べればわかりやすい例がたくさん出てくる
>>459 インストーラじゃなくてアプリ実行時に参照したいんだよね?
WinFormならApplication.StartupPathとか
あとはAssembly.Locationとか
その辺とPath.Combineする
フォルダやドライブのアイコンってどうやって取得するのでしょうか
静的に欲しいだけならshell32.dllからLoadIcon 動的に欲しいのなら取り敢えずSHGetFileInfo
×ご教授 ○ご教示 ご教授だと過剰なので相手を馬鹿にしているように取られる 冗談の場合を除いて、実生活で使っちゃだめ
ご教授って言うと毎回どこからともなく沸いてきて、本題の回答をせずに消えていく。あれは何なんだろう不思議だ
HttpWebResponseにContent-Lengthと ダウンロード開始からの経過時間と 既にダウンロードしたバイト数をカウントておけばそれぞれ算出できるだろう Transfer-Encoding: ChunkedだとContent-Lengthが使えないので進捗は出せません この場合IEも速度以外表示しませんが
474 :
デフォルトの名無しさん :2010/09/09(木) 14:44:55
windowsmobileのソフトウェア開発の勉強をしてみようと思っています。 windowsでの開発自体が初めてなのですが、C#や.NETについて おすすめの参考書籍はありませんか? プログラミング自体はLinuxでの経験があるので、本当の入門書ではなく 参考書籍のようなものが希望です。
「ご教示」の説明をしようとすると、
>>472 みたいなのが毎回どこからともなく沸いてきて雑談めいたレスを残していく。何なんだろう不思議だ
>毎回どこからともなく沸いてきて それだけ気にしてる人が多いってことだろ。 毎回同じやつが指摘してるとでも思ってんのかね。
477 :
476 :2010/09/09(木) 14:54:48
478 :
デフォルトの名無しさん :2010/09/09(木) 16:24:41
対数で保持しているSqlServer.floatのデータを C#でdoubleで受けてToString()すると対数のまま文字列にされてしまうんですが 小数で文字列にしたいんですがどうしたらいいでしょう。 "2.4-E5" を "0.000024"としたい。 よろしくお願いします。
Decimalで受けてみたら? 検証してないからうまくいくかどうかわからんけど
カスタム数値書式指定文字列使って 小数点以下の桁指定文字を350個ほど並べとけばいいんじゃないかな
ToString("#0.#########################################################") こんな感じか
もう少しマシな回答はないのか
XPのネットワークアイコンみたいに、通信があったときをlabelに色で表示したいんですけど、 どのようにして通信を取得すればいいのでしょうか。
WindowsFilteringPlatform使う方法しか知らない
>>471 指摘ありがとうございます。
これから先この言葉を使って恥をかくことはなさそうです。
>>473 回答ありがとうございます。
DLするファイルサイズとDLしたファイルサイズを取得することができました。
%完了 というのも頑張って実装したいと思います。
486 :
デフォルトの名無しさん :2010/09/09(木) 22:23:44
.Net 2.0のC#でWindows Formを使ったプログラムを書いているのですが、 わからないことが発生してしまいました。 数値だけではなく、帯域を表現できる入力コントロールとして、 TrackBarではなく、HScrollBarを使おうと思ったのですが、 最小値(Minimum)と最大値(Maximum)は設定できたのですが、 スクロールバーのバー部分の幅の設定の仕方がわからないでいます。 どなたか、ご存知の方、または、お勧めの代替え案などがありましたら 教えていただけませんでしょうか。 以上、よろしくお願いいたします。
LargeChangeが兼ねる
488 :
デフォルトの名無しさん :2010/09/09(木) 23:08:20
> 487 なるほど・・・ PageUp/PageDown時のスクロールサイズ->ページサイズ->バーのサイズ でしたか・・・ ありがとうございました、解決いたしました。
>>486 MSDNライブラリの「使用例」の説明を読んだ感じでは、
[ハンドルの幅] / [ハンドルの稼動部分の幅] = LargeChange / (Maximum - Minimum)
になる感じかね。
ハンドルの稼動部分の幅は正確にはわからないが、
クライアント領域の幅で代用すればOKなんじゃないの?
490 :
デフォルトの名無しさん :2010/09/10(金) 03:18:02
>>489 ご回答ありがとうございます。
今回、AutoScrollで表示されるスクロールバーではなく、
HScrollBar単体での使用であったため、ClientSize
を使った計算ができなかったための質問でした。
メモリーに入りきらないぐらい巨大な文字列にたいして正規表現で検索をしたいんだが、.netに付属の奴だとstringしか渡せない charenumratorなどのイテレーターを渡すことのできる正規表現クラスはないの?
そんなものはない 巨大文字列を適切な個所で区切って使え 以上
493 :
デフォルトの名無しさん :2010/09/10(金) 09:56:18
byte[] bytes = object; のようにobjectの型も含めてバイト配列にする方法とそれを復元する方法はありませんか? ファイルに保存するのではなく単にバイト配列とそれを復元したいのです。
IFormatter実装してる何らかのクラスを使う Streamにしか出力できないので適当に変換する必要がある
496 :
493 :2010/09/10(金) 10:41:35
MemoryStreamとBinaryFormatterを利用するのが簡単そうなのでとりあえずそうしてみたのですが、 こういう方法を多用しまくっても問題ないのでしょうか?。
ふつう使わない というか使う必要がない! 何に使うか疑問
するのは構わないよ 勝手にしてくれ
>>496 メモリイメージそのまま使いたいってのが仕様なんだったらそうすりゃいいんだけどさ、
整数のエンディアンとか、構造体のアラインメント/パッキングとか、
色々問題あるよ。
.NET 内だけで使うにしても、x86とx64間で何か困りそう。
BinaryFormatterってメモリイメージじゃないでしょ?
>>500 あれって内部的にエンディアンどうするとかって仕様で決まってたんだっけ?
BinaryFormatterってXMLシリアライズのように 要素の型と値を抽出したあとに バイナリで保存してるだけでしょ
とあるクラスからForm1の変数(もしくはプロパティ)を読みたいときに、 そのクラスから以下のように呼び出しても良いのでしょうか? Form1 f1 = new Form1(); var foo = f1.bar なんかメインフォームを呼ぶのってダメなような気がするのですが、 他に方法が思い付かなくて。
お前この前VIPで質問してただろ いい加減クラスとインスタンスの区別を付けろ
するのは構わないよ が、きっと君の目的は達成できない
>>504 VIPとは?
別クラスでボタンコントロールをインスタンス化して、そのボタンのプロパティとイベントハンドラーを設定。
メインフォームのロードで別クラスを呼び複数のボタンをフォームに配置。
としたときに、ボタンをクリックしたときにメインフォームで持っている構造体の中の変数を呼びたいのです。
それでいいよ。 上手く行かなかったらもう一度来なさい。
変数を呼ぶとはなんぞや
newしたってそのメインフォームとはイコールにならないことが理解できなければ100万年かかっても無理 Form1 mainForm = new Form1(); Form1 form = new Form1(); この場合 mainFrom ≠ form
そういうどうしようもない部分って誰が教えてくれるんだろう。
イベントハンドラのsenderを見りゃあいいだけだよね
private void button_Click(object sender, EventArgs e) { MessageBox.Show(((Form)sender).Size.ToString()); } こういうこったろ
かーもねっ
>>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;
}
}
}
…labelの親は誰だと思う?
>>515 ラベルクラスで「this.」と打っても、インテリセンスにownerが出てこないので
親はいないのかと・・・。
オーナーじゃありませんパレントです
>>492 境界のところで一致するような正規表現をつっこんだら、ややこしいことになる
boostにはイテレーターを突っ込むことのできる正規表現クラスがあるんだが、C++のやつをC#で呼び出すことはできないよな…?
519 :
デフォルトの名無しさん :2010/09/10(金) 18:38:36
>>518 C++のやつをC#で呼び出すことはできないよな…?
できますがな
APIとかばりばりで使えますぜ
VB6グラマーの大好きなお作法ができる
>>519 そのやり方でC++で書かれたクラスのインスタンスを作ることはできる?
521 :
デフォルトの名無しさん :2010/09/10(金) 18:51:06
>>520 しらん
面倒なら以前どこかのスレで見かけたがwininetを使ってproxyタイプの
簡易サーバー書いてそいつにc#のhttp通信関連で通信して処理させればいい
C++のクラスの方をCOMコンポーネントにしてしまえばそのままマーシャリングできる それが面倒なら関数とクラスポインタでチマチマやるしかないね
早くやってることがDQNだと気づけ!
>>517 以下のように書いて出来ました!
((TestApp.Form1)(((Label)sender).Parent)).field.array[i, j].labelName
ありがとうございました。
すごすぎる
>>502 それだとエンディアンやばそうじゃない?
実際、monoな人がぼやいてたような。
まあ、それ言い出すと他のシリアライズ手法も怪しいらしいけど。
久しぶりに酷いコードをみた
恐怖を感じた
うんこまんひどす…
なーに、lispだと思えばなんて事は無い
スマートさを求めた結果がこれだよ。
ぱっと見Lispっぽいなw
533 :
524 :2010/09/10(金) 19:49:01
>>527 俺の事?
デバッグ中にウォッチで見つけたからその通りに書きました。
なにかもっとスマートな書き方があるのでしょうか?
楽天RSS?
これはガチガチに凝り固まった頭なのか?それとも柔らか頭の為せる業なのか! オツムかち割ってみてみたい。こんな発想出来るのは偉人か奇人の紙一重だろう。 一応褒めてるんだぜ? おめでて〜頭だ。
BinaryFormatterは環境に依存しないだろ。
前に
>>524 みたいなキャスト書いた事あるけどアカンの?
自分なら何行かに分けて書くと思うけど、好みの問題の域を出てないと思うなぁ。 そもそもsenderからParent取ってってやらないといけないのがなんか避けたい実装な気もするけど。
余程特殊な理由でもない限り、
コントロールのイベントハンドラを所有者のフォーム以外に書いているとしたら、
もうかなり腐臭の漂うウンココード。
普通にコントロールのイベントハンドラを所有者のフォームに書いているとしたら、
わざわざハンドラのsenderから辿って所有者のフォームの参照を取るのは間抜けすぎる。
たぶん
>>524 は後者だと思うが、「広域変数はダメ」って意味を勘違いしてるのかな。
俺thisで済むのでもふつうにsenderから取ってたわ。 せっかく送られてきたのを使わないともったいない気がして。
自前のクラス内じゃないのか? で、form持ってないんだろ
>>520 >>522 ありがとう
楽にとはいかないのか…
さすがにそこまでするのはめんどくさいから行単位でRegexに文字列を渡すことにしてみる
543 :
539 :2010/09/11(土) 16:55:05
すごすぎる(´・ω・`)
int[] x = {1,2,4,7}; int[] y = {1,2,5,7} xとyにない数値を求めたいのだが、 この場合は、5を算出したい。どうすれば?
上は、まちがい int[] x = {1,2,4,7}; int[] y = {1,2,4,5,7} xとyにない数値を求めたいのだが、 この場合は、5を算出したい。どうすれば?
ループさせればいいじゃん。何で悩むんだか。
xとyにない数値って何
var z = y.Exact(x); 普通にループ使えよ
とりあえず,対称差だとすると下のどちらか
var z = x.Except(y).Union(y.Except(x));
var z = x.Union(y).Except(x.Intersect(y));
>>548 「xとy(のどちらか片方)に(しか)ない」と言いたかったとか?
元の文とは全く意味が異なるけど
>>549 Exactって何ぞや?拡張メソッドにも見当たらないんだが
はふぅ
X、Yの差集合と Y、Xの差集合での和集合ですね。
富豪的プログラミングで行こう
554 :
デフォルトの名無しさん :2010/09/11(土) 21:25:24
int[] x = {1,5,2,7,1,4,7,4}; から重複をとっぱらって int[] y={1,2,4,5,7} と順に並べたい。けど、どうすれば?
OrderBy().Distinct().ToArray()
ぴゅっ
557 :
デフォルトの名無しさん :2010/09/11(土) 21:36:14
すみません。高齢者向けのフリーソフト(ブラウザ)を開発したいんですが、 ジャパネットとかで売ってるパソコンのスペックでもC#で開発したのは動きますか?
わからん
>>555 OrderBy()
ラムダ式いるのでは?
>>557 2007年にジャパネットで売ってたメモリ512MBのVistaとか?
それOS動かすだけで精一杯だろ
>>541 どうやらまともに理解しているのアナタだけみたいですね
まあね
型推論はVC#のどのバージョンいくつから使えて、.NETのバージョンはどれ以降ならOKか、 同じように拡張メソッドはどのバージョンか、LINQはどのバージョンか、ラムダ式はどうか ……というのが表にまとまってるウェブページってありますか?
わざわざまとめるほど複雑かね?
イメージリストに画像を追加する際にインデックス番号を指定して追加することは可能ですか?
LINQを実装するために型推論も拡張メソッドもラムダ式も導入されたんじゃねえの 全部仕様はC#3.0、VSは2008、.NET Frameworkは3.5のような気がする 勘で書いてるので合ってるとは思わない
そのリストが欲しいといってんだろ。 あるのかは知らない。
>>567 無理
>>568 .NET Frameworkのバージョンは2.0で十分だよ、型推論も拡張メソッドもラムダ式もクエリ式も言語の機能
まあSystem.Core.dllが用意されてない.NET3.0以前はクエリ式はまともに書けないだろうけど
常識的に考えてあるわけない wikipediaみて自分で作れ
ImageCollection.Addの(string,Image)使ってindexを文字列にして渡せばぁ
うん
>>565 C#
VS2005→つかえない。
VS2008→つかえる。
VS2010→つかえる。
VB.NET は
VS2010→つかえる。
でいいんじゃ?
.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 殆どが使える。例外は式木関連ぐらいか。
>>577 .NET2.0で使えるC#3.0 って何?
579 :
651 :2010/09/12(日) 20:18:22
え?
>>578 C# 3.0 って .NET 3.5 と同時にリリースされたものだけど、
別に .NET 2.0 上で動くアプリも C# 3.0 で書ける。
ただ、.NET 2.0 には標準クエリな拡張メソッドがないってのが問題なんだけど、
同じものを自作しちゃえば OK。
具体的に言うと、VS2008でターゲットを.NET 2.0にするとそう言う状態になる
582 :
565 :2010/09/12(日) 21:45:15
(´・ω・)・・・
はずかしい質問なのですが・・・ int i; char text[100]; text[1] = (char)i; これをC#で書き直すとどうすればいいのですか?
いみふ
>>584 int i;
char[] text = new char[100];
text[1] = Convert.ToChar(i);
(。∀。)
言語すら書いてないわけだが
言語関係無しに見たら分かるだろw
(・∀・)
>>584 は確かにイミフ
(char)('a' + i)とか(char)('0' + 1)とかだったらわかるけど
単に数値をそのまま文字にキャストすることなんて滅多にないと思う
Cだったらbyte代わりにcharを使ってるとかじゃないか?
バイナリ部分とテキスト部分が混じってるファイルをバイナリで開いて、 テキスト部分を読み込むときにああいう書き方をしたことはある。
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 をつけて宣言をすると型が違うので使えないとエラーになりました
>>595 >Key が変わるごとに
DictionaryにKeyなんてプロパティは存在しないでしょ。
自分が何を言っているのか理解してる?
>out をつけて宣言をすると型が違うので使えないとエラー ここのコードをエラーが表示されてる状態でいいから貼れ イマイチ言わんとしている事が伝わってこない
>>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>>();
コードを見ても何したいのか分からないが、ひょっとしてこういう事なんだろうか 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);
>>598 phperっぽいな
値型がボックス化で参照型になった物を例外として
参照型は値型に変えられない
のでインスタンスは個別に生成しないと駄目
>>599 はいその通りです
ループの中で再宣言をするとエラーになるので、宣言する際の型で値渡しにしようとしておりました
>ローカルの変数 'SubHash' をこのスコープで宣言することはできません。
>これは、'親またはカレント' スコープで別の意味を持つ 'SubHash' の意味が変更されるのを避けるためです。
>>600 インスタンスは個別に作らないといけないんですね
値渡しの方法はあきらめてロジックを見直してみます
ありがとうございました
602 :
デフォルトの名無しさん :2010/09/14(火) 04:27:37
.NETとC#でプログラムを作成すると、絶対にウインドウを生成してしまうのでしょうか? 呼び出されるとあるコードを実行して終了したいので、ウインドウなどは必要ありません
ウィンドウなしのプログラムも作れるよ
604 :
デフォルトの名無しさん :2010/09/14(火) 05:30:46
いきなりフォームデザイナが起動するのですが、どうするんですか?
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
ウインドウを作るのと作らないとではそんなにメモリ消費量かわんの?
計ってみればいいじゃん
610 :
デフォルトの名無しさん :2010/09/14(火) 06:58:31
>>608 Formだけだとどれくらいだろう
今のPCだと誤差だと思うけどねえ
でもFormのメンバ関数とか見てると数バイトってレベルではないとは思うけど
VB.NETのスレが無いのですみません。 Dim [source] As TreeNode = _ CType(e.Data.GetData(GetType(TreeNode)), TreeNode) 上記の[source]ってどういう意味でしょうか? なぜ[ ] がついているんでしょうか?
・・・
スレ立ててやったのかw
VBにSourceなんていう予約語はなかったはずだが もしかして識別子全てに[]付けてる痛い人なのかな
コピペ元はDOBONの記事っぽいけど、そこでは混在してるな よくわからない
(´・ω・`)…
断る
変わらないと思う理由は?
622 :
デフォルトの名無しさん :2010/09/15(水) 06:21:34
Emitっちゅうのが何者かわからないのですが、どのようなものなのでしょうか
インラインアセンブラみたいなもの 実行時にILを書き下してそのまま実行させられる 大量にリフレクションを使用するような用途(シリアライザや言語処理系など)の高速化に用いられる
ふ
625 :
デフォルトの名無しさん :2010/09/15(水) 13:29:08
Emitが使えない場合はどうするんですか
普通にリフレクションとコード
>>626 おめえうぜえわ
分からないならいちいちレスすんなks
と、分からないksがファビョっています
ksって何? コロ助?
List<string[]> array = new List<string[]>(); for (int i = 0; i < 5; i++){ array.add(new string[]{"foo" + i.ToString(), "bar" + i.ToString() }); } このarrayのソートはどうすればいいのでしょうか
したいようにすればいいよ 何をどう並べるのか分からんわ
foo0
foo1
foo2
foo3
foo4
と並べたいんです。
>>630 は参考程度のコードなので
もう並んでるってのは無しでお願いします。
いやだ
Arrayクラスのメンバ全部確認しろ staticメソッドのSで始まる辺りを特によく見ろ
どちらかというとList(T)クラスだと思う。
要件次第だけどもねぇ。 List.Sort か、LINQ の OrderBy か、最初から SortedDictionary/SortedSet 使えよってのか。
ジャグ配列になってるせいでArray.Sort()もarray.Sort()も使えないようです。
ごめん俺の方がよく見てなかった
C# ASP.NETで質問です。
やりたいことは、webアプリから、ファイルサーバーにあるファイルの
アクセス権限の取得です。
ttp://support.microsoft.com/kb/306158/ja この辺を参考に試してみましたが、デバッグではともかく
IISで動作させると、File.GetAccessControl()で失敗します。
なにかこの辺の情報、もしくは情報の載っているサイトの紹介をお願いします。
あー。 じゃあ、(from x in array from y in x select y).OrderBy(x => x) で。
641 :
デフォルトの名無しさん :2010/09/15(水) 22:24:55
WindowsMobileのプログラミングをしようと思い調べているのですが、
このスレッドを読んでいて
>>319 を見つけました。
.NET CFが消えるということなのですが、具体的にはどういうことなのでしょうか?
うがー
array.Sort((x, y) => x[0].CompareTo(y[0])) でいいと思うのだがどうか。
>>641 WindowsMobile6.xならSilverlight気にしないでCFやればいい
>>639 Web.configのidentity要素を設定して対象のファイルに対する適切な権限を持ったユーザに偽装するとか、
AppPoolのIDを変更してみるとか。
サイトはよくわかんないけど。
>File.GetAccessControl() 何が死体の?
きた
>>641 そのまんま
今後出るのはSilverlightベースのAPIになる
といってもSilverlight自体CFを本にしてるのでほとんど一緒だけどGUI関連はガラガラポン
。 。 スポポポポーン!!! 。 。 。 ゚ 。゚。゜。 ゚。 。 / / ( Д )
お前の目玉はいくつあるんだ。
>>483 です
Windows Filtering Platformを調べたけど、
サンプルコードが全然出てきませんね。
Console.Read() で、1〜9以外を無効化したいんだけどどうやればいいの whileとかで無限ループで 12とかやると 1〜9を選んで下さい みたいに出るんじゃなく キーボードの1〜9しか受け付けない、1〜9のどれかを 押したら即座に反映される みたいなのをやりたいんだけど!
あー、マーシャリングがちゃんと書けることが前提 まずフィルタを登録する 次にフィルタにコールアウト関数を登録する コールアウト関数はフィルタにマッチしたら呼ばれる あとはメッセージでも投げて点滅させればいい そういう用途には使ったことはないが コールアウトを使ったパケットフィルタリングが可能なことは前に確かめた
IP Helper API使えば簡単ジャン
IP Helperで通信の検出なんかできたっけ
ポーリングでなら
なるほど
662 :
デフォルトの名無しさん :2010/09/16(木) 23:55:31
MHTファイルに保存したくて CDO.MessageClass の CreateMHTMLBody(url, CDO.CdoMHTMLFlags.cdoSuppressAll, "", ""); を使ったのですが、同じURLにも関わらずIEで名前を付けて保存を実行するより ファイルサイズも小さく、一部の情報欠落してしまってます。 どう対応すればよいのでしょうか?
スレ違いだ お前はExcelの使い方がわからないときに「C++で作られてるから」とC++スレで質問するのか?
。 。 スポポポポーン!!! 。 。 。 ゚ 。゚。゜。 ゚。 。 / / ( Д )
よく分からんが取り合えずSuppressAllだとなんか保存するのを抑制しそうだが
別スレッドで自身のインスタンスにあるプロパティを変更するのって問題ない?
ものによる
668 :
デフォルトの名無しさん :2010/09/17(金) 02:50:08
>>665 ネット上のサンプルではcdoSuppressNone
だったので、こちらを使ってみてたのですが
駄目でした。
それで、フラグをいろいろ変更して試してました。
669 :
デフォルトの名無しさん :2010/09/17(金) 05:34:50
コマンドライン向けに作ったC言語のアプリケーションがあるのですが、そのアプリケーションを実行して 実行結果をウインドウに表示したいのですが、どうすればいいですか?
// hoge.exeを起動して、Process のインスタンスを取得する System.Diagnostics.Process hProcess = System.Diagnostics.Process.Start("hoge.exe"); // 終了するまで待機する hProcess.WaitForExit();
もっと単純な書き方がありそうに思うのですが、ありませんか? List<string> lists = new List<string>(); int index = lists.FindIndex(x=>x == string);
意味が分からない 何がしたいのか日本語で書け
>>672 意味が分からないのならスルーしたら?
例え日本語で書いたとしてもオマエは煽りしか書かなそうだしな
675 :
662 :2010/09/17(金) 11:23:07
CDO.MessageClassのCreateMHTMLBody は IEの保存と違って どうやら再帰的な外部ファイルの読み込みには サポートしてないらしいですね。 Chilkat のライブラリを使えば問題は解決しそうだけど お金かかるみたいだし 自作するしかないのかな。
たぶん
>>671 はIndexOfの存在を聞いてるんだと思うぞ
ラムダ式書くのがアホ臭いってことでしょ
int index = lists.IndexOf(string);
わかんないならレスしないでくださいー 親切心であろうと自己満足であろうと邪魔にしかならないので
自己矛盾レス乙です
了解
理解した もう無駄なレスはしないと誓うぜ
VC#2005使ってると、匿名デリゲートじゃなくて、 Javaの匿名クラスが使いたくなることがあるんだけど、 VC#2010だと出来たりします? 買おうか迷い中なのです。
>>681 レスしようと思ったけど
よくわからないのにレスしたらまた怒られるし
やめとくわ
俺も怒られそうだからやめとく ゴメンな^^;
Javaの匿名クラスと同じ物は無いな 匿名型は使いどころは全く違うし
むむむ、残念。 Java使ってると逆に C# が懐かしくなるんですけどね。 簡単なところで、partial クラスとか。
何とかしろヘジ
>>681 答え分かるんだけど
よくわからない野次馬に怒られるし
やめとくわ
www レス禁断症状www www
/: : : : : : : : : : : : :
| : : : : : : : : : : : : : や よ つ
| : : : : : : : : : : : : : め く れ
チラッ __ ゝ . __: : : : : : : : : と わ l
. r‐-==ニ二 `ヽ_____ Τニi┬- く か
`>‐┬――- 、 ∨ `ヾ=L} わ ら 俺
/⌒ヽ | 、_ __ ヽ | \} l な 答
/ \ | rq __ ||ニ=- ヽ い え
. /-‐=ミ ヽ| ノ リ^i-‐ Y |ヽ、答 野 分
. {7 ̄\ `| ‐ァ 〃―- | } ,′: え 次 か
. ー--/ ヽ_,∧ / -‐=ミ j/ /::::::: 分 馬 る
. ′ / ー--‐く/ ∧ ∠..__/:::::::::: か に ん
/ / /__{/  ̄ ̄る 怒 だ
/ , ' / ん ら け
. / / ′ だ れ ど
. / / / け る
/ / ど し
/ / な
. / ′ l
,イ /
〃///
{/イ
いるよね
こういう人www
>>681 C#に完全なJava互換を夢見ていると痛い目みるよ
FormのResizeを、Width:Height=4:3とかの縦横比固定に制限したいのですが、 横方向は良いんですが、縦方向が上手く行きません。 MSDNのControl.Resizeイベントの項目に正方形の例があって、 これを試しても、上下方向の伸び縮みはダメです。 何か制限とかあるのでしょうか。
691 :
デフォルトの名無しさん :2010/09/17(金) 14:12:15
>>690 >MSDNのControl.Resizeイベントの項目に正方形の例
URLプリーズ
制限じゃなくて理屈の問題 Control.Resizeの例だとHeight = Widthにしてるんだから高さ変えても横幅に戻されるのは当然でしょ 前回のサイズを覚えておいてどっちにリサイズされたかを判断して 幅を高さに合わせるか高さを幅に合わせるか決める ただし斜め方向のリサイズが鬼門
test
斜め方向の場合はアス比をいちいち計算して4:3より大きかった時は縦を補正、小さいときは横を補正
すればマウスカーソルがウィンドウ枠から飛び出すことが無くなる
697 :
690 :2010/09/17(金) 14:51:40
空白は甘え
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; } スレ汚しごめんなさい
このスレでは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 のようなコード◎貼りはちょっと・・・
スレ汚しにもほどがあるからな
いちいち見に行くの面倒くさいからここに書いてくれ
706 :
デフォルトの名無しさん :2010/09/17(金) 19:42:35
1から10の数字を足すコードはこれでいいですか? もっと良い書き方がありましたらご教示おねがいします int sum = 0; for (int i=1; i<=10; i++){ sum = sum + i; }
>>706 var sum = Enumerable.Range(1, 10).Sum();
int sum=55;
良い書き方を聞かれると変態的な書き方を答えたくなるものだ…。
int aho=-1;
リファレンス見れば分かるようなことを 疑問に思うたびに聞いて回答つくの待つのかって話 22分待つ前に解決するだろ?
>>711 間違ってますか?じゃねえよ。
質問する前に全部読めっつったろ。
疑問符使う前にまず読め。
申し訳ないけど優しくレスしてください ここではそれがルール
はじめにリファレンスなど参照くださいまし。ふくよかなお方。
sum = sum + i; が気に入らないのかな。 sum += i; があるのに。 まあでも、正直、この手の代入演算子、ほんとに必要だったかどうか…
>>707 それ読んで理解したら解決するの?するわけねーだろ。
int sum=10*(1+10)/2;
”良い書き方”ってのが抽象的なんだよなー
代入演算子は趣味に近いからまずどうでもいいとして
上達してくれば良い書き方ってある程度身につくものでしょう?
例えばこのスレの人間でも
>>708 に対して「スマートで便利ですね」なんて感想を抱く奴は1割もいないと思う
”良い書き方”であると判断するためには
これがなぜ”良い書き方”なのか?を理解していなければ意味がないわけよ
そこをショートカットして”良い書き方”だけ知ったとしても変化に対応できない
このコードの”良い書き方”はどうなりますか?このコードではどうなりますか?って
今日の晩御飯はおそば まで読んだ。
いや、スマートで便利だと思うわ。 目からウロコ。
。 。 スポポポポーン!!! 。 。 。 ゚ 。゚。゜。 ゚。 。 / / ( Д )
ウロコっつーかイクラか数の子のようだな
別にマの育成スレでもないのだから 答えたい奴が答えて答えたくない奴は答えないでいいと思うよ それが気に食わないのなら見なければいい
。 。 スポポポポーン!!! 。 。 。 ゚ 。゚。゜。 ゚。 。 / / ( Д )
>>714 すいません意味がわかりません
sum += iと書いたほうがいって事ですか?
答えたくなくても答えたってかまわないし、気に入らないのを見るのも自由。
昨日相談室で荒らしてたバカがまたここで荒らしてるんじゃねえの
そんなことよりクワガタ虫の話でもしようぜ(バグ取り的な意味で)
グラマって変な正義感を持った奴が多いよな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 とは違うぞ
見たくなけりゃ見なければいいというのも至極最もだと思うよ
特徴って句読点も口調も違うじゃん
よくわからんが数列のサンプルがマイクロソフトにあったん?
いやおめぇさん、荒らしは特徴を消してこそプロよ
>>719 ちょww質問者気づいてなかったのかスルーされてんぞw
>>732 その被害妄想、もう立派な病気だと思うわw
っていうか、自分の気に障る奴はみんな敵、という2chには多い敵味方二元論的
思考をする奴の特徴がよく表れてるな。
ストーカーか気色悪いわ。
740 :
719 :2010/09/17(金) 22:52:34
741 :
デフォルトの名無しさん :2010/09/17(金) 23:01:55
やーだお
んで
>>707 は何故リファレンスを読めって言ったの?
お勉強になるからだよ
sum = sum + iもsum += iも別に書き方が違うだけで同じことだから707はもっと凄いことに気づいたんじゃないの?
自分の知っていることに対してだけ高圧的な態度になるのはダメだね
もうだめ猫のスレ
>>745 その程度であんな必死にリファレンス嫁って意味プ
ム板らしくないな
富豪的プログラミングで行こうぜ
int sum = (1 + 11) * 11 / 2;
int i = 10; int sum = (1 + i) * i / 2;
いや、でも、今回みたいに「10までの和」っていう10がハードコードされてるなら、 var sum = 55; が一番効率いいわけだし。 変数使って n までの和なら var sum = (n * (n + 1)) / 2; がいいだろうし、 実は後々任意の配列の和になるとかなら var sum = array.Sum(); だろうし。
自己愛性人格障害とはなにか
http://homepage1.nifty.com/eggs/narcis.html 他人から侮辱されたと思い込んだりした場合、自分を守るために、非常に激しく怒ったりします。
あまりにも自己中心的な怒り方なのですが、本人は必死です。
妄想の種になるようなものがないときは、他人の欠点を捜し出して見下したりします。ありとあらゆる
理由をつけて他人を見下します。「貧乏人の癖に」、「不細工な顔をしているくせに」、「頭が悪いくせに」etc...。
実際にどうであるかということよりも、とにかく見下すことができればそれでいいのです。
もともと、裏付けのない優越感ですので、話のつじつまを合わせるために嘘をつくこともありますが、
本人には嘘をついているという意識はあまりありません。ときにはホラ話のように、話がどんどん大きく
なっていって、どこまで本当なのか分からなくなります。
コピペ君って馬鹿だな、まで読んだ。
●持ちだとIPわかるからおもすれwww
IP見れるのは権限与えてもらってる人だけだから●は見えないです
精神的な疾患の話?
Start: 文字入力 入力された文字数n取得 if (n == 0) { goto Start; } else { while (i < n) { char valnum = enc[i]; switch (valnum) { case 'a': number = 1; break; ・ ・ ・ } i++; } こんな感じの作ってるんですが 最後にループを抜けた時、 ループを抜けるまでに変数numberに代入された値を 一週目の値、二週目の値、三週目の値・・・ というように順番に表示するのってどうすれば良いんでしょうか
さいしょのgoto はdo while でいいな。 while() { n = ... system.diagnostics.debug.writeline(n); }
あぁ、number だったか。まぁいいや。
string input = String.Empty; do { input = Console.ReadLine(); } while (input.Length == 0); foreach (char c in input) { Console.WriteLine((short)c - 96); }
String.Emptyじゃなくてnullのような気がするけど…まあいいか 好みだよな好み
それはどうでもいいが、マジックナンバーは感心しない
goto久しぶりに見た switch caseでもしばらく使わなかったけど
switch caseって使わないの?
switch内でgoto caseで他のケースに飛ぶやつだろ やってることは普通にgotoだから上向きに飛ばしたりすると簡単にスパゲティになる
使えるのは知ってるが今のところ使ったことはない。
いじってたら訳分かんなくなっちった
書き忘れ
入力された英文字を数値に変換するプログラムです
>>764 名前 'system' は現在のコンテキスト内に存在しません。て出ます…
>>766 エラーは出ないんですが何も起こりません…
打ち忘れてたんですが i++の前に
Console.Write("{0} → {1}\n", valnum, number); //enc入力された文字 valnum入力されたi番目の文字 numberは変換後の数値
で文字が変換されているか見てるんですがそれ以降の表示が何もないです
どの部分に打ち込めばいいのでしょう?
宿題か?
何を参考にやってます?
>>773 >>764 は電車の中で打ったから
めんどくさくて、大文字が小文字になってる。
VisualStudio が正確なスペルを教えてくれると思うんだが。
もしかして、VSEE ですらないのかな。
ならばたぶん、ぐぐるとよい。
お騒がせしました 解決しました
>>766 のやり方で無事出来ました
こんな数行で済むとは恐ろしいものです…
これを元に色々弄っていきたいと思います
>>776 暇がある時に++c++;という所や猫でもわかるプログラミングという所を覗いて読んで
後々打つ時に参考にしてます
>>778 おお!!こんな感じです!ありがとうございます!
すごい参考になりました。どうもです〜
複数行テキストボックスのTextChangedイベントに適当に処理を書き (自分はApplication.DoEvents()と書きました)、実行時にテキストボックスに ・まずなにか文字列を入力 ・IMEをONにして、文字列を選択状態にする ・日本語を入力し、確定 すると文字列の順番が入れ替わってしまい、 「あいう」と打つと「うあい」のように末尾の文字が先頭に来てしまいます TextChangedイベントハンドラを削除するとこの現象はなくなりました 普段はGoogle日本語入力を使っていますがMSIMEを使っても同様です TextChangedイベントを使いつつこの現象を回避できないでしょうか? WinXPSP3 VisualC#2008Express
>>781 ちったあ生きてるうちに頭使おうよ。
問題は「TextChangedイベントのイベントハンドラがあるかないか」なの?
違うでしょ。
イベントハンドラの中で何をやっているか、それが問題なんじゃないの?
Application.DoEvents()って何のためですか、って人に聞かれて答えられる?
答えられないはずだよね。
>>782 すみません、言葉が足りなかったと思います。
TextChangedイベントは、日本語で例えば「あいう」と打てば
「あ」「い」「う」と3回発生すると思うのですが、問題はこの発生する順番でして、
文字列を選択した状態から入力した場合にはこの順番通りに発生して
くれません。
→「いうあ」となってしまいます。すみません
>>781 はちょっと間違いました
一方イベントハンドラの内容をコメントアウトする、あるいはハンドラを削除
した場合には入力した順番のまま文字が確定されます。
DoEvents()そのものは無意味です。MessageBox.Show()でもなんでもいいです。
なぜTextChangedイベントハンドラ内でなにか処理を行う場合、
文字列の選択状態から入力した際にハンドラが呼ばれる順番が
変わってしまうのか?というのが私の質問です。
ちっとも再現しないが Application.DoEventsもMessageBox.Showも無意味なんて言葉で片付くほど単純なメソッドじゃないぞ Debug.WriteLineぐらいで確認してみ
>>784 Debug.WriteLine(textBox1.Text);
とだけ書いてみると出力は「あいう」
Application.DoEvents();
をそのすぐ下に追加すると「いうあ」
という順番でイベントが発生しました。おっしゃるとおりテストのつもりで
使ったDoEventsに原因があったようです(現在のイベントが後回しにされてしまう?)
TextChangedイベントハンドラ内ではDoEventsを使わないことにしました。
ありがとうございました。
そこだけに限らずApplication.DoEventsなんて使うなよ
787 :
デフォルトの名無しさん :2010/09/18(土) 05:44:27
C#のハッシュテーブルの使い方がよくわかりません。 Perlでいうところの、 { title => time, body => 'DESCRIPTION', } このような連想配列を作りたいのですが、C#ではどのようにかけばいいのでしょうか。 連想配列は無名でなくてもかまいません。
こんなんだめなん?それとも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();
今更Hashtableは無いな Dictionary<TKey, TValue>で
Hashtable ht = new Hashtable({"title": time, "body": "DESCRIPTION"}); こんな風に書けないんでしょうか
C#3.0以降なら new Dictionary<string, string>() { { "title", time }, { "body", "DESC" } };
792 :
デフォルトの名無しさん :2010/09/19(日) 03:32:03
成功するとstring、失敗するとfaultが返ってくるWebAPIをたたくアプリケーションを作成しているのですが、 faultとはC#ではなににあたるのでしょうか
例外
794 :
デフォルトの名無しさん :2010/09/19(日) 05:50:48
Listboxで未選択はどのように取得するのでしょうか? ToString()で比較するときに、未選択の状態を文字列と比較しようとするとエラーが出てしまいます。
選択されてるインデックスが-1になってるはず 具体的なプロパティ名は忘れた SelectedIndexだったかなあ?
796 :
デフォルトの名無しさん :2010/09/19(日) 06:29:29
selectedIndexで評価できるのはわかるのですが、SelectedItemでは評価できないのでしょうか?
797 :
デフォルトの名無しさん :2010/09/19(日) 07:08:30
複数のフォームで共有したい複数の変数があるのですがnamespace直下に以下のような形で 作るのはやはり好ましくないでしょうか?。 あれ、型はpublicでも保有するデータを各フォームでprivate Configにしておけば問題ないと 考えてもいいのかな?。 namespace{ public struct Config { public string 秘密の鍵; } }
>>798 共有って一言で書いてあるから要件が不明
それで動くならそれで構わないんでないかと答える
>>799 ありがと
同期の必要は無く定数のように使いまわしたかっただけなので大丈夫?です
public string 秘密の鍵;
802 :
デフォルトの名無しさん :2010/09/19(日) 09:32:00
インターフェイスの利点となぜ使うのかがよくわからないのですが、 わかりやすい説明や、例えなどはありませんでしょうか。
・実装を隠蔽して抽象データ構造のアクセサのみでプログラムを書ける ← 具象クラスでも出来ること ・実装を強制してヒューマンエラーを少なくできる ← 具象クラスでは出来ないこと ・実装を後回し(or プラグイン)にしてコアルーチンとの癒着による弊害を抑える あと抽象データ構造の内部実装に深くかかわるコンストラクタは記述できない点もあるね インタフェースってば抽象データ構造そのものだから具象クラスとほとんど変わらない 未実装の場合はコンパイラが警告してくれるくらい どういう前提知識を持っているのかわからねーので、例えはきっと他の人が書いてくれるはず
誤解されるように書くとインターファイスは資格のようなもの
とりあえず、仮想メソッドとか動的ディスパッチの利点はわかってんのかな? 実装と規約の分離とか。 あと、abstract class と比べての利点なのか、 動的言語みたいな runtime な型チェックと比べての利点なのか、 一部の関数型言語みたいな non-intrusive な型制約と比べての利点なのか。 上から順に、 abstract class と違って多重継承時に問題を抱えない 静的に型を解決できるんで、コンパイル時点でミスを洗い出せる&開発環境の補助受けやすい 関数内部のうかつな変更で利用者側に迷惑かけない とか。
807 :
デフォルトの名無しさん :2010/09/19(日) 12:38:18
別に使わなくてもプログラム書けるのなら 使わなくてよくないですか?
うん。
構わないよ もともと提供された機能を全て利用してプログラミングしてる奴などいないんだ 必要になったものをそのときだけ使えばいい
>>807 その理屈でいえば制御構文はifとgotoだけでいいことになる
メソッドもクラスもいらん
>>802 家電のインターフェイスと同じ。
異質の物でも同じ物とみなして使いたいことってしばしばあるわけ。
例えば、PC、HDDレコーダー、TVゲームはそれぞれ異質なものだが、「映像ソース」
という面では同じものとみなすことができる。
そして、「映像ソース」という意味での同一性を体現しているのが、例えばHDMIという
インターフェイスだと考えることができる。
こういう視点で、例えばIDisposableとかIEnumerableみたいな具体的なインターフェイスの
使われ方を眺めてみればきっと腑に落ちると思うよ。(この二つはC#で特別扱いされてるから
あんまり適切じゃないかもしれんけど....)
IDisposableはともかくIEnumerableは特別扱いされてない C#のコンパイラはけっこうダックタイピング的な動作をする
>>810 個人なら別にいいんだけどね、書けるもんなら書けば?で。
>>812 foreach はね。
でも、(コンパイラ機能じゃないけど)LINQ だと特別な位置にいるわけで。
LINQのクエリ式も特定のインターフェイスには全く依存してないよ whereが.Whereに変換されるだけの超簡単仕様
クエリ式だけが LINQ じゃないってば。 Enumerable に定義された IEnumerable の拡張メソッド群の話。
違うか、IEnumerable を特別たらしめてるのはむしろ yield return で、 だから LINQ 標準で IEnumerable の拡張メソッドは充実してると考えるべきか。
たまにはQueryableのことも思い出してあげてください
ああyieldがあったな
>>812 はちょっと嘘だ
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>' に変換できません。 となってしまうのですが、なんか良い解決方法ないですか?
struct→class
System.Nullable<T>がstructなのにnullを代入できるのは 単にコンパイラがこの型を特別視してるからだよ
自分でstrict指定しておいてこの言い草じゃコンパイラさんも報われないな
>>819 意味があるかどうかわからないけど、Nullable<T>からMyNullable<T>への暗黙変換を
定義しておけばそういう記述も可能にはなるみたい。
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を開いて、そのボタンを押すプログラムってどのライブラリを使えばできますか? マウスの位置を移動してクリックするのではなく、アクティブじゃなくても直接押せる感じの事がやりたいのですが方法がわかりません
WebBrowser使ってDOMからbutton要素取ってきてonclick呼べばいい HTMLやJavaScriptが分からないならスレ違い
submitボタン, html, ライブラリ と ブラウザ の抽象レベルが違っているのできっとおっぱお
(´・ω・`)かいーの
もう1年ぐらいC#触ってないや・・・忘れたかも・・・
831 :
802 :2010/09/20(月) 06:29:55
>>803 詳しくありがとうございます。
自分が勉強しているサンプルソースコードに、インターフェイスで変数宣言していて
それにインターフェイスでキャストしたものを代入している分があるので、インターフェイスの
意味が全く分からなくなってしまい、質問させていただきました。
書き込み後もいろいろと調べているのですが、その文の意味が全く分からずになやんでおります。
>>805 現在勉強中のため、理解不足の点もあるかと思います。
ありがとうございます。
>>825 この質問よく見るけどGETとかPOSTじゃだめなのか
833 :
デフォルトの名無しさん :2010/09/20(月) 08:11:08
C#の勉強のために、オライリーの「プログラミング C#」を読んでいたのですが 途中から理解できなくなってしまいました。 内容で言うと、基本構文は理解できたのですが、インデクサあたりからわけがわからなくなり、 そこから先はほとんど読みませんでした。 基本構文はわかったつもりなのですが、それから1つステップが先の書籍などはありませんか?
>>831 調べるより馴れる方がいいんでないの?
とりあえずサンプルコード打ち込んで実行してみて具合を掴まないことには理解出来ないと思うよ
オライリーの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 >引数なしのコンストラクタが作れない
あってもコントラクタ側は無視すればいいし、利用する側はダミー値入れとけばええのとちゃうの?
staticメンバ関数作れば良いじゃない
引数なしのコンストラクタを作ると、 構造体の配列を作ったときにコンストラクタが連続呼び出しされるだろ。 それの途中で例外が発生したらどうなるのか。
作成されたものはデストラクトすればいいんじゃないの
・パフォーマンスが落ちるから ・default(Hoge)を使えば初期化されていないインスタンスが作れてしまうから
>・default(Hoge)を使えば初期化されていないインスタンスが作れてしまうから これは後付じゃないかな?
そのうち、適当な理由をつけて、多重継承してもいいんじゃないのとか言い出しそうだな。
int a=bでコンストラクタが働いたら不都合だからじゃないの?
>>842 配列の初期化でも初期化されていないインスタンスが作れてしまう
構造体が0初期化されるのでゼロページが割り当てられる
一応CLRの仕様としては構造体のデフォルトコンストラクタを定義できる。でも
>>842 なんかの事情でC#では作れないようにしてある。
確かに
>>846 の場合ってどうなるんだろうな
恐らく今のCLRではaのコンストラクタは呼ばれないだろうけど
副作用があるかもしれないから正式に構造体のデフォルトコンストラクタをサポートするのであれば呼ぶべきな気はする
だから C# は構造体を 0 初期化&bitwise コピー にしたんでは。
850 :
デフォルトの名無しさん :2010/09/20(月) 13:13:23
文字列の最後の文字を確認したいのですが、 string hoge = "hello"; hoge[hoge.length - 1]; もっとスマートに確認する方法はありませんか?
すみません hoge.Textですね。
>>850 Extension method の Last か LastOrDefault とか
PHPやPerlから来たのかな 遅くなるかもしれないメソッド増やすよりそっちのほうがスマート
そろそろスマート厨と定義してほしい こんなんでLINQ呼ぶな
イテレータは前→後ろしか実装してないからLastってO(n)かな?
>>855 as とか is 使って型判定して、
List とかだったら [Count - 1] を返すみたいな処理入れてたはず。
今、逆コンパイルして確認してみたけど、 IList<T> だったら [Count - 1] 返してるけど、 配列だった場合は特別な処理してなくて、普通に O(n) な処理だった。
別に100万回呼ばれるメソッドでもなけりゃあ書いて良いんじゃないの>Last まあ俺は書かないけどね
>>857 配列はIList<T>だ
StringはもちろんIList<T>ではないが
そろそろstringの最初の一文字取り出すメソッドが必要とされてくる… String.First()
[0]でいいだろーがw
>>861 スマートじゃありません><
そろそろstringの最初の二文字目を取り出すメソッドが 必要とされてくる…
Char String.Second()
さすがにネタすぎる
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); } 合ってるかは知らん
スマァァァァァァァァァァァァァァトッッッッッッッッッ!!!
>>857 配列はIList<T>だ
StringはもちろんIList<T>ではないが
厨じゃなくて病
869 :
デフォルトの名無しさん :2010/09/20(月) 18:28:21
学習の為IPチャットを作りたいと思います 相手とのデータの送受信はソケットを使う認識で合ってますでしょうか? 片方が予め相手のIPを教えてもらい、そのIPのPCに接続するって感じですかね?
それでいいと思うよ
ICQ
I Seek You
環境によるがDDNSでも設定すればいちいちIPを教えあわないでもいいよ
(´・ω・`)照れ
875 :
デフォルトの名無しさん :2010/09/20(月) 20:24:23
Debug.writelineで、「名前 'Debug' は現在のコンテキスト内に存在しません。」となってしまいます。 using System.Diagnostics; は記述してあります。 原因はどのようなことでしょうか。 お願いします。
Release Build
正確にはWriteLineだし、どこかで、おっちょこちょいしてるんじゃないか?
System(アセンブリ)のリンクし忘れじゃないか
とにかくCPUに負荷を与えるようなものを作ってみたいのですが上手くいきません 円周率計算してみたりしましたがエンコードのように4コアをべたっと100%にするにはスレッドでしょうか 何かヒントをください
スレッドがいやならプロセスを複数動かせばいいじゃない
スレッド4つで中身空のforループ
コア数以上のスレッドを立ち上げて、それぞれがっつり計算するといいよ。
4.0のパラレル何ちゃらを四つ使うのはダメなん?
パンプルピンプルだとスレッドがいくつ動くかはわからない
886 :
デフォルトの名無しさん :2010/09/20(月) 22:51:50
フレームワークを覚える前にデザインパターンを先に覚えたほうがいいですか?
最近のフレームワークはそれ自体がデザインパターンの具体例みたいなもんだからなぁ。 個人的には具体例見ながら学んだ方がいいと思うんで、いきなりフレームワーク覚えりゃいいんじゃないのと思う。
フレームワークは覚えるようなもんじゃないと思う。
889 :
デフォルトの名無しさん :2010/09/20(月) 23:02:14
C#2.0ベースのコードをC#4.0でコンパイルした場合、C#2.0のランタイムが入っているPCでも動くのでしょうか?
よくある、ツールメニュー→設定ダイアログ画面みたいなもの作ってみたいんだけれど 子フォーム出して文字や数字を初期値から変更して「適用」「OK」「Cancel」する サンプルってありますでしょうか? 本屋でC#の本漁って見たけれど、一枚フォームで完結したものばっかりで。 あったと思ったらメッセージボックスしか説明無かったり。 設定値はMainFormにおいておいてLoad時点で先に画面用意しておいて、 設定ダイアログ画面開くときにコピー値与えて 閉じるときはcloseせずにhideしたらいいのかな?とイメージしつつも、なんか先達があらまほしけれ。
>>890 普通に子フォームをShowDialog()すればいいよ。
>>890 普通にメインフォームの設定と同じ設定フォームのプロパティを用意しておいて
設定フォーム 設定 = new 設定フォーム();
設定.設定プロパティ = this.設定プロパティ
if (設定プロパティ.ShowDialog() == DialogResult.OK){
this.設定プロパティ = 設定.設定プロパティ
}
みたいな?
>>890 質問内容がとっ散らかってないか?
何が聞きたいのか明確でないと、数少ないまともな人ほど回答できないよ
895 :
833 :2010/09/20(月) 23:18:27
C#で書かれたプログラムのサンプルがあまり見つからなかったのですが、 フォームなども扱ってる簡単なアプリケーションで、 ソースコードが公開されているものはありませんでしょうか。 読んで勉強してみたいのですが。
>>893 × if (設定プロパティ.ShowDialog() == DialogResult.OK){
○ if (設定.ShowDialog() == DialogResult.OK){
左下のようなプログラムは、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でググって来ますんで、 そうすれば解ると思いますんで、解らないときには改めて質問します。)
好きにしろよ
>>899 >「OK」にしたボタンをDialogResult.OKに割り付けるにはどうするの?
VisualStudioのボタンのプロパティにDialogResutってのがあるからそこでOKを選択くするのが簡単
>>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()}
>>903 DialogResutに関係無しにShowDialogしらフォームにDisposeは必要
if (設定.ShowDialog() == Dialog.OK){
処理
}
設定.Dispose();
C#はなんで public Constructor() : this(nullpo) { } のコロンから右の部分のような書き方をわざわざサポートしてるの? ブロックの先頭にthis(nullpo);って書けばよくね?
906 :
833 :2010/09/21(火) 00:35:45
>>906 2ch viewer の twintail
>>904 そんなの普通はわざわざDisposeしなくてOK。
必須という意味で必用と言ってるのなら、それは正しくないでしょ。
909 :
デフォルトの名無しさん :2010/09/21(火) 00:40:18
今まで考えたことなかったんだけど、 ソースコード配布する時って、ソリューションディレクトリを配布するの? あそこには何のPCの情報とか、ユーザ名の情報とかってはいってないの?
*.user, *.suo とかを削除しておけばOK
911 :
890 :2010/09/21(火) 00:44:47
>フォームにDisposeは必要 また勉強になります。質問連投でスミマセンした。 そのへんのノウハウ一個一個尋ねてると、他の皆さんのご迷惑になりますんで なにかそのサンプルみたいな、お約束みたいな、定石な事柄がまとまっているところご存知でしょうか? 餌があったら口塞がってその間、静かにしてますんで・・・。
913 :
890 :2010/09/21(火) 00:50:45
書いた後に気が付いた
>>908 え?えっ?
初心者過ぎてどれが「そんなの」に該当するときなのかわかって無いけど、
もしかして「OKで閉じたとき」は明示しなくとも勝手に開放してくれるということでしょうか?
914 :
890 :2010/09/21(火) 01:00:55
ふがー
890のなりすましさんが出てきましたのでROMに戻ります。他の皆さんのご迷惑になってますんで。 なにかそのサンプルみたいな、お約束みたいな、定石な事柄がまとまっているところご存知でしょうか?
GCのファイナライザでdispose()も呼ばれたっけ?
917 :
デフォルトの名無しさん :2010/09/21(火) 01:18:29
public struct Hoge{ public string hoge; } Hoge hgoe = new Hoge(); Hoge[] hogeArr = new Hoge[10]; なで、構造体を宣言する時は()がいって、構造体配列のときはいらないのですか?
親が子供生んだんだろ?だったら親が最後まで看取れよ? いらない子になったんだったら、親は責任持って子供を殺すべき。 他人に始末させるなんてクズのすることだ。
>>917 Hoge[] hogeArr = new Hoge[10];
の後でも
Hoge hoge = new Hoge();
と同じように
hogeArr[i] = new Hoge();
が必要だよ
つまり一緒で、違いはない
>>918 前後の脈略ナシに鬼女板にコピペしたら大炎上だなw
>>905 「先頭にだけ書けるメソッド呼び出し」みたいなのが気持ち悪かったんじゃない?
923 :
デフォルトの名無しさん :2010/09/21(火) 03:24:26
CheckedListBoxで選択されているものがあるかどうかの判定はどうすればいいのでしょうか
CheckedIndicesとかのCount確認すりゃいいんじゃね
925 :
デフォルトの名無しさん :2010/09/21(火) 05:06:36
Panelにコントロールをいくつか乗っけていて、ボタンを押すとパネル上のコントロールをすべて初期化したいのですが、 どのようにすれば実現できるでしょうか? クリアボタンのようなイメージです。
>>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は初期化した時点の日付に設定するなどの
処理があるので、そういう初期化処理をまとめてする方法がないかと思い質問させていただきました。
>>928 コントロールの種類ごとに共通性が無いのなら、種類ごとに全て書くしかない
もしくは強引にnewしちゃうとか(笑
931 :
デフォルトの名無しさん :2010/09/21(火) 06:21:03
エスパー以前にどう考えても4だろ 文面読んでわからんか
932 :
デフォルトの名無しさん :2010/09/21(火) 06:58:21
>>926 > Panelにコントロールをいくつか乗っけていて、
これで1の選択肢がないことはわかるだろ?な?わかるだろ?
> ボタンを押すとパネル上のコントロールをすべて初期化したいのですが
3の選択肢には一切触れられてないだろ?これもわかるよな?
残るのは2の選択肢だが、クリックの検出方法がわからないならそう書くんだ。
これは残念だが文面からは分かりづらいが、世間一般ではわかるんだ。
この辺がお前には難しいかもしれんが、文面からの情報だけではわからないんだ。
文面の情報でわからない以上、世間知らずのお前にはわからなくても仕方ない。
だから、次からは考えて2と4の選択肢だけが出るように頑張ろうな。
>>932 いや、そこまで考えてないし
色々がんばって説明付けて貰っているところ悪いんだけど、
そういうエスパーな人は回答する方で頑張って貰えませんか?
あと視野狭いとか童貞とか呼ばれてませんか?
なんか盛り上がっているようなので
>>925 の質問の内容って「Panelにコントロールをいくつか乗っけていて、ボタンを押すとパネル上のコントロールをすべて初期化したい」わけなんだけど、
どこをどう解釈したら、
> > Panelにコントロールをいくつか乗っけていて、
> これで1の選択肢がないことはわかるだろ?な?わかるだろ?
>
> > ボタンを押すとパネル上のコントロールをすべて初期化したいのですが
> 3の選択肢には一切触れられてないだろ?これもわかるよな?
>
> 残るのは2の選択肢だが、クリックの検出方法がわからないならそう書くんだ。
ここまで勝手に推測して断定しちゃえるの。
質問者が何を行ったのか全く書いてないよ?
フヒッ 朝だけどおやすみー
937 :
デフォルトの名無しさん :2010/09/21(火) 07:22:45
必死すぎワロタw
視野狭いとか童貞とか呼ばれてませんか?wwwwwwwwwwwwwww
突然童貞とかいいだすやつはだいたい童貞。もしくは素人童貞。
童貞に失礼だろう
童貞とか言い出した時点でお前の負けは確定
942 :
デフォルトの名無しさん :2010/09/21(火) 07:35:05
秋の学際でシフト表作ることになったんですけどVBとC#でもできますか? 10人くらいで仕事割り降るんですけど、Excelで入力していて間違ったときに作り直すのがめんどいです
おばあちゃんに、こういう人を見ても指をさしたり笑ったりしたらダメって言われてたんだ。 はげくそワロタwwwwwwwww 視野狭いとか童貞とか呼ばれてませんか? キリッ
あんまスレをしっかりとは読んでないけど、俺は
>>926 で「確かに」と思ったぞ。
「A∩Bをどうしたらいいですか?」と聞いたら、Aを聞いてるのかBを聞いてるのか不明なわけだし。
945 :
デフォルトの名無しさん :2010/09/21(火) 07:52:24
童貞じゃなかったらなんなんだよw(キリッ 処女でも言い出す気化w(ワロタ どうていちんぽシコシコしちゃって今日も気持ちよかったでちゅかーww 悔しかったら何かしゃべってみろや童貞 あ、日本語のおべんきょうもまだでちゅねー むずかしいぶんしょうはよめなかったもんねー^^
出社前の貴重な時間に恥ずかしい一面を暴かれちゃって今日も一日お疲れさまです^^
947 :
デフォルトの名無しさん :2010/09/21(火) 07:57:06
明らかとか言っちゃうのが何度いわせれば
あれ・・怖くなったんだけど、もしかして本当に危ない子だったの・・・?
950 :
デフォルトの名無しさん :2010/09/21(火) 08:01:07
そんなことより、
>>926 の書き込みを抽出しようぜ
951 :
デフォルトの名無しさん :2010/09/21(火) 08:02:47
曲解というか、無理な荒探しって感じ。
さすがに1はないけどな
953 :
デフォルトの名無しさん :2010/09/21(火) 08:22:36
必死なことと面白がってやってることがこれだけ違うとはじめて知った
>>942 できるけど、そのままExcelで作ったほうがはるかに楽。
繰り返しのめんどくさいところはマクロを使うとかすると良いよ。
>>925 void init() {
textbox1.Text = "";
textbox2.Text = "";
(ry
}
みたいな関数をボタンを押されたときと、
フォームが最初に表示するときに呼んであげればよい。
俺としては、
>>930 の
> もしくは強引にnewしちゃうとか(笑
このほうが気になる。
newしてどうするんだ?
959 :
デフォルトの名無しさん :2010/09/21(火) 10:50:52
ネットワークからデータをダウンロードしてきてフォームに表示しているコードがあるのですが、 起動時にダウンロードして表示させるとネットワークからデータのダウンロードが終わってから 表示されているのか、ウインドウの表示まで10秒くらいかかってしまいます。 すぐにウインドウを表示させるにはどうすればよいでしょうか?
>>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
ShownイベントはForm上のコントロールが表示される前に発生するからな 通信する部分をループ使って書いてない場合は、通信部分を別スレッドで実行すれば? ループ使ってる場合はループの中でApplication.DoEvents()を呼び出してメッセージを処理すればおk
ネットワーク通信なんか非同期でやれ
だれかがDoEventsっていってんだろうが もしくはスレッド使ってまじめにやるかだな
969 :
デフォルトの名無しさん :2010/09/21(火) 12:14:10
>>965 Loadイベントでもいいので通信用スレッドを立ち上げて通信させつつ
受信が終わったら表示用の関数を呼び出してもらうとかしないとだめかなあ
970 :
デフォルトの名無しさん :2010/09/21(火) 12:20:02
>>959 WebClient.DownloadDataAsync
WebClient.DownloadStringAsync
キチガイが現れたわけでもなしに なんでこんなに伸びてんだろ
973 :
デフォルトの名無しさん :2010/09/21(火) 14:31:38
不況だしみんな暇なんじゃね?
埋め
埋めには早すぎる
C#ってなんですか?
ド#だよ
C#メジャーの略式です
いやソ#だな
FileStream.Writeで一度に書き込める最大byteサイズはlongの限界?それともハードの限界? それともメモリが許す限りでしょうか?
メモリの制限が先に来ると思う ハードの方はバッファリングすりゃいいだけだし
メモリじゃなくてCLRの制限 int以上はダメ
984 :
981 :2010/09/21(火) 17:53:14
あれ、長さはintでしたか何処かでlongを見た覚えたあったのですが。 ありがと。
longなのはファイル長
986 :
デフォルトの名無しさん :2010/09/21(火) 18:07:36
ライセンスがGPLの外部DLLを利用してC#でプログラムを作った場合 作ったプログラムもGPLで配布しないとダメですか? 配布方法は以下の2パターンのどちらかを考えてます 1.作ったプログラムのみ配布。外部DLLが配布先からDLしてもらう 2.外部DLLも含めて作ったプログラムを配布
>>986 その DLL を使用することを前提に作ってあるならば
どんな方法でも GPL 汚染しちゃうと思うよ。
くわしいことは知らないけどね。
配布形態はどっちでもいい GPLを適用するかどうかは結構曖昧で… とりあえずDLLが無いと動かないなら、GPLの言う派生に当たると思っていい 動的リンクの見解は主張する人間によって結構違う
GPLのDLLがなくても一部の機能は使えるとか もしくは代替機能がある程度の依存性ならどうなる?
LGPLなら感染しないんだっけ
権利者が派生の範囲をどう捕らえるかによる 権利者に聞け
リンク云々じゃなく同じアドレス空間に読み込まれたら駄目だとか ネットワーク挟んでSOAPでやり取りしても駄目だとか 各々いろいろ見解がある もはやGPLの文章だけ見て判断するのは無理
>>991 GPLなんだからもはや権利者の意向は関係ない
仮にマルチライセンスで他のライセンスの方に従うのならGPL関係ない
いやそのGPLの派生の定義が曖昧だから各々の解釈によるってんだけどね… 日本語が通じなさそうだからどうでもいいか
>>993 こういう前後の脈絡を読まないで突っ込んでくる人最近増えたよねえ。
ツイッターのせいかね。
昔からいるだろ
ま、結局は各々じゃなくて裁判所の解釈によるんだけどね。
GPLの内容について司法判断が下されたことってあるんかな。 示談ばっかりだから気になるっちゃ気になる。
GPL汚染マジ怖い 続きはライセンスの隔離スレでやれ
隔離されるような話題なんだな、やっぱり
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。