ふらっとVisual C#,C♯,C#(初心者用) Part97
ん?ミスった?
問題なかったわ
乙
仕事で急に投げつけられたから 取りあえずソースを眺めてたら public static DateTime? getDate(int Ymd) なんて関数が作ってあったんだけど ?ついた型指定ってどういう意味なの?
>>5 Nullable<T>
値型にnull突っ込める
なるほど、実際の型を明示しつつObject的な返し方ができるんだ ありがとう
8 :
デフォルトの名無しさん :2012/09/11(火) 14:26:34.91
>>6 そういうのはなんていう名称なんだろ
[ ]で指定するのとかあるよね
調べる際に困るw
10 :
デフォルトの名無しさん :2012/09/11(火) 15:54:55.46
C#つかったことないのですが、Webサーバーで一部モジュールを更新した場合には phpのようにモジュールを上書きするだけでサーバーの再起動なく反映できますか?
11 :
デフォルトの名無しさん :2012/09/11(火) 16:00:29.98
>>6 null許容型のことか
何もかもがググれないと記号ばかりとRubyがボロクソ言われてたのを思い出したw
12 :
デフォルトの名無しさん :2012/09/11(火) 16:01:13.27
サルでもわかる entity framework 徹底入門的な書籍はありませんか?
サンプルでusingが示されていない場合にみなさんどうやってググってますか?
14 :
デフォルトの名無しさん :2012/09/11(火) 16:05:12.58
質問です。 クラスライブラリを作成するに当たってある条件でメソッドを使えない ようにしたいのですがどの様にすればよいでしょうか? 具体的にはConditional属性を付けたような動きにしたいです。 現在はメソッドの中でその条件を見てreturnしているのですが、 そもそもその条件はライブラリ呼び出し後から変更することが ないので、その条件下ではメソッド自体をスキップしてほしいのです。 良い案ありませんでしょうか?
>>16 普通にifで分岐しろ
それくらい誤差だ誤差
いろんなメソッドでその条件を見ててあんまりにも分岐が多くなるようなら
ポリモーフィズムを使ってもいい
実行時にソースコードをコンパイルするとか 一旦逆アセンブルして編集して再アセンブルするとか そういうアホみたいな方法は思いつくけど、 その手間や実行時オーバーヘッドに見合った効果は絶対に得られないと断言できる
19 :
デフォルトの名無しさん :2012/09/11(火) 17:11:56.38
EntityFrameworkってどうよ?
ASP.NETだとWeb.config/Web.Release.configみたいな感じできるようですが、 App.configで同じことできないのでしょうか?
固定の条件分岐はデリゲートやクラス継承使ってポリモーフィズムするのが綺麗だけど 目的は決して速度ではないぞ。 確実にifの方が速い。どっちにしろ普通は誤差レベルだけど。
>>21 そりゃASP.NETは実行時にコンパイルするからな
実行時コンパイルやりたきゃやってもいいがクライアントだと確実に
>>18 な
まともなO/Rマッパーってありますか?
ないよ
まともなのというならEFかNHibernateになるな Dapperがまともとかアホか
EFもHibernateも中途半端な知識で増えるワカメのようなDB相手だと無残なことにしかならんかった。 Dapperでクラスにマッピングして、リレーションはそのクラスの中でプロパティとして実装が最善手な気がしている。 素人のオレオレな実装方法なので良いか悪いかは知らん。 class Hage { public int Id { get; set; } public Hage Parent { get { // dapper.Query<Hage>("select ...")みたいな感じ } } }
Dapperはリレーションに関知しないんだからORM名乗るなよ object-recordマッピングとかobject-rowマッピングとでも呼ぶべき
EFはモデル編集画面上でユニークキーの貼り方が分からなくて積んだ 未だにわからない どうやんの?
31 :
デフォルトの名無しさん :2012/09/11(火) 18:53:28.90
NHはスキーマに修正が入ったときのどうしていいのかわからなくて積んだ SchemaExportとかいうメソッドがあったから叩いてみたらDROP/CREATE TABLEが走って全データ消えてフイタ 未だにわからない どうやんの?
ORMってクソじゃね? .NET用のは特に
なにをいまさら
かと言ってExecuteReaderとかありえないだろ
.NETって選択肢がねえや すまんな
Dapperは複合プライマリーキーの貼り方がわからなくて積んだ 未だにわからない どうやんの?
確かにMVVMやデザインパターン意識しだしてから開発効率が落ちたな Form1にザクザク書いてた頃の方が目的のツール早く作れてた
でもそういうツールを後で修正したいって時が困る 結局ゼロから作りなおしたほうが早いんじゃないかと思えてくるんだよね
そうかなあ
サクッと作ってからコード整理を兼ねてパターンに置き直し ツールが動いてから見えてくることもあるしね
なるほど
へえ
ご名答!
44 :
デフォルトの名無しさん :2012/09/11(火) 21:48:38.54
MSChartの質問は、ここでよいか?
イベントハンドラに、すでに特定のイベントが 追加されてるかどうかを見分ける方法はありますか? もし同じイベントを2回足したらどうなりますか?
> イベントハンドラに、すでに特定のイベントが > 追加されてるかどうかを見分ける方法はありますか? イベントに特定のイベントハンドラが、じゃねえの? それなら外部からでは判断できない > もし同じイベントを2回足したらどうなりますか? イベントハンドラを二回足したら当然二回呼び出される(普通のイベントなら)
IISって接続が発生するたびに、スレッドが作られるんですか? singletonを作ったらば、そのオブジェクトはIISでユニークな存在になりますか
48 :
デフォルトの名無しさん :2012/09/11(火) 22:45:26.78
////////, ''" ヽミ川川 |//////, '" ',川川 えっ!何この包茎ぺニスと悪臭・・・ 川/////, '",,,,,,,,,,,,,,,, r''"',川|| 川f 川f´ ,ィ::ラ',川 川ヘ | 弋て::>  ̄ ',リ 川 ヘ.__ ヽ /7! ごめん… 川川 ヘ _,. '-‐''"´y' // 川川リヘ , '´ __,,,/ / / ちょと…まじで気持ち悪い! 川川川|/ '"´ , '´ /|| 川川川| /川 (都内在住 22歳 OL)
49 :
デフォルトの名無しさん :2012/09/11(火) 22:53:52.41
IIS以外でもasp.netってつかえんの?
50 :
デフォルトの名無しさん :2012/09/11(火) 22:59:35.59
Web魚拓のようなものを作っているのですが、EntityFrameworkでURLを主キーにしたテーブルを作ろうとしたら「長すぎる」と怒られたんですが、どのように実装するのがよいのでしょうか? 正直、データベースの知識はあまりありません。
>>45 ハンドラーを一度削除してから追加すればいい
52 :
デフォルトの名無しさん :2012/09/11(火) 23:03:48.69
>>36 Dapperにキーなんてものはない。
テーブル作るときもupdateするときもSQLを手書きするんだし
リレーションにも直接対応してないんだから。
Dapperの仕事は、クエリの結果をオブジェクトに代入することと
オブジェクトをクエリのパラメータに代入することだけ。複合主キーが使いたければそういうSQLを書く。
>>51 追加されてないハンドラーを削除するのはエラーや例外にならないのですか?
>>55 内部的にDelegate.Removeを使っているはずなので問題ない
未使用メソッドを検索する方法ありますか? 使わなくなったゴミがたくさんあるんだけど デリゲートとかの関係で無理かな?
58 :
デフォルトの名無しさん :2012/09/12(水) 14:06:52.77
>>57 有料ツールならできるかもしれないけどなあ・・・
未使用メソッドを消したいクラスや検査対象のメソッドがそれほど数がないのなら
メソッドの頭で通過したというマーカーログを残すような簡単な仕組を入れて
走らしてみれば?
ログが無いのが使ってない証拠
fxcopで調べてくれるよ ただしpublicやprotectedなものについては外部から呼ばれる可能性があるから判断不能 デリゲートは最終的にどこかで使われるから問題ないけど リフレクションによってのみ使われるものは判断不能
fxcopで試してみます ありがとう
>>56 イベントにnullを入れてクリーンアップするのはおk?
>>61 聞く前にやってみたか?
やってみてるならそんな発言はでないはずだが
63 :
デフォルトの名無しさん :2012/09/12(水) 17:46:34.46
コンソールアプリで簡易GUIみたいのを作りたいのですが、その手のライブラリってありますか?
64 :
デフォルトの名無しさん :2012/09/12(水) 17:56:45.01
GUI使えないの?
66 :
デフォルトの名無しさん :2012/09/12(水) 18:08:06.13
67 :
uy :2012/09/12(水) 18:18:29.76
思ったけど 俺の初めての言語がC++2009なんだが 今のCは使いやすくなってんの? RUBYしか使ってないけど
68 :
デフォルトの名無しさん :2012/09/12(水) 18:18:53.51
すれ違い
69 :
デフォルトの名無しさん :2012/09/12(水) 18:32:12.55
70 :
デフォルトの名無しさん :2012/09/12(水) 18:46:15.52
71 :
デフォルトの名無しさん :2012/09/12(水) 18:46:45.32
このuyってやつなんかいろんなところにいるな
72 :
デフォルトの名無しさん :2012/09/12(水) 18:49:13.59
>>70 さっきぐぐったら海外のフォーラムにそういうのをやってる人がいたな
まあ自分でやってもいいんだろうけど
で、C#はどうせGUIが使える環境でしか動かないのに わざわざキャラクタベースで作る理由は? JavaだとCUIオンリーの環境でも使われるからそういうライブラリもあるけど C#でそんなもの何の意味もないでしょ
…はぁ?
まぁ非PGから見れば、GUIアプリだけがソフトウェアだよね
Midnight Commanderをmonoに移植してやったらイカザが喜ぶんじゃないか
全く横だけどCUIも面白そうだな ちょっとさがしてみるわー
どこかで見た気がするんだが思い出せんな -> CUIライブラリ
81 :
72 :2012/09/12(水) 20:25:46.02
WinFormで、ツールチップを設定したComboBoxの▼ボタンを押すと、以降、ツールチップが表示されなくなる ちなみに他のコントロールのツールチップを表示するとまた表示されるようになる ※発生環境はWinXP (Win7では発生しない) 何かうまい対策とかある?
○分ちょうどのときにある処理を実行したくて下記のようなコードを書いてみたのですが、 10回に1回くらいの頻度で実行されないことがあります これをちゃんと毎回実行されるように改善したいのですが、どうしたらいいでしょう ※ティックイベントのIntervalは1000 private void timer1_Tick(object sender, EventArgs e) { if (DateTime.Now.Second != 0) return; //ここに○分ちょうどのときにやりたい処理 }
DateTime? next = null; private void timer1_Tick(object sender, EventArgs e) { DateTime now = DateTime.Now; if(next == null){ next = now.AddSeconds(-now.Second).AddMinutes(1); } if (now < next) return; next = next.AddMinutes(1); //ここに○分ちょうどのときにやりたい処理 } //ここに
next = next.Value.AddMinutes(1); か
>>84 確かに「0秒の時」よりこの方法の方がしっかりしてそうですね
しばらくこれで様子見してみます
ありがとうございました
>>75 こういうのはキャラクタベースなだけでGUIの類だろ
GUI風のCUIだろ
GUIの"Graphical"にはビットマップに限るなんていう含意はないと思うが。 とっくに死語だけど、キャラクターグラフィックなんて言葉もあったな昔
そこでCLI⊂CUI派
少なくとも操作体系は完全にGUIと一緒なんだから PG云々の文脈で出てくるべきものではないな コマンドラインインターフェイスの方ならGUIがある今でも十分意味のあるものだけど
なんかVS2012のExpressがダウンロード出来るみたいだな async使いたい時はどれをダウンロードしたらいいんだ?
>>87 >キャラクタベースなだけで
言葉そのまま Character-based User Interface じゃねーかw
>>90 CLI上でCLIですねわかります
>>93 あくまで擬似GUIだよな
分類で言えばCUI
GUIを自作って面白そうだな難しそうだけど
難しくはないよ めんどくさいだけ OSが持ってるLine命令とか使ってウインドウになるようにシコシコ書いていくだけ 最初はその手の命令をアクセラレートする物をGPUが実装して・・・と進化しただけ
webからファイルをダウンロードする方法を検索すると Stream st = res.GetResponseStream(); StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift-Jis")); sr.ReadToEnd(); で一気にダウンロードするんじゃなくて バッファでちょっとづつ読み込んでいるようなソースが多いんだけど何か意味があるんですか?
そりゃネットだからな・・・ ファイルサイズが小さければいいけど大きい場合フリーズしたみたいになるぞ
スレッド分けなきゃフリーズするのは一緒 ダウンロードと後処理を並行したほうが時間もメモリ使用量も少ないからだと思うが
内部的にはウィンドウサイズごとに区切って送られてるから大した差はない
101 :
97 :2012/09/13(木) 00:28:31.37
回答さんくす 進歩状況を表示したい場合も細切れの方がいいのかもと思った
MemoryCacheへのオブジェクトの入出力を速くしたいのですが シリアライザを代替する方法などあるでしょうか。 例えばprotbuf-netを使用できるようにしたり、格納するオブジェクトは ある程度固定されているので自前で実装する方法でも構いません。 参考になりそうなサイトなどあれば教えてください。
>>102 ボトルネック探して改変するしか無いだろうに。
メモリに貯めるんだったら、ボトルネックはアルゴリズムが一番でかいと思うよ。
ある程度値が決まってるんだったら、全部列挙してIDまたはハッシュでやり取りするのがいいと思う。
負荷は全部メモリに行くから。
失礼します。 OpenCVSharpで作成したAVI動画(コーデックはDIB)をVS2010のMedia Playerコントロールで読み込んでも再生出来ません。 (動画から画像を抽出する事などは出来ます) 標準のWindows Media Playerでは再生出来ます。 この場合、どこを見たら良いのでしょうか? よろしくお願いします。
VS2010のMediaPlayerコントロールって何? WPF? WMPのをCOM参照? それで他の動画は再生できるの? WMPのバージョンは?
別のaviは再生できるのかい?
108 :
デフォルトの名無しさん :2012/09/13(木) 14:49:02.40
EntityFrameworkの主キーでStoreGeneratedPatternプロパティにComputedって設定した場合は、 自前のコードの中で主キーの値を計算するという認識であってますか? その場合、自前のコードはどこに書くのでしょうか?
109 :
106 :2012/09/13(木) 15:17:48.79
>>107 はい、他のAVIは再生できます。
元々他の無圧縮AVIファイルから動画の一部を切り抜く為、
フレーム単位でコピって繋げているだけなのですが、
WindowsMediaPlayerコントロールでは表示出来なくなってしまいます。
>>108 MSDNの解説見る限りそんな認識にはならないな
(T_T)…
112 :
デフォルトの名無しさん :2012/09/13(木) 17:39:22.85
WMPLib.WindowsMediaPlayerってストリーム放送のURIを頻繁に切り替えてplayしてるとOS巻き込んでフリーズするよね OS再起動するしかなくなるからすごくまずいバグだと思うんだけど誰か回避方法知ってる?
C#でそういう書き方するとVBみたいだからやめて//
115 :
デフォルトの名無しさん :2012/09/14(金) 02:30:36.74
Windows Formからwebで動かしてみたいって理由だけでWPFで作り変えようとしてるんだけどたとえば今までsettings.xmlとかを作ってた場合ってどうすればいいんだろ。
WPFのXBAPってダウンロードされたアプリがブラウザの枠を借りて動くだけで 別にWebで動くわけじゃないぞ? ASP.NETにしとけ
え、そうなの? そこらへんよくわかってないんだけどhtmlみたいにブラウザが動かしてくれるのかと思った。 ASP.NETっての見てみるね、ありがとう。
C#だけどC#じゃない、みたいな印象を受けた。 用途的にはそれこそJavaScriptでも使えよ、って言われそう。
「独習C# 第3版」と「XAMLプログラミング WPFアプリケーションの概要と開発」を 読み終えたばかりの初心者です。これからWPFでちょっとしたツールから作り始めたいんですが、 スジのいいプログラマーになるために読んでおけって本があったら教えてください。 複雑なデータをクラスで表現する際の定石とか、C#4.0までの構文を反映した デザインパターンなどを、実例やサンプルコードで学べるとかが理想です。
そんな本はない
良書は様々な言語に散らばっているので、本読んで腕の良いプログラマになりたければ読める言語を増やす デザインパターンのような、どこの言語でも本質が変わらないような本は、コストの問題でわざわざ移植されない プログラミング.NET Frameworkは読みましょう あとエッセンシャルWPF 買う必要はないです
>>113 OS巻き込んで、って時点でドライバとか疑うでしょ
switch文で、各case内でローカル変数名がかぶるとおこられるのってなんで? 直すのめんどうだからブラケットでくくってるは
>>118 JavaScriptとASP.NETは全然全く違うぞ
ASP.NETのC#コードは常にサーバーで動く
それにASP.NETで重要なのはビューよりも裏方を普通のC#で書けること
>>123 なんでも何も、C系言語では基本的に { } で括った範囲がローカル変数のスコープ
caseはただのラベル
>>119 あえて言うならVisualC# 実践講座
switchはいい加減構造化するべき Javaなんかに比べればC#はCの変なしがらみをだいぶ捨ててるのにもったいない わざわざbreak必須にしたりするくらいなら switch (x) { case (1) { … } case (2, 3) … default … } こんなんにすればいいのに
今の switch (x) { case 1: { … } case 2:case 3: … default … } と殆ど変わらんじゃん
break書くのがめんどうってだけじゃないの?
>>127 ラベルで飛ぶっていう発想自体が前時代的でKY
On Error Gotoかよ
goto便利だけどなw
131 :
97 :2012/09/14(金) 13:55:27.31
WinFormからWPFにソフトを移植したいんだけどデータ構造をどうすべきか悩んでいます List<hoge1>.List<hoge2> このようにListが入れ子構造になっているデータをTreeViewに表示しているんですが これをWPFのTreeViewで双方向バインディングさせようとした場合 ObservableCollectionにする必要があるのですが、データ構造を変えてしまうと このデータを使うあらゆるクラスで修正しないといけなくなると思うのですが 何かよい考えありますでしょうか?
内部のデータを直接UIからいじるのは良くないと思う データを持つ層はきっちり分離しておいて、ファサードを通して UIに必要なデータを都度コピーして出し入れするっていう発想で作るのがいいよ
基本的にGUIのデータはGUIで独自に持っといて、OKボタンとかでまとめて内部に反映させるのがいいよ 煩雑なようだけど実際その方がずっとやりやすい
134 :
97 :2012/09/14(金) 15:46:01.32
>>132 >>133 よくあるサンプルコードだと実データをそのままバインディングしたりしているけど
それだとだめだったんですね
どうやら間違った理解をしていたようです
GUI側にデータを持たせるというのは、コードビハインドでGUI用のコレクションを作るということでいいですか?
一応WinFormではコードビハインドにTreeNodeコレクションを作っていました
逆じゃね よくあるサンプルコードだと実データが無くてGUI用データだけなんでしょ
AwaiterのContinuation何回も呼び出すと最初からやり直し出すんだな 不思議
コンパイラ用って書いてあるじゃん undocumented behaviorってやつだろ
ああそうなのか ありがとう
いらないよ、お礼なんか
そうかVS2012EE出たんだっけか 忘れてたわありがとう
ExpressEditionでたの?!
出たら困るのか?
質問です。 GDI+とC#のgraphicsクラスの仕様は違うのでしょうか? と言うのも、フルカラーPNG(32bitARGB)画像を重ねて表示するプログラムをC++からC#に移植したのですが、重ねる画像のアルファ値が保持されず、綺麗に合成されません。 対処方法、もしくは違うアプローチで画像を重ねる方法をご存じでしたら、回答よろしくお願い致します。
ソースプリーズ
>>144 ソースなければ答えられないバカは黙ってろ
全否定きたw 普段からあちこちでgraphics関連のソースを書いて提供してるんだけどな で結論から言えばできないはずがないんだがおそらく指定するべき項目を指定してないから 思ったように動いてないだけなんだろうけどソースがわからないとミスが指摘できないので出してみればって 言っただけ
147 :
143 :2012/09/14(金) 20:53:36.60
143です。 <C++> Bitmap* m_pImgBack, m_pImgWork; (上記2つはpng画像を読み込み済み) CDC* pDC = GetDlgItem(IDC_IMAGE)->GetDC(); const HDC hDC = *pDC; Graphics graphics(hDC); //背景の表示 graphics.DrawImage(m_pImgBack, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT); //透過処理を施して画像を重ねて表示 graphics.DrawImage(m_pImgWork,0,0,IMAGE_WIDTH,IMAGE_HEIGHT); --- <C#> (ImgWorkはBitmapクラス。png画像を読み込み済み) Bitmap ImgBack = new Bitmap("back.png"); Graphics g = Graphics.FromImage(ImgBack); g.DrawImage(ImgWork, 0, 0, IMAGE_WIDTH, IMAGE_HEIGH T); //ピクチャーボックスに転送 this.picImage.Image = ImgBack; ------- 関係とは思いますが、CompositingQualityの設定では改善しませんでした。
>>146 最初からそう言えよ
ソース晒したところで答え無い奴が多いからな
そんな手間を取りたくないんだよ
何べんも聞き返す手間も取りたくねえんだよ鳥頭
DrawImage二回してるのと一回しかしてないの GraphicsのDisposeをしてるのとしてないので違いがあるんでないか
PNG読み込んだときちゃんとARGBかPARGBになってるか
あのクソで有名なImageListクラスを介してるとか
154 :
デフォルトの名無しさん :2012/09/14(金) 21:28:29.67
bmp1で読み込む方をアルファ抜きの24bitで保存して実行してみたけど問題なく合成される 逆をすれば当然bmp1が塗りつぶされる ごく普通の動作 やっぱ自分は間違ってないと思ってるソース部分に罠があるはず だからソース出せって言ってるのに
155 :
デフォルトの名無しさん :2012/09/14(金) 21:36:31.73
>>153 あれって色深度がおかしくなったような記憶がある
>>153 俺もそう思ったよ
ソースコードなんて無くても大抵それだと予測できる
ソースコード要求する奴は初心者
うっざ
今日は午後休にしたので3.5連休です
へー、世間は三連休か…
161 :
143 :2012/09/14(金) 21:51:57.29
皆様ありがとうございます。 デバッガで確認したところ、重ねる画像は32bppARGBでしたが、 背景画像が24bppRGBになってることがわかりました。 アルファが適用されてないではなく丸められているようなので、 アルファつきで背景も読み込むようにして試してみます。 またご報告します。
163 :
151 :2012/09/14(金) 21:58:24.85
俺は知ってたよ
とりあえず IDほしい
背景が24bitアルファなしでも重ねる方にアルファがあればちゃんと処理されるって
166 :
143 :2012/09/14(金) 22:33:47.12
申し訳ありません。 単純に読み込み画像がおかしかったのが原因でした。 ソースをいじることなく解決しました… スレ汚し失礼しました。
あごキックで許す
スレッドをつくってそっちで新しいフォームをshowしても 表示されないのはなぜでしょうか? UIはメインスレッドでしか動作しないのでしょうか?
169 :
デフォルトの名無しさん :2012/09/15(土) 07:30:47.19
単独のForm.Showは非ブロックなんでスコープを抜けると消える スレッドの最初のFormはApplication.Runが必要 …だった気がする
>>168 ループさせればできるよ
要はGUIを描画し続けるというのが必要
おまいらおはよー 今日はたっぷり時間がかるので いっぱい質問するから いっぱい答えてね
つまり 新しく作ったスレッドでFormの表示状態を維持するには 最初のFormはApplication.Run相当のループが必要。 それをしたくない場合は最初のFormはApplication.Run の配下でForm.Showが行われるようにInvokeを使うと
みすった 新しく作ったスレッドでFormの表示状態を維持するには 最初のFormのApplication.Run相当のループが必要。 それをしたくない場合は最初のFormのApplication.Run の配下でForm.Showが行われるようにInvokeを使うと
あと1年ちょっとで終わるOSを切り捨てる
XP知らない世代なんで
>Application.Run相当のループ メッセージループね。 Application.Run/Form.ShowDialogで、 必要と判断されればループが開始される。 >それをしたくない場合は最初のFormのApplication.Run >の配下でForm.Showが行われるようにInvokeを使うと InvokeではそのFormを生成したスレッドで実行される。 新しく作ったスレッドでFormを生成していたらInvokeは無意味。 それとFormを表示する前に、Thread.SetApartment(STA)が必要。 あとWinFormのマルチスレッドGUIは厳密にはNG。 OpenFileDialog等COMを利用したコントロールにおいてマルチスレッドが保証されていない(らしい)。
>>174 前者の用途なら改めてApplication.Runを呼べばいい…はず
さっぱりわからないニダ
わかんないアル
public static void Main() { var f = new Form(); f.Click += (s, e) => { Action a = () => Application.Run(new Form()); a.BeginInvoke(ar => a.EndInvoke(ar), null); }; Application.Run(f); }
というかそもそもFormアプリを作った場合はApplication.Runで最初にUIスレッド作って Formの表示維持のためのループもやってくれてるんだから新しく内部で作るスレッドの中で Formのインスタンス作ってShowするなって話だよ UIに関連することはすべてInvokeでUIスレッドの中で呼び出し可能なメソッドに まとめておいてそこで処理をさせる
てか、フォームを別スレッドでやりたいのが目的じゃなくて 別スレッドで処理するものがあって、その結果をFormに表示させたいけど めんどくせってことじゃないの? 普通別スレッドでFormが必要なんてことがあるわけがない
メインフォームのリストビューを更新するとサブスレッドのUIがその間止まってしまうので スレッドをわけたらどうかと思った次第です
更新時間を短縮することにまず目を向けるべきだった
>>185 なぜそれを最初に言わないのか?
あなたが問題視している部分と起因となった実際の問題をよく理解していないようですね
こういう問題解決能力のない知的障害者にはプログラミングは無理です
低学歴にはプログラミングは無理です
妙な問題が出ている時は大抵アプローチがおかしいという経験則
やはりリストビューをやめて独自リストビューを作成すべきでしょうか
>>187 まあそんなもんだからあまり追い込んでも意味ないけどね
なので常にソースを出せと言ってる
変なことを言ってる場合は概ね何か基本が間違ってることが普通だし
あなたが作っているソフトウェアの用件を知らないのにそんなことに答えられるわけがない 流れ的にあなたがリストビューで変な使い方をしている可能性も否定できない
>>189 動きをざっくり説明しなよ
どれくらいのデータ件数をどれくらいの頻度で更新するから
listviewが固まるとかさ
0.01秒も止まられると困ってしまいます
あと仮想リストビューは検討したかとかBeginUpdateやEndUpdateを使用してみたかも付け加えて欲しい
その0.01秒は何のために発生する要件だい 合理性はあるの?
>>190 お前らそれがわかった上で質問に答えているだろw
もう笑えるんだよそれが
悪ノリはやめろw
リストビューにアイテムを追加するときに一個づつやってるんだろうな
リストビューコレクションを作ってそれをAddRangeで追加してやれば
5000件あっても一瞬で表示される
あと、
>>194
>>196 だからめんどくさいけどヒアリングしながら応えてるじゃん
その過程で後だしで条件がでてくるのはもうわかってるから
リストビューは100ミリ秒毎に更新します
更新するデータはUIスレッドで作る必要はない たまにそれで無駄な時間を食ってる例は見かける
202 :
デフォルトの名無しさん :2012/09/15(土) 10:21:55.85
もうわかってるから
わかってるから
>>143 で
>>144 の反応なんだよ
文字でやりとりめんどうだからソース見せろって
日本語で説明されるよりどういう思考の結果がソースコードになってるか見れば概ねわかる
>>202 じゃあ開発中のスパゲティソースうpして答えるか?
答えないだろ?
全部見せてどうすんだ バグがあるからってリポジトリのソース全部が原因の可能性は至極まれだろ
使ってる部分だけ見せくれればいいよ
>>143 の件だってソースコードの部分に原因がないことははっきりしただろ
>>204 どこに問題があるのかわからないケースもあると思いますが?
対話式ですすめていかないとするなら、全部晒すしか無いと思いますよ
また極端な…。 1かゼロかしかないのはプログラマだからなのか?
>>206 そんなケースはそんなケースだけ特例で対応すればいいんだよ
レアケースに一般的なケースと同じ重みを振るかバカたれが
>>205 抽象化が進んでいてクラスが大量にある場合
問題となる部分が不明瞭になると思うんだけどね
初心者スレでそんな問題は出てこない 今まで見たことも無い
>>207 また説明しないといけないのか
ここにくる質問の多くは回答者がまるでとなりの席にでも座ってるようなラフなのがほとんど
まあそれでもさくっと答えが可能なレベルの物もあるけど大半はそれじゃあ無理
でリアルで隣の席に座ってる人に質問した場合、即答できない場合は質問者のPCを
覗き込んで作業中のコードを見たりプログラムで処理するデータ数なども資料で見れるわけ
でもネットの掲示板上で文字だけでやると「言葉足らず」になるんだよね
それをいちいちヒアリングするのがめんどうだからソース出してもらって
隣の席に座ってるレベルに近いことをやろうとしてるわけ
OK?
ものすごい高い時給をもらってる弁護士じゃないんだから 説明する義務もやさしさも必要ないと思ってる
てか、スカイプで教えてくれっていったら教えてくれるの? スカイプならファイルや映像遅れるし やってくれるならその方がいいんだけどな
珍しく「解決してやりたいんだ」って意気込みは感じる でも、普段は質問者をあおるんですよねw
避難所にはIDありますよ こっち見てる人は向こうも見てるはずなのでおすすめ
>>219 専ブラでキープしてあるが今鯖がおいてるな
おいてるになってもた 落ちてる
>>37 未来を意識しない糞ツールを作るのが良いですか。
そんな奴がデザインパターン使う意味があるの??
落ちてないよ
>>222 お前リアルであったら確実にしばいてるわ
ほとんどのツールなんて書き捨てですからね 書き捨てでも汎用になりそうなロジックは多少含まれているかもしれないので しばらくはソースコード取っておきますが、ほとんど整理されますね
>>222 無知なメンバーがメンテする事を考えると
スパゲッティの下ごしらえになっちゃう可能性があるぜ?
GUIで作ると小物でも結構大掛かりになっちゃうから 再利用性とか余計なことを気にしてしまうのは分からないでもないな スクリプト言語のコマンドラインツールなら何の抵抗もなく糞スクリプトを書き捨てられるんだが
>>227 もともとスパゲッティに仕上げられたツールのバージョンアップが相当きつかった思い出がある。
月1に行われるシステムのバージョンアップ+それに伴うテストデータ作成ツールのバージョンアップ
※どちらも保守開始時には糞の上に糞塗った、超高級糞おはぎ
デザパタの失敗は移植作業で取り戻せるから割合どうでもいい 糞ロジックは仕様分析・再検討の上全部書き直すはめに
>>230 ほんとそう思う。
前者はムカつくけど、「直すか」って思える。
あと作り手の思想から新しい発見もある。
「エクスプローラーの空白部分(アイコン等がない、クリックしても何も起こらない場所)がクリックされたら」みたいなイベントはどう書けばいいんでしょう 今まで一つのウィンドウの中だけで事が済む簡単なWindowsアプリケーションしか作ったことがないので、ちょっと検討がつきません…
シェル拡張でできるのかもしれませんが全くC#と関係ありません
そういうときC#ってつくづく不完全だなと思います
字面通りのイベントと解釈する 世の中でそれをやってるプログラムは エクスプローラのプロセスの中で、.NET Frameworkの範疇を越えた拡張をしている C#を使っている限り書くことはできない
C#というよりはWindowsの欠陥に近い エクスプローラもCLRで書き直せばいいんだよ バイナリアーキテクチャが二種類混在してるに等しいんだ
やりたいならC/C++でフックでもリモートスレッドでもシェル拡張経由でもなんでもいいから エクスプローラのプロセスに進入してウィンドウをサブクラス化する 単純に面倒くさい上に、Win7からエクスプローラのウィンドウ構成が刷新されたらしくキツイ
COMなんだからC#でやろうと思えばできるのかもね だとしてもスレ違いなのは間違いないが
シェル拡張経由ならC#でも行けんじゃね アセンブリは読み込まれてるわけだから、WndProcをメソッドとして書いて Marshal.GetFunctionPointerForDelegateで関数ポインタに変換して SetWindowSubclassサブクラス化できないかな
242 :
デフォルトの名無しさん :2012/09/15(土) 12:45:14.69
URL貼ってる奴はもう少し真面目に検索するか、黙ってろ
他のウィンドウのメッセージを受信できるサービス一つ立てておけば便利そうだな ちょっと検討してみよう
chameleon folderっていうソフトは エクスプローラーの空欄やデスクトップをホイールクリックすると ランチャーが開くけどアレはどうやってるのだろう
インポートアドレステーブルにSetWindowsHookExの文字が見えるので
>>238 で間違いない
248 :
232 :2012/09/15(土) 13:09:09.33
みなさんレスありがとうございます C#の練習のつもりだったのですが、フォームのクリックイベントとはわけが違うのですね… ちょっと自分にはまだハードル高いようなのでまた経験積んでからにしようかと思います (どうしても今すぐ作りたいわけではないので…) お騒がせしました
騒がしいのはいつものことだから気にするな
他のアプリに口を出す類はバッドノウハウの塊だからな 何の勉強にもならん
でも実際プログラミングでやりたいと思うのはそういうのばっかりじゃね? マウスポチポチめんどくせーな、自動化できないのかなってよくある願望 ソフトウェアなんて全部オープンソースでやれやって思う
彡彡ハミミ 彡彡´・ω・ミ ソフトウェアはフリーであるべきなんだ 彡彡彡彡ミッミミ 彡彡彡彡ハミミミミ / _|つ _|つ / RMS |
>>251 目的とする作業を行うソフトがあるからこそ、そういうくだらない補助ソフトが必要になるんだろ
その目的の作業を行うソフトを作る人も沢山いるんだよ
RunpenMakegumiSine?
一番いいのはエクスプローラならエクスプローラを作ってるMSが 不満の出ないソフトウェアを作り上げてくれればいいんだが 微妙に気が利かない所は20年変わってない
前はそういう補助ユーティリティばっかり作って(簡単だから)調子に乗って公開したりしてたが
>>253 に気づいてバカバカしくなってやめた
能無しの箱の操作をいくら効率化しようが意味無いんだよ
「私はバカでした」って得意気に発表会することなのか?
>>253 すまん、言っている意味がよくわからない
目的のソフトを作る人はたくさんいるが
実際使えるのはほんの一部で、
痒いとこにも手が届くようなものがない場合が多いから
補助ツール作るんでしょ
突き詰めるとフロントエンドまで否定されそうですw
補助ソフトってメインのソフトを作るほど根性がない奴が なんか自己満足でやってるだけって感じがするね
今度は人間性の批判ですか お前自身に帰るだけなのに懲りないねえ
「私はバカでした」+「私は陰険です(今も)」
突き詰めると言語バインディングやラッパーライブラリの類も否定されそうな気がする C使うほど根性のない奴がーとか何とでも言えるがな
>>260 当たり前じゃん
自己満足以外に何があるよ
>>264 そりゃ金でやってる人はほとんど目的のソフト側だろう
エントロピーを減少させて宇宙の終焉がどうとかのため
金を得ることは自己満足にはあたらないのかな 金を得なくてもとりあえず死なないんだから 自己実現のために金を得ているのではなくて?
内部宇宙に集約されるとかそういう哲学的な話をしているんじゃない
脱線に次ぐ脱線
そして瞑想
エクスプローラのイベントがー ↓ そんなツールは行儀が悪い ↓ でも必要とされてるよね ↓ そんなものは根性なしが作るもの ↓ きちょまん
スマホで瞑想支援ソフトでも作った方がよっぽど創造的だな
ま、根性なし言い出した時点で本筋の話題は終わったよw
もともと補助の必要性なんて人によるんだから、主観で決めようとした時点で破綻している。
エクスプローラーに関してはファイラーがいろいろあるので まずそれためしてみるべきじゃない? シェルやWinAPIをいじくりまわすより楽だと思うけど まあ、何するかは知らないけど ファイラでなにもないところをクリックしたら ランチャが起動するというのはできるわけだし あとは実行させたい何かをC#で書けばいいんじゃない?
>>275 諦めますで終わった話まで巻き戻さんでええわww
補助ソフト作ってる奴って結構多そうだな
>>277 逆に現状に不満が無いやつはプログラマに向いてないだろ
操作は特化してれば特化してるほど作業効率がよくなるし 好みに依存する部分も大きいからな
プライベートで補助ツール以上はキツイな 今考えてるのは全ウィンドウの最小化ボタンの隣に 最前面に張り付けボタンを追加したい。 出来る?
3美徳的には、わざわざ新しいもの開発するより、既にあるものを利用することを選ぶべきだよね 根性?マゾなだけじゃない?
いつのまにか友人たちと感覚がずれてたのは驚いたな おれ「ファイラ使ってないの?」 友人「使ってないが」 おれ「あんなことやこんなことが出来て便利なんだぞ」 友人「べつに不満はないなぁ」 もう10年近くパソコン使っているのに 未だにほとんど初期状態のPC使っているからな 毎日インターネットやったりエロゲもやったりしているのに 不満は全くない様子 ソフトがフリーズして固まっても、タスクマネージャ使わないで そのまま主電源OFF・・・ 俺が作業効率と快適さを求めてやってきたのは なんだったのかなーと思う
ファイラって作業効率上がるの? なんか素人と違うことしてるぜって自己満足してるだけで 実際はなんも効率上がってないどころかむしろ下がってたりするんじゃないの
>>280 ちょっと上にChameleon Folderってあったじゃん
それのを眺めてる時にChameleon Window Managerってのがあって、タイトルばーにボタンを追加してたよ
だからC#でとは断言できないが、出来る
やり方は中身を解析してみれば分かるんじゃね
>>282 ニュース系の板で捗るぞ色々ととかスレ立ててる連中と変わらないレベル
笑っていいの?これ
>>283 数千ものファイルを毎日扱ったり
ファイル操作を毎日しているならあったほうが便利でしょ
そんなことしないというならいらないけどね
便利といっても、他のツールを立ち上げる必要がなくなるとか
3回クリックなのが1回クリックだけでできるとかその程度だけどねw
他人が自分と同じ価値観を持ってないことにショックを受けるって それまでどういう周囲と生活してきたんだと思う
お前らだって大先生レベルのくせに人おちょくれる立場かよw
290 :
デフォルトの名無しさん :2012/09/15(土) 14:46:32.52
ファイラごときで全体の作業効率が変わるようなことしてるんなら自動化しろ なんのためのC#だ
こういうのが多分プログラマが誤解される原因を作ってるな ステレオタイプなイメージとか
>>290 C#でも限界はあるでしょ
ファイルを個別に仕分けるにしても
D&Dで1秒もかからないのに、
レアケースに対していちいちコード書いてるほうが時間が掛かる
>>288 人の価値観認めちゃったら、会話もおもしろくないでしょ
何か話していても、「人それぞれだからね」なんてかしこまって言う奴がいるけど
あーコイツほんとにつまんねーやつだなって思う
人それぞれでいいんだよ 作業効率を追求する労力が勿体ないと考える人。 それ自体が趣味だから問題無しとする人。 シンプルな純正ツールが好きな人。
そもそもその作業が発生しない人の割合は何割ですか?
発生しない人はいない D&Dなんてみんなするでしょ
>>294 それプログラマとは考えられない発想だな
ソフトウェアなんてエゴから生まれるものだろ?
現状に不満を抱き、向上心を持って行動するのがプログラマでしょ
それがないなら、ただの無気力プログラマ
>>293 人それぞれって前提を置いても会話を膨らませることは出来るよ
会話もロジックだからね
それが出来ない人間を指して
他人の価値観を認めてるから会話が進まないんだ、なんて錯誤も甚だしい
ソフトウェアに向いてるうちはいいけど 他人との会話で出て来るならそれは単なるコミュ症です
>>296 純正シェルより有意に効率化できる状況を想定できなきゃ無価値
むしろ開発者はヒアリングをする立場だよね 不便なこと困ってることを聞く側なんだよな
うわーつまんねーやつら やっぱり理数系の奴らとは話し合わないわ あーでもないこーでもないと言い合うのがおもしろいのに 暗い奴らだな
>>301 仕事ではそうするよ
コイツ最高にバカって心で念じながら
人それぞれだろ! って言ってるやつほど匿名掲示板では発狂して暴れまわるよね
なんだ空気読めない奴が暴れてるだけか。 さすがにこの場でくらい空気嫁よ。
むしろこの場だからこそ読まなくて済むんだろ
>>304 人それぞれと言い出す奴は主張がないんだよ
だから暴れることでしか自分を表現できない
いやー単に会話が下手糞なだけでしょ お前らの一部が黙りこくるのと似てるよ 会話スキルが20年で育たなかったんだな 孤独だったんだな辛いな
>>286 >数千ものファイルを毎日扱ったり
ファイラでどうのこうののレベルじゃないだろ。
>>290 の言うように自動化しなよ。
>>303 お前が補助ツール嫌いな理由が分かった気がするよ
自分用に補助ツール作るなら、形式上自分自身にヒアリングするわけだからな
”俺最高にバカ”って心で念じることになるんだな
お前らって意外と沸点低いよね
5個を越えるとバッチ、30個を越えるとスクリプトを検討する
あたしってほんとバカ
最低でもGUIが絡まなければスクリプト使うからC#の出番はない。
毎日毎日膨大な数のファイルをD&Dで仕分けていて自動化も出来ない、なんて言うと 画像スレに一日中張り付いてるニートあたりだと邪推されちゃうよ
>>317 誰もそんな事言ってないが
コミュ障ですか?
>>315 一秒もかからない D&D ってことは、ほとんど考えずにやれる作業ってことだよね。
それを毎日って、辞めさせるための仕打ちでも受けてるのか? (w
画像スレに一日中張り付いてるニートでも自動化くらい出来ますよ失礼ですね 一日10GBくらい捌いてます
>>319 >>320 自動化できないようなレアケースと言っているんだけどね
数千もD&Dしているなんて言っていない
普通に理解できることだろ
お前、プログラマとしても人としても終わってるわ
誰が誰に喋ってるか分からないのでかなり誤射がある模様
ム板で会話を試みる奴は素人
>>321 >自動化できないようなレアケースと言っているんだけどね
レアケースだけ人手でやるようにすればいいだけじゃん。
何でそんなとこまでいちいちコードで対応しようとするんだ?
>数千もD&Dしているなんて言っていない
>> 数千ものファイルを毎日扱ったり
ってどういうことやってるんだ?
すくなくとも、俺はそんな事「毎日」はしてないから、全然理解できない。
> お前、プログラマとしても人としても終わってるわ
まあ、人格攻撃する時点で終わってるか…
static async Task<int> Hoge() { return 10; } なんかこの書き方が気になるな・・・ Taskが返ってくるけど別に何もできない感じが気になる・・・
>>324 >レアケースだけ人手でやるようにすればいいだけじゃん。
そうしてるっていってるだろ
>何でそんなとこまでいちいちコードで対応しようとするんだ?
誰もしているなんて言っていない
そこはD&Dって言っただろ
何でここまで読解力がないんだ?
お前脳みそ腐ってるだろ
こういうキチガイが理数系にいるんだよな
理系コンプでもあんの?
プログラマにでもなろうと思ってたが 大学行って幻滅したわ みんな髪の毛真っ黒だし、根暗でつまらない奴らばかり こんな奴らと一生仕事するのかと思ったら吐き気したわ 今はプログラミングとは関係ない職場だが プログラミングができるのでできない奴らより作業効率がいい分得している それに小銭稼ぎもできるしな
髪の毛染めるようなチャラチャラしたやつきめえ
>>326 >>レアケースだけ人手でやるようにすればいいだけじゃん。
>そうしてるっていってるだろ
ファイラ使うといったり、色々忙しいな。
>>327 どっかの入試に落ちたとかじゃね?
使うならファイガだなー
ファイラ使ってる自分に酔ってアイデンティティ保ってるようじゃまだまださ
>>332 ファイラ使ってるといったぐらいでそう思っちゃうお前の心が貧しい
>>330 お前が読解力ないだけ
俺が言っていることは最初から一貫している
>>333 以外は
>>333 がどのレスを書いたか把握できない仕様なんだけど、これも読解力の問題なのかな?
話を総合すると 理数系の学科で大学デビューを図ったが、 それすら馴染めなかったコミュ障らしいから 深く考えない方がいい
>>333 > 俺が言っていることは最初から一貫している
お前の頭の中ではそうなんだろうな。(w
なんだ、学生はまだ夏休みか
>>325 return Task.FromResult(10);
asyncメソッドで戻ってきたTaskは既にスタート済みだから
もともと完了を待つ以外何も出来んぞ
TaskCompletionSourceあたりも覚えておくと便利
explorerがタブとカスタムメニュー?採用したらファイラ使わないよ
漢ならPowerShellで
PowerShellって便利? 今のところ従来のコマンドラインで事足りてるから使ったことないんだけど、 PowerShell使うメリットとか便利なコマンドあったら教えて欲しい
>>341 PowerShellはFormアプリ書けるよ
でもスクリプトが悪さしないように標準ではガチガチでPowerShellが動かないので
署名が必要だったりと微妙な感じ
343 :
デフォルトの名無しさん :2012/09/15(土) 22:53:38.53
セキュリティ関連を考えなければマジで昔のBASICみたいな感じで アプリが書ける・・・のにセキュリティで駄目な子
レスどーも ちょっとググったけどExport-CSVとか地味に便利そう 連休暇だしかじってみようかなぁ
そして月曜には婚姻届を出す羽目に
qttabbarはフルC#で
>>232 の機能があるな
いちいち人の発言の裏取ってんじゃねえよキメェな
>>348 どのレスに対するレスなんだ?
ひょっとして周りから自己中っていわれてないか?
そりゃ純C#だろうが混在だろうが動作はするだろ 動作しねえもの配っても意味ないんだから
尖閣諸島には石油資源が豊富 ↓ 石油があると外国が侵略する理由になる また豊富な石油で電力を賄うと原発への依存度が下がる ↓ 原発を減らすと技術力がガクッと下がりさらに国防力も大幅下落する アメリカやフランスなどとの関係も悪くなり戦争リスクが高まる 結論 尖閣諸島を放棄することは国益
>>338 完了を待つ意外なにも出来ないといっても
awaitしてもいいし同期Waitしてもいいわけでしょ
まあどっちも完了を待ってるわけだけど・・・
まあawaitなしのasyncメソッドはただの同期実行でほぼ違いはないんだろうけど・・・
てs
列挙型の定数を比較するときの == と equalsメソッド の違いって何?あるの?
asとcastの違いみたいなもの
>>356 a.Equals(b) はaとbの両方がボックス化されるからクソ遅い
a == b は単なる数値の比較になるからクソ速い
あと、Equalsは引数がobjectなので間違って違う型を渡してもコンパイル時にエラーにならず
実行時にエラーが出てしまう
==はコンパイル時に型がチェックされる
つまり==を使え
>>358 挙動が違うよね
オペレータは変数の型に実装されたもの
Equalsはインスタンスに実装されたもの
この辺で足元救われる事の多い初心者です
>>359 インスタンスメソッドも型に実装されたものだよ
こっそり隠し引数にインスタンスを渡してるだけの簡単な仕掛けです
詳しくは仮想関数テーブルでggr
362 :
360 :2012/09/16(日) 22:24:34.66
ちなみに
>>358 のa.Equals(b)の場合、Enumクラスに実装されている
bool Equals(Enum this, object x) のようなメソッド(thisは隠し引数)を
Enum.Equals(a, b) のようにして呼んでいます
だからaもbもボックス化されるわけです
それから列挙型同士の==演算子は型に実装されたものじゃないぞ C#の言語仕様に組み込まれていて、コンパイラが数値同士の単純な比較に変換する
XMLの取り扱いがすごく面倒な気がするんだけど、使い方が悪いのかな? Setting.iniやSetting.mdbを作ったほうが圧倒的に取り扱いやすいし、汎用的なクラスを書ける気がする
さすがにその拡張子が対案じゃ知識不足にしか見えない
最近わりかしプログラムが書けるようになってきて、プログラムの書き方自体より、クラスやメソッドの実装方法に悩むことが多いんだけど。 こういう書き方も出来るけど、こう書いた方がいいみたいなことを勉強できる良書ってありますか?
>>369 普通、 実装=プログラムを書くこと自体 だぞ
クラスやメソッドの設計と言いたいの?
まずは用語を正しく使うことから
デザインパターンでググれ
== あれば equalsメソッド要らない子 なら、equalsメソッド使わなきゃならん場合って何?
XNAのSoundEffectInstanceでStateがPlayになっててももう一個その音を再生する方法ってどうやるの? ようは同一の効果音を重複して再生させたいだけなんだけど・・・
ボタンが押される度にこんな感じの処理をさせるのは無駄だよねえ。 SoundEffect se = マネージャークラスを参照する SoundEffectInstance sei = se.CreateInstance(); sei.Volume = soundEffectVolume; sei.Play();
毎回ファイルを読み込んでるとしたら超無駄
ソースを見れば一発でアドバイスできそうなレベルなんだろうけど ネットで文字だけでのやりとりだとめんどくさいねえw
>>381 答えられないやつほどこういうこという
スレチだからよそ逝け
>>382 そんなんだからエスパーって言われるんだよ
いいじゃない 答えて欲しくないんだろ 自力で何とかすればw 不利益になるのは質問した人間だけどな
SoundEffectInstanceのインスタンスをあらかじめ複数個作っておく で、再生時に使ってないインスタンスを探してplay XNA自体はそれほど使い込んで無いけど こういう使い方をするライブラリは結構多いと感じる 参考までに
この質問、ライブラリの使用方法とか作法とかの問題だろ ソースを読んでも回答できるようになるとは思えないんだが
思えないと、そうですか 勝手に思ってろよ どうぞ止めないよ
>>387 え?
ライブラリのまずい使い方をソースから読み取るんですよ
うまくいかないのは”自分では正しくやってるつもり”がほとんどなので
本人はソースが間違ってないと思い込んでることがほとんですし
>>388 この程度のことも答えられない無能はソース見ても無理w
>>389 そこまで厳密な質問でもないし
お前には無理
XElement使えばXMLスイスイ使えるだろ
最初にソースだしておけば不毛なやり取りで時間を無駄にすることもないのに愚かだね
せやな
全てソースがあったほうがいいね 使う使わないはともかく酒の肴とかに出来る
というかソースを晒すことでもっといい方法を教えてもらえる可能性もあるしなあ 老婆心で言ってるのに、自分のコードが盗まれるとでも思ってるのかねえ
飲み会の揚げ物とは訳が違うぞ
そんなものは求めてねえんだよ お前達は求められたものだけ粛々と提供していればいい
このスレはソース見せるようなスレじゃないし 嫌なら答えなければいいだけ 愚痴ってないで仕事しろ
どうでもいい。分かったら答える。分からなかったら黙ってみてる。
ン、待って。てことはレベル的に質問者<回答者の構図なのに
質問者は回答者にパクられると思ってソース出さないってこと?
そのせいで回答者間で争ったり後出しの情報が出てきたり的確なアドバイスなんか出るわけないじゃん
このスレいらないね
>>400 は結果として無駄になるレスが増えることを望んでるの?
うるせーな すっこんでろ
元くだスレですからねココ
大事なのは今とこれからであって元はどうでもいい
>>402 お前よりバカはいない
無駄レスしているのはお前
病院行くか自殺しろ
余計なレスした俺が悪かったって事で
ID出ないクソ板のまま放置してる運営が悪い
でました!お得意!責任転嫁!
質問者がソース出さないって言ってるけど
>>379 に出てんじゃん
それが質問者だって言う根拠は? IDも無いのに
>>410 >SoundEffect se = マネージャークラスを参照する
↑ここ重要
CreateInstanceがリソースロードしてるのか
既にロード済みのリソースをインスタンスに割り当てるかによって無駄かどうか全然違う
uyはトリ外すなよ
プログラマーともあろうものが IDでないクソ板でプログラムについて語るような不合理なことをするべきではない
精神障害者いじめるのは楽しいな 今日はお薬多めに飲んでおいたほうがいいぞw
>>416 精神障害者をいじめているという脳内妄想に浸っている
精神病のキチガイニート君は
他にやることはないんですかな?
プログラムの勉強は進んでますか?
相談室でもリバースエンジニアリングは道義に反する!中韓の手先か! とか抜かしてる奴いたし いかに大学生はまだ夏休みと言っても最近頓に酷いぞ
419 :
デフォルトの名無しさん :2012/09/17(月) 15:56:58.24
EntityFrameworkについて教えて欲しいのですが、StoreGeneratedPatternプロパティの Computedってどういう意味なのでしょうか? 憶測でNoneは通常、Identityはオートインクリメントだと思い込んでいるのですが、 Computedだけは推測すらつきません。 というか、この辺の日本語の初心者向け資料ないでしょうか?
>>419 レコードに最終更新のタイムスタンプを付けたいときを考えるととても分かりやすい
列挙型の命名規則ってどうなってんの? RINGO MIKAN こうじゃなくて Ringo Mikan こう?
メンバー変数はどれにする? m_Hoge _Hoge hoge
>>423 privateならどうしようと自由だったはず
>>423 自分だったら
hoge か hoge_
C#では予約済み識別子じゃないけど、やっぱアンダースコアで始まる名前はやだな
自分はパッキングされたフィールドのケツにアンダースコア付けてる以外、全てPascalCase 昔は区別すべきだと思って、camelCaseにしたりプリフィックス入れたりしてたけど IDEがいろいろ検出するようになったから、大方無意味という結論に至った パッキングされたフィールドは間違えて更新すると不整合の元になるので、これは区別せざるを得ない
俺もメンバ変数は全部PascalCaseだなあ バッキングフィールドは_PascalCaseで パブリックとプライベート、フィールドとプロパティで 字面で区別すべき違いがあるように思えなくて区別してない バッキングフィールドが出てきたら区別するけど
確かにフィールドとプロパティで区別する必要はないけど、 メソッドとフィールドは分けたいので全部_PascalCaseだな
_camelCaseな俺は少数派なのかな
気になるならコソアンでも立ててくればいいんじゃね
camelCase_
くだらね〜事考えている暇にプログラム作った方が良いんじゃないの?
hogEhogE
>>432 手が空いてんだよ
言わせんな恥ずかしい
誰か仕事ォォォォォォ
435 :
デフォルトの名無しさん :2012/09/18(火) 11:09:42.41
仕事は自分で作れ、探せ・・・ といいたいところだが、日本人の大半は偉そうなこといいつつ 臆病者ばっかりでイノベーター理論でいうところのレイトマジョリティばっかりな市場だからなあ・・・
非publicフィールドは先頭に_をつけてるな。ローカル変数はcamelで プロパティとかはPascal。オープンソース見てたらこれが多いパターン。
アンダースコアはキモい
アンダースコアは可読性が落ちる
でもアンダースコアじゃないとエラーになりそうな気になってしまうビクンビクン
スコープがしっかりしてるC#でつける意味無いよね?
頭にアンスコやプレフィックスを付けるとインテリセンスでprivateフィールド一覧が表示されるので便利と言えば便利
ASP.NET MVCのプロジェクトを新規作成するとデフォルトで以下の3つができますよね。 ・Web.config ・Web.Debug.config ・Web.Release.config 上記と同じことを通常のアプリケーション(WinFormsなど)のApp.configで行うことはできますか? ConnectionStringの設定だけでもテストサーバーと本番サーバーを簡単に切り替えれると嬉しいのですが
その程度#ifでいいだろ
bin/debugのexe.configを編集しとけば上書きされなかった気がする
タイマー作ってるんだけど ・interval1秒のタイマーを1つだけ置いて通知時刻リストをいちいち確認する ・タイマーを複数使って、intervalが通知時刻-現在時刻になるようなタイマーを通知時刻ごとに置く どっちがいいんだろう
タイマー何個も作っても裏でずっとチェックしてるんだろうし 一個でいいでしょ
public int Value{get{return _value}} ConstructorA(int value) { _value = value } 同じ意味をもつ変数で、引数とフィールドを区別するために アンダースコアはあったほうがいい。アンダースコアを使わない場合 どんなふうにするよ?
public int Value{ get; private set; } でええやん
俺はフィールドPascal引数camelなのでどうでもよかです
thisをつけろよデコスケ野郎
同じく
>>449 NotifyPropertyChangedEventHandlerあったりとかすると
バックフィールドないとだめだろ
フィールドPascalはアリか、プロパティやアクセス制限の区別がしづらいが。
フィールド→プロパティのとき、改名リファクタリングが不要でいいかも。
同名をthis.で区別するのは混乱のもと
区別に困ったこと無いんだよね 実際のところ
バックフィールドは頭にアンダーバーをつけるわ プロパティが本道でこれは裏道だって言う意味を込めて
バックフィールドもPascalならバックフィールドとそのプロパティは どう違いをつけてるの?上の例ならフィールドをValueにすると プロパティValueと被るけど。
>>456 457取り消し。なるほど、フィールドのなかでもバックフィールドのみ
別扱いってことね。それがいいかも。
ケツアンダー
PropertyChangedだけやりたい場合もhoge{get;set;}程度に簡単に書けるようになるといいな
5年以上言われてる時点で望み薄だな
それ言い出したらバリデーション入れるにはどうするのかとかキリがないからな やるんなら直接言語に組み込むんじゃなくてメタプログラミングの方向へ進むべきだよ
あとプロパティに従属関係があるときには一つプロパティを設定すると 複数のプロパティのPropertyChangedが起きたりするわけだけど そういうのはどうするのかとか 考えだしたら全然単純じゃない
WPFで(Xamlで定義した)ControlTemplateを分離コードの中でControlに設定するにはどうすれば良いですか?
そのまま記述するだけだとしか言いようがないな <Resources>から取り出す方法が分からないとか何か無いのか
467 :
465 :2012/09/19(水) 09:37:37.72
LabelにControlTemplateを設定したいとして Label label = new Label(){Template = xxxxx}; のようにしたいのですが、xxxxxのところに何を書けば良いのかわかりません。
xamlでどこにどう定義してるのさ 取りあえずWindow.Resourcesに定義してるとしてこんな感じ <Window ...> <Window.Resources> <ControlTemplate x:Key="xxxTemplate"> ... </ControlTemplate> </Window.Resources> ... </Window> partial class Window1 : Window { void SetXxxTemplate() { var template = (ControlTemplate)this.Resources["xxxTemplate"]; this.hoge.Template = template; } }
誤送信(´;ω;`)
>>448 ctor( int value )
{
this.value = value;
}
でええやん
ありゃもう終わった話だったか(´;ω;`)
472 :
465 :2012/09/19(水) 10:32:40.14
>>469 それでうまくいきました、ありがとうございます(ControlTemplateは
>>469 のようにWindow.Rosources内に定義していました)。
ところで、WPFの分離コードについて詳しく書いてあるサイトないし書籍はありませんか? 手持ちの本でもぐぐってもXamlによる記法しかでて来なくて"そのまま記述する"にはどうすればよいかがわからないのです。
473 :
デフォルトの名無しさん :2012/09/19(水) 12:58:45.02
ASP.NET MVC 4でEntityFrameworkの結果をJsonで送り出したいのですが、 以下のようにするとリレーションする全データが送られてしまいます。 Customerテーブルの内容だけを送りたいのですが、どうすればいいのでしょうか? public ActionResult GetAll() { using (var db = new ModelContainer()) { var customers = db.Customer.ToList(); var json = JsonConvert.SerializeObject(customers); return json; } }
コードファーストならJsonIgnore属性使えるけど モデルファーストなら知らん。
質問です。 基底クラスから派生先のクラスの型を取得するにはどうすればいいでしょうか? ただし、基底クラスのメソッドはStaticなメソッドになるのでthis.GetType()等は 使用できないです。
staticメソッドは派生に関係無いので取得出来ません
驚きの事実 DerivedType.StaticMethod(); はコンパイル後の中間言語上では BaseType.StaticMethod(); になる
class BaseClass { void Hoge(){ var t = typeof(DerivedClass); } } これは?
480 :
デフォルトの名無しさん :2012/09/19(水) 16:20:26.62
>>475 動かない
パラメーターが間違っています。(HRESULT からの例外:0x80070057 (E_INVALIDARG))
481 :
デフォルトの名無しさん :2012/09/19(水) 17:06:00.76
nullを入れれないstring型ってないんですか?
残念ながらありません 言語設計者も含め、導入したい/欲しいと思っている人は多いですが 色々問題があって今のところ入る予定もありません
setterでnullならString.Emptyにしとけば?
普通の人にはね
普通じゃない人には?
てかstaticメンバ関数ってオーバーライドできんの? staticだからvtblに入れとくわけにもいかないし
staticメンバーも見方によってはクラスというオブジェクトのメンバーだとみなすことが可能だが、 そういう風にみなしたところで、クラスというオブジェクトを入れる変数は作れない、 つまり多態ができないんだからオーバーロードできても無意味でしょw でもnewで隠蔽はできるよね確か。
サブクラス化...
ここにいるやつって学歴低そう
そうだなあ偏差値66ぐらいじゃ2chでは何の自慢にもならんもんなあ
偏差値71の俺なら自慢してもいいかな?
そりゃすごいわ
無事に義務教育を終えた俺なら
490から特に低レベルな会話になったな 高校生?
自己紹介ありがとう
ご覧下さいこのボキャブラリの貧困さ
このスレの低レベルな荒らしと言えば俺だったから それを下回る奴が現れてしまって悔しいよ
変ゼミ
おい、だれかWindowsのログイン状態のとり方教えろ。
(´・ω・`)…
WindowsAPIのスレいって必要なAPIを教えてもらえ それをP/Invoke
WindowsAPIスレは数年前から機能してないんだよねw
505 :
デフォルトの名無しさん :2012/09/20(木) 13:56:59.37
EF使い始めたのですがモデル版とコード版のそれぞれのメリット・デメリットを教えてください。
506 :
デフォルトの名無しさん :2012/09/20(木) 14:55:34.10
DataAnnotationsの検証クラスを自前で実装することはできますか? 仮に出来るとして、全角で入ってきたら半角になおして正常と判断するといったことはできますか?
廃棄されたMetroがこの先どうなるのか教えてください。
公害になります
(´・ω・`)またか…
地下鉄だけにお先真っ暗やな(^^
三球照代ってまだ生きてるんだろうか
parallelとunsafeのコンボがやばすぎる
何がヤバイんや
長すぎるって嫌がられたのが早漏になった
なんやこの過疎は
いつもの自演君がいないのかな
日付狂ってない? 今日書き込まれたのが昨日になってる
なんだ・・・一日ずれただけか・・・
C#の宿題スレがないので。。 ディレクトリAと、その配下のファイルをコピーしたディレクトリBがあるとします。 その後、ディレクトリB配下のいくつかのファイルを編集します。 そこで変更のあったファイルを抽出するLINQを書きたいのですが、1文で可能ですか?
説明がよくわからないのでせめてダミーのフォルダ階層作って画像で出して
new DirectoryInfo("APath").GetFileSystemInfos() .Concat(new DirectoryInfo("BPath").GetFileSystemInfos()) .GroupBy(info => info.Name) .Where(g => g.Count() == 2 && g.ElementAt(0).LastWriteTime != g.ElementAt(1).LastWriteTime) なんかこんな感じ? じゃね
ファイルのハッシュみないでいいのん?
スレッドA終了時に、スレッドAをnullにするにはどうしたらいいですか? スレッドAの終端に自身をnullにするコードでもエラーはでないのですが、これで問題はないですか?
?
問題はないですよ
設計的には恥ずかしすぎるけどいいよやってもキミがそれで満足なら
お前らエスパーなの?
VisualStudioってコードエディタやソリューションエクスryがタブみたいになってて あっちこっち移動できたりするじゃない あれってどうやって実装するの?
>>524 これ、変数にNullが入るだけでスレッドは残ってんじゃないの?
スレッドAの最後にnullにするっていうのは普通だと思うけど
何のためにって聞かれて理由を答えられるなら別にいいんじゃね 技術的に間違っていない、誤解していないことが前提で
>スレッドA終了時に、スレッドAをnullにするにはどうしたらいいですか?
>スレッドAの終端に自身をnullにするコードでもエラーはでないのですが、これで問題はないですか?
>スレッドAをnullにする
これの意味次第だな
スレッドを終了したいという意味なら、そんなことしなくても終了すべきときに終了するし
>自身をnullにするコード
これも意味不明だしなぁ
フィールドにnullを代入してるのかな
リソースを解放したい、みたいな意味なのかな
>>529 こうしてこうしてこうやるの
スレッドが起動中かどうかをスレッド変数がnullかどうかで判断するっていう感じじゃないの
というかスレッドの最後が終わったらスレッドは終了するっていうことを お前らが理解してないんじゃないの
というわけで最もシンプルに疑問を表現したコードプリーズ
スレッドを終了することを「スレッドをnullにする」と表現した人は過去見たことがないし Thread型変数にnullを入れるで合ってると思うわ で、わざわざnullを代入することで思い当たるのが 条件として用いるというので一つ、GCのため(誤解が非常に多いが)で一つ
5W1Hって大事だな、と思う。
>>524 だからさー、なぜそれが必要なのか動機を書けつってんだろ?
そこがお前の抱えている問題の本質だろうが!!!
うるさいだまれ
w
wwwwwh
yhwh
הוהי
?ん?ん?????????
>>539 Thread thread;
Public void Start()
{
if(thread==null)←ここの判断をnull条件としてスマートに行いたかったからです。
{
thread = new Thread(new ThreadStart(ThreadFunction)l
thread.Start()
}
}
Public void Start()
{
if(thread==null)
{
thread = new Thread(new ThreadStart(ThreadFunction)l
thread.Start()
}
else
{
if (!thread.IsAlive)←再帰呼び出しで解決しましたが、現場の実装はどうされてるのか気になったところの質問です。
{
thread = null;
Start();
}
}
}
連投ですまないですが、自身をnullとするの意味はこういうことです。 スレッドが終了する直前とはいえ、スレッドの実行中に参照をnullにして問題がないか気になったところです。 Thread thread; public void Start() { thread = new Thread(new ThreadStart(ThreadFunction)l thread.Start() } private void ThreadFunction() { //重たい処理 //スレッドの最終行 thread=null }
むしろ何故問題が発生すると思うんだ? そこを解消しておかないとこの先nullを代入するたびに疑問になるぞ
Thread作ってる初心者を見かけるたびに そんなもの薦める記事書いた奴に殺意が沸く
>>549 スレッド実行中に自身をnullなんかしたら
1つの処理が終了後に処理が必要な場合どうする?
黙ってTask.ContinueWith使っとけ 完了してるかどうかはTask.IsCompleted見とけ Taskは最初に一つ作れば十分だぞ
俺はむしろ定期的に湧く
>>551 みたいなレスの方にこそ殺意を抱くよ。
スレッドの用途もいろいろで
>>551 みたいな単細胞が恐らく想定しているような用途だけじゃないのに。
例えば定期的にポーリングしてバッファをエンキュー/デキューするするような低レベルのIOで
Thred使わずに何を使うんだよ。
ここが初心者スレだと分かってて喋ってるのかよく分からん奴がいるな 低レベル? TPOを弁える能力が低レベルなんとちゃうの
これは喧嘩になる。
Taskは順不同で同時にいくらでも処理していいって場合しか使えないじゃん HDDに対してやったら壊れるでしょ
探りあいはいいから、さっさと結論教えろ
>>558 さすがにそれは使い方を理解してないだろ。
順繰りにするためにTask.ContinueWithはTask<TResult>を返すんだよ。
結果を使って次をやるために。
順不同がどうのと抜かした奴はここか相談室で前も見たが 同じ奴か?
>>552 1つの処理が終了後に処理が必要な場合っていうのがピンときませんが、
予測できないタイミングでnullになるってのは不味そうっていうのは分かります。
スレッド開始時の評価を行うような設計にしたいと思います。
>>550 今まで変数をnullすることしかなかったので。
スレッドの実行中にスレッドをnullしたらなんて考えたこともなかったです。
これは実装に困ってるというより、好奇心的な疑問ですかね?
変数をnullにするってのは、その変数を介して何も参照できなくなる以上の意味は持たないよ 別に気にしなくていい var t = Task.Factory.StartNew(()=>{}); foreach (var a in actions) { t = t.ContinueWith(a); } これで指定順に動かなかったっけ 動いたと思うけど
>>564 それだと一つづつしかアクションが処理されないじゃないか
2つづつしたい場合、また変則的な条件ではTaskじゃできない
>>565 普段の会話でも条件後出しで喜んでんの?
カスでクズで終わってンネ
>>565 そりゃスレッドでもそうだろ
変則的な条件をスレッドだと自動実装してくれるのか?しねえよな
568 :
560 :2012/09/24(月) 00:56:06.29
>Taskは順不同で同時にいくらでも処理していいって場合しか使えない って言われたから否定しただけだよ。 横から出しゃばってこないで下さいな。
>>567 そうだよ、だからTaskは万能じゃないということ
例えばファイルをダウンロードする場合に
2つ同時にDLして終わったら次のファイルという風にやろうとすると
Taskではできない
>>569 デリゲートの中で二個ずつDLすりゃいいだけだろ頭腐ってるのか?
Taskが万能じゃなかろうが、その用途でThreadが上回ってる要素はカスほどもない。 諦めろ。寝ろ。
>>570 デリゲートの中の処理は並列じゃないので
2個書いても、2個が同時にDLされるわけじゃない
普通はセマフォ使うだろ デリゲートの中で2個DLってそんな中途半端なことよく思いつくな
ここにガイドがあります
基本的に、ここにある例ではThreadを使い、後はTaskやThreadPoolでいいです
http://msdn.microsoft.com/ja-jp/library/vstudio/6kac2kdh.aspx >スレッド処理とアプリケーションのデザイン
>一般に、他のスレッドをブロックしない比較的短いタスクを特定のスケジューリングを指定せずに実行する場合、
>複数のスレッドを処理する最も簡単な方法は、ThreadPool クラスを使用することです。
> ただし、次に示すように、独自のスレッドを作成した方がよい場合も多くあります。
>タスクに特定の優先順位を設定する必要がある場合。
>タスクが長時間実行して、ほかのタスクをブロックする可能性がある場合。
>スレッドをシングルスレッド アパートメント内に配置する必要がある場合
>(すべての ThreadPool スレッドがマルチスレッド アパートメント内にある場合)。
>スレッドに関連付けられた、確立された ID が必要な場合。
>たとえば、そのスレッドをアボートまたは中断したり、名前で探索したりするには、専用のスレッドを使用する必要があります。
>ユーザー インターフェイスと対話するバックグラウンド スレッドを実行する必要がある場合、
>.NET Framework Version 2.0 では、イベントを使用し、ユーザー インターフェイス スレッドへの
>スレッド間マーシャリングによって通信する BackgroundWorker コンポーネントを利用できます。
そもそも、ThreadにしろTaskにしろ、コアな機能はデリゲートを実行することだけです
マネージャー系の機能は単なる付加機能です
できることそのものは大差ないんです
より適しているかの問題で、適していない方を使用する理由は、あなたがマゾヒストでない限り存在しません
var queue = new ConcurrentQueue<Action>(actions); Task.Factory.StartNew(() => { Action a; while (queue.TryDequeue(out a)) { a(); } }); Task.Factory.StartNew(() => { Action a; while (queue.TryDequeue(out a)) { a(); } }); 次の条件はなんだい馬鹿ども。
>>573 普通はConcurrentQueue使うと思いますよ。
知らないのかもしれませんけどね。
>>574 やっぱりDLする場合はThread使ったほうがいいようだな
結局Taskを使う処理って画像処理など単純な関数を連続使用するときにリソースが少なくて済むってだけだよな
Taskは順不同で同時にいくらでも処理していいって場合しか使えない 2つ同時にDLして終わったら次のファイルという風にやろうとすると Taskではできない 今後何か言う度にこれを貼ってやろう。
>>579 普段の会話でも条件後出しで喜んでんの?
カスでクズで終わってンネ
いやお前が条件なんだい?って言ったんだろ 続けろよ
ConcurrentなQueue使ってるのに一度使いきったらエンキューしても実行してくれなくなる実装なんて よくドヤ顔で出せたね 条件後出しとかそういうレベルじゃないでしょ センスの問題
なんかこのスレ末期だよね
>>582 MSDNで隣にBlockingQueueが並んでますから、それと取り替えればいいだけだよ。
んで、次は?
Taskは順不同で同時にいくらでも処理していいって場合しか使えない>嘘でしたw 2つ同時にDLして終わったら次のファイルという風にやろうとするとTaskではできない>嘘でしたw
>>574 にあるように、条件はどこかしらに書くんだから、そこ比べても無意味だろ。
同じなんだから。
お前もアホか?
589 :
584 :2012/09/24(月) 01:35:03.23
ねえ次は?
荒れてるせいか、なんか負荷が…
ファイルを非同期でダウンロードするソフト ・同時DL数はユーザーが任意に指定できる ・ファイルごとにDL優先順位を指定できる ・途中でDL停止させたり、DL中のファイル内容を閲覧できる ・随時HDDに書き込むと負担がかかるので、キャッシュしておいてDL完了後、ファイルに保存する これらの条件をTaskを利用して仕上げなさい
やはり過疎はいけない 過疎りすぎると本格的に頭のオカシイ人のスレになる
質問者に絡んでるわけじゃないからまだいいよ どこかのスレなんて…
>>575 2つ並べただけとかw普通DLソフトなんて2つ同時と決まっているわけじゃないのに
こういう使えないコードよくかけるよな
>>591 そんなものやるわけねえだろ馬鹿かお前w
何分考えた?なあ何分考えた?
お、諦めたみたいだな タスクに出来ないことがあったなんてなー スレッド使ってるのと全然変わんないのに不思議だなー
var queue = new ConcurrentQueue<Action>(actions); foreach(var i in Enumerable.Range(0, 5)) { Task.Factory.StartNew(() => { Action a; while (queue.TryDequeue(out a)) { a(); } }); }; はい何個でも好きな数でどうぞ
まだいい?これがまだいい?麻痺してんぞ
>>596 すまねえ、実力が及ばなかったわ
スレッド使った回答ヨロシク
全然任意に指定できないのが出てきちゃったな・・・
>>597 >foreach(var i in Enumerable.Range(0, 5)) {
なにこれ?
for(var i=0;i<同時DL数;i++)
これじゃだめなの?
この書き方はPython信者だ
>>601 あー、自分で確証も持てないならレベルアップしてからにしてちょうだい?
指導者だったら確たる答えをもってこいって怒るわよん。
この書き方が好きなブロガーがいたな 確か・・・
いや、Pythonから来た奴は大方がこう書くよ あの言語はループする時にfor i in xrange(n)としか基本書かないから
JavaのBlockingQueueと同じものはないんですか?と聞かれて 昔「無い」って答えた記憶があるんだが、今はあるんだな 2008の頃だったから嘘は言っていないはずだが
BackgroundWorkerでいいじゃん
いやThread使うべきだろ ・指定順で1つずつ処理したい場合 ・2つ同時にDLして終わったら次のファイルというようにしたい場合 ・同時DL数はユーザーが任意に指定できる ・ファイルごとにDL優先順位を指定できる ・途中でDL停止させたり、DL中のファイル内容を閲覧できる ・随時HDDに書き込むと負担がかかるので、キャッシュしておいてDL完了後、ファイルに保存する これらの操作に対応しなければならないだろ? 常識的に考えて
並列処理を簡潔に書きたいならTaskがいいけど ネットワーク通信など時間がかかる処理を、ただ非同期で処理したいって場合は Threadの方が小回り利いていいな
元の質問者が詳細な仕様を言ってないのに、想像で語っても無意味な自己満足だろ。
フォルダアイコンなどをOS標準のものを使ったり VSで使われているアイコンを使いたいんだけど大丈夫ですか? あと、そういったアイコンはどこで見つけられますか? ソフトは公開はすると思うけど、有償化する予定はありません
フリーのアイコン集なんて山ほどあるんだからぐぐれ
フリーだと汎用的なものしかなかったり 統一感がとれないので
Windows用ソフトウェアであればOS内のアイコンの使用について 事実上MSは黙認しているようだな。VSのは知らんが 昔からアイコンに困ったらshell32.dllとかimageres.dllとかから抽出してる人は多い 実行時に欲しければSHGetFileInfoとかExtractIconとか
OSに含まれるアイコン勝手に内蔵したら駄目に決まってんだろ フリーソフトとか実行時にロードするのが常識
実行時ロードならOKなん?
ニコ動関連のツール探すとjavaやRubyで作られているのが多いけどC#だと無理なの? 例えばニコ生を保存したいんだけど
できるよ
>>620 おお、すげぇ
やっぱ既に誰かが作っているんだな
Graphics.DrawCurveに指定するPoint[]配列をList<Point>からSort()した結果をToArray()で 代入したいのですがX,Yの複数キーを指定する方法が教えてください。 Xが小さい方を優先して並び替えたいと思います。 delegateで指定するみたいですが、書き方がわかりませんでした。
pointList.OrderBy(point => point.X).ToArray() じゃないの
624 :
デフォルトの名無しさん :2012/09/24(月) 23:53:51.37
>>623 X優先で並べ替えた後Xが同じ場合はYでもソートしたいってことじゃないの?
普通にYでソートした後にXでソートすればいいやん
じゃあ pointList.OrderBy(point => ((long)point.X) << 32 + point.Y).ToArray() こんな感じ?
ThenByも知らないし、安定ソートか確かめもしない
>>626
from p in pointList orderby p.X, p.Y select p だろ
630 :
622 :2012/09/25(火) 00:27:21.89
OrderByとThenByで実現できました。 ありがとうごさいました。
質問です。 ある装置をプログラムで動かしたいのですが、カタログにはこの装置はWindows DLLに対応しています としか書いていませんでした。これは具体的にどのプログラムが使用できるということなので しょうか。Visual Studioが使えれば嬉しいのですが・・・ よろしくお願いいたします。
おいエスパー 早く答えて差し上げろ
VSで使える
>>634 本当ですか!ご回答ありがとうございますm(__)m
自分以外みんなエスパーだったときー
自分がアスペだという可能性が
カタログ品のような装置に付属させるDLLで VisualStudioで使えないWindowsDLLってどうやって作るの?
VisualStudioで使う、という表現はおかくしね?
画像一覧をリストボックスのような感じでサムネイル付きで一覧表示したいんだけど、オススメのコントロールありますか? 例) サムネ:URL サムネ:URL サムネ:URL
おいエスパー 早く答えて差し上げろ
644 :
デフォルトの名無しさん :2012/09/25(火) 16:04:06.53
気に入ったのが無ければ自分で作れ
リストボックス
>>646 これこれ、こういうのがやりたかった
ソース見てみます
どうでもいいけど先に覚えるべきことが多すぎだろjk
おいエスパー 早く質問して差し上げろ
>おいエスパー >早く答えて差し上げろ 5,7,5で語呂がいいなw
おいエスパー 早く答えて差し上げろ 口に出してみたけどいいなw
よくわからないことがあるんです おしえてください
中央線のレールを枕にしてれば全部解決するよ
中央線 レールを枕に すれば 解決
652「問題文を推理し、それに対して解答せよ」
おいエスパー 早く答えて差し上げろ
既に起動している自作アプリと通信する方法はありますか? 検索ワードを送ってやりたいんだけど
その自作の方に手を入れるのならIPCを使えば簡単
>>658 まさにそれでした。
ありがとうございます。
礼はいい 咥えて差し上げろ
俺はいい 咥えて差し上げろ↓
このスレ見てるとC#自体末期かもしれないという気分に襲われるな
このスレだけで判断しているお前が末期
他のスレを見ると、プログラミング自体末期だと思うだろうから見ないほうがいい
今時2chで情報収集しているのが末期
おいエスパー 早く答えて差し上げろ
面白いと思ってるらしいので、もう少し我慢してくださいね
おいエスパー 早く答えて差し上げろ
いいんだよ こんな趣味にカジュアルが首突っ込んでくるな
首はいい ちんこを咥えて差し上げろ
ここで質問しているのって俺ぐらいしかいないんだな 半分ぐらいおれの質問なんだが
そしてもう半分は俺
いや俺
質問してばっかりで全く成長が見られないわけだね
質問です 何でそう思ったの?
そうあってほしいという願望だろうね 惨めな人生を歩んでいる人の卑屈な心理が反映されている
半分を占めるほどずっと質問しつづけてるなら 成長してないってことだよね
Win32APIスレでやれ
WPF使いにくくてかなわん GDI進化させろボケカス
>>678 このスレができてたった15日だけど
お前は2週間でプログラムを網羅できるの?
おいエスパー 早く答えて差し上げろ
ム板流行語大賞狙えそうだな
死ねよ
わからなくてもここで聞く気にはなれん ググったほうが早いしその他の絡みまでわかるし ググれないほどの馬鹿は死んだほうがいいよ
おいエスパー 早く煽って差し上げろ
お前・・・スプーンも曲げられんの?
スプーン曲げくらい余裕だろ
>>686 お前のような馬鹿を指差して笑いたいから見てるんだよ
いつもの自演君が暴れてんのか
こんな深夜にやらんでもよかろうに
静的メソッドとして拡張メソッドとして追加ってできないのん? // このHogeクラスはいじれない class Hoge{...} Hoge.KakuchouMethod(); みたいなー
できてもわかりにくくなる以外に何の意味もないだろ HogeHelperクラスでも作っとけ
へーい
拡張メソッドの可読性の高さは異常だから積極的に使っていくべき なんならLINQみたいに別言語クラスまで作りこむべき
701 :
デフォルトの名無しさん :2012/09/28(金) 18:53:24.14
クソスレ化してきたな。
702 :
デフォルトの名無しさん :2012/09/28(金) 18:54:15.11
__,,,,、 .,、 /'゙´,_/'″ . `\ : ./ i./ ,,..、 ヽ . / /. l, ,! `, .| .,..‐.、│ .| (´゛ ,/ llヽ | ヽ -./ ., lliヽ .| /'",i" ゙;、 l'ii,''く .ヽ / ...│ ゙l, l゙゙t, ''ii_ :.! : /.._ / ヽ \\.`゙~''''''"./ .|-゙ノ/ : ゝ .、 ` .`''←┬゛ l゙ /.r ゛ .゙ヒ, .ヽ,  ゙̄| . | ./ l ”'、 .゙ゝ........ん l / ヽ .`' `、、 .,i゛ .l| ! ''''v, ゙''ー .l、 |l゙ .il、 .l .ヽ .¬---イ .ll゙, ./ ! ,! .!!...!! ,,゙''''ー .| l.",! .リ | l":| .〜''' ,. │ l; :! .|'" ...ノ,゙./ │ l: l「 ! . ゙゙̄ / ! .| .| ! ,i│ | :! .l. } ,i'./ | :! .| :| . / .| :! | ;! " .| :! ! │ │ :!:| ,! i ,! :! , .l, / .l゙ ! :! | , l. | .| :, : v'" .! |'i .ヽ, ./ :! .ヽ _, _/ / .l ゛ ._/ :l゙
おいエスパー 早く答えて差し上げろ
残ってる質問どれだよ
705 :
デフォルトの名無しさん :2012/09/28(金) 22:59:29.56
おいエスパー 早く答えて差し上げろ
壊れたオルゴール
連呼マンはWin32APIスレの子だね
あの、visual studioのメニューのデバッグ-例外で表示される、"例外が次の場合に中断する"の インストール時のデフォルトってどういう状態だったでしょうか? 全てにチェック?
709 :
デフォルトの名無しさん :2012/09/29(土) 04:54:24.67
,,... ---‐‐‐‐ 、 ___ ./ ヽ 丶 . / /  ̄ / l: : : : : : : : : : : :.:.. l .../ / / |: : : : : : : : : : : :.:.:....|.../ / _/ |______;;;;;;;l .  ̄ ̄ ̄ |;';';';';';';';';';';';';';';';' ミミ| |;';';';';';';';';';';';';';';';' ミミ| ...|─ | | | / ___ |;';';';';';';';';';';';';';';';' ミミ| ._|_ | | / ____ / |;';';r'",==、、ヽ;';' ミミ| .l_/ / / /\ |;';i 〃 . iヽi;';' ミミ! ./ /\___/ヽ |;';| |丶__ノ l|;';';/f /'''''' ''''''::::::\ |';'| |Bull-Dog.||;';';| | + |(●), 、(●)、.:| + |;';|f゙ヽ^(⌒rつl|';';'| |./⌒) | ,,,ノ(、_, )ヽ、,, .::::| |;';|∞_ソY ◯゙゙).|';';'| | -')´ + | `-=ニ=- ' .:::::::| + |';'|´ ~~~ ~~|';';'| |._,.イ\ + \ `ニニ´ .:::/ + |;';| ブルドック |';';'| | .Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./| |;';| とんかつ. |;';';| | / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ |;';| `ノ ━ ス |;';';'| !__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、 ___________________________ __ │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九| │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
htmlの<table>で表記された下記の様に表示される表のデータ(あいうえお・・・の部分)を 列や行を指定して取得する方法を教えて頂きたいです。 列1 列2 列3 列4 列5 行1 あ い う え 行2 お か き く 行3 け こ さ し
行で分解して列で分解して要らない部分取っ払って配列に入れる
List<List<string>> ListList; void TR(){ ListList.Add(new List<string>()); } void TD(string content){ ListList[ListList.Count - 1].Add(content); } こんなかんじでしょ
ListList
staticなクラスがあって、それを利用するには自アプリのパスが必要な場合 普通ならメソッドの引数にパスを入れると思うのですが、それ以外に方法はありますか?
staticじゃない普通のメンバーのマネージャークラスの名前どうしよう NotStaticHogeManager的な名前を考えてくれ
HogeManagerでいいんじゃ
UtilityFunctionsとか? スタティックの時は明示するとか。
マネージャーは抽象度が低いから使うべきじゃない マネージャーとは一体何をするのか
>>716 アセンブリから取れるけど結合が強すぎてしまうので外部から渡すほうがいいよ
スタティックメソッドをクラスと結び付けない方がいい メソッドに必要な引数だけあれば クラス全体は必要ないようにした方がシンプルになる メソッド名をクラス名にしてメソッド名はRunとかでいい
クラスに関係ないならパッケージに突っ込んだグローバルな関数でいいじゃんて思うけどJavaとかC#って何でクラスしかかけないようにしたんだろう
グローバル関数を山ほど使った悪夢のようなプログラムを作れないようにするためじゃね
>>723 君はPCでHDDのルートディレクトリに何でも突っ込む奴をどう思う?
>>721 >>722 各クラス(List<T>にいれるようなdataクラスなど)でループなどで頻繁に利用されるファイルアクセスするクラスなので
数千のdataオブジェクト毎にnewして使うのはよくないと思ったのでstaticにしたのですが、
そうすると利用する各クラスにアプリパスを渡さないといけない、
一応各クラスでApplicationクラスでアプリパス取得することもできるけど
アプリパスは統一したいのでそれぞれで取得するのはおかしいし
Fileクラスのように作るべきか、FileInfoクラスのように作るべきか
staticなFileAccessクラス
class Hoge
{
public Data data{get {return FileAccess.ReadData(ApplicationPath,filename)}
}
List<hoge>をforeachなどで回したりする
>>725 パッケージには入れるっていう部分は煽るのに都合悪いから読み飛ばした?
>>726 FileInfo的に作って、そのインスタンスをstaticで持てばいい
>>728 なるほど、それでやってみます
ありがとうございます
クラスしかかけないのはやっぱりインテリセンスの都合でしょう
別に困らない
>>727 そもそも君のレスなんて追いかけてない。
パッケージや名前空間の直下にメソッドを書ける仕様にすると、
少なくとも規則が複雑化する弊害がある。
partialクラスに関数詰め込んでみればいいんじゃないかな
>>728 うまくいかないんですが・・・
class Program
{
static Class1 c1a;
static Class1 c1b;
static void Main(string[] args)
{
c1a = new Class1();
c1b = new Class1();
c1a.FF = 10;
Console.WriteLine(c1b.A());//10にならない
Console.ReadKey();
}
}
class Class1
{
public int FF { get; set; }
public int A()
{
return FF;
}
}
規則が複雑化しちゃいけないんじゃ yieldとかasyncとかないほうが良かったんじゃないの
まあ、いじめてやるなよ。
>>733 アンカつけるのにレスちゃんと読まないって仕事でも仕様きっちり読み込まずに無駄にバグ出してるタイプだろ
>>738 言っちゃ悪いけど、中二病的な恥ずかしい疑問を上から目線で語る馬鹿が何いってんの。
>>735 そのソースのClass1::FFをスタティックにしないとならないよ。
>>739 自分の見落としが恥ずかしいから論点ずらして棚上げしたね
>>741 馬鹿かお前。
相手がどういうタイプの人間か、などという糞みたいな話に論点をズラしてるのはお前だろうが。
>>740 それをするとこうなるんですが
c1a.FF = 10;//エラー
インスタンス参照でメンバー 'test.Class1.FF.get' にアクセスできません。代わりに型名を使用してください。
そんなに悔しかったのか、だってさ。 ワンパターンの定型文が好きなのって馬鹿の特徴の一つだね。 そして、それを少しも恥ずかしいことだと思わず、むしろドヤ顔で嬉々として語るところも。
>>743 なんかズレてる気がするけど、こうしたら通った。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 謎のスタティック___
{
class Program
{
static Class1 c1a;
static Class1 c1b;
static void Main(string[] args)
{
c1a = new Class1();
c1b = new Class1();
Class1.FF = 10;
Console.WriteLine(c1b.A());//10にならない
Console.ReadKey();
}
}
class Class1
{
public static int FF {get;set; }
public int A()
{
return FF;
}
}
}
>>745 見落とし悔しいね
恥ずかしいね
それを隠すためのレスがまた涙ぐましいね
もしかして恥の上塗り大好きさん?
>>746 つまり???Class1.FF?=?10;感じでやらないとアプリパスを代入できないってことですよね
staticで問題なのはインスタンス化するときに初期化できないところで
そのクラスに絶対に必要なアプリパスを利用する側が忘れてしまう可能性があるということです
staticだからc1b.A()をいきなり使われて、エラーってなると思うんです
別でわざわざ代入してやるなら、最初から静的クラスにします
何言ってんだコイツ
静的クラスは通常パスが必要ですが File.ReadAllText(path); メソッドを使う前に、パスは別で取得しておくことでこういうメソッドを作った場合 public static Path{get;set;} File.ReadAllText(); 利用側がパスを事前に設定しておかなければエラーが出ます 利用する側は事前にそのような工程をする必要があることを知らないわけですから 設計として間違っていると思うんです
そこまで初歩的な質問だとC#スレではスレ違いなレベルだなぁ プログラミング初心者用のスレってあったっけ こういうコンテキストに使うもんじゃないが素人脱するまではsingletonでもググレカス
>>751 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
>>748 それって、シングルトン最強伝説ってこと?
コンストラクタに食わせるとかじゃだめなの??
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 謎のスタティック___
{
class Program
{
static Class1 c1a = new Class1(326);
static Class1 c1b = new Class1(512);
static void Main(string[] args)
{
//Class1.FF = 10;
Console.WriteLine(c1b.A());//10にならない
Console.ReadKey();
}
}
class Class1
{
public Class1(int V = 128) { FF = V; }
public static int FF {get;set; }
public int A()
{
return FF;
}
}
}
>>750 知らないとはどういうことですか?
必要なことはドキュメント化して知らせるべきでは?
設計以前の問題に見えますよ。
>>753 いろんな箇所で参照されるからそれぞれの場所でパス設定したくない
って言ってるからコンストラクタじゃNGじゃねーかな
コンストラクタでパスを指定したインスタンスをstaticで持って使いまわすって言うのなら別だけど
>>753 できました
ありがとう
ちなみにシングルトンはprivateなコンストラクタなので引数指定できませんので間違ってますね
>>754 仕様書以前に、そんなトラップは用意しておかないようにするべきだと思います
そんなどうでもいいことより ファイルがいろんなところから使われてるなら class Hoge { Data Cache; public static Data GetData() { if(Cache == null){ Cache = FileAccess.Read(); } return Cache; } } キャッシュしないといけないんじゃないの
あ''〜〜。まー、意図に添えて何よりだ。
>>756 なんかシングルトンを勘違いしてるようだが
xxx.getInstance().setPath(パス);
>>759 いやいや、それだと事前にClass1.FF = 10;をするのと変わらないじゃないですか
そのクラスのメソッドを利用するには必ずアプリパスが必要なんです
xxx.getInstance();だけでインスタンスを作れるので
xxx.getInstance().setPath(パス);をしない可能性が高いですよね?
FileInfoクラスを思い出してください
var fi = new FileInfo(fname);
かならず初期化するときにパスを通していますよね?
これは必須だからです
ファイルアクセスが自発的にパスを取ってくるのはトラップじゃないのかね ひとごとだからまあいいが…
>>760 パスが設定されてなかったら普通assertじゃね?
>FileInfoクラスを思い出してください >var fi = new FileInfo(fname); >かならず初期化するときにパスを通していますよね? じゃあ初期化するときに必ずアプリパスを指定するのが正しいのではないの?
>>757 それは実際にはしてます
FormクラスがClassMainを利用する
ClassMainはClassAとClassBを使ってFormとやり取りする
ClassAとClassBは相互に利用する
そしてすべてのクラスでDataクラスを利用します
ファイルデータはDataクラスが取得&保持しています
他のクラスではファイルデータを読みに行かないようにすることでシンプルな設計にしようと考えました
>>761 どういう意味ですか?すごく興味があります
一応ファイルアクセスするクラスにパスを設定するのは
Dataクラスです
Form>ClassMain>ClassB>DataClass>static FileAccess.ReadData();
こんな感じです
>>763 と、思うのですが、DataClassが数千もあるのでFileAccessクラスは静的な方が望ましいと思うのです
アプリパス部分は一応解決したけど、メソッドは静的ではないのでやはりメモリが増加するんじゃないかと不安です
見えない部分なので、うまくいっているかどうかいまいち把握できない感じで悩んでいます
>>762 assertという単語は初耳です
static Data Data = FileAccess.Read(固定FilePath); これでいいんじゃないの固定なら 何を問題にしてるのか全くわからんね
いわゆるひとつのバッドノウハウだよな。
外部から入れられたほうが汎用的だけどね 使う前に初期化しなきゃいけないのが嫌だ! っていうのは全く理解不能だね すりゃいいだけ
これはひどい 偏った知識で物事を見すぎだ
>>766 固定パスじゃないです。データオブジェクトにファイルパスが違います
アプリパス+各データオブジェクトのファイルパス
わからないのはアプリパスをプログラム全体で利用する場合
どうするのかがよくわかりません
FileAccessクラスを利用するすべてのクラスにアプリパスを分散するような設計って普通ですか?
>>768 確かにFileAccessクラスは汎用的になりますが、すべてのデータオブジェクトがアプリパスを保持するのって変じゃないですか?
>>753 のやり方をするとなると、一度データを入れたFFに対して何度も入れなおすことになりますよね?
newするごとに同じアプリパスを何度も代入・・・これって変です
class DataPath { static string AppDir = 固定 public string Get(string filename){ return Path.Combine(AppDir, fileName); } } でいいんじゃないの
>>771 パス用のクラスを一つ作って、それをすべてのクラスから利用するという理解でいいですか?
それならグローバルで利用できていいですね!
773 :
デフォルトの名無しさん :2012/09/30(日) 07:19:33.85
,,... ---‐‐‐‐ 、 ___ ./ ヽ 丶 . / /  ̄ / l: : : : : : : : : : : :.:.. l .../ / / |: : : : : : : : : : : :.:.:....|.../ / _/ |______;;;;;;;l .  ̄ ̄ ̄ |;';';';';';';';';';';';';';';';' ミミ| |;';';';';';';';';';';';';';';';' ミミ| ...|─ | | | / ___ |;';';';';';';';';';';';';';';';' ミミ| ._|_ | | / ____ / |;';';r'",==、、ヽ;';' ミミ| .l_/ / / /\ |;';i 〃 . iヽi;';' ミミ! ./ /\___/ヽ |;';| |丶__ノ l|;';';/f /'''''' ''''''::::::\ |';'| |Bull-Dog.||;';';| | + |(●), 、(●)、.:| + |;';|f゙ヽ^(⌒rつl|';';'| |./⌒) | ,,,ノ(、_, )ヽ、,, .::::| |;';|∞_ソY ◯゙゙).|';';'| | -')´ + | `-=ニ=- ' .:::::::| + |';'|´ ~~~ ~~|';';'| |._,.イ\ + \ `ニニ´ .:::/ + |;';| ブルドック |';';'| | .Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./| |;';| とんかつ. |;';';| | / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ |;';| `ノ ━ ス |;';';'| !__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、 ___________________________ __ │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九| │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
>>772 みんなそのつもりでグローバルとかシングルトンとか言ってんのに頭の中の変な設計に凝り固まって全部否定してたじゃん
プログラミング始めて数ヶ月ってとこか。 それ以上やってるなら今まで何やってたんだって話だな。
回答者にとっては面倒なタイプだね
ある別プロセスのAというフォームの全面に常にBという フォームを表示し続けることは可能でしょうか? 同じプロセスだとFormのownerを設定すればいいのですが・・・ ちなみに常に全面のTopMostでの実装は今のところ考えて おりません。 どなたか良い方法知りませんでしょうか?よろしくお願いいたします。
興味で聞いておきたいんだが、その珍妙な仕組みは何故必要なんだ?
>>777 目的のことはForm.Show(IWin32Window owner)で実現できる。
IWin32WindowのメンバはHandleプロパティーのみで、これは単にウィンドウのHWND
を返すだけ。
要するにプロセスAのターゲットのウィンドウのHWNDを何らかの方法で取得できればいい。
>>779 Alt+Tab等で切り替えたらどうなるの?
Aのシステムメニューでウィンドウを移動したらどうなるの?
試せば分かるよ。 それじゃ頑張ってね。
>>780 全面って前面のタイポかとおもったら違うんだw
なら
>>777 は忘れて欲しい。
ついでにちょっと小言。
そういう一般的じゃない言葉を使う場合は、自分がどういう意味で使ってるか
ちゃんと縷々説明しなきゃだめ。
>>778 AのソフトはC++で作られており、AがC#で作られた別プロセスとして
キックします。実際Aのソフトから起動されている(ShowDialogの様な感じ)
ように見せたいのです。
>>779 IWn32Windowを継承したクラスを作り、Handleプロパティの中でAのウィンドウ
ハンドルをFindWindowで取得し試してみました。
しかし、Aのウィンドウをタスクバーから選択するとBのウィンドウは隠れてしまい
ます。常にAの前にさえ表示させれるといいのですが、、
検証環境(WindowsXP、7)です。
はあ?何だこいつ
すいません、777ですが、全面はタイピングミスでした。 全面->前面が正しいです。 申し訳ありません。
安価打ってない奴は安価打って喋れ
787 :
777 :2012/09/30(日) 14:42:50.36
すいません、以後アンカー打ってレスいたします。
すまん、お前に言ったんじゃない
ならAのウィンドウが前面に出たことを検知するしかないな そこまでいくとスレ違いだからAPIスレにでも行け
790 :
777 :2012/09/30(日) 14:52:35.30
なるほどです。APIに頼る以外に解決策はなさそうなのですね、、 自分の考えた方法だと、AとBのウィンドウのZオーダーを比較して ポーリングするしか思いつかなかったのですが、もしかしたらAPIに Aのウィンドウがアクティブ(前面)にきたことを検知(コールバックなど) する方法があるかもしれませんね。 さっそくAPIについて調べてきます!! ありがとうございましたm(_ _)m
>>774 >>771 いや、やっぱりおかしいですね
これだと更に見落とす可能性が高くなる
Fileクラスを利用するのに別のクラスにアプリパスを入れる必要があった場合
入れる必要が有ることに気づきますか?無理ですよね?
仕方がないのでFactoryクラスを作りました
クラスライブラリなんだったら class Config { public string AppDir { get; set; } } class MyFile { private Config config; MyFile(Config config) { this.config = config; } public void SomeMethod() { 処理(config.AppDir); } } こうやるのが常道 Configのインスタンスをグローバルに持ちたかったら ライブラリ側じゃなくてアプリ側のクラスでstaticで持つ
>>783 おかしいなと思って試してみたけど、やっぱりそんなことにはならないけど。
ちゃんと期待通りの動作をするよ。
タスクバーでオーナーのウィンドウを選択した場合でも、ちゃんと子のウィンドウは
その前面に表示される。
試したのはXPだが、Vista, 7でも同様の動作になるはず。
>>792 確かにクラスライブラリです。なぜわかりましたか?
それなら問題無さそうですね。ありがとうございます
それとconfigは複数形のほうがいいと思います
>>783 >AのソフトはC++で作られており、AがC#で作られた別プロセスとして
>キックします。実際Aのソフトから起動されている(ShowDialogの様な感じ)
>ように見せたいのです。
これの意味分かったやついる?
Console.WriteLineの書き方で Console.WriteLine("あ = {0}", str1) のような書き方がありますが、 「あ」のところに変数(string型)を使いたい場合はどうやって書けば良いでしょうか?
C++アプリのウィンドウAからC#製アプリのウィンドウBを 同一プロセスでShowDialogされているかのように表示したいって意味では? 設計的には親(C++)側の責任のような気がするが
>AのソフトはC++で作られており、BはC#で作られています。 >AはBを別プロセスとしてキックします。 >AのプロセスでBのフォームを開いているように見せたいのです。 こうじゃね でもBがAを起動してるようにも読めるな
>>791 見落とすなんてありえない
テストもせずに納品しようとしているのか →してるんだろうな
そのプロジェクトの品質管理は大丈夫なのか →だめだろうな
以下は一般の開発者なら必ずやっていること
・クラス仕様書にパスのセットが必要なことを明記する
・パスがセットされずに呼ばれた場合メッセージとともにアプリケーションを終了させる
どこのパスにあるファイルを参照するのか仕様書に明記しないという選択はまずありえない
PGが読む詳細設計書には仕様書に結び付けてパス設定が必要なことを明記する
クラスが勝手にパスを設定するとしたらその後の仕様変更でファイル配置のパス階層が深くなったような場合に困る
パスが変わっただけで本来修正が不要と思われるDataクラスに修正が必要とか気持ち悪くないのかと
だから通常は外からパスを設定する
>>796 意味分かんないから自分がこう書けたらいいなってコード書いて
で、最初から引数に取ればいいだろって話に戻るわけ
>>796 Console.WriteLine("{0} = {1}", str0, str1);
>>799 テストして動きゃいいって理屈なら静的型チェックとか
switchのbreak強制とかCLRの配列の境界チェックとか全部不要だぞ
>>796 var a = "あ";
Console.WriteLine("{1} = {0}", str1, a);
でOK?
>>799 確かにその通りですね
抽象度を高めるためにもクラス独自でパス取得はしないほうがいいですね
そもそも、そんなことを言った覚えはないですけど
>>801 じゃなくて、
1.Dataクラスはアプリケーション内で唯一のファイルリソースにアクセスする存在なんだからシングルトンにする。
2.アプリケーション起動時にDataのインスタンスをgetInstance()してパスをセットする。
もちろんシングルトンとしなくてもstaticなクラス変数にパスをセットしてもいい
これをやればその後はどこからDataにアクセスしようがパスがセットされた状態でファイルを見に行ける
Dataの各メソッドの先頭でパスがセットされているかチェックする
セットされていない場合は例外を出すなりしてテスト時にミスに気付けるようにする
Factory使いたいって言ってんだから使わせてあげればいいじゃん 何かしら質問者の意見曲げないとお前たち生きておれんのか?
>>805 クラスライブラリのクラスなんでしょ?
テストしづらいし、クラスライブラリごとに設定を持つことになってカオスになるよ
気持ち悪いか? シングルトンにするかは別として、俺が使ってるクラスもそんな感じだな ただし各メソッドでチェックしたりはしない 単にコンストラクタが空パスを拒否するようにしておくのみ
>>802 >テストして動きゃいいって理屈なら静的型チェックとか
>switchのbreak強制とかCLRの配列の境界チェックとか全部不要だぞ
お前のとこはプログラムをテストもせずに納品してるのか
上で言ってるのは全部C#ないしCLRでマネージされた領域についてのものだろ
このケースでの「パスが正しくセットされているか」という点で静的にチェックする機構がC#にあったか?
>>810 だから引数にすれば強制できるだろということ
>>805 いや、ファイルにアクセスするのはFileAccessクラスです
Form.ClassMainLib.ClassB.List<DataClass>[0].FileAccess.ReadData();
>>812 カプセル化のかけらもない酷いコードだな
ジェネリックプロパティ入りました
>>800 ,802-803
ありがとう希望どおりにできました^^
>>809 私もそのほうがいいです。staticクラスの各メソッドがチェックするなんて変ですね
My.Form.ClassMyWebAccesserLib.ClassMainWebAccesser.List<DataClass>[0].FileAccess.ReadData();
ClassMainWebAccesserはWEBアクセスの面倒な手順を自動化する汎用的な仕組み
ClassMyWebAccesserLibはClassMainWebAccesserをMyアプリで利用しやすくするためのラッパー
ちなみにどこからがライブラリになる部分で、どこからが利用する側のコードになるの?
>>816 階層掘るのって格好良く見えるよね。気持ちはわかるが
一般に、深く階層掘るコードは糞(名前空間は除く)。覚えておくといいよ。
>>813 >
>>812 >カプセル化のかけらもない酷いコードだな
いや、実際はパブリックにしてませんよ
わかりやすく構造を書いただけ
実際はFormからは
>>816 のClassMyWebAccesserLibのメソッドまでしか扱えません
820 :
716 :2012/09/30(日) 16:29:40.25
>>817 ClassMainWebAccesserがライブラリ
ClassMyWebAccesserLibがFormと同じ場所にあります
えーとね、分かりやすくって言うんなら文法も糞もない変な識別子の羅列じゃなくて クラス図に起こせるような情報を提示したほうがいいよ?
keyのみが設定されてvalueが空欄のHashtableを順次埋める反復処理で foreachの中でvalueを設定すると 「コレクションが変更されました。列挙操作は実行されない可能性があります。」 というエラーになりますがこういうのはどうやってやればよいでしょうか?
もうDIコンテナ使えよ 神経質そうだからたぶん幸せになれるよ
>>822 キーのコピーを作ってからやればいい
列挙中に列挙元を操作してはいけないので
あとHashtableはもう止めろ HaseSetにしろ
HashTableのカウンターパートはDictionary`1ですが
そうでしたね
間違えた`2ね
829 :
716 :2012/09/30(日) 16:46:44.58
>>808 通常クラスライブラリってコンストラクタに引数渡すだけで使えますよね
794 名前:デフォルトの名無しさん[sage] 投稿日:2012/09/30(日) 15:15:22.86
>>792 確かにクラスライブラリです。なぜわかりましたか?
なんて言ってる奴の台詞じゃねえよ
そろそろ死ぬべきだ、リアルに
どんな世界の通常だ
832 :
デフォルトの名無しさん :2012/09/30(日) 16:50:29.16
,,... ---‐‐‐‐ 、 ___ ./ ヽ 丶 . / /  ̄ / l: : : : : : : : : : : :.:.. l .../ / / |: : : : : : : : : : : :.:.:....|.../ / _/ |______;;;;;;;l .  ̄ ̄ ̄ |;';';';';';';';';';';';';';';';' ミミ| |;';';';';';';';';';';';';';';';' ミミ| ...|─ | | | / ___ |;';';';';';';';';';';';';';';';' ミミ| ._|_ | | / ____ / |;';';r'",==、、ヽ;';' ミミ| .l_/ / / /\ |;';i 〃 . iヽi;';' ミミ! ./ /\___/ヽ |;';| |丶__ノ l|;';';/f /'''''' ''''''::::::\ |';'| |Bull-Dog.||;';';| | + |(●), 、(●)、.:| + |;';|f゙ヽ^(⌒rつl|';';'| |./⌒) | ,,,ノ(、_, )ヽ、,, .::::| |;';|∞_ソY ◯゙゙).|';';'| | -')´ + | `-=ニ=- ' .:::::::| + |';'|´ ~~~ ~~|';';'| |._,.イ\ + \ `ニニ´ .:::/ + |;';| ブルドック |';';'| | .Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./| |;';| とんかつ. |;';';| | / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ |;';| `ノ ━ ス |;';';'| !__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、 ___________________________ __ │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九| │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
アプリ側のクラスで class AppliClass { public static ClassLibraryClass CLC = new ClassLibraryClass(FilePath); } みたいにすればいいんじゃないの
そうしろって何遍も言われてますさかい
最近釣り質問しか来なくてつまらん 本物の質問は来ないのな
837 :
デフォルトの名無しさん :2012/09/30(日) 17:15:37.25
,,... ---‐‐‐‐ 、 ___ ./ ヽ 丶 . / /  ̄ / l: : : : : : : : : : : :.:.. l .../ / / |: : : : : : : : : : : :.:.:....|.../ / _/ |______;;;;;;;l .  ̄ ̄ ̄ |;';';';';';';';';';';';';';';';' ミミ| |;';';';';';';';';';';';';';';';' ミミ| ...|─ | | | / ___ |;';';';';';';';';';';';';';';';' ミミ| ._|_ | | / ____ / |;';';r'",==、、ヽ;';' ミミ| .l_/ / / /\ |;';i 〃 . iヽi;';' ミミ! ./ /\___/ヽ |;';| |丶__ノ l|;';';/f /'''''' ''''''::::::\ |';'| |Bull-Dog.||;';';| | + |(●), 、(●)、.:| + |;';|f゙ヽ^(⌒rつl|';';'| |./⌒) | ,,,ノ(、_, )ヽ、,, .::::| |;';|∞_ソY ◯゙゙).|';';'| | -')´ + | `-=ニ=- ' .:::::::| + |';'|´ ~~~ ~~|';';'| |._,.イ\ + \ `ニニ´ .:::/ + |;';| ブルドック |';';'| | .Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./| |;';| とんかつ. |;';';| | / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ |;';| `ノ ━ ス |;';';'| !__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、 ___________________________ __ │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九| │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
839 :
デフォルトの名無しさん :2012/09/30(日) 17:58:30.86
>>838 ,,... ---‐‐‐‐ 、 ___
./ ヽ 丶 . / /  ̄ /
l: : : : : : : : : : : :.:.. l .../ / /
|: : : : : : : : : : : :.:.:....|.../ / _/
|______;;;;;;;l .  ̄ ̄ ̄
|;';';';';';';';';';';';';';';';' ミミ|
|;';';';';';';';';';';';';';';';' ミミ| ...|─ | | | / ___
|;';';';';';';';';';';';';';';';' ミミ| ._|_ | | / ____ /
|;';';r'",==、、ヽ;';' ミミ| .l_/ / / /\
|;';i 〃 . iヽi;';' ミミ! ./ /\___/ヽ
|;';| |丶__ノ l|;';';/f /'''''' ''''''::::::\
|';'| |Bull-Dog.||;';';| | + |(●), 、(●)、.:| +
|;';|f゙ヽ^(⌒rつl|';';'| |./⌒) | ,,,ノ(、_, )ヽ、,, .::::|
|;';|∞_ソY ◯゙゙).|';';'| | -')´ + | `-=ニ=- ' .:::::::| +
|';'|´ ~~~ ~~|';';'| |._,.イ\ + \ `ニニ´ .:::/ +
|;';| ブルドック |';';'| | .Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./|
|;';| とんかつ. |;';';| | / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ
|;';| `ノ ━ ス |;';';'| !__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、
___________________________ __
│六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九|
│萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
840 :
デフォルトの名無しさん :2012/09/30(日) 18:02:41.05
>>838 ./  ̄ ̄ ̄ ̄\
| |
| (○ |
i.ー―------―|
| ― ― |
| ⌒ ⌒ | ソースあんのかよソースwwww
i ,ノ( 、_)ヽ i
| トェェェイ |
! |┬-l| |
| ー ´ |
.|\ ____ /|
ヽ 醤油 /
` ー ----‐‐ ´
マンガ脳の恐怖、まで読んだ。
842 :
デフォルトの名無しさん :2012/09/30(日) 18:24:07.73
今日スーパーの駐車場での話。 余裕で2台分擦れ違える幅があるのに、前方から来た車が普通に右側通行してきて、オレの車とお見合い。 「えっ!?」と思って周りを見ても空きスペースは無く、駐車するために車を右に振った訳でも無さそう。 それで左に行くように手で合図をしたのだが、対向車のオッサンはハンドル握って固まったまま、動こうとしない。 仕方ないからこっちが相手の車を避けたのだが、一体何だったんだろ。 車が左側通行なんて常識、小学生でも分かるだろうに。
844 :
デフォルトの名無しさん :2012/09/30(日) 19:55:15.26
ピラッ | | ____人 | | | | _,-っ/ \ 、 | | | | / ニ⊃ ,,-―\ ヽ | | | / / r))フ/ - - \\, | ___|________|_ノ / ノ ノ´| (・) (・) ヽ人,_|_ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / | 〈 ノ / よっ、 / / ヽ、 ワ / < やってる? 〈 イー―――` ィ-- 、 \___________ \____ ヽ | | |
845 :
デフォルトの名無しさん :2012/09/30(日) 21:12:51.75
久しぶりに来たらとんでもねえクソスレになっててわろた
おかえり
ん、APIスレじゃねえじゃん 素で間違えた
848 :
デフォルトの名無しさん :2012/09/30(日) 21:39:09.38
__,,,,、 .,、 /'゙´,_/'″ . `\ : ./ i./ ,,..、 ヽ . / /. l, ,! `, .| .,..‐.、│ .| (´゛ ,/ llヽ | ヽ -./ ., lliヽ .| /'",i" ゙;、 l'ii,''く .ヽ / ...│ ゙l, l゙゙t, ''ii_ :.! : /.._ / ヽ \\.`゙~''''''"./ .|-゙ノ/ : ゝ .、 ` .`''←┬゛ l゙ /.r ゛ .゙ヒ, .ヽ,  ゙̄| . | ./ l ”'、 .゙ゝ........ん l / ヽ .`' `、、 .,i゛ .l| ! ''''v, ゙''ー .l、 |l゙ .il、 .l .ヽ .¬---イ .ll゙, ./ ! ,! .!!...!! ,,゙''''ー .| l.",! .リ | l":| .〜''' ,. │ l; :! .|'" ...ノ,゙./ │ l: l「 ! . ゙゙̄ / ! .| .| ! ,i│ | :! .l. } ,i'./ | :! .| :| . / .| :! | ;! " .| :! ! │ │ :!:| ,! i ,! :! , .l, / .l゙ ! :! | , l. | .| :, : v'" .! |'i .ヽ, ./ :! .ヽ _, _/ / .l ゛ ._/ :l゙
849 :
716 :2012/09/30(日) 21:41:13.31
AAって中学の時は楽しかったけど おっさんにもなってこんなことやっている人がいるのかと思うと…
Visual Studio 2010 はこれからどんどん安くなりますかね? 国際学生証で入れてたんですが、そのPCをリカバリかけないといけなくなってしまいました。 でも、当時ダウンロードしたはずのisoファイルが見つからず…。
851 :
716 :2012/09/30(日) 21:50:44.78
2008と2005見る限り安くなることはない なにせ2012はWin7でないと使えんのだぜ
Trial版は製品版と同じ内容 あとはわかるな?
>> 851 もう卒業しているので、もう一度ダウンロードするのは無理かと思われます。 >> 852 そうなんだ。知らなかった。 オークションを見てたらアカデミックパックが1万円以下くらいで出てるけど、 あれって社会人の自分でも買うことできるのかな…?
>> 853 トライアルって90日過ぎても使える裏技あるんですか? (ってこんなことを聞いたら怒られる?)
>>856 まずWindowsが10本あれば900日使えるからその頃には次のVS出るでしょう
>> 856 なるほど! ある程度の手間はかけないといけないということですね。
>>855 とりあえずVS2010 Ultimated Trial版のisoを落とします
インストールして起動します
あとはわかるな?
>> 858 なんとなく。 とにかくisoファイルが無くなっているのがショックだったんですが、 しばらくトライアルで使うことにします。 家でUltimateが使えると思うと少し気分が復活しました。
860 :
デフォルトの名無しさん :2012/09/30(日) 22:13:23.80
861 :
デフォルトの名無しさん :2012/09/30(日) 22:16:01.17
パワーマシンならVMware player上に
>>860 をやればいい
パワーマシンじゃなければ実機に
>>860 を構築すればいい
>> 860,861 そういうことなんですね。 とても勉強になりました。
体験版何度も入れ直したら割るのと変わらないよな
>>と数字の間にスペースを入れるのやめろ
865 :
デフォルトの名無しさん :2012/09/30(日) 23:21:40.56
>>863 でも実際のところはなんどもやらねえけどなw
仕事で使うならお試しで終わって買うだろうし
趣味レベルだとVC++でwinアプリでも書かない限りはExpress版で十分だし
>> 864 >> 864 >> 1-1000
アルティメット使っているけどテスト実行やUMLやチームなんちゃらとか使ったこと無い
学生の時バイト先の社員が俺の学生証を無断で使って 実売60万ぐらいするのを10万で買ってた
.netアプリのUML図を作るツールは簡単に導入できたはずだけど VC++アプリのUML図を作るツールは確かMSDNにログインしないと落とせないよね つまりそういうことだよ 仕事でやる上では買うしかない
下々の会社だとよくあること
ぶっちゃけシリアルぐぐればいいだけ
あうあう。
大工とか医者とか、プロフェッショナルは、高価でも良い道具を求める。 無料の道具を探すのはプログラマくらいだ。
なぜプログラマは無料に拘るのか?で一冊書けるな
ソフトは製品並みの道具を親切な人が無料で作って公開してくれるのに対して 同じ機能ならコストのかからないほうを選ぶ それにいくらでもコピーが作れる 大工とかはそうはいかないからな まさかのこぎりや金槌をコピーするわけに行かないし
売り物のソフトウエアは基本的に高品質なので、その派生SKUのソフトウエアもまた高品質である!っていう前提だよね。 同じソフトには個体差って無いからね。
無料で広く使われたソフトのほうが ノウハウも蓄積するし信頼性も上がるしな 第一無料だし
まあVSは許す 高い金払う価値があると思わせるだけの品質があるわ 無料のゴミとは比較にならん
VS無料で使えるじゃん
個人じゃ使わない機能詰み過ぎってのもある
上位の高いエディションが売れてるからこそ 高品質な無料版出せるんだぞ 無料だけにしたら投資が減ってゴミになるわ
OS以外赤字でーす
Visual StudioがなきゃOSその他いくら新機能作っても誰にも使ってもらえずに全部無駄になっちゃうんだから
OSより先にVSがあったわけじゃないしw
新機能作ってもBorlandにサポートしてもらうために必死で説得したり大金を払ったりしなきゃいけないんだぜ Visual Studioがないと
Borlandまだあるのか?
ボーランド「には」ない
TronOSが禁止にさえならなければ、誰もWindowsなんて使わなかったのに
あかんよ TRONは発想が貧弱過ぎた 俺本持ってるからな
890 :
デフォルトの名無しさん :2012/10/01(月) 18:48:23.31
お兄ちゃんへ ちょっと調べものがしたくて、お兄ちゃんのパソコンを借りて インターネットをしようとしたら、最初にここが表示されました。 こんなところをお兄ちゃんが読んだり、書いたりしているとは 知りませんでした。すごくびっくりして、お母さんにも見せたら、 お母さんは呆れたような顔をして部屋を出て行ってしまいました。 悪いと思ったけど、お兄ちゃんのメールも読んでしまいました。 見なければ良かったと思っています。 お兄ちゃんに直接は言いにくいのでここに書きます。 インターネットの掲示板を荒らすのはもうやめて。 今なら知らないふりもできるので・・・おねがいします。 お兄ちゃんは空港に行ったことなんてないでしょ。 もうやめて。 妹より
空港に行ったことなかったのか・・・
妹がいる奴はそれだけで既に勝ち組
ちょっとしたウェブブラウザを作ろうと思っているのですが、 プロの人がソフト開発をする場合、まずどこから作り始めますか? ・インターフェイス、抽象クラス ・具象クラス ・クラス図
894 :
デフォルトの名無しさん :2012/10/01(月) 18:59:10.78
息子の友達の姉さんがUFOキャッチャーで取ってきた AKBフォトクロック(Type-A)を息子の友達からもらったけど 連続秒針なのに作動音がうるさくて電池を抜いちゃった… ダメ元でゲームセンターに電話したら 交換してくれると言われたから 交換してもらったけど結局異音発生しまくりで 電池を抜いた… 異音は仕様だな… コチコチ音がうるさいから連続秒針にしているはずなのに 連続秒針が連続時に異音が発生しちゃって本末転倒… 異音連続発生の連続秒針時計だったら コチコチ秒針のほうが100倍まし…
895 :
デフォルトの名無しさん :2012/10/01(月) 19:00:19.02
>>893 マザーボードにCPU装着するところから。
896 :
デフォルトの名無しさん :2012/10/01(月) 19:01:41.17
今日ひとりで、いつも行く喫茶店でコーヒーを飲んでいたら。 一つ前の席にOL風の女性が座っていて、それが超美人! 僕はボーと見惚れていると彼女がハンドバックを持ったままトイレへ行きました。 5分位して帰って来たので、・・・もしやウンチでもしたのか? 今行けば彼女の便臭が嗅げるかも!・・・と思い僕もトイレに入りました。 ちなみにトイレは男女兼用です中に入ると香水の香だけでした。 失敗かと思い念のため汚物入れを開けると。 あ り ま し た 。 温もりの残るナプ感激して広げると信じられない位の量の 生 レ バ ー が ドッサリと乗っていました。 その場で全部口に含み僕はまだ暖かい生レバーを全部、口に入れてしまいました。 こんなに大量のレバーを一度に入れた事はありません。 彼女は会社から帰る途中ナプキンを取り替えられ無かったので 溜まっていた分が出たのか半端な量ではありません。 口が膨らんでしまう位の固まりです。 僕はナプキンをポケットに入れ出ました席に戻ると彼女はまだ居ました。 僕の方を見ています。少し頬っぺたが膨らんでいましたが、 まさか僕の口の中に自分の生理が入ってるなんて思うはずがありません! 僕はゆっくりと彼女の顔を見ながらホカホカの生レバーを味わい食べました。 ズルッと喉を通りました。
898 :
893 :2012/10/01(月) 19:04:36.73
>>897 メモ帳などに日本語で書き出すのですか?
それともメソッドを書いていくのですか?
要件定義, アーキテクチャ, 使用ライブラリ, 環境, UI, 色々検討して固まったら とりあえずプロトタイプ作成 具象クラスからでも適当に
900 :
デフォルトの名無しさん :2012/10/01(月) 19:33:15.91
>>899 用件B定義って何ですか?
UIって何ですか?
わからないので、わかりやすくおしえtwください
ググれ それで分からないんなら無理だから諦めろ
まず絵を書いてどんな雰囲気のアプリか決めようぜ
903 :
デフォルトの名無しさん :2012/10/01(月) 20:32:09.39
ブラウザならUIなんかどうでもいいだろ 何がしたいか全部書き出すのが先
ターゲットとするユーザー層をまず確認しようか
906 :
893 :2012/10/01(月) 20:40:30.51
紙に書け
C#以前の問題じゃないか
909 :
893 :2012/10/01(月) 20:48:53.71
欲しい機能をメモ帳に書いた後 次は何からはじめますか? ・インターフェイス、抽象クラス ・具象クラス ・クラス図
910 :
デフォルトの名無しさん :2012/10/01(月) 20:49:04.85
911 :
デフォルトの名無しさん :2012/10/01(月) 20:49:53.04
神頼み 村田製作所の社長に習って
913 :
893 :2012/10/01(月) 20:54:22.68
一応文法やデザインパターンなどひと通りみたけど 実用的なアプリケーションを作るまでの過程を書いているサイトがどこにもないです こういうのはプロの人なら自然と学んでいくんでしょうけど 趣味でやっている人には全く見当がつきません 機能を書き出すようなことも今までしていませんでした いきなり具象クラスを書いて、欲しい機能が途中で出てきて でもそれを実装するだけの能力がなくて、また一から作り直したりしていたので 書き出す作業は必要だなと思いました
思いついたことからやればいい
TDDやれ 嫌でもそれっぽい設計になるし仕様もクリアになる
ふつうすぐにでもコーディングするだろ。 もう飽きてきたな、このネタも。
917 :
デフォルトの名無しさん :2012/10/01(月) 20:59:46.84
>>913 趣味でやってるやつをなめすぎ
お前の頭が悪いだけ
C#なにそれとか言ってる時点でいい加減設計の話はスレ違いだから消えろ
919 :
893 :2012/10/01(月) 21:13:06.38
>>910 の発言は私じゃないですよ
私の質問を邪魔しているひと
多分あなたです
>>916 飽きるぐらい何年もこのスレに常駐している無能なお前が悪い
>>919 C#の質問しろよ じゃなければ邪魔だから消えろと言ってんだが。
低脳が。
924 :
デフォルトの名無しさん :2012/10/01(月) 21:29:48.85
おいエスパー 早く答えて差し上げろ
俺が煽らなくても火がついてるのは久々だな こういうのもたまには悪くない
>>923 何のためにスレが分かれてるか分かる?分からないよなお前には。
低脳だからな。
まずウェブブラウザを作らなくて済むようになる方法をどうにか考える どうしても作らなきゃいけないなら一番特徴的な機能をまず作る で、テストしてクオリティを上げていく 動かせないコードはいくら書いてもゴミ箱に捨てるハメになる可能性が高いから とにかくまず動くようにする インターフェースなんかを作り始めるのは愚の骨頂 どうしても必要に迫られるまで抽象化は避けないと 意味不明のコードになる
929 :
893 :2012/10/01(月) 21:57:06.98
>>927 クオリティを上げるとはどういうことですか?
機能を増やすということでしょうか?
>インターフェースなんかを作り始めるのは愚の骨頂
>どうしても必要に迫られるまで抽象化は避けないと
確かに抽象化しながら作っていると、いったいどのクラスが何をしているのか
よくわからなくなったりします
でも.NETライブラリやプロのコードを見ると
メソッド内のコードがほとんど1行だったりするんですが・・・
>>929 コード量を減らして副作用のないコードにリファクタリングするとかじゃね?
完成したコード量は少ないほうがいいこと多いよ。
>>929 機能を洗練させたり追加したりする
メソッド内のコードが一行なことと抽象化とは関係ないでしょ
932 :
893 :2012/10/01(月) 22:22:08.33
>>930 >>931 そこら辺がよくわかりません
リファクタリングするということは、インターフェイスや抽象クラスを作ったりして
継承、多様性を駆使しながらやることだと思ったのですが違いますか?
共通のコードをメソッドにまとめたりするのもリファクタリングだぞ 後で絶対増えない分岐を多態に置き換えたりするのは馬鹿
頭を割って、中を見てみたい
935 :
893 :2012/10/01(月) 23:03:02.73
>>933 >後で絶対増えない分岐を多態に置き換えたりするのは馬鹿
そんな極論めいた仮定に基づいて話しているレベルじゃないんですよ
例えばニコ動とyoutubeから動画をダウンロードするソフトを作る場合
(対応するサイトは今後増えやす可能性があるとする)
1つの具象クラスだけ作りますか?
それとも、どちらにも共通した抽象クラスを作ってから
具象クラスを作りますか?
まあ妄想は過程ですらないからな さっさと寝ろガキ
そんなもん具象クラスだけで十分 分岐でやってられないほど増えてから考えろ
分岐よりわかりやすい多態なんてこの世にはないから 多態自体がわかりにくさの根源
939 :
893 :2012/10/01(月) 23:30:56.04
どうやらオブジェクト指向を理解している人はいないようなので質問を取り下げます
ああそうだ 俺はしっくりこないんでな
941 :
893 :2012/10/01(月) 23:38:33.50
>>936 私のは具体的な仮定ですが
>後で絶対増えない分岐を多態に置き換えたりするのは馬鹿
あなたの「後で絶対増えない分岐を」は妄想じみた仮定ですね
「絶対」なんて言葉を使う稚拙さは、その後の「馬鹿」を確定的にさせるための
条件でしか無く、頭の悪さが露呈されていますね
過程を仮定と読んだのか? 一歩も踏み出してないって言ってんだよ馬鹿が
943 :
893 :2012/10/01(月) 23:40:36.55
>>940 私はプロに聞いているんであって
VB6で止まっているような人には聞いてません
まず頭と首ついてるか確認してくれ。 あと人並みの知能があるかも頼む。
945 :
893 :2012/10/01(月) 23:42:18.95
>>942 主語が抜けてますよ
馬鹿っぽく見えるから日本語はちゃんと使えてからでかい口叩いたほうがいいですよ
全レスはじまた 暇だねあんたも
妄想に付き合わされるほうは迷惑だよ 100行プログラム書いてから喋って
948 :
893 :2012/10/01(月) 23:44:54.86
ここは馬鹿しかいなようなので他をあたります
くるしゅうないぞ
rubyばっかやってるとこうなるって見本だな uyだよこいつ
前はもうちょっとまともな回答者がいたんだが 今は低能ニートしかいなくなったな
一般に使いまわし効くコードのほうが少ないよ 使いまわし出来るように汎用的な まだOOPに幻想抱いてんのかコード書くとたいていオーバースペックになる
コードコンプリートには、再利用できるコードは頑張って書いて3割だと書いてあったな 素人が頑張ってどのくらいになるのか試して報告してくれたまえ
後で必要になるかもしれないから…は死亡フラグ
汚部屋住人と同じ考えだ
そういう馬鹿の一つ覚えもどうかと思うけどね。 ケースバイケースだし程度問題でもある。
後で使うかも もったいないから残しておこう ↑2大デスマーチ製造機だな 再利用性も後方互換性も適度に切り上げないと地獄を見る
増えるコメントアウト
無視アノテーションが付けられたままのテスト
とにかく多態はもうやめた方がいい C#には関数型とラムダがあるんだからもっと直截に記述すれば良い
gotoより遥かにコードをめちゃくちゃに分散させ読みづらくするのが多態 それでもラムダをいくつもいくつも書くよりシンプルになることもあるのでたまに使わざるをえないのが悲しい
じゃあお前らなら NikoDo.Download(); Youtube.Downlonad(); ってやっちゃうわけ? 抽象クラス作っておけば DogaSite.Download(); 一行で済むのに? 利用する側は動画サイトが増えてもほとんどコード変えずに 動画をダウンロードできるのに、それをやらないと? そっちのほうがわかりにくいし、コードが無駄に長くなる 拡張性も保守性もない
>>963 はいはい話する気ないからね
帰っていいよ
くそうぜーなこいつ。 さっさとブラウザでも便座でも作ってろ。
>>962 WebRequestクラスの内部も分散しまくっているが使いづらいか?
クラス内部を意識しないと利用できないような糞設計だからわかりにくいだけだろ
あれが使いやすいと思うのか C#しか触ったことなさそうですね
Method(Func<DownloadedData> download) もし必要ならこういうのをうけとればいいわけ めちゃくちゃにクラスが増えてコードが分散して意味不明にならなくて済む ほとんどの場合は DownloadedData Download(string url) Method(DownloadedData data) これでいいし個別にやり方が違うなら DownloadedData NicodoDownload(string url) DownloadedData YoutubeDownload(string url) Method(DownloadedData data) これで済む これじゃどうしてもダメだというなら上のラムダを使えばいい 多態は使っちゃダメ
>>961 複数のViewに同じ機能をつけるにはどうするわけ?
それぞれのビューごとに機能をつけるの?w
アスペの発言を解読しようとする時間ほど無駄なものはないって格言は本当だったんや
当たり前だろ 理解して何か得すると思ったか?
分かり合えると思っていた時期もありました
だいたいWebRequestをHttpWebRequestにキャストするところから始まるからな 汎用化するところは自分で決めてラムダで与えて他の余計なメンバは捨てることでコードをシンプルにしたいし こういうオブジェクト指向チックなやり方は結局無意味でわかりにくくなるだけだわな
例えば、複数のFormの背景色を赤にする場合どうする? 普通List<form>に全部ぶっこんで一気に処理するだろ? そういうことやらないのか?
WebRequestを引き合いに出されるとなんともいえないな あれは誰がどう見ても使いにくいだろ もっと他の例にしろよ…
>>968 マジで言っている意味がわからん
>DownloadedData Download(string url)
これは想像つくが
>Method(DownloadedData data)
これって何?何をしているの?
dataを加工するメソッドか?
加工の仕方もそうだが、ダウンロードの仕方がまず違うだろ?
DownloadedData NicodoDownload(string url)
DownloadedData YoutubeDownload(string url)
このふたつのメソッドの内部コードはおそらく8割が同じコードのはず
基本クラス作って共通部分を1個にまとめた方が良くないか?
Action[] setColorRedActions = new Action[]{ () => { form1.SetColor(Color.Red) }, () => form2.Color = Color.Red, form3.Color = 0xff000000, ... } こういうふうにすればFormの馬鹿みたいにたくさんある他のメンバへのアクセス権を無闇に外部に露出しなくて済むから問題をシンプルに表現できるし あらかじめ先を読んで継承関係を作っておいたりシグネチャを合わせたりするような難題に取り組まなくて済むから こっちの方がいいんだよ
>>977 共通なコードがあるなら
NicodoDownload(string url)
{
...
CommonProcess(arg)
...
}
YoutubeDownload(string url)
{
...
CommonProcess(arg)
...
}
これでいいでしょ
それでもダメな入り組んだ再利用をするならラムダを渡せばいい
犬と猿が乳繰り合ってるよママ〜
わかんね ActionとかFuncとかそんなの習ってないぞ デザインパターンのサイトもJavaばっかりだから デリゲートなんて出てこないしさ
言い訳がしょべえんだけど
デザパタとかオブジェクト指向は ラムダがなかった時代に高階関数をエミュレートするために無理やり作られた バッドノウハウ集でしかないんだよ
>>980 それにさ、1つまともなソフト作るとなると
ただダウンロードできればいいってもんじゃないんだが
urlだけ引数にとっても、更新がなかった場合の処理
具体的には、キャッシュを読み込むか、ローカルからデータ読み込むかってなるし
それにデータはニコ動とようつべで別々に保存しているわけで
それをどうやって対応するわけよ?
よくある解説サイトみたいに要点だけ合致するようなのじゃなくて
実務レベルで実際にどうするかが知りたいんだけどね
ちゃんと意識して書いてる?
>>985 殆どの場合は共通な処理をきちんと一つ一つ関数に書いていって必要なところに分岐を書けば一番シンプルにかけるよ
MVVMの最小構成のサンプルと詳しい解説している日本語サイトないでしょうか。 モデル・ビュー・ビューモデルの蘊蓄ばかりで、挙げ句の果てにExpression Blendないとダメとかふざけんなって感じです。 View < ViewModel < Modelは理解できたんですが、それぞれのレイヤーに書いていい物は何なのか?何を書くべきなのか?を簡単にわかりやすくサンプルと一緒に解説してるサイトが皆無なんですが・・・。 そもそもVS2012でもまともにテンプレートがないとか使って欲しいのか欲しくないのかM$が理解できません・・・。
実務のことは実務やれば分かるよ 働け
>>987 ここよりはWPFスレで聞いた方が適してるのでは?
そもそもWPF流行ってませんので無駄だと思いますが
パターンなんか死ねばいいんだよ なにがMVVMだよ
>>968 このやり方やるとメソッド名がとてつもなく長くなるわw
マイクロソフト謹製クソの山だよ
動きゃいいんでないの
なんで2chは廃れたんですか?
C#のプロジェクトで自作のライブラリーをダイナミックリンク(*.dll)じゃ無くて スタティックリンク(*.lib)で管理することは可能ですか? ライブラリは複数のプロジェクトで使いたいけど、 できれば配布は単一のモジュールにしたいです。
ソースを配ればいい
>998 thx でも、NET3.0以上をサポートして無いみたいに見えるんですが できれば3.0以上もサポートしたいです。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。