ふらっとC#,C♯,C#(初心者用) Part40
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980 を踏んだ人は新スレを建てて下さい。
>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part39
http://pc12.2ch.net/test/read.cgi/tech/1237051173/
2ならぬるぽ
>>前スレ994 では質問を変えます。 ファイルパスから正しい大文字小文字を区別したファイルパスを取得する方法を教えてください。 Path.GetFileName()はパスを分解して返してくるだけで実際のファイル名を返しません。
>>5 質問に答える前に実行環境聞かれてただろ?
windowsなら
> 正しい大文字小文字を区別したファイルパス
そんなファイルパスは無いでFA
7 :
5 :2009/04/13(月) 14:16:56
8 :
1 :2009/04/13(月) 14:19:29
そういう実装依存な解決をするのもどうなのかとは思う
9 :
5 :2009/04/13(月) 14:21:02
他に良い解決方法があるのですか?
何が言いたいんだお前は ファイル名の大文字小文字を正しく取得したい でいいんじゃないのか? ちなみにWindows上では大文字小文字が違おうと同じファイル名として扱われる だからTEST.txtをtest.txtとして取得しても、問題なくファイルは開ける。 ということで大文字小文字が違おうと"実際のファイルパス"は"返ってきてる" ファイラーなどを作っていて、大文字小文字を正しく表示したい場合は、"実際のファイルパス"ではなく "大文字小文字が正しいファイルパス"と言わないと伝わらない あと、この問題は.NET Framework2.0で修正されてるようだが おまいは未だに1.1を使ってるのか?
11 :
5 :2009/04/13(月) 14:26:22
>>10 みたいにただ感情的にスレを荒らす人は書く必要はありません
御自分でお調べになってください
煽り合い宇宙の様相を呈してまいりました
おまいが1.1を使ってるかどうかなんてどうやって俺が調べろとw
15 :
デフォルトの名無しさん :2009/04/13(月) 14:34:25
痛すぎる5を見てかーちゃん泣きそうだよ
なにがなんでもっていうんなら、DirectoryInfoから取れば?
5と一緒のプロジェクトでは働きたくないってことは把握した
ほんと何様のつもりなんだよな5はw
俺様
大文字小文字を区別するファイルシステムを持つコンピュータと共有するときどうなるんだろう
ワレワレハファイルシステム テイコウハムイミダ
Linuxのsamba上にdateコマンドの出力を書き込んだdate1.txtとDATE1.txtを用意してみた。 エクスプローラー上では2つとも見える。 が、どちらをメモ帳等開いてもdate1.txtの中身が表示され、DATE1.txtにはアクセスできない。 dirコマンドでもエクスプローラー同様、2つとも見える。 しかし、typeコマンド、cygwinのcatコマンドではどちらもdate1.txtしかアクセスできない。 総合すると、見えはするが片方しかアクセスできないということだな。 実用にはならんだろう。
>>22 スレ違いな上に何を試してるのかも結論も意味不明
>>23 20のレスに対して端的に実験をしてみただけなんだが。
まさかそんな突っ込みがはいるとは思わなかったよ。
それなら自前でファイルシステム作って直接マウントしてやってみてよ
IDの出ない板で煽り合い、楽しいのう
自前のファイルシステムって・・・ OrenoFileSystemとか作れってことかい? まず仕様から決めないとな
sambaで共有したディレクトリにそのOSから直接書き込むバカがいるってことはわかった。
Linux上は大文字小文字を判別する。Win上は判別しない。それだけ。
>>20 蛇足の蛇足になるが、WindowsにはPOSIXサブシステムとかあるから、
その気になれば、Windows機単独でも試せるぞ。
表示用か何かで、c:\program files→C:\Program Filesのように、 ディスク上に存在するとおりの名前を取得したいのではないかと推測。
35 :
22 :2009/04/13(月) 20:25:52
アプリケーション設定の保存先はApplication Data/Local Settings/レジストリの いずれかを選べるわけだが、プログラムのカレントに置くことは不可能なんだっけ? (まあVistaでProgram Filesにインストールされちまったらどの道不可能なわけだが) マイドキュメント内に設定ファイルを保存する仕様で、 データ保存用にYAMLとかSQLiteとか考えてみるかなぁ……。
ToolStripMenuItemに表示される文字列についてなんですが 「&&」が含まれる文字列をTextプロパティに設定した場合 表示上は「&」が1つだけになってしまいましたが 実際にTextプロパティから文字列を取得すると「&&」になっています。 表示も「&&」とするにはどのようにしたら良いのでしょうか。お願いします。
>>36 そもそも、&F と書いたらFキーに反応するメニューになるわけだが?
そこから類推して考えよう。
>>5 Path.GetFullPath()を試したか?
39 :
36 :2009/04/13(月) 21:43:20
>>37 ありがとうございます。
ToolStripMenuItemにはUseMnemonicプロパティに相当するものがないようなので
自分で文字列そのものの&を増やしてやるしかないですかね
C#ってソースコード見られてしまうんでしょう? ユーザーに配るときどうするの? 難読化するだけ?
知られたくないコードはdllにするなりしてネイティブ化すれば?
ネイティブ化って.NETを使わずC++で書くってこと? あとdllにしてもノートブックで開くと見えてしまいますよね。
ノートブック? ネイティブ化レベルで嫌ならそれはC#の問題じゃないだろ 暗号化ツールでも使えよ
Nandokuってソフトがあるから使えば
どうせILを解析されたらわかっちゃうんだから、嫌なら配布はやめて サービスを提供するようにすれば?
俺はただ単に自分のソースが恥ずかしいから難読化してるw
じゃあ普通は難読化+暗号化するのね。
おれは、普通に書いてるつもりでも、 難読化した?って聞かれる orz
dllを作れば、ソースコードそのものは見られなくなるの?
>>50 抱かれたい Yes Falling'Love
今度、C#でアプリを作ろうと考えています。 そこで、今までのC++(MFC)の資産を多少流用したいのですが、連携って可能なんでしょうか? 一応、ネイティブコードは、マネージコードでラップしてやって呼び出せるのは試しました。 例えば、CDialogとかでUIやリソースを伴うものを、C#のフォーム内に貼り付けるみたいな事は実現出来ますでしょうか? よろしくおねがいします。
>>52 詳細は自分でぐぐって調べればいいと思うが、
FormsとMFCは根本的に違う仕組みなので、残念ながらソースコードそのものの流用はほとんど利かないと思う。
せいぜい、ダイアログやウィンドウをコンポーネントのレベルで流用するくらいだろうか。
それもCOM越しかC++/CLIでラップする必要があるだろう。
>>53 有難うございます。
ビデオ編集ソフトを作れとのお達しなのですが、どうもDirectShowは
公式にC#から呼び出すクラスなどは用意されていないみたいで、
(DirectShow.netは権利的に使えないので)DirectShowをC++/CLIでラップするか、
それとも、DirectShowが必要な部分だけ(例えば表示とか)をC++で書いて、
そのコンポーネントを丸ごと持ってきちゃえばいいかなと思いました。
C++はMFCメインで今まで作ってきたのですが、例えばMFCで作成したクラスを
DLL等々にして、C++/CLIでラップしてやれば、実現できそうですかね?
有難うございました〜。
文字等を描画表示するとき protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); e.Graphics.DrawImage(_bmp, x1, y1, srcRect, units); } Invalidate(); としてまとめて書いた_bmpを更新して表示してるんですが 一文字ずつ書いた跡を表示したいので このフォーム eにあたる部分に直接書き込む方法ないでしょうか?
>>49 ノートパッドというものを使うと
中味を見られてしまうと
教えてgooに書いてある
dllにもネイティブコードとILのがあんだろ 混ぜて考えるなよ
59 :
55 :2009/04/14(火) 16:18:14
e.Graphics.に直接Drawしたいのですが 他の場所でやるとバグってしまいます 書きたい場所からOnPaintを呼び出して そこでDrawStringするように試してみます
このスレ見てるとたまに頭おかしくなりそうになるな
普通に逆コンパイラに食わせればすぐ見えるわけだが。 早速自作ソフトを食わせてみたが、リソースもソースコードも丸見えだなw しかも、コメントがない程度でほとんどもとのコードと遜色がない。 機械語に変換されるネイティブと違って.NETはILまでしか落ちないからなぁ。 難読化? 別にいいや。
簡単に見られたくないコードはアンマネージドで書けってことか。
猫Winの文字化け表示の話をweb検索で解決できたw まあ第3版買えってことなんだろうな
つ 難読化 ・・が続く、いつもなながれだな。飽きないね。
そこまでして見たがる人間がどこまでいるのかと 自意識過剰なんじゃね?
見られて困る部位をC#やVB.NETで書いてあるようなアプリなんて間違いなく使い物にならない
え?vb.netも見られちゃうの?
いやんみないでぇ
>>66 言えてるな。コアの部分にそれらの言語を選択してるアプリなんて
わざわざ逆アセしたところで得るものなんて何もない
お前の粗チン(ソースコード)何か誰もみねえよ お前のソースコード覗いて100円の特になるか? 100銭の得にもならんだろ っていってやれよ初めから 初心者ほど言い出しがちなネタなんだから まず初心者脱出しろ
.NETの案件でいくら動くか知ってて言ってるのか……。
>>67 それだけじゃなくむしろC#で書かれたプログラムをVB.NETで逆アセしたり、また逆もできる。
MonoのAOTでネイティブコンパイルすればOK
スレタイに初質って書いてんだろ。 そんなスレで案件とか、字も読めない文盲か?脳障害か? どっちにしろ病院の方が先だな。
何でキレてんのw 言ってることは分からんでもないがw
(´・ω・`)しーましぇん。 でもねー案件がどうとか言い出すなら、 予算出してもらってMSの難読化ツール買うなり、 ネイティブコード要因雇って移植するなりすりゃいいんじゃねえかと。 ボランティア回答スレで何求めてるの? 業務サポートですか?
>>59 もうちょっと整理してやりたいことと今やってることを書いてみたら。
OnPaintとそれ以外で描く場合の動作はわかってしまえば簡単なんだが
見た感じだけで動作を予測するのは難しい。
オフスクリーンバッファを用いれば解決しそうな気がしないでもない。
77 :
デフォルトの名無しさん :2009/04/14(火) 18:01:02
ソースを見られたら困るというほど貴重なテクニックとかアルゴリズムを使ってるなら 逆にそれを特許申請して金取って使わせたらどうよ
アセンブリ言語を使いたくてウズウズしてる先輩が食いついてきそうだ。
Win板の質問スレでも業務ネタを聞いてくる奴はいるなあ 責任持てないから然るべき所に依頼して下さいって叩き返されてるけど
しつこい。もういい。 ソースコードの話題は終了な。
>>71 もしかしてVB6をVB.NETにしてそれをC#にしたりもできるの?
実際やれよ
C#←MSIL→VB.NET は可能 VB6→VB.NET はVSの移行ツールで一応出来るけど・・とりあえず使ってみれ
>>55 やりたいことは意味不明だが、
質問への答えとして、CreateGraphicsが使えるのではという気がする。
85 :
55 :2009/04/14(火) 19:35:55
この
OnPaint(PaintEventArgs e)
のeをよそでも使えるように、と書こうと思ったら
>>84 g = this.CreateGraphics();
これでできました。
ありがとうございます。
ILに落としてパスワードチェックを書き換えてilasmする生活が始まるお(;ω;
だからそんなもんC#で書くなよw
それってネイティブでも大差なくね? バイナリ少し書き換えられたら終了じゃないか。
パスワードチェックのクラックぐらいだったらネイティブでも似たような もんだよな確かに。
可読かどうかはスクリプトキディを寄せ付けないための必要で十分な条件かもしれない
apache2入れてみたんだが,apacheってどの板で盛んだっけ?
スレがあるのは多分自家鯖板じゃないかなあ 運用がテーマであってWebDevelopmentとは何の関係もないスレだとは思うがね
<a> <b c=100 /> </a> といったxmlファイルがあったとして、属性cをStringではなく直接 intで取る方法ってないでしょうか。
>>93 まず何で取ってこようとしてるのか書こうよ…
で,xml的にはattributeは必ず"で囲む必要があったんじゃなかったっけ?
行って見て来た ちょうちょう初心者の俺にはタスク指向のヘルプがないと無理ということだけ分かった 畑違いすぎワロタ DTDもいいけどxsdでinteger突っ込むのもいいかもね 外部ファイルが必要になるし,現行のプログラムじゃ導入までが面倒だとおもうが
俺はXMLよりYAMLのほうが読み書きしやすくて好きなんだが、 .NET向けにはいいライブラリがないんだよね……。
書くのは XML はインテリセンス、ツールチップコメントとか エディタがフルサポート状態なので VS 使いとしては楽と いうか。 Codeplex にあるんだっけ > YAML
yaml.orgには2つ.NET向けの実装が紹介されてるな(そのうちの一つがcodeplexの
そっかー。Visual Studioでxml書くとインテリセンスが使えるんだっけ。盲点だったな。 yaml-netの方は改造なしでそのままでは話にならないレベル。 yatools.netの方はDOMインターフェイスがなくてSAX的な読み方しかできないので、 YAMLを使う利点が半減してしまう。 まあ、静的型付言語にYAMLは向いてないのかもしれないが……。 後、せっかくなので。 .NETアプリケーション向けに簡単なstringやintegerを格納できるxmlの書式データってどこかにないだろうか?
アドオン作ればいいじゃん
すみません、前スレで public string MessageText { get { return textBox1.Text; } ってあったのですが、 Form1でこれやると怒られるんですが・・・
VSさんは親切にも具体的理由を挙げて叱ってくれているというのにガン無視とはどういう了見だ
静的クラスではダメですってことですか?
そもそもなんつって怒られたの?
そもそもForm1を静的クラスってどういうこと?
どうせForm1.MessageTextとか書いてんだろ
エントリポイントでインスタンスの作られていない脳内のForm1のことだとしたらここで聞かれてもな
前スレでも >クラスとインスタンスの違いが理解できていないよーな って言われてるねえ
午前4時に15分で7レスつくって何してんだおめーら。
残業
残尿
時差
趣味でプログラムやってる人間にとって、 C#って実用性ある? 皆仕事以外で何に使ってるの?
118 :
101 :2009/04/15(水) 07:43:19
寝てる間にスレが流れた。
>>104 さっそく試してみた。エロいな、これは!
整数、実数、文字列、文字列のコレクション、全てOK。
アプリ依存のデータを入れる程度だったら、これで十分すぎるな。
>>117 WindowsでちょっとしたGUIアプリを書くのにこれほどお手軽な開発環境は無い。
VB.NETとどっちを使うかはお好みで。
>>117 文字列処理でも、ファイル処理でも、数値計算でも何でもできるよ。
昔はほんのちょっとした計算とか、ファイル操作とか何でもC#でやってた。
たまに使うためだけにsedとかgrepとかsh覚えても、すぐ忘れちゃうし、
全部インテリセンスに頼れるC#(てかVisual Studio)は便利。
最近はPowerShellがあるからワンライナーなものはこっちでやっちゃうけど、
10行超えたらもうC#。
VSのインテリセンスとリアルタイムなエラー指摘が無かったら xsdなんか書ける気がしない
C#でネームスペースをDll化したんだけど SummaryをDLL使った側で読むにはどうしたらいいの?
[AssemblyName].xml ってのができてると思うが。 できてないんならプロジェクトのプロパティ確認して。 で、インテリセンスは同じところにおいときゃ勝手に読む。 ドキュメントっぽくしたいなら Sandcastle とかで
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { MessageBox.Show("メッセージ"); } これでXを押してもメッセージボックスがでないんですが、ほかに何か必要でしょうか? 環境のせいでしょうか。
イベントハンドラをイベントに追加してないんでそ Form1.designer.csのInitializeComponentの中をのぞいてイベントに対して何やってるか見てみ つかイベントはデザイナのプロパティグリッドの雷マークからやるようにした方が良い
>>124 どっかでForm1.Closing+=みたいにイベントハンドラさんにちゃんと教えてあげてる?
書いてあるだけで探して関連付けてくれる負んぶに抱っこは幼稚園までだよ!
みたいなことか
質問です。WCFで通信量ってわかりますか?
treeviewのノードを全部消したいんだけど、やり方がわからないです。 選択中のノードの消し方はなんとかわかったんだけど、 単純に全部消す方法を教えてください。
TreeView.Nodes.Clearとかじゃね 知らんけど
132 :
130 :2009/04/16(木) 14:55:47
どういたしまして
>>129 解決してないですね
パフォーマンスモニタは精度が低いし・・・
自分でBindingを継承するなりしてみます。
ToolStripMenuItemのBackColorプロパティを設定しても 何も変わらないんですけど、特別な手順が必要ですか?
まずズボンを脱ぎます
次にスカートを穿きます
そしてクリをいじります
いきます
C#ってネイティブコンパイルできる?
Mono使えばできるらしいけど。
しらなかった ngen使えばソースみられない、でOK?
ngenしても元のアセンブリと一緒に配布しなきゃいけなかったような
・・・そなんだ
class A { bool foo = false; public bool Hoge { get { return foo; } set { foo = value; } } } void ThreadProc(A objA) { while (!objA.Hoge) { 〜 } } 他のスレッドがHogeをtrueにするまでループするようになっているのですが この場合A.fooにvolatileは必要でしょうか? プロパティを通してアクセスするので必要ないような気がするのですが 確信がもてません。
子フォームをドラッグして親フォームとある程度近い距離になったとき 親フォームの上下左右にぴったりくっつき, 遠くなったら子フォームのみ自由に動く. くっついてるとき親フォームをドラッグしたら子フォームも付いてくる. といったような親フォームに吸着する子フォームを作りたいんだけど 親子ウインドウの相対座標やサイズから地道にIF/THENルール作るしかないですか?
ここに20行ぐらいのコード貼って、どこがおかしいか見てもらってもいいですか
長ければテキストに貼り付けてアップローダーに上げるのが良いかと思います
>>146 JIT最適化によって直接参照する形になりうるんじゃなかったっけ
>>147 基本クラスライブラリにはそういう機能は存在してないな
151 :
148 :2009/04/17(金) 14:00:41
処理でスレッド占有してるから画面描画できる隙がない
BackgroundWorker使うといいよ
154 :
151 :2009/04/17(金) 14:19:06
>>152 なるほど、そういうことだったんですね
ぜんぜんわからなかた
>>153 解決方法ありがとうございます。
早速調べてみます
mainがstaticだから合わせたんじゃないの。 それのVBのサンプルが怪しいな、VBのMainは普通Moduleを使うものだが。
157 :
147 :2009/04/17(金) 17:40:48
>>150 やっぱりそうですか,
地道にIF/THENルール作ります
ありがとうございました
WinFormsって512x384の画像表示で40FPSしか出ないほど重いものなんでしょうか・・
NiVEというC#製のモーショングラフィックスソフトがあるのですが、
FAQの「プレビューが遅い。エフェクトとかかけてないのに30fpsのプロジェクトで22fpsまでしか出ない」
の項目に「WinFormsが重いのでプレビューの高速化は厳しいです。」
とあり、実際試してみると40FPSまでしか出ません。
やっぱりWinFormsの描画って遅いんでしょうか?
http://nicoae.if.land.to/index.php
WPFとかXNAだとどうなんだろうネー
描画って言うよりはそれ以外の部分で処理食ってるような気はするわ
WinFormsとか関係ないんじゃないのか? まさか普通にGDI+で描画してるわけじゃないだろ
今スレを見返してて、文字列コレクションでもXmlSerializerが可能ってレスがありましたけど ちなみに、文字列配列では無理ですよね?
そんなこと無いよw
普通にstring[]でもList<string>でも可能 何を見てそんな認識に至ったのか分からん
166 :
162 :2009/04/18(土) 00:04:34
いや、以前試してできなかったので てっきりできないと思い込んでたんですけど 118を見て、コレクションが可能ということだったので もしかして自分のやり方が間違っていただけかと思って…
XMLArray属性 ちなみに俺は姉属性
168 :
162 :2009/04/18(土) 02:29:50
もう一度試してみましたが、今度はちゃんとできました。 以前は文字列配列じゃなくて、ArrayListでやってダメだった記憶と 勘違いしていたのかもしれません。お手数かけました。
配列の配列じゃない二次元配列(なんていうの? の配列の範囲を超えないかチェックするにはどうすればいいの? うまく説明できないけど IndexOutOfRangeExceptionが投げられないように 事前にifでチェックしておきたい
int [,] n = new int[7,4]; これだろ? Array.RankとArray.GetLengthを参照
そういや多次元の配列をforeachでぶんまわすときってどうやんだべ いままでやったことなかったな 調べてみるか
>>171 こんな感じ。
int[,] rect = new[,] { { 1, 2, 3 }, { 4, 5, 6 } };
foreach (var x in rect) Console.WriteLine(x);
int[][] jugged = new[] { new[] { 1, 2, 3 }, new[] { 4, 5, 6 } };
foreach (var x in from array in jugged from elem in array select elem)
Console.WriteLine(x);
>>173 jugged は SelectMany で一発だよ
SelectMany 書ける人が少ないから2重 from が導入されたわけで、
この場合は
>>173 でいいと思ってる。
おお、そんな風に書けるんだ。 今まで二重にforeachしていた。
>>176 まあ、素直にそう書くのがいいと思うよw
>>177 それも考えたけど、そこまでしてクエリ式を避ける意味もないかなぁと。
Aggregate じゃなくて Sum とか書ければそれを使ったけども。
字面でin fromってところが気持ち悪い
>>179 うん、普通は、
var q =
from array in jugged
from elem in array
select elem;
foreach (var x in q) ....
って書くと思う。
>>178 俺もクエリ式大好きなんだけど、foreach 文に含ませたりとかそういう
部分式的な扱いとかメソッド一発の場合はメソッド形式が好みかな
みたいな。避けているわけではない。
let使わない限りは全部メソッド形式で書いちゃう
オブジェクト指向の書き方が、基本的にクエリの書き方にマッチしないから違和感感じるよな
気持ち悪さの一番の原因はクエリ式がfromで始まるということだと思う。
普段はメソッド形式で書くけど、
メソッドチェインが3つ超えたあたりからクエリ式に切り替えてる。
>>183 C# は最初から純粋OOP言語でもないしね。
>>184 英文法的な気持ち悪さよりも、
インテリセンス利くことを優先したからしょうがない。
>>185 オブジェクト指向の書き方がクエリの書き方にマッチしないといってるのに、
C#は純粋なOOP言語じゃないなんてのは論点のすり替えですよ
C#で書いている以上純粋OOは無理って事が言いたいんじゃないかと
じゃあ純粋OOPならLinqのクエリは完璧に違和感なく書けるってことだな?
落ち着け
純粋OO言語としても使えるだろ ベースにOOを使ってOO的じゃないことを実現してる感じ
C とか C++ からの括弧とかドットとか式とかシンタックス周りとの組み合わせが あわねーって話ならわかるけど OOPL がどうこうとかそういうことなのか?
ならいったい何を論じてるんだ?
>>190 圧倒的に論旨から外れてる
誰もそんなことを論じていない
便利なんだからOOとかどうでもいいと思うのだが、お前ら何騒いでるの?
オブジェクト指向の書き方が、基本的にクエリの書き方にマッチしないから違和感感じる という意見に、C#は純粋なOOPではないとか、いやC#でもOOPかけるだろとか、 超的外れな意見ばかり出し合ってなれ合って騒いでる
195 :
デフォルトの名無しさん :2009/04/19(日) 01:49:20
クエリの書き方とオブジェクト指向の書き方ってどういうのをいうの?
名字に口が付く姓で口をぐちと読むのは 実は井口と野口、山口、この三つしかない まめちしきな
>>194 オブジェクト指向の書き方=UMLですねわかりますえん
DataGridViewで、何も無い部分(濃い灰色の部分)をクリックした時、アイテムを何も選択しなくするようにするにはどうしたら良いのでしょうか。 要はリストビューみたいな挙動にしたいのですが、、、
貼ると絶対にレスがつくコピペってのはほんとなんだなw
C#おべんきょ兼ねて、Winsnmp.DLLを叩いて「簡易SNMPマネージャ」チャレンジ中。 GETの応答をイベントっぽく受けたい(タイマー待ちしたくない)んですが、 いろいろ試してもうまくいかず。何を使えば良いのか迷っております。助言ください。 初期化関数のSnmpCreateSession()に「callback」関数の登録があり、 応答受信、またはTimeoutを契機にこれが呼ばれることは確認できました。 で、受信解読処理を起こすのにMonitor使おうとしたら「プロセスが違うぜダンナァ」。 Mutexなのか?と思うも、期待通りに動かず…。 ええ、「自分が何をわかっていないのか」が判らない状態であります。 どこか「ここ読んで再チャレンジしてみろ」みたいな指標、ありましたら教えてください。
つかぬ事を聞くんだが、.NETはスピンコントロールはなくなったんだろうか。 それから、Textboxで上書きカーソル(Iビームでない方)は使えないんだろうか?
>>204 スピンコントロールって名前やめたっぽいよ。
NumericUpDown。
申し訳ないのですが、調べてもわからなかったので質問させてください VisualC#にて、新規ファイル作成時にWindowsApplication1を別名に変えると デバック時に依存関係が読み込めないというエラーがでます。 これは何が悪いのでしょうか?デフォルトの名前しか使えないのでしょうか?
キミがどこかでミスってる。 リビルドしてもだめかい?
>>207 すみません。プロジェクト名に('A`)が入っていたことが原因のようです。
無くしたら解決しました。
ワロタ
C/C++やってて、GUIとか使いたくなったからC#やり始めたんだが、 .csのソースを.csprojが入ってるディレクトリ以外に入れて参照できるようにはできないのだろうか。 これは仕様でどうにもならない?
212 :
210 :2009/04/20(月) 19:44:03
C/C++と一緒のリポジトリに入れてて、 ソースだけプロジェクトと別ディレクトリで管理したいから その方法をぜひ教えてください。どこかのURLとかでもおkです。
ソリューションエクスプローラ→追加→既存の項目で追加すりゃいいんじゃないの 意味が分からん
215 :
210 :2009/04/20(月) 19:56:11
216 :
210 :2009/04/20(月) 20:32:23
>>214 それやると別ディレクトリの.csが.csprojのあるディレクトリにコピーされて、
オリジナルが変更されないという罠。
リンクとして追加で出来ました。
CMakeList.txt を書いて目的のビルドフォルダでcmake書ける方法もあるが……。 Windowsだとあんまり一般的じゃないのかな。
Vista環境で、SHFileOperationやMicrosoft.VisualBasic.FileIO.CopyFileを使って、 ループ内でファイルコピーを繰り返し行うと、GDIオブジェクトが増え続け、 300回ほどループが回ったところでGDIオブジェクト数が10000になり、ソフトが落ちてしまいます。 XPだと全く問題なく、VistaでもSystem.IO.File.Copyを使えば大丈夫です。 何か注意すべき点などあるのでしょうか?
>>218 Microsoft.VisualBasic.FileIO.FileSystem.CopyFileで試したけど
少なくともごく簡単なのだと再現しないね@Vista business SP1/.NET 3.5 SP1
220 :
218 :2009/04/21(火) 10:57:35
>>219 試していただきありがとうございます。
ググっても類似事例がないので、自分が書いたコードが悪いんだろうなとは思っていましたが…
ちなみに、公開しているソフトで、ユーザーからの問い合わせもかなりあるので、環境依存というわけではなさそうです。
再現できるミニマムコードが書けたらまた質問しに来ます。
> ユーザーからの問い合わせ があったとしても、特定環境でしか起こらなければ環境依存だろうよ ちゃんと集計とか分析とかしたのか? まあ単に自分の環境が特殊ではないと主張したかったんだろうけど
vb6から C#にアプリを移行してるんだけど DBのテーブルで誕生日がint型なんだが これをC#でDateTimeにコンバートしたいんですけど どうしたらいいですか? どうも 36524 が 2000-01-01 になるらしい。
変換の計算式書けよ
1899年12月31日を0としてそれからの経過日数かな
1900年1月1日からかもしれない 1900年2月29日が存在するバグがあるか無いか確認して まあどちらにしても1900年3月1日からは一致するけど
ワラタ
他のプロジェクトでビルドしたアセンブリを参照設定してメインのプロジェクトで使っているんですが、 アセンブリを再ビルドするたびに参照設定をやり直さないとビルドに失敗します。 何かいい方法はないでしょうか。
そのプロジェクトをソリューションに追加すれば ビルドと配置も同時にやってくれるんでない
誕生日がintってどうやってるんだろ 20090421とか?
>>229 通常、特定の日付からの経過日数で換算する。
UnixとWindowsそれぞれでやりかたがある。詳しくはぐぐれ。
それにどんなメリットがあるの
内部形式の意味を聞いてどうすんだ int表現ならそのほうが便利だろう、引き算だけで経過日数がわかるとか
Date関連は、昔は自前で計算するしかなかったもんなぁ。 C#で新規設計の時、intでやる奴はいねぇだろ。
234 :
227 :2009/04/21(火) 19:28:15
>>228 結局自力で解決しました。
csprojファイルをテキストエディタで開いて、
参照設定のItemGroupにおいて
<Reference Include="Azuki.dll" />
といった形に書き換えました。
これでVSのオブジェクトビューアでも直接dll内のアセンブリ情報を見に行くし(当然属性情報も見える)、
アセンブリを再ビルドしてもエラーが出なくなりました。
>>231 Excel使いから言えば、時間単位の換算がやりやすい。
日→時は24倍すればいいとか。
>>235 ExcelだとVBAでDateDiffとか使えないの?
GUIだけフォーム使って中身はCとか出来ますか?
できますよ
>>239 そのページの一番最後のGetEnhMetafileOnClipboardをそのまま使ってもだめなのか?
一旦Imageとして読み取って、 それとは別にMetafile(Stream, IntPtr)で新しいMetafile作って、 Graphics.FromImageでMetafileからGraphics作って、 Graphics.DrawImageで読み取ったImageを描画 …てな流れになるかのう マネージドでやろうとすると
242 :
239 :2009/04/22(水) 22:48:16
>>240 それでメタファイル形式のデータは取得出来るのですが、
他のデータと合体させてバイナリファイルとして保存したいので、
メモリストリームかファイルストリームにしたいです。
クリップボードのデータをファイルに保存して、
必要な時に読み込み、クリップボードに貼り付けるのが目的です。
>>241 すみません。
いろいろ調べたり試したりしてみてますが、Graphics.DrawImageから
ストリームにする方法がわかりません。
Metafileの作成時に渡したStreamに書き出されてる ちなみにIntPtrの方はGetDC(IntPtr.Zero)でも適当に作ったBitmapからGraphics.GetHdcでも
B+Treeで実装されたコレクションのクラスってありますか? それとSortedListの実装はBinaryTreeですか?
>>245 List<T>.BinarySerach()
Searchか
XMLスキーマの構造を/区切りでテキストに出力しようと思っています。 DataSet.ReadSchemaを用いて作ってみましたが、似た形式で出力できるものの、並び順がおかしくなってしまいます。 やはりちゃんとShemaとして読み込んで、それを解析する必要なあるようですが、やり方がわかりません。 ご教授ください。
C#かjavaで 文字列A "qwertyuiop" に 文字列B "cdefghij" のどれか が1つでも含まれていたら真になるというのを できるだけ高速にやりたいのです。 考えたのは @ s="qwertyuiop"; f = s.IndexOf("c") + 1 + s.IndexOf("d") + 1 + … A 配列に文字列Bのテーブルで真偽表を作り 文字列Aを一文字ずつ取り出しAscii値にしてテーブル参照して加算 ですがまだ重そうです。 何か関数等で高速にできる方法ありませんか?
真偽値が欲しいだけなのになんで加算してんの?
真偽というか0か0以外ならいいのです。 今気づきましたが s.ToCharArray(); を使えばcharの配列に変換できて Aのテーブルとの掛け合わせが簡単にできそうですね。
文字列が短ければ線形探索 長ければ一方をソートして二分探索
254 :
239 :2009/04/23(木) 13:11:49
IntPtr disDC = GetDC(IntPtr.Zero);
>>250 部分文字列を取りたいのではなくてマッチするかどうかだけ調べればいいんだな?
実用的には正規表現の文字集合を使う。 match(/[cdefghij]/, "qwertyuiop")
自前でやるならデーブルでヒット走査。
bool[0x100] の走査ウィンドウを作り、全ての要素を倒しておいてから
"cdefghij" を立てる。それから文字列を入力して一文字ずつ走査すればよい。
入力値が無数にあると期待され、テスト前に準備期間が許されるならば、
入力値側を前操作する方法もありえる。
239は自分で紹介している記事を最後まで読んだのか? WindowsMetaFileとして取り込むにはAPIを直で呼び出す他なさそうだと書いてあるんだが。 .NETの範囲での解法を自力で発見してそれを報告するなら分かるが、 まだ探している段階ならまずは記事に書いてあることを試すべきだろ。
258 :
239 :2009/04/23(木) 15:07:38
>>257 最初に質問する段階でMetaFileを取り込むところまでは出来てます。
やりたいのは
>>242 です。
いろいろ調べたり試したりしてはいるのですが、
何もしていないように見えたのならすみませんでした。
>>255 Bitmap bmp = new Bitmap(1, 1);
Graphics bmpg = Graphics.FromImage(bmp);
IntPtr hdc = bmpg.GetHdc();
としてもダメでした。
259 :
239 :2009/04/23(木) 16:14:16
長々と書いて申し訳ありませんが、なんとか出来ました。 最後に emfg.Dispose(); が抜けていたのでダメだったみたいです。 レスくれた方々本当にありがとうございました。
>>256 正規表現ですか。
基本、文字処理はこれでやればいいわけですね。
ありがとうございます。
261 :
218 :2009/04/23(木) 17:26:23
>>218 ですが、比較的簡単なコードで再現できました。
暇な方は試していただけると助かります。
↓GDIオブジェクトが増え続けるケースのメインメソッド
private void FileAdd(string[] stFileList)
{
int i = 0;
foreach (string stFileName in stFileList)
{
FileInfo fi = new FileInfo(stFileName);
i++;
Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(fi.FullName, Path.Combine(Application.StartupPath, "test" + i.ToString("000") + fi.Extension), UIOption.AllDialogs, UICancelOption.ThrowException);
listView1.Items.Add("test" + i.ToString("000") + fi.Extension);
}
}
プロジェクト一式のZIPファイル
ttp://www.dotup.org/uploda/www.dotup.org30324.zip.html フォームにファイルをD&Dすると、実行ファイルと同じ場所にD&Dしたファイルを番号を振りながらコピーします。
タスクマネージャを見ながら、100個くらいのファイルをD&DすればGDIオブジェクトの上昇がわかりやすいと思います。
再現した環境
WindowsVista x64 (6.0.6001SP1)
.NET Frameworkは最新版です。
(2.0向けなので、System.Environment.Versionで取れる値は、2.0.50727.3074)
オーバーレイ表示でもスクリーンショットが取れるようにしたいんだけど無理? 無効にしなくてもPowerDVDとかは出来るみたいなんだけど。
>>261 UIOption.AllDialogs のときにそうなるみたいだね。
UIOption.OnlyErrorDialogs だと普通に終わる。
>>248 今ぐぐってみました。
そしたらこのスレに飛ばされました
265 :
218 :2009/04/23(木) 21:26:56
>>263 ということは、ダイアログ出してコピー中にユーザーキャンセルできるようにするには、色々自前で組まないと、Vistaでは不具合がでるってことですね。
面倒なのでFile.Copyとうまく使い分けて何とか切り抜けます。
ありがとうございました。
これはVistaの仕様なのか不具合なのか…
System.IO.File.Move(@"C:\test.txt", @"C:\test1.txt"); ↑ これの@ってなんの意味ですか?
すみません、VS2005でWindows アプリをデバッグしているのですが、 どうもWebBrowserでWebページを表示していてそこでのスクリプトか何か の動作がうまく行っていないようなので、そのWebページの動作を調べたい ときには、そのVS上でそのWebページのソースファイル(htmlファイル) をいっしょにデバッグするようなことは可能ですか? Webページは現在はたまたまそこで見ているGoogleのイニシャルページ で、そこで「検索」ボタンを押したときの動作を見たいのでした。
>>267 ヘルプのキーワード検索で「@ リテラル文字列」
270 :
268 :2009/04/23(木) 23:21:16
VS2005はプロフェッショナルEditionでWebアプリも開発可能だとは 思ったのですが、現在のWindowsアプリケーションで開いたときにだけ 不具合を起こしているようなので、統合的に調べたいのでした。 よろしくお願いします。
>>264 いや、文字通りぐぐったら実装されたライブラリが入手できるんだが?
>>271 .Netの標準ライブラリには存在しないんですか?
>>272 ないよ。
BSDライセンスで公開されている実装があるんだから、それ使ってみれば
いいじゃん。
ありがとうございました
プロジェクトの「発行するバージョン」とAssemblyVersionを同期して変更していくいい方法はないだろうか?
自身のフォームを非アクティブにする(VisibleやCloseではなく)方法 もしくはAPIは無いでしょうか。
デスクトップをアクティブにすればいいよ
>>277 SetActiveWindow(IntPtr.Zero) で、目的の動作を達成することが出来ました。
有り難う御座いました。
amazonのサービスを使って、本の管理プログラムを作っているのですが ISBNから書籍データ類を取得した後、その画像データをローカルに保存する方法で困っています。 画像のURLを取得した後にいちいち WebClient wc = new WebClient(); Stream stream = wc.OpenRead(url); Bitmap bitmap = new Bitmap(stream); stream.Close(); としたあとで bitmap.save() とすると保存は出来るのですが、ものすごく時間がかかってしまいます。 画像のURLはWebサービスの参照で自動的に作成された物を使用して所得しています 他に良い方法は無い物でしょうか、教えてください
書籍データのGETと画像のGETを別コネクションで行ってたりしない? さしあたりパケットスニファのWiresharkとC#のTcpClientでぐぐってみて
試したけど別に遅くもなんともねえけどな
クエリー投げ過ぎで待たされてたりして
283 :
デフォルトの名無しさん :2009/04/25(土) 14:56:56
ファイルごとのバージョン管理はどうしていますか?
SVN使えばいい。TortoiseSVNとか便利よ
if文やメソッドなどを書く時、 if (....) { ...... } と書くのと if (....) { ..... } と書くのでは、どちらが一般的なのでしょうか。
下が一般的
>>287 釣りだろうけど、異教の作法なんか張るなバカ。
>>279 というか、クエリ投げてもらえる画像ファイルをそのまま保存すればいいと思うんだが?
下はVSのデフォルト設定だしね 個人的には一貫してさえすればどっちでもいいと思う
>>285 標準書式が無数にあるC/C++とは違い、C#はVisual Studioによる開発がデファクトスタンダードなんだから、
VSの補完により生成される書式が標準だと考えるのが自然だろう。
if (true) { } を支持する人はメソッドも public void Procedure() { } 派?
>>291 VSは賢いので開発者の好きにカスタムできます
お作法はヘジたん教に従えって事だな、つーわけで下
>>285 趣味等で自分の好きに書ける環境なら、好きな方を使えばok
上式で書くなら、メソッド書く時のみ中括弧を字下げ。制御文は同じ行に開始括弧を書く。
コーディング規約と違って、自分のやり方に固執したり
他のやり方に批判的だったりすると気持ち悪がられる分野だから注意。
if { } だと始まりがよくわからなくて困らない?
あれ?ヘジたんの本はK&Rスタイルだったぞ
298 :
デフォルトの名無しさん :2009/04/25(土) 17:45:26
>>296 そんな事はないけど、C#なら当然それは使わない!!
ごめんヘジたんのエディタいじってそうなるようにしちゃったの
C#の話をしてる時でも Java歴が長くてJava信奉の厚い人は わざとK&Rで書く人多いよね
>>300 掲示板に書くときは狭いからそうすることも多いけど、コードはK&Rでは書かないな
JavaScriptでK&Rみるとなんかむかつく
大体、K&Rは歴史的資料、古典なんだから、それのスタイルで書こうとするなよ。 「福沢諭吉に感銘受けたので旧仮名遣いで日本語書きます」って言ってるようなもんだろ。
304 :
285 :2009/04/25(土) 17:55:40
どうもです。 自分の読んでるオブジェクト指向の入門本がJavaを扱って書かれているので その書き方をしていたみたいです。 どっちでも良いということなので安心しました。
K&Rなぞ知ったことではないが行が嵩むのが嫌なので趣味コードは中括弧は全部同じ行 会社では大体VSのデフォルトそのままだから下げ
最近Windowsシャットダウン時にCSC.EXEが出る様になた。 .NET Frameworkは3.5(x86) プログラムに問題が有るのかなぁ?
クラスもメソッドも{を同じ行にしてるの?
K&Rで書く人見ると 思わず英語で喋っちゃった帰国子女っぽくて鼻につく
爺さんはみんなK&Rだぞ、return(0); だし、いちいち気にするな
>>309 見事に的を射た表現だな
ただ漏れには非K&Rで書かれてるコードのインデントの意図が
さっぱり理解できない
>>310 待ってくれ。K&Rは return 0 だ
そりゃ新しいK&Rだ、+= が =+ 時代からやり直し
>>312 漏れ生まれてないYO
でもお年寄りは国の宝っていうから従っとく
315 :
デフォルトの名無しさん :2009/04/25(土) 18:46:02
>>314 いやいや、Visual Studio のデフォルト設定に従えって。
Visual Studio のデフォルト設定はヘジたんスタイル
ヘジたん大好きdelphiは if begin end; だから、 if { } じゃなきゃだめだお
でもべーしっくは if then endif だお
if〜else if〜elseのときコメントはどこに書いてる? //コメント1 if() { } //コメント2 else { } こんな感じで書くとインデントも揃ってて見やすいけど閉じ括弧とelseが離れちゃってて気持ち悪い。 if() { //コメント1 } else { //コメント2 } こっちの方がいいのかな?でも条件式にコメントしたいときとか、コメントが連続で2行になることとかあって書きづらい。 C#の標準的にはどうなの?
ほとんど、そういうコメントを書きたいと思うことがないけど、たまにあるね 俺は上派 下だとインデントされるから、条件式のコメントじゃないみたいだから でも気持ち悪いから //条件式コメント1 //条件式コメント2 if() //中身のコメント else //中身のコメント よほどの事がなければ、こんな感じで書いてる
コメント記述のマナーについては語る価値はあると思うが、 コメントの記述位置そのものについては通常言語仕様で語られる範疇ではない。 AdaやPythonだと決められてるかもしれないが……。
俺はコメント書かない派だから、どうでもいいな。
if() { // comment } else { // comment }
一行内に書くのはフィールドくらいでいい
326 :
デフォルトの名無しさん :2009/04/26(日) 00:06:17
インデントなんて好きにすればいいの・・・。 どうせVSのインデント設定で一括変更とかある程度できるっしょ。 そもそもいろんな言語の国内外のソースよんでりゃ、 インデントがどうのなんて瑣末な問題だと思いますよ?
インデントは全角スペース2個分で、タブを維持する(スペースに変換しない)じゃないと嫌
文字列変換の際に hoge.ToString()にするのと (string)(hoge)にするのとで どのような違いが生じるのでしょうか?
下は変換じゃなくてただのキャスト hogeがstringでない限り失敗する
string型じゃない変数を使って試してみると一発でわかるはず。
>>329 implicitやexplicitな変換が定義されていればstringでなくてもいけるだろ。
まあstringに対してそれをやるやつはなかなかいないとは思うが。
キャストとはいうものの、Cのキャストとはまるで別物なんですかね。変換方法が定義されていることが前提?
変換方法が指定されていなければ冷害が発生する
そもそも別言語だからまるで違うんですかって聞かれることに違和感を覚える
そしてイナゴが・・・ 次の収穫は期待できないなw
>>332 int←→doubleとかvoid*←→int*のような暗黙的・明示的な型変換はC#にもあるぞ。
その上で、さらに任意の型間でキャスト演算子を使えるようにimplicit/explicit operatorを定義できるのがC#。
Rubyを始めて、しばらくぶりにC#やるとすごい・・・ なんかすごい
TabControl で、TabPages.Count が 0 の時に 「メニューから項目を表示してください」 って TabControl に表示させたいんですが、良い方法を教えてください。
ToolTipTextかStatusStrip
TabControlを継承したコントロールで OnPaintをオーバライドしてGraphicsで描画
継承しなくてもイベントでいいじゃん
DataGridViewオブジェクトに対して、 DataTableオブジェクトをバインドしてみたのですが View.DataSource = Table; こうするとスクロールバーの機能がおかしくなります。 スクロールバーがあるであろう矩形領域は再描画がされなくなり、 マウスでクリックしても表示項目が変更されません。 どなたかご教示お願いします。
すみません、教えて下さい。 C#のフォームに自作のActiveXを貼りました。 このActiveXを操作したいのですが、ActiveX側の自作関数が見えません。 関数は、ディスパッチインターフェースに追加しました。 どうやったら、見えますでしょうか? そもそも、好きに関数を作れば呼び出せるというものではないのでしょうか?
できる。やり方が悪い。 ちょっと違う名前空間が前についていることがあるのでよく探してみよう。
アプリケーション設定の propertes.Default.setting1.変数名 this.変数名みたいに、短くできないですかね。
staticなプロパティの返値にすれば Class.PropertyNameで取得できるんでね?
>>344 有難うございます。
ActiveXTestという名前でActiveXは作りました。
Axが頭について、AxActiveXTestという参照?がC#のプロジェクトには
見えているのですが、望む追加関数は、_DActiveXTestという
インターフェース? にあるのかどうなのか、結局見えません。
これはActiveX(C++)側の関数の作り方が悪いのでしょうか?
手作業で、idlファイルを書き換える必要ありますか?
すみません、リビルドしたら見えました。
350 :
デフォルトの名無しさん :2009/05/01(金) 17:01:16
クラスに定義されているイベントへ複数の箇所からイベントが登録されるのですが、登録された際、任意の共通処理を行いたいのです。 delegate void hoge(); class sampleClass { public event hoge hogeEvent; public void callEvent() { this.hogeEvent(); } //↓イベントが追加される度に呼び出される private void addEventCom() { : } } class mainClass { public static void main(string arg[]) { sampleClass o = new sample(); //↓このタイミングで任意の処理を行いたい(addEventComを呼び出したい) o.hogeEvent += delegate() { : } : o.callEvent(); } } 最初、「演算子のオーバーライド(+演算子)でいけるのでは?」と思ったのですが、根本的に間違っていることに気付き... 何かよい方法はないでしょうか?
方法 : カスタム イベント アクセサを実装する (C# プログラミング ガイド) を見れ
352 :
350 :2009/05/02(土) 03:08:00
>>351 add / remove
ありがとうございました。m(_ _)m
〜追記〜
add / remove を定義する際、マルチスレッドを考慮してlockをかけた
方がいいとおもうのですが、自インスタンス(this)でlockをかけるのは
過度だと思い、lock専用のインスタンスを定義してそのインスタンスに
対してlockをかけるようにしたのですが、一般的でしょうか?
>>352 一般的<lock用のインスタンス作るの
ものすごく初心者的なことで悪いんですが 娘が全寮制の高校に通っているのですが 学校でやっているCを自宅に帰ってきてからも やりたいというのですが。 ウルトラCとかいうのを学校では使っている そうなのですが調べてもダウンロード販売ばかりで パッケージ販売が無いようなんです。 しかもダウンロード販売も、実際には販売終了ばかりで。 当方、プログラミングは20年前にN88basicとMASMで終わっている 爺いなんで、どれを購入して娘に与えればいいか アドバイスお願いします。
VIPでやれ
GWらしい釣りだな
なんかバベられてね?
バベるって何? 神に挑戦すること?
>>355 Visual Studio 2008 Express Edition(無料)
ところでウルトラCって実在するの?
過去の遺物にもほどがあるな この程度の教官に教わるしかないとか気の毒すぎる
うん?高校生?
言語に違いないんだからVSでやればいいだけだろに
インライン関数じゃない書き方を教えてください
何の目的で?
まず質問に答えたら教えてやりますよ
それなりの誠意を見せてくださいよ
じゃあいいや
威勢がよかった割にはあきらめの早いことで。 MethodImplAttributeでMethodImplOptions.NoInliningを指定するのがそれっぽいことくらい ぐーぐる先生はすぐ教えてくれたろうに。
解説くらいしろよ役立たず
つか目的書いてくれんとマジで。 NoInlining はインライン最適化は確かに抑制するけど目的が コールスタック保持とかならこれは一部で意味がないとかあるし
378 :
デフォルトの名無しさん :2009/05/03(日) 11:37:43
よく画像に映数字が書かれてて それを入力して認証するようなのがありますが あれを実現するライブラリってありますか? あとWebAPIなんかでも公開されてるんすかねえ?
CAPTCHA認証でググってそれっぽいのを探したら良いんじゃないか WordPress用のは使ったことがあるから誰かモジュール化してるかもね
internal static string s = "hage"; このsの値が変更されるのを防ぐにはどうすればいいですか
readonly
ありがとうございます
探すより自作したほうが早いような
URIの制限で?と&でしか連結できないんだからSplitすればすぐできるだろう
よーし楽天が一気に7得点したから自作してみるぜ
できたこんなんでいいのかな?サンクス public Dictionary<string, string> GetQueryData(string uri) { Dictionary<string, string> dictionary = new Dictionary<string,string>(); string queryString = uri.Split('?').Length == 2 ? uri.Split('?')[1] : ""; foreach (string query in queryString.Split('&')) if (query.Split('=').Length == 2) dictionary.Add(query.Split('=')[0], HttpUtility.UrlDecode(query.Split('=')[1])); return dictionary; }
388 :
デフォルトの名無しさん :2009/05/03(日) 17:47:27
すげえじゃん
>>387 今更ではあるが、
つ HttpUtility.ParseQueryString
HttpUtilityまで見ているのに、何故気付かないのかと
あと、
>>387 だと http://...?hoge=1&hoge=2 とか駄目だな
>>389 >ParseQueryString
ぬぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ
>あと、
>>387 だと http?://...?hoge=1&hoge=2 とか駄目だな
なして?
Dictionaryのキーが同じだから上書きされてしまう。
なるほど、そういうことか サンクス でもそれ受け取った側はどうなるんだべなってのは サーバサイドの問題か
まあ要素には全てArray入れればいいけどな
>>393 そうなんだけど、結局、どっちかを無視するしかないんじゃない?
GETで同じのが複数渡された場合、別々の動作をさせることは不可能なんだから
ひとつのキーに複数の値を受け入れるサーバサイドアプリもあるよ たとえばこんなの <input type="checkbox" name="item" value="1" /> <input type="checkbox" name="item" value="2" /> だからこういうフォームを吐くなら値は配列で持たなきゃいけないし 吐かないならどれかひとつで足りる。残りは捨てても構わない
例えばPHPあたりでは ?hoge[]=0&hoge[]=1 で配列送れるし ?hoge[foo]=bar で連想配列も送れた筈。 ?hoge=0&hoge=1 みたいな時の挙動は知らん
int x = 0; x = x++; の後に x の値見ると C++ は 1 なのに C# は 0 なんだな…
ファイルなどの不定長データを配列に格納する場合 .NET1.xの仕様だと配列を再宣言してコピーする操作が必要だから 大きめに配列を宣言しないといけないってググッたら出てきたけど それって本当だったんですか? .NET2.xからは可変長な配列が作れるような仕様に なったって認識で良いですよね?
何だよ、可変長な配列って。 エスパーするに、ListとかArrayListってのが可変長だよ。 つか >>ファイルなどの不定長データを配列に格納する場合 って何?まさかbyte配列に格納しようとか言うつもりか?
>>399 入門書一冊読んでこいよ
C#以前にプログラミング言語習得したことないだろ
まー理解できるか知らんけど説明すると
ValueTypeを格納するコレクションが提供されていなかっただけ
パフォーマンスを気にしなければArrayListに格納できた
2.0からはList<byte>が利用できる
俺は1.0当時から可変長ファイルの読み込みにはMemoryStreamを使っていたから、 別に可変長配列を使う必要なんかなかった 単にそのライターがしょぼいんだよ
byteだったらmemorystreamにでもIREROYO
内部配列の初期サイズについて言ってるんじゃね?
>>390-394 インデクサなら上書きで済むけど、Add だとキーが被った時点で例外吐くでしょ
1つしか利用できないとかいう以前に、その1つすら取れないじゃないか
まあ、HttpUtility.ParseQueryString がカンマ区切りなのは、
全部配列にすると面倒だが、フレームワークの実装としては
2個目以降を捨てるわけにもいかないという状況での妥協点だな
>>398 C/C++/C# すべてその結果は未定義じゃなかったか?
気のせいだったらすまんが。
>>398 C++ は未定義じゃねーの? 少なくとも、C では未定義。
C#は変数を使用する前/後に更新していると思う
やべ、ちゃんと見てなかった
うーん、未定義でござるか。 演算子の優先順位を考えると C# の動きで正しそうでござるが。
C#の場合は未定義じゃないね。 y = x++; は、 temp = x; operator ++(x); y = temp; と展開されるのが本則。(2行目はコンパイル通らんと思うが) yをxに置き換えると、xにも(y同様)最終的に0が代入されるよね。
413 :
411 :2009/05/04(月) 00:43:31
おっと失礼。結局の所
int x = 0;
int temp = x;
x = operator ++(x);
x = temp;
ですな。3行目はoperator抜かないとコンパイル通らない。
(意味的には抜いてOK。後置++が特殊)
>>412 ははは。先入観でしょうね。
414 :
デフォルトの名無しさん :2009/05/05(火) 06:20:30
おはようございます C#の勉強をし始めたのですが Console.WriteLine( "{0:#.##}" ,1.1 ) とかですと問題なく表示されるのですが Console.WriteLine( "{0:#.##}" ,0 ) にすると表示がなくなってしまいます 0.1にすると0のところが消えてしまい.1だけの表示となるのですが これを0を含む数を表示させたいときは{}の中はどのように書けばいいのか教えていただけないでしょうか
{0:0.##} とか {0:0.00} 書式の説明はMSDNにあるが何箇所かに分かれていてちょっと探しにくい。 {0:#,0.00}なら普通は {0:N2}と書くかな。
416 :
デフォルトの名無しさん :2009/05/05(火) 06:47:46
ありがとうございます 頭の0が省略されずにちゃんと表示されました ほんの少し違うだけで結果が全然違うようになるんですね、、
そりゃ、ゼロ詰めの有無くらい両方できるようでないと使いづらい。
トライフェーズって何すか?trycatchのことっすか?
>>418 try clauseじゃなくて?
とりあえずどんな状況でその言葉が使われてたのか知りたい
トライパースTryParseだったりして
>>419 文字列変換をするところでエラーで無いようにトライフェーズしておいてって言われました
>>420 トライパース調べてみたらそんな気が・・・
しかしどうやって使うんすか?
引数に文字列と型を渡したら変換してくれる?
Int32 i; if(Int32.TryParse("10",out i)){ // 成功 }else{ // 失敗 } こんなん
>>422 thx
なるほど変換に成功したらiに変換後の値が入ってくれるのね
まじthx!
>>421 クオート付けて "トライフェーズ" でGoogleで検索してみるとわかるが、
そんな用語は恐ろしくレアだぞ。
何かを聞き間違えてるから、まずはそれを確認するべき。
foreach(MemberInfo m in members)の中で m.Nameが御目当ての値になったらdataGridView1.AutoSizeColumnsModeに突っ込みたいんだけど dataGridView1.AutoSizeColumnsMode = m.Name て書いたら型が違うと怒られました。 m.Nameをどう型変換細工してやれば怒られずに済みますか。
そのm.NameはDataGridViewAutoSizeColumnsMode列挙体のメンバに含まれてる名前なんだな? Enum.Parseで文字列から列挙体に変換できるが
初回起動が遅い 10秒かかる
ひさしぶりだなあお前w
起動が遅いとか言ってる奴は情報の入手が遅い
Windows 標準の「ネットワークドライブの割り当て」ダイアログを表示する方法ってありますか?
432 :
430 :2009/05/09(土) 14:18:55
MSDN
>>22 (ってこんなに前のにレスするのも悪いが、指摘しといたほうがいいので)
それはSambaの設定が悪い。smb.confにcase sensitive=yesって設定すれば
Windowsからどちらのファイルにもアクセスできる。
Windows自体は大文字小文字を区別するんだよ。ファイルシステムも区別
するようになってれば、正しい取り扱いが出来る。
NTFSが区別しないだけ。
436 :
22 :2009/05/09(土) 16:50:21
>>435 早速試してみた。
Explorerからメモ長で開く、copyコマンドによるコピー、typeコマンドによるファイルリダイレクトで
読み込み、書き込みにおいてファイル名の大文字小文字が区別しうることを確認できた。
しかし、常用しているEmEditor(複数のファイルを1プロセスで開くタイプのエディタ)では
大文字小文字違いのファイルを同時に扱うことができなかった。
Windowsが標準で使えるFAT12、FAT16、FAT32、NTFSでは
いずれも大文字小文字違いのファイルは作成できず、
その挙動が前提となっているアプリも(少なからず)あるわけで、
残念ながらその指摘は現実的なものではないと思う。
その程度の技術知識しかない人間が作ったものを良く使う気になれるな…
>>436 そういうソフトウェアが結構あるのは承知してる。
>>22 みたいな一見もっともらしい検証が、Windowsはファイル名の大文字小文字を
区別しないという誤解をますます蔓延させて、いつまで経ってもそういう仕様の
不具合がなくならない一因になってると言っても過言ではない。。
それを指摘したかっただけであって、現在現実的かどうかはどうでもいい。
Microsoft製品はWindows NTをPOSIX互換にしたとき以来ちゃんと対応してる筈だが、 サードパーティーではそこまで気を配れてるのは少ないだろうな。
>>438 そもそもSambaはSMB/CIFSプロトコルを理解するWindowsの互換環境に過ぎないわけだが。
クライアント側がファイルを読み書きするとき、クライアントはファイル名をそのままファイルサーバー側に投げているだけで、
ファイル名のチェックを行うのはファイルサーバー側だ。
従って、Windowsはファイル名の大文字小文字を区別する、という主張は成り立たない。
何を言ってるんだ…
442 :
デフォルトの名無しさん :2009/05/10(日) 01:11:28
Frameworkについての質問もいいですか? System.Windows.Media.Imaging内のBitmapSourceは抽象クラスとあり、 インスタンスの生成ができないようにしているのはわかるのですが、 メンバのCreateメソッドでBitmapSourceオブジェクトを作れるようになってます。 わざわざこのような方法をとるのはどのような理由があるんでしょうか? ふつうにインスタンスの生成可能なクラスでもいいような気がしますが 抽象メンバも見当たらないですし…見逃してるかもしれないけど
>>442 Hint: Factoryパターン
BitmapSource.CreateはBitmapSourceの子クラスを返す。
ちなみにCreateInstanceCoreがabstractのままだ
C#にはオブジェクトを丸ごとファイルに保存するようなクラスってありますか? objectwiter.write(objectname); こんな感じで。 たしかJavaにはあったのですが。
BinaryFormatterとかXmlSerializer どっちも癖があるけどな
おおサンクス ためしてみます!
INIファイル代わりに使おうとするとプロパティの増減でいちいちエラー吐くのがな。 もっと緩いシリアライザってないのかね。
簡単なアプリなら、断然ApplicationSettingsBaseだな。 ファイルを保存するという感覚すらないし、 設定をコントロールの表示に直接関連付けすれば読み書きするコードがだいぶ省けるよ。
ここで教えて貰ったとして、それを信じるのか?
ライセンスは他人とくにこんな誰ともつかん掲示板で聞くようなもんじゃないよ わからないライセンスなら使わないという選択肢しかない
>>451 ライセンス内容と全然違う事書いてて笑った。
何度も強調されてる部分をどうして取り違えるんだろうな
>>451 読んだ。
何が知りたいの?
COPLのソフトウェアを組み込んだ商用ソフトウェアを作ることは可能だよ。
ただ、全体としては、ちょっとオープンソースとかフリーソフトウェアの
ライセンスと呼ぶには変な制限が多いライセンスかも。
CPOLだったね。
>>455 Code ProjectはMS系の環境のものが多いから、UNIX板ではないかも。
そういう縛りは特にない
460 :
デフォルトの名無しさん :2009/05/11(月) 01:54:43
DXGIってなんだろ?
Direct3D のうちあまり変わらないところというかコア部分を分離した
やつ。今の Direct3D は DXGI と Direct3D と D3DX から構成される
具体的には、DXGI はテクスチャ、サーフェス周り(フォーマットとか
そんなの)とかアダプタの管理とかそんなの。
>>459 見た感じ SlimDX の焼き直しにしか見えないというかんーむ。
フルマネージにしないの?
462 :
デフォルトの名無しさん :2009/05/11(月) 10:57:13
質問なんですが、テーブルイベントでROWSPANは、使えないのでしょうか?
出来るだけIDEに依存しないようにプログラムを書いた方がいいの?
464 :
デフォルトの名無しさん :2009/05/11(月) 11:50:13
いえVSを使用しているのでそこは特に考えていません。 それとROWSPANじゃなくて、COLSPANでしたorz 一応わからない所のソースを載せておきます。 TableRow r = new TableRow(); TableCell c = new TableCell(); c.BackColor = System.Drawing.Color.Aqua; c.Controls.Add(new LiteralControl("TEST")); c.Width = 100; c.colspan = 2; ←できない・・・ r.Cells.Add(c);
開発・保守が自分の中だけで完結するんだったら気にしないでいいんじゃないの
で、ちょっとコード貼っつけて見たけどIDEの補間で c.ColumnSpanが出てきたけどこれじゃないの?
あるstringの変数が空文字かどうか確かめる場合、 以下のどれを使うのが良いですか? また、どれが一番早いですか? if (str == "") if (str == string.Empty) if (str.Equals("")) if (str.Equals(string.Empty)) if (str.Length == 0)
速度はそこがボトルネックであることが判明してからでいい == で空文字列どっちかと比較が見やすくていいんじゃないか
ありがとうございます if (str == "") if (str == string.Empty) が見やすくていいということですね。 見た感じわかりやすいので上のでいきたいと思います。
そういうのって最適化されるんじゃないの?
文脈によるしね。 そのコードの前後関係によって空文字であるかより、 長さゼロであることが主目的であればLength見るし。
String.IsNullOrEmptyも選択肢に加えてあげてください
よかったなC#は Javaだとコンパイラの最適化でリテラルプールに同じ文字列が放り込まれて しまう事があるので==は使えないんだよなあ
>>475 逆じゃね?同じ文字が別のリテラルテーブルに放り込まれることがあるだと思うが。
C# の String.Clone って自分自身を返すんだな。 ちょっとビビった。
そりゃイミュータブルやし
481 :
デフォルトの名無しさん :2009/05/11(月) 16:24:30
ありがとうございます! 解決しました!!
だれよw
ここ最近で上げてるのは、、
>>462 かな
483 :
デフォルトの名無しさん :2009/05/11(月) 16:42:44
あぁすみません!
>>468 さん
ありがとうございました!!!
string型のプロパティでいちいちString.Copy()した値を返しているのを見たときは 気持ちはわかるがやりすぎだと思った。
>>443 すんません、クラスを返すとはどういうことでしょうか?
インスタンスを返すの間違いじゃね
所略してるだけだろう
省略、、、
空気を読まずにSystem.Typeといってみる
C#をはじめて、今まで使われていたVBのアプリケーションを C#に移行しようと思っています。 OCXの参照設定が分からなくて、アドバイスをいただきたいと思っています。 開発環境はWindowsXPでVS2008です。 分からないのは、参照設定にVBで使われていたocxを選択して、 画面には参照設定の部分に出てくるのですが、 オブジェクトがうまく作られない状態なのです。 COMをC#で使う場合何か特別な記述が必要ですか?? よろしくお願いいたします。
オブジェクトがうまく作られないとは? あと、可能ならどんなocxかわかると理解が早いかもしれない
>>490 ActiveX コントロールなら、参照設定ではなく、ツールボックスに追加する。
で、フォームに貼り付けると。
C#に直接は関係ないんですが、 変数名の頭にmyをつける理由はなんですか?
MS サンプルの変なクセ
C#学習に難儀しております。 学習に最適なStarterKitか何かをご紹介いただけないでしょうか・・・。
C言語から始める
アセンブラからやれ マジレスすると、作りたい物を調べながら作れ 自然と覚える
>>495 どう難儀してるか書いてごらん。
書けないんなら、そっちが問題。
499 :
デフォルトの名無しさん :2009/05/13(水) 21:44:28
>>493 だって、マイコンピュータなんだもんw
しゃーないべw
さすがにVistaでマイはなくなったよ。
そして 7 でコンピューター
サンプルソースはVBの分も作らなきゃ行かんので Book book = new Book(); にしてしまうと大小文字を区別しないVBで困ってしまう。 Dim myBook As New Book だからmyBookつうわけ。
503 :
デフォルトの名無しさん :2009/05/14(木) 13:44:42
子フォームから親フォームのオブジェクトを参照したいのですが showdialog(this) で子を表示した後に子からthis.Owner を確認してもnullになっています どうすれば親を設定できるのでしょうか?
すみません、直後に思いついて自己解決しました 子フォームでオーナーを確認するのが早すぎたようです Loadで確認したらきちんと入っていました お目汚し失礼しました
メニュー項目の変数名が漢字になるのが気持ち悪すぎるんだけど 慣れろって話?
好きなように変えればいいだろ、って話。
507 :
デフォルトの名無しさん :2009/05/14(木) 19:19:26
1
ボタンが押されてイベント発生し イベント内でwhileなどを使って処理を繰り返してる時に Form内のラベルのテキストに現在値を更新するようにしても 表示が更新されないままwhileが終了し 進歩が確認できないのですが? なぜなんでしょうか? どうやったら更新されるのでしょうか?
この質問は本当に定番だな 描画も同じスレッドでやるから、whileで回ってる間は描画できないんだ 明示的にRefreshするのが手っ取り早いけどメッセージループが回る落とし穴 BackgroundWorkerを使うのが吉
ループの最後でupdateすりゃ良いだけじゃないのか・・・?
>>508 while が終わるまで描画されないから。
Refresh() と Application.DoEvents() を入れれば更新される。
お勧めはしないけど。
>>509 ありがとうございます。
ちょっと調べます。
>>498 設計から実装までの全体像がわからずに困っています。
いろいろなサイトを見ていても、設計について言及しているものはあっても
そこからどう実装していくかに触れているものはなく。
一方各種Tipsを紹介していてもシステム全体の中でどう使うかは例示されません。
社内には参考になるアプリも教えてもらえる環境もありません。
.NET PET SHOP がMS推奨のKitだとどこかで紹介されていましたが、
ストアドも使われていないし果たしてこれが推奨アーキテクチャなのかと・・・。
案件によってベストな解決は異なるというのはもっともですが、
何か初心者の指針になるようなアプリケーションがないかと質問させていただきました。
初心者な意見で申し訳ありませんが、ご教示いただければ幸いです。
初心者の俺は何を言ってるんだか理解出来ないや
>>513 どう困ってるか分かりません。 結局何が分からないか分からないレベルなのでは。
ストアドなんて単語が突然出てくるのも分からない。
>>513 的外れならごめん
> 設計から実装までの全体像がわからずに困っています。
UMLとかOOとかに拘りすぎてて、何からどう手を付けて良いか分からない典型じゃないか?
C#の勉強をしてるようだが、自分の分からない部分が
言語仕様的な部分なのか、オブジェクト指向的な部分なのか、
(ストアドという言葉が出てるので)DB接続的な部分なのか、
まず分からない部分を明確にしたらどうだ?
Startkitに拘ってるようだが
「これがC#プログラムのスタンダードな構築方法だ!」って感じのプログラムでも探してるのか?
まともな研修受けさせてくれず途方にくれてるなら手持ちの知識で突き進むしかない。 小汚くても適当に動くものをでっち上げるしかない。 ある程度組み方を理解できてから設計周りの本読んでいくと 汚い設計のデメリットと綺麗な設計のメリットを身にしみて理解できるんじゃね。 とりあえずはオプソのプロジェクトをDoxygen通して眺めてみるとか。
>>513 はアプリの組み方が分からないといってるんだから、
本屋のコンピューター書籍のところのでも連れて行って、
本人の納得のいく入門書でも探したらどうだ……?
ここで一問一答するより早かろう。
519 :
513 :2009/05/15(金) 15:40:45
いろいろアドバイスいただきありがとうございます。
>>516 >UMLとかOOとかに拘りすぎてて、何からどう手を付けて良いか分からない典型じゃないか?
そうかもしれません。
MS推奨のアーキテクチャはAAfNで、SQL文はストアドとしてDB側にまとめて・・・。
でもクラス分割をどうするのか、そこからどう実装するのか、
でも推奨Kitではストアド使わずにハードコーディングしてたり・・・。
浅薄な知識ばかりで混乱しているのかもしれません。
自分の今までの学習方法は、正解あるいは指針となる具体的な事例があって、
それと概念を結びつけることで理解を深め応用していく、というアプローチなのですが、
自社のプロジェクトにそういうものはなく、それでKitのようなものがあればと思った次第です。
>>517 助言とヒントをいただきありがとうございます。
おっしゃる通り、考えることよりも動く方が前進できるのかもしれません。
もうちょい頑張ってみます。
そうやってひたすら書いてるうちに、数年後自分のコード見たとき 成長した自分を実感する事が出来るよ
もし俺が億万長者なら新人〜3年目の頃に書いたコードを全部回収して焼却したい。
522 :
デフォルトの名無しさん :2009/05/15(金) 23:55:25
すみません、ファイルシステムがFATなのかNTFSなのかを知ることは できるでしょうか?ググッてみたのですがわかりませんでした。 どのようなクラスを調べればよいでしょうか、よろしくお願いします。
524 :
デフォルトの名無しさん :2009/05/16(土) 00:03:20
525 :
デフォルトの名無しさん :2009/05/16(土) 00:08:58
>>523 あちゃー、DOBONさんところにあったんですね、すみませんでした。
一般サイトとヘルプ見たのですがヒットできませんでした。
探し方悪かったです。早急に助けて戴き、ありがとうございました!
またよろしくです!
検索下手な奴ってなんなんだろうな
528 :
デフォルトの名無しさん :2009/05/16(土) 15:42:41
Macのメニューみたいにアイコンがスイングするライブラリ知りませんか? パクリランチャ作りたいのですが、挫折しました。
>>528 まあ探せばあるのかもしれないが、演出は本質じゃないだろう。
そのパクリランチャとやらを作ってから考えればいいことなんじゃないか?
教えてください。 aという基本フォームから、a1,a2,a3と3つの継承フォームを作り、独立したdllを作成・ 利用する場合、基本フォームaも独立したdllにしたほうがよい? そうせずに、基本フォームのソースファイルを「リンクとして追加」で共有して、3つの dllを作って、本プログラムから基本フォームaを呼び出そうとしたら、aが複数のdllに 存在すると怒られてしまった。
a1, a2, a3 を同じプログラムで使う予定があるのに DLL を分ける意味がわからん。
意味もなくDLLを増やすな
533 :
デフォルトの名無しさん :2009/05/17(日) 00:36:12
ActiveDirectoryに接続してアカウントが所属しているグループを取得したいのですが C#でどのように書けば良いか教えていただけないでしょうか?
>>533 DirectorySearcher とかで検索すれ
C#で他プロセスのメモリの01789CF番を読み込みたいと思った時にはどうしたらいいでしょう?
ReadProcessMemory
537 :
デフォルトの名無しさん :2009/05/17(日) 16:14:50
ASP.NET AJAXって何なの? AJAXならjqueryかprototype.js使えば困ること無いんですが。
538 :
デフォルトの名無しさん :2009/05/17(日) 16:23:22
ASP.NET AJAX は jquery を含んでいなかったかな?
539 :
デフォルトの名無しさん :2009/05/17(日) 18:51:10
メモ帳そっくりなプログラムを練習で作っているのですが、 テキストボックスのDockをFillにしつつ下部のスクロールバーをステータスバーの上に表示するにはどうすれば? 今の設定では下部のスクロールバーがステータスバーに隠れてしまうのですが・・
あ。逆か。
542 :
539 :2009/05/17(日) 18:56:50
>>540 それだとTextboxの下が隠れてしまわないか?
TextboxをFillにするのではなく
ステータスバーぎりぎりのサイズに設定した上で上下左右にアンカーをつけるか、
toolStripContainerに管理させてTextboxはContentPanelの中に入れるのが筋だと思うんだが。
>>543 隠れないよ
DockがBottomになってるから
>>544 試してみた。ほんとだ。.NET Formsはよくできてるなぁ。
謝罪が先だろ 試しもしないでケチつけやがって
謝罪w を 要求するニダwww
それがお前の答えか
賠償を要求してこないだけマシだなw
最低だなお前
くだらん煽りはやめやめ。 管理者が殺伐を推奨してる掲示板で何言ってんだか、って感じ。
何ってなんだよ
キャスト演算子をオーバーロードしてるから
<Child1>1</Child1> だから。
メンバ一覧見ればexplicitメソッドがオーバーロードされてるって分かるだろ
さすがにExplicitメソッドがオーバーロード、は初心者には気づけないと思うんだ… まえはop_Explicitだったのにいつの間にかop_消えてたのな
チラっと見たら演算子のオーバーロードの項目が見当たらなくて、 「あれっ?」と思ったのですが、本当だ、よく見たらありましたorz
>>557 そうそう、前はop_だったのが見当たらないので、
まさかすぐ下に独立した項目があるとは思いもよりませんでした
560 :
デフォルトの名無しさん :2009/05/18(月) 02:18:27
PCにモデム繋いでナンバーディスプレイって出来ないもんでしょうか? まったくやり方がわかりません。
どこの誤爆ですか
562 :
デフォルトの名無しさん :2009/05/18(月) 02:20:17
あと、FAXを送信するライブラリとかあったら教えてください
すみません。顔面にコブシを叩き込んでもよろしいですか?
むかーしWinFaxってのなかったっけ?
C#で作ったプログラム(.NET)はコードを読むことができるそうですが、 C#で作ったDLLもやっぱり同様なのでしょうか?
読めます けど初心者スレレベルの人には全く関係の無い話です 誰も好き好んでクソコードなんか見ませんから
>>566 ありがとうございます。
逆に、参考に人のを見られるわけですよね。
いい切り替えしだ
参考にしたいのなんかはまずソースオープンにされてるから気にしなくていいな
ネット探したほうがよほどいいソースが見れるぞ。説明書付で
難読化してある物は結構スパゲッティだったりする罠
SaveFileDialogのDefaultExtが機能せず、 Filterで指定した一番左の拡張子が選択されるのは何故ですか?
AddExtension プロパティは、表示されるファイルにフィルタを適用するための拡張子を、既定では Filter プロパティから特定しようとします。Filter プロパティから拡張子を特定できなかった場合は、代わりに DefaultExt が使用されます。
>>3 テンプレの参考サイトについてですが、
・ページのタイトルも書いてください
・googleは検索エンジンであって参考サイトではありません。
解らないことがあったらgoogleで調べよと一言入れておけば良いのでは?
じゃあ次スレを立てるときに574が入れてください。 任せましたよ。
>>575 解りました。
次スレから俺好みのスレに調教させてもらいます。
>>576 そんなら、相談室とふらっとスレがうまいこと棲み分けできるように
調教ついでにおねがいします。
テンプレ変更するならスレ立てる前にテンプレ案張っとけ
タスクバーに表示される文字列が更新されない時がある なんでこんな曖昧なことが起きるんだ コンピュータって何なんだ
コードが悪いんだろ。環境のせいにするなよ
まあ変な環境使ってるのかもよ 代替シェルみたいな
582 :
デフォルトの名無しさん :2009/05/22(金) 18:17:14
現在UserControlを継承した、スクロールバー付きのコントロールを作成しています。 スクロール毎にクライアント領域全てを再描画させたいのですが、 AutoScrollの場合、内部でScrollWindowEx?が呼ばれているらしく、 どうしてもOnPaint前にその描画(前回描画したものがずれたもの)が入るようです。 そこでAutoScrollをfalseにし、VerticalScrollを使うようにしてみましたが、 今度はマウスでスクロールした後に、VerticalScroll.Valueが0に戻るようです。 どなた様か解決策をご教示頂けませんでしょうか。
AllPaintingInWmPaintをtrueにしてみるとか
584 :
582 :2009/05/22(金) 21:25:59
有り難うございます。 AllPaintingInWmPaintはチラツキ対策の為、trueにしてあります。
585 :
デフォルトの名無しさん :2009/05/22(金) 23:44:09
listViewコントロール(View=Details)でアイテム選択状態の時に、 右クリック押下でコンテキストメニューを表示したいのですが、 listViewコントロールにコンテキストメニューを設定すると、 当然どの状態でも表示されてしまうので、抑制する方法を教えてください。
抑制じゃなくて右クリック押下の時に選択アイテムあるか見て表示すればいいじゃない
587 :
デフォルトの名無しさん :2009/05/23(土) 08:59:34
クラス内の関数をpublic static とするとクラスの インスタンスを作成しなくとも関数を使用することが でき、結構便利に使うことができますが、これは、 邪道なのでしょうか。クラス内の関数はクラスの インスタンスを作成して使うべきなのでしょうか。 使い分けなんかはありますか?
どのくらい書いてる? いくつも書けばわかってくる
>>587 責務で分ける。インスタンスが不要 or インスタンスを指定できないような責務なら使う。
ユーティリティクラスと言われる関数の集合を扱うクラスでは有用。例えばMathが良い例。
他にも手順を用いてインスタンスを生成するための関数でも使う。Singletonとか、String.Fromatとか。
しかし、責務としてインスタンスが必要な場合にstatic変数 + static関数にするのはアウト。
書くのがちょっと楽になる程度で、実質static変数の弊害(グローバル変数の弊害)しかない。
>>590 そう?static〜は確かにそうだけど
責務って言葉はけっこう使われると思うな。
「責務」は確かに使われてるみたいだ。でも、誤訳でしょう。
送られたメッセージに自律的に応答する能力(respond + ability)が
resposibilityだよ。
http://www.merriam-webster.com/dictionary/responsible 1aが最もシンプルな定義になるんだろうけど、OOP用語としては2aが近いかな。
いずれにせよ「応答する能力」が一義的かつ重要なんであって、「責務」って
のはニュアンスとしてだいぶかけ離れている。まあ、responsibleは
プログラミングの世界だけでなく、一般的に常に誤訳されてるような気はするが。
どうでもいい。
>>590 > パフォーマンス重視のコードでは、これにより大きくパフォーマンスを向上できます
うーん、これどうなんだろう。どっちかというと、疎結合になるメリット、つまり
「インスタンスに影響を与えない/影響を受けない関数と明示できる」が一番じゃないの?
状態を持つ必要のないものはstaticにする 状態を持つものは通常のインスタンス化する
>>594 Merriam Websterに対してgoo辞書の2単語で対抗しようとするのって
無謀だとは思わないか?
オナニーはオナニー板で
599 :
デフォルトの名無しさん :2009/05/23(土) 12:28:41
俺はこういう話好きだぜ。
あーOEDオンライン化しないかなぁ
してるじゃない。個人で利用は難しいが
すいません質問です。 アプリケーションの設定を保存したいのですが、ユーザースコープのようにアプリケーションスコープの値を変更する方法はないでしょうか。 やりたいことは実行ファイルと同一フォルダ上にアプリケーションの設定情報を保存およびその読み出しをしたいだけなのですが、 わざわざ自作しなければならないのでしょうか?
>>602 >アプリケーションの設定を保存したいのです
>ユーザースコープのようにアプリケーションスコープの値を変更する方法はないでしょうか。
>実行ファイルと同一フォルダ上にアプリケーションの設定情報を保存およびその読み出しをしたい
どれだよおい
一応それをやれる枠組みはあるが、 インターフェイス以外のほとんどコードが書き直しで、 そこを変更してしまうとIDEが対応しない。 で、やるのをあきらめた。
605 :
602 :2009/05/23(土) 22:25:42
自己解決しました。 exe.configをDOMとして読み込んで、上書きという単純すぎる方法。 1、あらかじめフォームデザイナでApplicationSettings>PropertyBindingでアプリケーションスコープの設定をバインド。 2、FormClosedイベントハンドラ辺りに、たとえば以下のコードのように記述。 string assemblyName = this.GetType().Assembly.GetName().Name; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(assemblyName + ".exe.config"); XmlNode node = xmlDoc["configuration"]["applicationSettings"]; //exe.configのxmlを見て決め打ち。 foreach (XmlNode item in node) { if (item.FirstChild.Attributes[0].Value == "StatusBarVisible") //ここに、設定の名前を。 { item.FirstChild.FirstChild.FirstChild.Value = statusStrip1.Visible.ToString(); //入れたい値を代入。 } } xmlDoc.Save(assemblyName + ".exe.config"); //保存を忘れずに。 これでexe.configをiniのように使えるっぽいです。
ショートカットからとかの起動考えてないだろ、相対パス使ってるあたり あとProgram Filesにインストールしたら書き込めないぞ
PowerShellくらい簡単にXML使えるようにしてくれよ
608 :
デフォルトの名無しさん :2009/05/23(土) 22:57:55
LINQ to XML使え びっくりするくらい簡単で使いやすいから
CD-ROMに保存できないよね
XDocumentなー XmlDocumentに比べれば確かに便利
初心者です。 VC# express edition を入れたのはいいのですが、教科書のコンソールアプリをコンパイルすることが出来ないでいます。 csc hello.cs でコンパイルできるようにするには、なにをどうすればいいのでしょうか。 IDE環境でビルドすることはできます。でも短いプログラムごとにプロジェクトをわけるのはどうも大げさすぎて。
「パスが通ってる」って表現は分かる?
>>611 プロジェクト右クリック→プロパティ→〜アプリケーションとかなってるやつを
コンソールアプリケーションに変更
cscはC:\Windows\Microsoft.NET\Framework\v3.5\ とかにあるぞ v3.5はv2.0.50727とかも
615 :
611 :2009/05/24(日) 00:57:46
>>614 さんのところにパス通して無事にコンパイルできました。ありがとうございました。
VC++のコマンドプロンプトみたいに、パスを通すバッチのショートカットを作っとくと便利。
スタートメニューのVS2008以下にコマンドプロンプト用意されてるけどね
>>606 >>ショートカット
自分の環境だと再現できないからよくわかりませんがそうなんですか?
>>Program Files
・・・Vistaだと起きるのか・・・まぁ、不対応って事で。
普通にXPでも一般ユーザなら書けないし あとショートカットは作業フォルダ=起動時のカレントディレクトリを簡単に変更できる
ここで作法レベルの話をうだうだやってもしょうがない。 インストーラつきのまともなアプリを作って配布するなら データの保存場所はMSのガイドラインに沿うべきってだけ。
>>616 残念ながらVC++以外のエクスプレスにはない。
622 :
621 :2009/05/24(日) 02:11:29
>>619 ,620
ぐぐって色々把握できました。サンクス
ショートカットはApplication.ExecutePathに置き換えて絶対パスにしました。
書き込みに関してはインストール不要系の習作なので放置。
しかしこんな書き込み関連の仕様だったことを初めて知りましたよ。
もしそこら辺のゲームがuser.config書き込みだったりすると、隠しフォルダだしバックアップもソフト側でお膳立てしないといけないと実質だめそうですね
624 :
582 :2009/05/24(日) 17:34:16
チラ裏に書くべき事かもしれませんが、一応解決したらしいのでご報告を。
前者の問題ですが、SetScrollState(ScrollStateFullDrag, false);とする事により対処出来ました。
ですが、スクロール中に無理矢理再描画するとぶれる現象が再発。
後者の問題は
ttp://rararahp.cool.ne.jp/cgi-bin/lng/dotnet/dotnetlng.cgi?print+200607/06070002.txt ここに書いてある現象と全く同一なわけですが、一応解決・・・?
WM_VSCROLLでSB_ENDSCROLL(8)が飛んできたときに、VerticalScroll.Valueが0になるようなので、
base.WndProcに処理を渡さないようにすると「一応」直りました。
こちらは無理矢理再描画してもぶれる現象は発生しませんでした。
これで当初から望んでいた動作にする事が出来たようです。
この方法ですと他の部分に弊害が起きる気もしますがw
以上、指摘や助言等ございましたらレス頂ければ幸いです。
625 :
582 :2009/05/24(日) 17:48:48
・追伸 両者のコードとも、スクロール中にも再描画させる為に OnScrollにてVerticalScroll.ValueへNewValueを代入し、Invalidate()を実行してます。 OnPaintでは、背景は常に同位置、前景はVerticalScroll.Valueにより移動する等の描画をしてます。
varって出来るだけ使わない方がいいの?
アンダースのオッサンはvarのコストは実行時にはないって言ってた気がする 作法的な問題なら知らん
628 :
デフォルトの名無しさん :2009/05/25(月) 02:11:48
varはコンパイル時に静的な型が与えられるんじゃなかったかね?
varは型推論だからラインタイムにコストが発生することはない
コンパイルする時に型決めるだけで、実行段階では同じ。 コード量とコーディングの厳密さとのトレードオフ。 using(var s = new くどくど())... みたいに、宣言してすぐ初期化する場面では冗長な部分を削れたり。 C#は、コード上でも参照ごとに厳密に型付けされてることがコードの追いやすさを支えてる。 宣言と初期化がある程度離れるなら、VSの入力補完もあるんだし、書けば良いのにとも思う。 個人的にはCtrl+Spaceが癖になってるから、タイプ量も速さもそんなに変わらんし。 あとはターゲットが.NET2.0にする時とか、コードを不特定多数に配布する場合とかは避けたりする。VS2005で触るかもってことで。
宣言と初期化が離れたらvar使えないよ… 型名が長くなるとか数個の別々の型の変数をまとめて宣言するとかだと varの方がかえって見やすくなるってことない?(右辺見れば型は明らかって場合ね)
とりあえずfrom x inの時しか使わん、今は。 何か感銘を受けるようなコードを見る機会があるまでは旧スタイルで保留。
ダックタイピングできるとvarはかなり旨いんだけどなあ
>>631 マジだw。やったこと無かったから知らんかったw。さすがC#。
複数宣言の時は参照名の頭が揃って見やすいか。納得。
今のC#のチームは2.0ターゲットだから、3.0の新機能は使ってない。コードも2.0スタイルで書いてる。
家で新機能調査はやるけど、ホビーでも今のところ慣れてる旧スタイルだな。
>>634 > 今のC#のチームは2.0ターゲットだから、3.0の新機能は使ってない。コードも2.0スタイルで書いてる。
こんな恥ずかしいチームは解散で。
.NET2.0をターゲットにしてるが、C#は3.0を使ってる。 使える機能は限られはするがvarは便利だな。 使いすぎには注意だけど、 ローカル変数の宣言以外に使えないから 使いまくってもそれほど可読性は落ちてないな。
エラー 1 プロパティまたはインデクサを out か ref のパラメータとして渡すことはできません。 どうしてですか?
何のためのゲッター・セッターだよ。
VBは出来たりするけど内部で変なことをやってる。
こんにちは 質問させて下さい 今ゲームを作っているのですが 物を表すobjっというクラスのインスタンスを複数作りたいんです インスタンス変数の配列みたいなのを宣言してfor文で一気にインスタンスを作りたいのですが 無理なんでしょうか?
641 :
デフォルトの名無しさん :2009/05/25(月) 14:20:58
複数のスレッドから呼び出される関数があって、ブレークポイントを仕掛けて止めたあと、そのスレッドだけでステップ実行したいのですが。
現状、他のスレッドを止めて作業しています。
特定スレッド以外から呼び出された場合は、ステップ時の停止をしないようにする方法があれば誰か教えてください。
>>640 意味がよくわからないけどこういう事かな?
obj [] objArray = new obj[100];
for(int i = 0 ; i < objArray.GetLength(0) ;++i) { objArray[i] = new obj() ; }
>>641 ブレークポイントを右クリックして、フィルタ設定すればできるんじゃないかな?
やったことないから知らんけど
643 :
640 :2009/05/25(月) 14:33:55
>>642 どうも、いけてるっぽいですね。
ステップ実行にも適用されているぽいです、今のところ。
初心者っていうレベルの質問なのかも分からないけど、1点質問を USBのマウスを2個ないし3個刺して、それぞれのマウスの移動量って個別に取得するとかできます? 1個のマウスじゃないのは、複数のX軸Y軸の動きを見て「マウスの捻り動作」も取得したいからでして、 DirectInput見ても、Mouseイベント見てもマウス自体の識別ができないようで・・。 何か知識や方法ご存知の方いらっしゃったらご教授ください
マウスポインタが複数あるなら拾えるんじゃね?
Windows7でサポートされるようになるとか何とか WM_INPUTである程度どうにかなったっけ 前調べたときはなーんか限界があった気がする
どちらかというとそれはDirectInputやらの話で、 C#は関係ないような気がするんだが。
Win7だとマルチタッチがあるから対応したのかな? てかここじゃなくて、Win32SDK?あたりのスレに行くと有識人と出会えるかも?
>>646 ありがとうございます。マウスポインタ関係無しで(モニタ上のポインタと関係無く)座標を取りたいので難しそうです。
何よりマウスポインタを複数表示or作成する方法がいまいち・・
>>647 MSDNをみた感じ、詳細なマウスの位置を取ろうと思ったらWM_INPUTが一番いいみたいですね
WINAPIから?しか使えない感じですが調べてみます。
>>648 そうなんですか。
当方C#かVBくらいしか分からないのと、今回使用する言語がC#だったためここで質問しました。
スレ違いでしたら申し訳ありませんでした。
>>651 > Microsoft. Windows. XP 上では、Microsoft DirectInput. は、
> システム マウスおよびシステムキーボードとして参照される、
> 1 つのマウス デバイスと 1 つのキーボードデバイスのみを列挙する。
> これらのデバイスは、システム上のすべてのマウスの出力と、
> キーボードの出力の組み合わせをそれぞれ表す。
> Windows XP での複数のマウスまたはキーボードからの読み取り方法については、
> WM_INPUT のドキュメントを参照すること。
Ohもろ書いてあるじゃんorz
654 :
デフォルトの名無しさん :2009/05/25(月) 23:30:41
WEBで電子印鑑を実現したいんだけど.NETのライブラリありませんか?
電子印鑑てなに?電子署名のこと?
知らないなら黙っててください
電子印鑑ってただの画像だぞ
ただの画像っていうか印刷したあと判子を押すのが面倒だから入れておく画像。
659 :
デフォルトの名無しさん :2009/05/26(火) 00:10:05
社印の名前と部署の部分は動的に生成しなきゃならんから難しそうだな。
>>659 電子透かしとかそういった事かと思ったけど、そういう話なの?
661 :
デフォルトの名無しさん :2009/05/26(火) 00:48:42
やっぱり動的に印鑑の画像を作るしかないよね? 社内のWEBアプリで使いたいのです。
静的なほうがよければ、 欲しいぶんだけ印鑑の画像を用意して表示させればいいんじゃないの?
>>605 アホなことしなさんな。
下手すりゃVista以降じゃまともに動かなくなるぞ。
まだやるのかよw
すまん表示更新してなかったよorz
アホめ
黙れ下郎
豚が
もっとなじってくれ
いやぁ〜ん
空気読まずに質問しちゃうけど、 ディレクトリへのフルパス(例:"C:\Foo\Bar")から 末端のディレクトリの文字列("Bar")を取得するメソッドってないの? Bar がファイルだったらPath.GetFileName()でとれるんだけど。
ディレクトリも同じよ
IsolatedStorageFile.GetUserStoreForApplicationを呼び出すと IsolatedStorageExceptionが発生してしまします。 このときのエラーメッセージが 「呼び出し側のアプリケーション ID を確定できません。」 なので、AppDoman.CurrentDomain.ApplicationIdentityがnullなのがいけないのだと思うのですが、 ApplicationIdentityをnull以外にする方法がわかりません。 どうしたら、ApplicationIdentityをnull以外にできるのでしょうか?
checked{}って何に使うの? というかむしろデバッグ中はプロジェクト全体を覆ってしまいたい気がする。
数字のオーバーフローチェック 桁あふれぎりぎりで演算しなきゃいけないときに使う コンパイラスィッチで指定できたはず
677 :
デフォルトの名無しさん :2009/05/27(水) 13:34:02
checkedはどっちでもいいけど意図的にオーバーフローさせるときはuncheckedは絶対に付ける でないとコンパイラスイッチが使えない
678 :
デフォルトの名無しさん :2009/05/27(水) 15:40:23
VS2008ExpressEditionでFxCopとStyleCop入れてみたんですが... ツールにメニューが出てきません。(´・ω・`) このアドインてExpressEditionじゃ使えないんですかね?
>>678 未だにこんな人がいたか
EFではアドイン自体つかえません
変数とプロパティの用途の違いが分からない
>679-680 ExpressじゃStyleCop使えないんですね。 FxCopは完全に勘違いしてました。(´・ω・`) どうもありがとうございました。orz
そのうち違いが分かってくるのでとりあえず意識しなくてよろしい
684 :
デフォルトの名無しさん :2009/05/27(水) 17:23:40
expressではIDEに統合できないだけでFxCopやStyleCopは単体で使えるよ
MenuStripのRenderプロパティとStatusStripのRenderプロパティの初期値が違うのはMicrosoft Corporationの不徳の致すところですか?
初期値が何だっていいじゃないか。変える必要があるなら変えればいい。
意味が分からない メニューとステータスバーのレンダラが違うのって何かおかしいか?
>>684 とりあえずStyleCopのインストールパス探してみたんですが...
『C:\program files\MSBuild\Microsoft\StyleCop\v4.3』には設定用のexeしか無いんですが、スタンドアロンで使うってどうしたら良いんですか?
C#インスコしたけど何からはじめたらいい?
WinAPIのラップあたりから。
お前は何もしなくて良いよ
新しい環境では大抵メモ帳作るな。 メニュー、ツールバー、ステータスバーの実装、 ファイルの入出力、ちょっとした状態の管理(新規、変更なし、変更あり)あたりが学べる。
もうちょっとがんばって最近使ったファイル、外部ツールの登録機能を実装すると いろんなアプリで使いまわせるようになる。
なるほどありがとう 上でもあったようにメモ帳からやってみるよ
695 :
デフォルトの名無しさん :2009/05/27(水) 21:30:18
>>688 msbuild用だから単体では使えない
プロジェクトファイルを手で書き換えればビルド時に自動的に診断してくれるようになる
stylecop msbuild でググれ
DLLのラップはやってみて損しないと思うな どうせ不満が出てくるから
APIついでにやるなら32bitと64bitの切り替え対応かねぇ 関数は一緒でも引数の型違いで動かんのとか結構あるし setupapi.dllとか半日悩んだわ
64bitと32bitで別関数なんてのもよくある話 GetWindowLongPtrとかな
>>696 そういうのはMSでやってくれよ。
いちいち宣言すんのだるいわ。
そういうプロジェクトどっかにまとまってないのかね。
そういえば、実際のところC#で32/64bit向けビルドってどういう扱いなの? DirectXを扱ったりすると、途端にプラットフォームターゲットがAny CPUのままじゃ動かなくなったりする。 この件は原因が判明するまで苦労したものだった。
COM Interopじゃ仕方ない
pinvoke.netは定番
C#向けじゃないライブラリのラッパーをC#で書くってのは、 P/Invokeを使うってこと? 他に方法があったりするの?
ネイティブのライブラリならP/Invoke COMのライブラリならCOM Interop
705 :
デフォルトの名無しさん :2009/05/28(木) 00:03:18
コンソールアプリケーションとWindowsフォームアプリケーションだとどちらを先に習得すればいいのでしょうか?
前者 10分で終わる
OpenFileDialogを開き、そこにデスクトップの内容を表示した状態で選択ファイル名を空にしたままエンターキー(または開くボタン)を押すとマイ コンピュータなどのリンクが一覧から消えてしまいます Windows Vistaでの挙動を教えてください
>>708 即レスありがとうございます
1ヶ月くらいかかりそうです(汗
711 :
デフォルトの名無しさん :2009/05/28(木) 07:50:46
現在、MailDir形式(1ファイルに1つの生メールデータが入ってるタイプ)がありまして、 ここから、本文とタイトルだけを抽出したいのですが、 System.Net.MailのMailMessageクラスのようなものに、この生メールデータをバインディングして 各種メソッドを使いデータを取り出すようなことは出来ないのでしょうか? 少なくとも、MailMessageクラスにはそのような生データを読み込むメソッドはありませんでした。 方法がありましたら、よろしくお願いします。
自分でパーサ書け
フリーのLibでもいい?
ButtonコントロールのImageプロパティに画像を指定し FlatStyle = FlatStyle.Flat、FlatAppearance.BorderSize = 0として 枠線の無い画像ボタンを作ったのですが Enableをfalseにした時に、枠線が出て来ます この枠線を消すには、何を指定すれば良いのでしょうか?
んーやってみたけど出ないけどな?
716 :
714 :2009/05/28(木) 14:57:09
>>715 さんのレス見て、クリーンしてコンパイルしたら出なくなりました…
何だったのか分からないまま再現不能に…('A`)
自分用のツールなので再現した時また考える事にします
ありがとうございました
なんかフォーカスの線みたいな気がしないでもないな。
デリゲートをList化したいのですが、コンストラクタの引数がよく分かりません。 >Delegate (Object, String) 指定したインスタンス メソッドを指定のクラス インスタンスに対して呼び出すデリゲートを初期化します。 >Delegate (Type, String) 指定したクラスから指定の静的メソッドを呼び出すデリゲートを初期化します。 分かりやすく教えて頂けませんか?
何言ってるかわからないのでコード晒してくれお public delegate int TestDelegate(string str); public int TestDelegateMethod(string str){return Int32.Parse(str);} List<TestDelegate> list = new List<TestDelegate>(); for(int i=0;i<10;i++) list.Add(new TestDelegate(this.TestDelegateMethod));
すみません。説明不足でした。コードは消してしまったのですが、 list.Add(new TestDelegate(null)); nullにできないかと思ったのですが、未指定というのは無理ですか?
何も指さないデリゲートインスタンスは不可能だな って言うかそんなんして何がしたいんだ
>>721 ありがとうございます。試してみます。
お早い解答に正直驚いてます。;
>>722 任意のメソッドを格納するデリゲートを複数作りたかったので…。
725 :
724 :2009/05/28(木) 17:46:17
蛇足ですが、 テキストファイルに書かれたメソッド *.txt {Test(...),Test2(...)} //格納 {Test2(),Test()} //2つめ格納 {Test3(...)} //3つめ。。。 を実行するためにデリゲートがいくつも必要だと思った次第です。
それはデリゲートよりリフレクションのほうが便利かもね
727 :
724 :2009/05/28(木) 17:52:33
>726 どうも。組みなおしてみます。
デリゲートがいくつも必要なのは分かるがなぜ何も指さないのが必要なんだろう? って思ったけどまあ本人が納得してるならそれでいいか
729 :
デフォルトの名無しさん :2009/05/28(木) 20:09:26
.NET4.0(DLR)では引数16個のFunkが出てくるぜ 型引数64個のクラスとかもうね
そいつはFuckだなHAHAHA!
>>731 すまねぇ ついでてしまったんだHAHAHA
Funkyなやろうだぜ
C#は情報量が少ないように感じます なぜですか?あまり人気がないのでしょうか?
必要な情報はあると思うが、なんと比べて少ないんだ? 何が知りたかったのだ?
オブジェクト指向です
C#で学べるのはOOPまでだな、オブジェクト指向はもっと大きな概念だ。 ちなみに、オブジェクト指向の何が知りたいんだ?
>>734 C# で情報少ないとか言ったら、他の言語なんて何もないぞ。
まだ可変長ジェネリック採用する気ないのか
C#で情報少ないとか、どんだけゆとってんだよ
C#って仕様複雑やしない? 簡単って言われたけどなんか習得すべき事柄が多いぞ
>複雑やしない
>>741 C++を選択していれば今頃挫折していた。
複雑というか、出きることが多いけど大半は代替手段や記法の簡略化。 知らなくても困りはしないが、知っておくと得をする程度。 でも、落とし穴がこっそり各所に用意してあるのが怖いけどなw。 「匿名デリゲートは書くのが楽」とだけ理解していてキャプチャでハマったり、 LINQで遅延判定でハマったり。
>>741 どんどん増えてるねぇ。
でも、あれと同じことを他の言語でやること考えたら、はるかに簡単にできちゃうからなぁ。
>>744 あー、キャプチャは知らずに乱用してると落とし穴に落ちそうだね
起きてる人いますか?
また来ます
いますよ。何か?
さっさと言えよ
キャプチャって何のこと? 画面のキャプチャやロボットチェックのCAPCHAのことじゃないんだよね?
うん
正直楽しすぎてやばい 病気になりそう
はい
>>751 for(int i=0;i<10;++i) { hogehoge.PropertyChanged += (s,p) => Debug.WriteLine(i); }と、
for(int i=0;i<10;++i) { int j = i; hogehoge.PropertyChanged += (s,p) => Debug.WriteLine(j); }を
違う結果にする、わくわく系不思議機能。
それは違う結果になって欲しいだろ
forとforeachは括弧とスコープが対応していないので紛らわしいね
C#で辞書作りたいです。辞書とかって str.replaceってのを使って置換してるんですか?
辞書ってどういう辞書ですか? 何か例となるソフトでも挙げてみてください
英語を日本語にするんです ソフトとか良く分からないです
「辞書とか」なんて言葉が出るくらいですから 手本としてるものはあるわけでしょ
ありません
じゃあ自由に作れよw 「こういう機能をつけたいなあ」というのがあったらまた来い
わかりました。 またお願いします ありがとうでした
>>756 文法上はなってくれないと大問題だけれど、直観的にはそうなって欲しくないな
ほとんどのケースで後者と同じ挙動をしてほしいと思うし。
それと変数が散乱しすぎる。
766 :
751 :2009/05/29(金) 11:39:19
イベントの登録のことを何でキャプチャと呼ぶのかは分からないけど、 delegateやラムダ式につかませる自由変数の扱いは注意しないといけないだろうね。
うーん、クロージャーが参照するのか、クロージャーがコピーをを持つのかを ラムダ式の内部ではなく、外部で決定しようとするから訳らからん事になってるのかな、文法の吟味が足らない予感がするな。 とくに構造体が相手の場合、普通はコピーが原則なのに此処だけは参照になってしまう。
>>765 >ほとんどのケースで後者と同じ挙動をしてほしいと思う
ねーよw
>>766 イベントの登録じゃなくて
>delegateやラムダ式につかませる自由変数
外部変数を捕まえる(取り込む)からキャプチャ
はーん ややこしい
>>768 なるほど。そういう文脈があるとは知らなかったなぁ。
ググってみた限りではC#とC++0xの記事で見られる用語みたいだ。
普通は自由変数といったり、外部変数の束縛と言ったりするんだが。まあ束縛自体がキャプチャの訳語なのかな。
771 :
デフォルトの名無しさん :2009/05/29(金) 12:42:52
>>768 >ねーよw
逆に問いたいが、ループ変数が最後の状態の値になった状態が必要なデリゲートなんて意味あるのか?
クロージャの話は定期的に出てくるが以前このスレかもうひとつのほうでで散々やったな。 クロージャは関数型言語の概念なので、 値を拘束しない手続き型言語のクロージャはどれも特殊。 手続き型言語の世界ではforやforeachでの解釈は少数派ということはない。 身売り騒動でどっかに行ってしまったが、java7のクロージャも同じ解釈だった。 rubyでも同様に (0..9).each do |i| と for i in 0..9 do で動作が異なる。 C#なら前者はList.ForEachといったところ。
774 :
デフォルトの名無しさん :2009/05/29(金) 13:41:04
ラムダ式って有効ですか?わかりにくくて使う必要がない気がするのですが。
まあ作るのものによってもよく使うかあんまり使わないか変わるし 不要と思うなら使わなくてもいいよ 他の人のを読めさえすれば
>>774 LINQを使い始めれば必要不可欠である事がわかるよ
ラムダ式無しでデータ操作などする気が無くなる
この種のアプローチで、毎回クラス作ってvirtual関数導出してなんてやってたら、手のつけられないクラスの山が出来上がるから。
>>773 C#の話題の中でのクロージャなんだから、普通にC#的クロージャの話題として受け止めればいい
わざわざ関数型言語の話題なんか持ち出す必要もないかと。
はあ?
779 :
デフォルトの名無しさん :2009/05/29(金) 14:43:13
virtual 関数一個導出するため『だけに』とかinterface の中の関数一個定義するため『だけに』といった、中身があって無きが如しのクラスが大量増殖すると嫌になりませんか?って事。 ある日気づいてみたら、そんなクラスがネームスペースの9割を占めていて大事なクラスがちっとも見つかりません、IDEの名前候補機能が役立たずになるし、たまに微妙に高機能になったクラスがあったりして、現物を見るまで正体不明だとか。 そんなライブラリ嫌でしょう?俺は嫌だね
そんなに膨れあがるかどうかは作るものに強く依存するから、あなたの経験を元にそんなに力説されても困る。 あとデリゲートがあるんだからキャプチャの必要がないならクラス作る必要はない。 それからどうせプライベートなクラスならインナークラスにする。
781 :
デフォルトの名無しさん :2009/05/29(金) 15:08:38
>>780 すでにそうなりがちな.Net Frameworkを見てさえそう思うなら、そういう事なんでしょう
必要だから作られた、ただそれだけの物。
必要ないなら誰もこんな機能追加しようなんて思い立ちませんよ。
だから作るものによるって言ってるじゃん おいらも一回だけC#の仕事があったけどそれはこっちのデータを色々いじってそっちに移すってものだったから LINQもラムダ式もよく使ったというかコードの中心だったしそれをメソッドやクラスに展開したいとは思わない でも自分が使うだけのちょっとした小物なら別に必要はないと思う まあおいら自身はラムダ式とか積極的に使うけどさ
ウザイ 「必要になったら使え」の一言で終わるだろ 分かったら死ね
ここ初心者スレであって議論スレじゃないんで。 プログラミング思想信条的な物まで持ち出して話引っ張らないでくれるかね。 ○すぞ。
そもそも初心者スレの住人を相手にする時点でもうね
伏せなくていい。ウザイから殺しとけ。
787 :
688 :2009/05/29(金) 17:12:16
>695 とりあえずググッてみます。 ありがとうございます。
C#においてコントロールとコンポーネントの違いを説明しなさい いや、教えてください
789 :
デフォルトの名無しさん :2009/05/29(金) 19:42:30
ほかのプログラムと組み合わせて使うために作られたクラスがコンポーネント それにGUIが付いたらコントロールとも呼ぶ
C#においてはともかく、.NETにおいてなら System.Windows.Forms.Controlとその派生クラスがコントロール System.ComponentModel.IComponent実装してるのがコンポーネント
自分の知らない範囲が出てくると発狂するヤツってどーなんかねw
ArgumentOutOfRangeException
793 :
デフォルトの名無しさん :2009/05/29(金) 22:37:48
ちょこっと弄っただけの知識で全てが分かった気になってしまう中二病プログラマ、俺様サイコー(笑)ってヤツだな 『俺の知らない事は知らなくても問題ない物と』信じて疑わない、たまに居るねw
デリゲートやらデストラクタやらスレッドやら全く分からないけど何とかなったり。
そりゃチューリングマシンなら何だって何とかなるさ それでいいのかぁっ
>>790 WPFやSilverlightやGTK#も忘れないで
WPFやSilverlightはむしろ忘れたいw デフォではスプレッドシートすらないとか、 補完機能が使い物にならないとか、ひどい有様。
MMORPG作れますかね?
作れる
ただし
お前には無理
頑張りますよ 応援してください
XNAで話題になってるゲームもあるし 応援してやろう
805 :
デフォルトの名無しさん :2009/05/30(土) 02:01:11
画像形式を内部データから判定する方法は、 System.Drawing.BitmapのRawFormatを使う以外にありますか? WPFアプリを作ってるのでWPFライブラリ内を探してるのですが。
806 :
805 :2009/05/30(土) 02:06:45
ちょっと語弊がありました。 画像形式を判定というより、指定したファイルが画像ファイルであるかを調べたい のが一番の目標です。 この場合はバイトコードとして読んで自分で判定するコードを書くことになるのかな。
BitmapDecoder.Createでデコードしてみるとか 「画像ファイル」の範囲にもよるけどな MAGファイルはどうするのか? とか
Bitmapクラスで読み込める範囲で、かつそれほど高速でなくてもいいなら、 実際にBitmapクラスに開かせて、オープンできれば画像だということにするとか。
809 :
デフォルトの名無しさん :2009/05/30(土) 10:22:36
それならBitmapImageで読み込んでみる方がいい
ログファイルなんかの末尾に2,3行追記するのってどうやるの?
追記モードで開いてWriteLine()すればいい。
簡単なクライアント・サーバープログラムを書いているのですが、サーバー側のプログラムがうまく動きません ・クライアント側: private void Connect(){ TcpClient tcpConnection = new TcpClient(ipEndPoint); Debug.WriteLine("Connected"); } ・サーバー側: private void Listen(){ TcpListener tcpListener = new TcpListener(IPAddress.Any, Port); tcpListener.Start(100); while (isAlive){ tcpListener.BeginAcceptTcpClient(new AsyncCallback(ListenAcceptCallback), tcpListener); autoResetEventTCPListen.WaitOne(WaitTime); } } private void ListenAcceptCallback(IAsyncResult ar){ TcpListener tcpListener = (TcpListener)ar.AsyncState; TcpClient tcpConnection = tcpListener.EndAcceptTcpClient(ar); Debug.WriteLine("Accepted"); autoResetEventTCPListen.Set(); } ・デバッグメッセージ:クライアント: Connected Connected ・デバッグメッセージ:サーバー: Accepted (本来Acceptedが表示されるはずだが、表示されない) よろしくお願いします
>>812 そもそもAcceptするか?
TcpClientのコンストラクタに渡すIPEndPointはクライアントのローカルのエンドポイントであって
接続先のエンドポイントじゃないはずだが。
NICが複数ある場合にどれを使うか明示するためのもんだったかと。
接続はConnectでやらんと。
>>813 す、すみません。
TcpClient tcpConnection = new TcpClient();
tcpConnection.Connect(ipEndPoint);
と直してみましたが、やはりAcceptしてくれません。。。
# コードを色々直して試していて、余計なことをしてしまったみたいです…orz
>>814 どうやらTCP/IPの基本が分かってないようだから、
ここで一問一答を繰り返すよりか、
ソースコード付きのチュートリアルでも探してそのとおりにやってみたら?
Panel内にあるコントロールを別のPanelに移したいとおもい、 foreach (Control ctl in this.panel1.Controls) { this.panel1.Controls.Remove(ctl); this.panel2.Controls.Add(ctl); } というコードを書いて実行してみたんですが、 これで移動できるコントロールと移動できないコントロールが。 移動できるコントロールと移動できないコントロールの違いって何なのでしょうか? ・コモンコントロールで試した結果 >移動できないコントロール ListBox CheckBoxList TextBox MaskedTextBox DateTimePicker PictureBox RadioButton TreeView >移動できるコントロール Label ListView CheckBox LinkLabel ComboBox MonthCalendar ProgressBar RichTextBox WebBrowser
わかりません!
>>816 それ以前にforeachで列挙中にその列挙してるコレクションからRemoveしちゃダメだろ
勉強して3日・・僕は何を作ったらいいですか?
目標を作りなさい
うまい事言うね
822 :
816 :2009/05/31(日) 01:17:22
>>818 ごめんなさい。それが原因でした。
どうもお騒がせしました。
フォームを作ってみたいんですが System.Windows.Forms.dllを参照設定から追加しようとしてもSystem.Windows.Forms.dllがありません。 VS2008のExpressを使っています。
連れすすみません 間違えて投稿してしまいました System.Windows.Forms.dllはどこにあるのでしょうか?
GAC
C:\Windows\Microsoft.NET\Framework\v2.0.50727
名前には.dllの文字は無いよ
ちゃんと .NET のタブを見てるか?
832 :
824 :2009/06/01(月) 18:51:20
昨日はwebサービスの下に見えなかったはずのものが 今日よく見ていたらありました みなさんありがとうございました
833 :
デフォルトの名無しさん :2009/06/01(月) 21:12:07
ゲイツ神への信仰心が足りないからそういうことになる。
contextMenuStrip1をtoolStripMenuItem1の上で右クリックして開きたい IEのメニューバーにお気に入りという項目がある(Firefoxでも良いですが) この項目に所属しているアイテムの上で右クリックするとコンテキストメニューが開き、そのまま削除などの編集ができるようになっている これと同じことを実現したいのですがうまくいきません private void toolStripMenuItem1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { contextMenuStrip1.Show(menuStrip1, e.Location); } } 第一パラメータにtoolStripMenuItem1が入らないです
835 :
デフォルトの名無しさん :2009/06/02(火) 15:06:00
オレも、お気に入り風メニューの作り方を知りたいのでアゲ
現在pop3サーバにアクセスしてメール受信するdllを作っています メールを片っ端から読み込んで正規表現使ってfromやsubjectを取得するのは 出来たのですが、添付ファイルの文字列の取得がうまくいきません 今はメール送信する段階でbase64にエンコードする頭悪いソースになっています filename="090615UID_Pj439Oke.jpg" D035O8lcf9TdfhybQQzQPnftZMjstXCmzqovU0tU7Tk7yS1+7PvV3Gn9ydIZnJM5jHOLju71 6bG6G9VQD5pZHk7R3ntW+vxybzuTptE846Z+dvVVsi6nHiRJ6Rwd0HHHiiMpzxoOdp4aBtH3 〜省略〜 H3NKjLFyp9PUjCqXFA8oMm5EkS60jUbW9ZzdRKAMuaGsB7M71v4ldyozKPLI4ld2tYYZklzz gVPqQefJS6nsoyTO/gl1HY4jqTs8VCccH2bseK8q6YEG5AAgAckCTjvQBSUAQlLYEk81IGp4 --------------0509000000000000500040704-- file名のサイズ長は固定なので、"filename"をRegexのpatternにして色々と 試してはいるのですが……正規表現はここ最近やり始めたのですが、何か良い 勉強方法とかあったらあわせて教えて欲しいです
>>836 > pop3サーバにアクセスしてメール受信するdll
...(中略)...
> 今はメール送信する段階でbase64にエンコードする
んんん?
>>836 ちなみに、送信するだけならSystem.Net.Mimeを使えばいい。
>>837 ごめんなさい、わかりづらいですよね。メール送信受信を使ったバッチっぽいのを
仕事を楽にしたいがために作ってまして……職業は営業なんですけど
>>838 おお、ちょっと見てみますね!ありがとう
>>839 妙な汎用機?がメールを送ってくるので、どうしてもメール受信しないといけないのであります
>>836 Match m = Regex.Match(input, "filename=\"[^\"]+\"\\s(?<base64>[a-z+/=]+)", RegexOptions.IgnoreCase);
>勉強方法とかあったらあわせて教えて欲しいです
amazon行って、正規表現で検索かけて売り上げの多い順にソートして気に入った本を買う
>>841 数字抜けてね?
"filename=\"[^\"]+\"\\s(?<base64>[0-9a-z+/=]+)"
詳説正規表現とか3日はご飯食えるよ
>>843 持ってるけどさすがに内容が古いよ
60%くらいは役に立たない情報だし、先読み肯定先読み否定等の新しい機能は解説がちょっとしかない
去年出た第3版の事を言っているのか?
買わなくていいだろ 腕は疲れるが追記されたとこだけ立ち読みでもすれば
うちの第一版だからな。手元にあると便利だし
>>840 本職で無いなら仕方ない状況かもしれないけど、
プログラムが作れるのは何も.NETだけじゃないよ。
(最良の環境の1つであることは間違いないが)
メールの解析、送受信を行いたいなら、
Ruby、Perl、PHPあたりを使ったほうがずっと作りやすい。
GUIは別に用意してあげないといけないけど。
>>834 このコードでもコンテキストメニューは表示されるけど
メニューアイテム自体は閉じちゃうね。。。
"お気に入り"は表示された状態で、コンテキストメニューが表示されるもんな。
どうやればいいのかな?ご存知の方、お願いします。
Datetime型の集合の平均 をだしたいのですが知っている方おりましたら 教えてください。 (ex. 08/1/1, 08/1/2, 08/1/3 の平均は08/1/2みたいな感じ)
852 :
デフォルトの名無しさん :2009/06/03(水) 11:25:12
Ticksプロパティの平均値を取ってコンストラクタに渡す
やってみます。ありがとうございます。
こうか public DateTime Average(this IEnumerable<DateTime> source) { return new DateTime(source.Average(x => x.Ticks)); }
しむらー、static staticー
>>850 記憶があいまいだが ToolStripDropDown あたりに確か
AutoClose とかいうプロパティなかったか?
Console.WriteLine("VB.NET >>>>>> C#");
Process.Terminate(
>>857 .Life);
コンパイルエラーだろ
どう考えてもProcess.Kill(
>>857 )だろ
>>856 おぉっ!
ToolStripMenuItemだけに目が行ってToolStripDropDownなんて
発想がなかったのがドツボの元だったんだね。
AutoClose を任意のイベント実装箇所で設定することで、それっぽくなりますね。 ありがとう!
bool a, b = false, c = false; a = b == c; aはtrueですか?
何で自分で試そうとしない
試して動けばOKって考えは危険だと思うんだ。 何故不確定事項を試して動けばOKだと考える危ないやつが多いんだろう・・・ 規格書読めよ
問1 次のコードを読み、最終的に得られるaの値をtrueまたはfalseで答えなさい bool a, b = false, c = false; a = b == c;
スレ違い
C#やると、このように何考えてるのか分からない奴に出会うのか。 やはりVB.NET >>>>>>>> C#だな。
C#で学習した知識はVB.NETやマネージ拡張C++に応用することはあっても、C#では作らない。 VB.NET >>>>>>>> C#。
失せろゴミ
public class A { public int Num; public class B { Num = 1; } } これどうやったらBからAの変数にアクセスできるようになるんですか?
インターフェースとかを使いこなせるようになる 仕組みとか例が詳しい上級者向けの本てありますか?
そんなの上級者じゃねえよ
wwwwwwwwwwwww
やべえツボに来た
>>873 class A
{
int Num = 1;
public A()
{
B b = new A.B(this);
}
public class B
{
public B(Program p) { p.Num=this.num; }
public int num = 0;
}
}
実行してみりゃ分かる
public class A
{
public static int Num;
public class B
{
public B(){
Num = 1;
}
}
}
これでも可
理由はstaticの位置をよく見てちょっと考えろ
B b = new A.B(this); って省略可ってことなんですか? class A{ private num; public static int Num{ get return num; set num = value;} classB{ Num++; } } この場合だとどうすればいいですか?
private num; public static int Num{ get return num; set num = value;} これがおかしいだろ。 staticなメンバからinstance変数にアクセスできるわけがない。まだ実体が無いんだから。
staticって変数の中身変えられなく無いですか? Bから中身変えたいんですけど 最初this.num++; でAのメンバ変数にアクセスできるとか思ったんですけど staticってグローバルになるだけですか?
>>871 だから何が不確定な事項なんだ。
頭悪いのか。
うん
これは処理系依存にはならんだろ。 試せば十分だ。こんなものにまで規格書まで読む必要無いだろ。
結合の順序規則まで処理系依存だったら嫌だなw
結合順だの演算子の優先順位だの、カッコを使えば紛れがなくなるだろJK
括弧が最初って規定してるのも処理系かもしれんよ 紛れがなくなるというのも所詮前環境からの思い込みでしかない
>>865 はCスレで自分がわからないものは何でも未定義とわめいていたやつと同じだな
質問失礼します。 Visual Studio 2008 C# を利用してソフト開発を進めています。 1つのソリューションで3つのプロジェクトを管理しているのですが、 プロジェクト間のソースの共有ってできないでしょうか? 変更してはnamespaceを変更してコピーというやり方でやっているのですが、 さすがに辛い作業なので、共用したいです。 分かる方お願いします。
public class Ext : Base このクラスでExtは共通でBaseの部分だけを変えた複数のクラスを作りたい場合 どういう構造にすればいいんですか?
Libにするのが速いと思うけど、xnaでWinから360にプロジェクトコピーすると 共通ファイル使うね。 csprojファイルをコピーして手で書き換えてプロジェクト追加で入れてやれば できそうだけど、自動でやるほうほうあるかも。
Baseを変えたらBaseって呼び方はおかしくないか 共通基盤だからBaseなんだよ 君の言葉通りにするなら↓ public class Ext : Base public class Ext : Base2 public class Ext : Base3 public class Ext : Base4 public class Ext : Base5 public class Ext : Base6
>>890 [追加]-[既存の項目]-[リンクとして追加]
ジェネリクスじゃだめかな
× Extは共通でBaseの部分だけを変えた ○ Baseは共通でExtの部分だけを変えた こういう質問なんじゃないの。 でもこれだと質問する意味がないか。 そのまんまだもんな。
Baseをinterfaceにして実装を外に出せばいいよ。
何でそういう設計にしたいと思ったのか書いてくれれば答えやすいんだけどねぇ
Base : Ext Base2 : Ext とExtを作って全てのベースに潜り込ませればいい話なんですが、もう出来上がってて、 Ext:BaseのBaseのベースはすでに複数で複雑になってるので Extの独自のコードをすべてのBaseに効率よく潜り込ませたいんです。 たとえばゲームでいうと Teleport : Ring Teleport : Brecelet とかでCostum : Teleport とできない場合に TeleportCostum : 入れ替えたいベース としたいんです。
>>890 たぶん >894 の方法で問題ないと思うが、通常はファイルはたくさんあるはずなので
csprojファイルをテキストエディタで開いてファイルパスを参照している部分をコピペしたほうが早いだろう。
なんでアセンブリじゃなくてソースファイルを共有したがるんだろう
言ってる意味がわからん。
>>899 たとえに偏りがあるなぁ…
Baseにほぼ全ての実装が含まれてしまっていて,
継承側ではBaseを適宜のメソッド等を適宜呼び出してるって感じ?(むしろBase=Utility?)
正直何が"効率よく"なのか分からないけど,とりあえずクラスの継承関係を見直したほうがいいんじゃないかな!
904 :
デフォルトの名無しさん :2009/06/04(木) 12:04:55
つまり実装継承でしょ? 悪いパターンだな 継承は多態性が必要な時だけ使う 単に機能を使い回したいだけなら継承はいらん
>>901 .NetFrameworkとSilverlightの両方に対応したライブラリを作る時はソースを共有しているな
リンクとして追加も面倒なので、同じ場所にプロジェクトファイルを置いてるけど
>>894 >>900 返答ありがとうございます。
お陰様で解決できました!
[リンクとして追加]が無かったので試行錯誤していたのですが、
新規のライブラリプロジェクト(CommonTest)を作成し、そこにソースを追加。
参照先のプロジェクトの参照でCommonTestを追加。
あとはusing CommonTest;として、共有できるようになりました。
ありがとうございました。
907 :
デフォルトの名無しさん :2009/06/04(木) 12:38:20
それリンクとして追加とは全然違うけどそれでいいならその方法の方がいいよ その手の質問をする奴はアセンブリが増えるのを異常に嫌うやつが多い
追加ボタンが実はドロップダウンリストでリンクとして追加が 隠されてるというMSのトラップに引っかかった奴。
アセンブリが増えるのは嫌だ。管理しきれない。
910 :
890 :2009/06/04(木) 12:52:12
>>908 いちおう調べてはみましたが、私の環境にはありませんでした。
2008には存在しないのではないでしょうか?
912 :
890 :2009/06/04(木) 13:08:33
追加ボタンにでしたか。。。 自分の環境にもありました。。。
WCFについて質問です。 WCFでRSAとAESのハイブリッド暗号通信をやりたいのですが、 TransportBindingElementを派生してカスタムバインディングを作る方法であっているでしょうか? もう少し簡単な方法もある気がして・・・
質問です。 visual C# 2008 expressでプログラミングしているのですが、 クラスを作成したとき自動的に「using System.Linq;」という一文が入ってきて、 しかもその部分でコンパイルエラーになってしまいます。 何か設定が悪いのかexpressでは使えないライブラリなのか、 とにかく原因が分かりません。 どなたか教えていただけませんか?
915 :
デフォルトの名無しさん :2009/06/04(木) 15:58:55
以下C言語の構造体とそれを使用するソースです。 struct oya{ int a; struct { char a; char b[10]; } ko; }; int main(void){ oya oyaoya; oyaoya.ko.b[0] = 1; } これをC#で書くとするとどうしたらいいんでしょうか?
MSDNのstructの項目くらい読んでから質問しているんだろうな
サーセン…
>>916 すいません、一応読んだのですが、Cで言う所のstructとは似て非なる物なのか
ネストした場合のアクセス方法はどうすればよいのかなど、良く分からず混乱しています。
>>919 とりあえず、その質問に書いてある範囲ではまったく同じ。
プログラムの書き方は、ネットにいくらでもあるチュートリアルサイトを読め。
> Cで言う所のstructとは似て非なる物なのか 似てない非なるもの
>>914 どこかおかしいかも。
using System.Linq;は対象のフレームワークが.NET 3.5の時に追加される。
で、対象のフレームワークが.NET 3.0以下のときはコンパイルエラーになる。
プロジェクトのプロパティのアプリケーションの対象のフレームワークのとこどうなってる?
>>920 > その質問に書いてある範囲ではまったく同じ。
少なくともstruct内で配列の初期化はできん。
知らないのなら知らないと言ってください 時間の無駄だったみたいです。自分で調べます
先に調べてから聞きに来いよ、な
923に加えて 匿名の構造体を定義できない メンバを外部から操作できない C/C++のcharとC#のcharは別物 intはまあいいか そんぐらい?
あー、なるほど。 そのまま宣言すると配列がリニアなメモリイメージじゃなくてインスタンスになってしまう。 無名のclass/structが(宣言用には)使えない。 リニアなメモリイメージにどうしてもマップしたい場合はタグつけてstringにすると。 勉強になったよ。どうもありがとう。
知らないのに質問者に難癖つけるやつは多い気がする
いつものパターンとしては、次はクラスと構造体の使い分けの話が来て喧嘩になる
CとC#の構造体の違いが分からなくて、当然C#のクラスと構造体の違いも
分からないだろうから、別にC#の構造体をなんとか工夫して使う必要も
ないと思うんだよね。
>>915 (全てにpublicをつけて、フィールドを公開しているので、いい例ではないが、
質問の要件が分からないので)
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Oya oyaoya = new Oya();
oyaoya.ko.b[0] = (char)1;
}
}
class Oya
{
public int a = 0;
public class Ko
{
public char a = (char)0;
public char[] b = new char[10];
}
public Ko ko = new Ko();
}
}
>>930 C#の枠内ならそんな感じだろうね。
Windows APIなどC側のコードと協調するためには
タグ[MarshalAs]を使ってガチャガチャやることになりそうだ。
932 :
930 :2009/06/04(木) 17:46:46
unsafe fixed char b[10]; っていう異端な方法もあるんだけどね。 構造体の意義から考えて、構造体の中に配列を静的に配置するのは、 もっと簡単にできるようにするべきではなかったのか。
933 :
914 :2009/06/04(木) 18:41:46
もしかしてWCFはスレ違い?
知ってる人がほとんどいない、だと思うよ おいらもWCFはノータッチ まあ>913は質問内容的に初心者スレで聞くことじゃないとは思うがどうせ回答者はほぼ同じだろうしな
こんな感じになるのかな。 using System; using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential)] class Oya{ public int a; public Ko ko; [StructLayout(LayoutKind.Sequential)] public struct Ko{ public char a; [MarshalAs(UnmanagedType.LPTStr, SizeConst = 10)] public string b; } }
もうunsefeでええやん
>>933 まあ3.5ならLinqの行は出るわな。
参照設定のSystem.Coreのプロパティでバージョンいくつになってる?
3.5じゃないなら、、.NET framework3.5かC#ごとインストールしなおしでどうか
>>913 SSLとかじゃだめなん?
おれもWCFではやったことない。
Remotingではやったことある。
おそらくWCFでも似たような感じになるのではないかと思うが、
それなりにちゃんと作ると結構大変だと思うよ。
左右のShift、Ctrlを区別する方法を教えてください。 どちらを押してもキーコードが同じだったので途方に暮れてます。
GetAsyncKeyStateとか使えないの?
943 :
941 :2009/06/05(金) 13:43:36
>>942 解決しました。ありがとうございました。
どう解決したか書けよ。 わからねえよ。 もとい どう解決したかサマリーに残していただけませんか。 今後、同じようなことを考えた人に有用ですので。
945 :
941 :2009/06/05(金) 16:15:12
>>944 教えていただいたGetAsyncKeyStateでぐぐりました。
今までVK_SHIFTしか知らなかったのですが
VK_LSHIFT、VK_RSHIFTで左右が区別できることがわかりました。
,NET Framework 4 bate1はVC#2008EEでも使えるのでしょうか?
使えませんよ
>>865 は、自分自身が何を考えてるのかさえ理解できてないんだろう。
目障りな書き込みして、他人に迷惑掛けるな。
反論がなければ俺の勝ちだが?
いや、俺の価値だ。 何故なら、今、俺は輝いているからだ!
黙ってろハゲ
ハゲ言うな包茎
staticなクラスって出来るだけ少ない方がいいのですか?
そんな話は聞いたことない。 必要なら別に多くてもいい。 結果的に大抵は少なくなるけど。
なんでもかんでもstaticにしてます
>俺の勝ち >俺の価値 >俺は今輝いている >ハゲ言うな包茎 孤立野郎、お前みたいな邪魔な書き込みする奴は来るな。
自分自身の考えも理解できていない孤立野郎が書き込む場所ではない。 目障りで腐った書き込みして、他人に迷惑を掛けてることは許されん。 いかにもリンチ対象にされそうな奴だな。
Form1_Paintが思ったように動いてくれません。 フォームの大きさが変われば必ずForm1_Paintが呼ばれるものだと思っていましたが、 マウスでフォームの枠をドラッグしてサイズを変更した時、 幅や高さを広げたときはイベントが発生するのですが、 小さくした時にイベントが発生してくれませんでした。 フォームのサイズが変わったときに必ず呼ばれるイベントはどれでしょうか? 環境はVista Business SP2、C# 2008 Express、.Net 3.5です。
962 :
961 :2009/06/06(土) 07:36:38
説明不足だったので補足です。 フォーム内のコントロールの位置を初期化するのに使いたいので、 SizeChangedやResizeはアプリの起動時には呼ばれないため使えません。
SizeChangedやResizeをLoadハンドラで呼べばいいじゃん
964 :
961 :2009/06/06(土) 07:59:05
もうもちょっと、イベント処理一発で済むスマートな方法はないもんでしょうか? 昔の環境だとOnPaintだけで済んだのに…
それはスマートな方法ではなくずぼらな方法という。
966 :
961 :2009/06/06(土) 08:42:04
イベントハンドラをイベント発生以外の方法で呼び出すのって イベントドリブン本来の使い方から外れてるようで好きになれないんですよ。 ほかにいい方法がなさそうなので、 初期化のための関数を作って、LoadとResizeからそれぞれ呼ぶことにしようと思います。 ありがとうございました。
MVCも知らんくせに偉そうなこと言ってんなよ
(初心者用)
最近答える人間まで初心者が多いぞw
ResizeRedraw
C#というのは、C++のできない人間の逃げ場なんだろ?
C++で書く無駄さに気づいた人間の逃げ場だ。
最近のCPUは速いからな。 386のときにアセンブラを捨てたようにCore2でC++を捨てた。
c->c++->java->c#と移行してきて コードのスマートさって大事なんだと思った
実際、C++に比較してC#を考えてみると、 よく出来てるよなーと感心するところが多い。 アプリケーション設定ファイルの自動生成機構なんて 初めて出来上がるのを見たときは感激したものだ。 XMLシリアライザも、ほとんど何も考えずに使うことが出来る。 C++じゃあ絶対こうはいかないよ。
俺はCore2Quadで、マルチスレッドを使用するようになってから完全にC++捨てた、HPCでももうC++は要らない パフォーマンス、開発効率すべての点で非効率だ
そういえば、C#においてHPC向けのサポートはどうなっているの? Intel Compilerみたいに普通のコードを書いたら 勝手に自動並列化されて複数のスレッドで動いたりするのかな? あるいはOpenMPみたいな仕組みとか。
.NET 4.0でそれ用のライブラリParallel Extensionsが追加
マルチスレッド・マルチコアでC++が一番しんどいのは、ガベージコレクタが無いことだよ これが無いおかげで変態的なライブラリと変態的な使用方法でしかプログラムできなくなる。
C#ポインタ使えるのがいいよ Javaだと使えなかったからね〜
ポインタって重要か? 正直使う理由が無いんだが。相当奇妙な事しない限り C++くらい読みにくくなって気持ち悪い
Bitmapとかで
C#のポインタは、どちらかというとアンマネージドとの効率的な相互運用を目的としたもののように見える。 これを高速化に使ってもたいした効果は得られないし。
984 :
デフォルトの名無しさん :2009/06/06(土) 12:15:29
HPC目的ではC++の何が痛いかっていうと、チューニングする時間が無くなってしまうという点に尽きるな チューニングしなくても十分なほどにはC++は高速ではない、チューニングしなければC#と代わり映えしないが C#ではチューンできるので結局C#が高速になる、現実的には。 マルチプロセッサで複雑になったロジックではC++の高速性は前提が崩れてしまう。
次立ててくるので少しお黙り
まあ、限界まで高速化したい酔狂な人はC++で頑張ればいいって事だな。 そうでない人はCPUパワーでカバーした方が早い
site:www.atmarkit.co.jp と調べたい言葉並べて Google さんに聞く つか別に site する必要もないな Google に引っかかったときに調べりゃいい
1つのサイトにこだわって検索するからだよ
サンクス てか44行列の処理できるよね?
できますん
知らんがな(´・ω・`)
どっちだよ つかMatrix3Dとかいうの使えないのかな?アセンブリとかよくわからん
995 :
デフォルトの名無しさん :2009/06/06(土) 16:24:07
>>988 C# 入門で検索すれば@ITの入門連載記事が引っかかるはず。
C++を使えて、C#を高く評価する輩には、VB.NETも使える輩はいないと仮定する。 言い換えると、C++もVB.NETも使えた上で、C#を高く評価する輩はいないと仮定する。
このはなし定期的に出るNe!
生め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。