ふらっとC#,C♯,C#(初心者用) Part67
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/12/16(木) 18:23:33「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/
■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0052デフォルトの名無しさん
2010/12/18(土) 21:05:28ブラウザはサーバーが生成したHTMLをただ表示してるだけで
C#のコードは全部サーバー側で動作するんだよ? Windowsアプリとは全く違うんだけど理解してる?
ブラウザ側でC#動かして画像処理とかやりたいならSilverlightでも使わないと
0053デフォルトの名無しさん
2010/12/18(土) 21:14:17お前アホか。GUIコンポーネントがサーバで使えるわけねーだろ。
WebとHTMLを基礎から勉強してこい。
0054デフォルトの名無しさん
2010/12/18(土) 21:22:33silverlightググってみた、やりたかった事全部行けそうです!
マジで感謝!MS最高だわwww
>>51
PictureBox使わないと背景画像に透明の画像かぶせて、
その上に点とか線描画できないと思ってたんだ
>>52
そりゃ.NETって言うぐらいだから、Webアプリ用のフレームワークでしょ?
俺バカだけどそんぐらい理解してるっつーの!
0055デフォルトの名無しさん
2010/12/18(土) 21:31:52SilverlightはWinFormsとは比べ物にならない表現力があるけど
ASP.NET以上にWinFormsの知識が役に立たない
0056デフォルトの名無しさん
2010/12/18(土) 23:28:460057デフォルトの名無しさん
2010/12/19(日) 00:06:09Flashが辛うじて残るかどうかだ
0058デフォルトの名無しさん
2010/12/19(日) 00:10:17HTML5は軸が違うから比べても意味ない。
Windows 系の GUI が Silverlight になってく。
ただ、置き換わるのは数年後かねぇ。
「Silverlight の時代」って言うにはちょっと早い。
0059デフォルトの名無しさん
2010/12/19(日) 00:12:240060デフォルトの名無しさん
2010/12/19(日) 00:12:36簡単にビジネスアプリケーションを配布するための仕組みになった
ClickOnceに近い位置づけ
0061デフォルトの名無しさん
2010/12/19(日) 00:19:46極端な話だけどやろうと思えはWinFormsやWPFもSilverlightの上で動かせるね
単にクライアント専用の簡易版.NETを目指してるんだよ
0062デフォルトの名無しさん
2010/12/19(日) 00:20:540063デフォルトの名無しさん
2010/12/19(日) 01:01:05それがたぶん、数年後。
0065デフォルトの名無しさん
2010/12/19(日) 01:14:340066デフォルトの名無しさん
2010/12/19(日) 01:18:130067デフォルトの名無しさん
2010/12/19(日) 01:33:50WP7かなんかと勘違いしてるだろ
SilverlightはVS2008や2010で正式にサポートされてるし
Express版のWebDeveloperもVC#と同時にリリースされてる
0068デフォルトの名無しさん
2010/12/19(日) 01:39:4049ですが、時代はWPFだと思うよ!!
試しにWPFでプロジェクト作成したら
普通にIEから、Windowsフォーム呼び出せたwww
Win32も使えるみたいだし、既存のWindowsアプリをWeb化するならWPF最強じゃん!!
おかげで1人月の案件が3日で終わりそうwww
0069デフォルトの名無しさん
2010/12/19(日) 01:44:21それ、対応してるブラウザー少ないよ。
それでいいって言われる案件なら、普通にデスクトップ版の WPF でいいと思うんだけど。
ClickOnce 配布いいよ。
0070デフォルトの名無しさん
2010/12/19(日) 02:34:46安心してwpf勉強するわ。
0071デフォルトの名無しさん
2010/12/19(日) 10:27:010072デフォルトの名無しさん
2010/12/19(日) 12:13:39XBAPなんてウインドウ枠がIEになっただけ
0073デフォルトの名無しさん
2010/12/19(日) 12:21:36silverlightにしろwpfにしろ、クライアントだけで完結するものをwebアプリと呼ぶのかどうか
0074デフォルトの名無しさん
2010/12/19(日) 12:30:18webサービスじゃなイカ
0075デフォルトの名無しさん
2010/12/19(日) 12:31:18いや、WCF サービスとかでサーバーサイド作っておけば、
例えクライアント側がデスクトップアプリであっても Web 化と呼べるとは思うが。
0076デフォルトの名無しさん
2010/12/19(日) 13:29:56処理がサーバなのかクライアントなのかなんて関係ない。
0077デフォルトの名無しさん
2010/12/19(日) 13:40:13俺らから見たらそうでも一般の利用者からしたらWeb化=ブラウザ上で使えるって思うかと
0078デフォルトの名無しさん
2010/12/19(日) 13:41:400079デフォルトの名無しさん
2010/12/19(日) 13:54:15あほな顧客が多くて困るって奴ですね。
いや、困らないのか、むしろその方がぼったくれて。
0080デフォルトの名無しさん
2010/12/19(日) 13:58:210081デフォルトの名無しさん
2010/12/19(日) 15:15:45可能な環境がないと動かせないからなw
何の意味もありません
0082デフォルトの名無しさん
2010/12/19(日) 15:36:31サービス化してデータだけプログラム的に取れるようにしとくことだと思う。
正直、HTML5が理念通りに完全に互換性保てるとは思えないし、
UI 技術はすぐに入れ替わるし、プラットフォームごとに変わる。
で、そのサービスを受け取る側のクライアントアプリは、
もうクロスとか気にせず、WPF とかで作ればいいと思う。
凝ったUI作るなら、多重開発した方がマシ。
0083デフォルトの名無しさん
2010/12/19(日) 15:49:37>>76-77みたいなのはそんなにおかしくないな
0084デフォルトの名無しさん
2010/12/19(日) 15:52:06業務系だとあれよ、Webですキリッって言いつつ、
帳票印刷の部分はClickOnceでデスクトップアプリ起動とかが普通よ。
0085デフォルトの名無しさん
2010/12/19(日) 16:00:44うるせえ
0086デフォルトの名無しさん
2010/12/19(日) 16:11:02まさにそういうニーズに応えるのがSilverlightでしょ
妙なイメージが付いちゃってるから名前変えればいいのに
0087デフォルトの名無しさん
2010/12/19(日) 16:16:161人月が3日でできたとか言ってたらダメってことだ。
0088デフォルトの名無しさん
2010/12/19(日) 17:21:06は?残りの時間、自分の好きな事できるんだぜ
全然ダメじゃ無いじゃんwww
0089デフォルトの名無しさん
2010/12/19(日) 17:33:40「1人月が3日になります」なら普通納得してもらえるけどもね。
0090デフォルトの名無しさん
2010/12/19(日) 17:45:37じゃあ安くしてって言うでしょ。
それでも1人月払うよっていうならすごいいい客だな。
しっかり捕まえておかないと。
0091デフォルトの名無しさん
2010/12/19(日) 18:27:030092デフォルトの名無しさん
2010/12/19(日) 18:44:33未だにLinq、ADO.Net,SQLがさっぱりわからないし
必要と思ったこともない
ラムダ式は一応やるけど
0093デフォルトの名無しさん
2010/12/19(日) 18:50:23存在すら知らないとそれは選択肢を減らすことになるからどうかと思うけど。
0094デフォルトの名無しさん
2010/12/19(日) 18:51:06DBを使う必要がなければとことん必要無い
0095デフォルトの名無しさん
2010/12/19(日) 18:51:400096デフォルトの名無しさん
2010/12/19(日) 18:53:07リストを保存したりするのはよくあることだと思うんだけど
そういうときに使うと便利なの?
0097デフォルトの名無しさん
2010/12/19(日) 19:15:310098デフォルトの名無しさん
2010/12/19(日) 19:19:36そこまでのデータ扱うか?ってあるけどなw
肥大化してもっさりとか言われながらw
0099デフォルトの名無しさん
2010/12/19(日) 19:21:390100デフォルトの名無しさん
2010/12/19(日) 19:37:410101デフォルトの名無しさん
2010/12/19(日) 19:40:33DBと関係なくLINQ便利だよな
0102デフォルトの名無しさん
2010/12/19(日) 19:44:120103デフォルトの名無しさん
2010/12/19(日) 20:17:060104デフォルトの名無しさん
2010/12/19(日) 20:26:390105デフォルトの名無しさん
2010/12/19(日) 20:46:37プログラミングの専門書も書いている
しかし、SQLは知らん
0106デフォルトの名無しさん
2010/12/19(日) 20:52:59ちょっとしたことなら一々DBなんて使わない、めんどくさい
SQL触らないヤツは触らない
0107デフォルトの名無しさん
2010/12/19(日) 20:55:44操作対象がDBのテーブルだろうが、コレクションだろうが関係ない。
0108デフォルトの名無しさん
2010/12/19(日) 21:00:270109デフォルトの名無しさん
2010/12/19(日) 21:00:410110デフォルトの名無しさん
2010/12/19(日) 21:05:27めっちゃ簡単。サーバーいらんし。
>>109
そうなの?
0111デフォルトの名無しさん
2010/12/19(日) 21:11:040112デフォルトの名無しさん
2010/12/19(日) 21:43:090113デフォルトの名無しさん
2010/12/19(日) 21:51:08個人でDBが必要なことなんてないだろ
0114デフォルトの名無しさん
2010/12/19(日) 22:24:05組み込みの軽量データベースは使うだろ。
0115デフォルトの名無しさん
2010/12/19(日) 22:37:200116デフォルトの名無しさん
2010/12/19(日) 23:26:13InitializeComponetで各コントロールのサイズを設定した後
this.ResumeLayout(false);this.PerformLayout();すると解像度に合わせてサイズが
変更されます。その時、ビルドした環境の解像度がどこかに記憶されているように
見えるのですが、一体どういう仕組みになっているんでしょうか?
0117デフォルトの名無しさん
2010/12/19(日) 23:30:12なんでそう思ったの
0118デフォルトの名無しさん
2010/12/19(日) 23:31:30これかえ?
0119116
2010/12/19(日) 23:45:53>>117
140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、140dpi以外で実行するとスケーリングされるからです。
0120116
2010/12/19(日) 23:46:52140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、96dpi以外で実行するとスケーリングされるからです。
0121116
2010/12/20(月) 01:47:57140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、96dpi以外で実行するとスケーリングされるからです。
0122デフォルトの名無しさん
2010/12/20(月) 09:35:59EXEの実行時にエラーはは出ません。
いろいろ調べたのですが、「BackgroundWorker を使用してスレッド セーフな呼び出しを行うには」
というのを試したのですが、うまくいきませんでした。
いまいち警告の内容もわからないのですが、MSDNの表現が解りにくくて・・・
どこか解り易い解説かサンプル知りませんか?
警告の出るコントロールの処理をBackgroundWorkerのイベントハンドラで実行するようにするだけじゃ駄目なんですかね?
0123デフォルトの名無しさん
2010/12/20(月) 09:37:39デザイン時と実行時にコンストラクタが動いているためだと思いますが、これを回避するにはどうしたら良いでしょうか?
現在は初期化用メソッドを用意して、外部から呼び出してもらうことで回避しています。
0124デフォルトの名無しさん
2010/12/20(月) 10:00:39フォーム.Designer.csに以前追加した際のデータが残っているのであわせて削除する
0125123
2010/12/20(月) 10:22:11ありがとうございます。
ただDesignModeは、コンストラクタでは常にfalseを返すようです。
とりあえず、コンストラクタでアイテムをクリアして追加するようにして対処します。ありがとうございました。
0126デフォルトの名無しさん
2010/12/20(月) 10:30:52http://stackoverflow.com/questions/282014/net-winforms-design-time-rules
0127123
2010/12/20(月) 10:51:41以下のようにして対処できました。ありがとうございます!
if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.Equals("VCSExpress")) {
//デバッグ時
} else {
//実行時
}
0128デフォルトの名無しさん
2010/12/20(月) 12:57:18まずは例外がどこから発生してるのか確かめる。
BackgroundWorkerのDoWorkのイベントハンドラは別のスレッドで実行されるからコントロールを触ってはいけない。
コントロールを触るにはControl.Invokeを使ってもいいけど、BackgroundWorkerならReportProgressメソッドを呼んで
ProgressChangedイベントでコントロールを触る方がいい。
ProgressChangedとRunWorkerCompletedイベントはUIスレッドで実行されるのでコントロールを直接触っていい。
0129デフォルトの名無しさん
2010/12/20(月) 23:15:430130デフォルトの名無しさん
2010/12/20(月) 23:16:400131デフォルトの名無しさん
2010/12/20(月) 23:18:590132デフォルトの名無しさん
2010/12/20(月) 23:23:350133デフォルトの名無しさん
2010/12/20(月) 23:24:02はじめて便利そうに思えた
0134デフォルトの名無しさん
2010/12/20(月) 23:29:090135デフォルトの名無しさん
2010/12/20(月) 23:36:59とあるサイトは学生名簿とか作るわけねーよってつっこみたくなる
0136デフォルトの名無しさん
2010/12/20(月) 23:39:16SQL構文、匿名メソッド、デリゲート、ラムダ式を知らないと理解はできないよな
でも、最初は丸暗記でいいんじゃね?
0137デフォルトの名無しさん
2010/12/21(火) 00:08:210138デフォルトの名無しさん
2010/12/21(火) 00:10:030139デフォルトの名無しさん
2010/12/21(火) 00:13:35実用的な例
B= A.Select(a => "[AV]"+a);
0140デフォルトの名無しさん
2010/12/21(火) 00:15:190141デフォルトの名無しさん
2010/12/21(火) 00:17:540142デフォルトの名無しさん
2010/12/21(火) 01:08:05その後でfor/foreach使うのって、副作用がある処理をしたいとか、LINQで書くには複雑になる場合。
foreachの使用頻度が減るのは当然じゃないか?
0143デフォルトの名無しさん
2010/12/21(火) 01:21:45最後が Aggregate系で終わる場合も多いしね。
ただ、結局最後が foreach なんなら、 .ForEach() とかは使わず普通に foreach したい。
0144デフォルトの名無しさん
2010/12/21(火) 01:25:48定義済みデリゲート Func<T,TResult> で
Func<int,int> func = (int a) => { return a*a; }
ラムダ式ルール
・引数が1つなら()省略可
・引数の型の推論でint省略可
・単文なら式形式で戻り値おk
って感じで下のように書ける。
Func<int,int> func = a => a*a;
これをSelect()の引数に渡す。
var A2 = A.Select(func);
デリゲートを作らず、その場で匿名メソッドで書いたのが
var A2 = A.Select(a => a*a);
A2はIEnumerableなので、更にToArray()してArray化するとint[]のBになる。
(ちなみにvarにカーソル合わせるとちゃんと型が表示される。)
と、頑張って理解しながらMDSNや解説サイトをじっくり読めば目の前がパァっと輝くさ
http://msdn.microsoft.com/ja-jp/library/bb548891.aspx
http://msdn.microsoft.com/ja-jp/library/bb549151.aspx
0145デフォルトの名無しさん
2010/12/21(火) 01:34:31これはわかりやすい。感謝。
0146デフォルトの名無しさん
2010/12/21(火) 01:42:23× MDSN
○ MSDN
0147デフォルトの名無しさん
2010/12/21(火) 01:51:090148デフォルトの名無しさん
2010/12/21(火) 01:58:25比較と混ざるからアローでいいのに
0149デフォルトの名無しさん
2010/12/21(火) 02:06:25自動でデリゲートに入れてくれるの?
0150デフォルトの名無しさん
2010/12/21(火) 02:06:36仕様に合うか分かんないしあんま自信ないけど。。。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new ObjectCollection Items { get { return base.Items; }}
デザイナではItemsのコードが生成されないからコンストラクタで追加してても記録されない。
newはあまり使いたくないけど。
0151デフォルトの名無しさん
2010/12/21(火) 02:10:08自分でdllは作ったことがあるけど
それはメソッド名を知っているから利用できるわけで
どんなメソッド名を作られるかもわからない他人のdllのメソッドを
既に完成した実行ファイルから呼び出すのがどうやってるのかわかりません
上手く説明できないので意味が伝わっているか心配です
0152デフォルトの名無しさん
2010/12/21(火) 02:18:06・どうやって作った本体を
・どう参照しているのか
によるので一概には言えない
■ このスレッドは過去ログ倉庫に格納されています