民主党「韓国で反日が盛り上がっていてヤバイ… そうだ! 秋田のシェールガスを日韓で開発しよう!」
http://engawa.2ch.net/test/read.cgi/poverty/1342227537/ 仙谷氏、韓国の“対日感情”高まりに懸念
民主党・仙谷政調会長代行は13日、「未来志向の日韓戦略協力」をテーマにした財団法人世界平和研究所の
シンポジウムで基調講演を行い、12月の韓国の大統領選挙を前に、対日ナショナリズムが韓国国内で高まるこ
とに懸念を示した。
仙谷氏「相当な鋭い言論によって、どうしても選挙を控えた、あるいは選挙があろうとなかろうと、政治の世界
がそこを無視できなくなる。政治家の仕事は、その種の過剰なナショナリズムに対して、どこまで踏ん張れるかと
いうのが最大の問題、最大の課題だと考えています」
その上で、仙谷氏は「日韓相互がウィン・ウィンの関係を作るべきだ」として、ロシアの天然ガスやアメリカの
シェールガス開発などを日韓共同事業体で行うことを提案した。
また、知的財産権の問題などで「日韓がある種の価値観を共有し、国際社会の中でリードするルール作りに積極
的に参加することが重要だ」として、日韓の連携強化の必要性を強調した。
http://www.news24.jp/articles/2012/07/14/04209493.html
さつきおばちゃんですが、なにか
前すれの991、DynamicInvokeは遅くなるよーな
処理自体が重いから誤差だろ 今ならdynamicがあるから((dynamic)@delegate)()の方が速いし簡単だけど
>>8 アレはDelegateを引数にとるメソッドのサンプルって意味しかないでしょ…
実際にやるのはControl.Invokeだし
Visual StudioのGUI(「ソリューションエクスプローラー」や「クラスビュー」)のような オンマウスで表示されるタブ(?)を作成したいのですが、 このような機能は標準のツールボックスで制作できますでしょうか?
MSDN買えばできるよ
13 :
11 :2012/07/14(土) 16:27:12.90
すいません。 自己解決しました。
14 :
その@ :2012/07/14(土) 19:31:35.06
昨日のマルチスレッドにチャレンジ中の人です。 下記コードを実行するとiの値は、 0 から 9 まで流れるはずなのですが、 ★Point★まで通りラベル上の値が書き換わるのは、 いずれか一つのiの値のみとなってしまいます。 例えば、 [9] [9] [9] [9] [9] [9]・・・etc ブレークポイント@ が評価され次のブロックに制御が流れるのは ここでは、 [9]のみの様です。 マルチスレッドでプログラムを走らせているつもりなのですが せっかくループしてスレッドを生成したにも関わらず、 それらが並行して走らないのですがどこにミスがありますでしょうか?
15 :
そのA :2012/07/14(土) 19:33:25.59
private void btn_Click(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { int temp = i; ThreadPool.QueueUserWorkItem(_ => worker(temp)); } } void worker(int i) { Invoke((Action)(()=> { tab_web_browser.Navigate(str_access_url); do { Application.DoEvents(); //ブレークポイント@ } while (tab_web_browser.ReadyState != WebBrowserReadyState.Complete); lbl_status.Text = " i = [" + i.ToString() + "]"; //★Point★ string s = "debug"; //ブレークポイントA Thread.Sleep(20000); }) ); }
16 :
そのB :2012/07/14(土) 19:37:30.02
補足説明をしますと、プログラムをデバッグ実行して確認してみたところ lbl_status.Text = " i = [" + i.ToString() + "]"; //★Point★ まで評価されるのは、 i の値は 0 〜 9 まで変動させておりますが i == 9 の時のみです。 他の 0 〜 8までは、 Application.DoEvents(); //ブレークポイント@ を実行するとエラーも出ない状態で次のループに移ってしまっています。 そして最後のiの値だけなぜか有効な状態です。
まずQueueUserWorkItemは順に実行されるとは限らないです ThreadPoolのスレッドが1個しかないなら順に実行されますが、普通そうではないので並列に動きます Application.DoEventsを実行するとメッセージキューを空にするまでそっちを処理するので 平行に動作しているつもりがネストしただけのような動作になります このメソッドは絶対に使用しないでください
Invokeはもっとスコープを小さくしろって昨日言ったよね?
現在マルチスレッドの学習も兼ねてタブブラウザを作成しております。
>>17 なぜ、Application.DoEventsを実行しているかと申しますと
タブの中にWebBrowserControlを設定しており(デザイナ画面からではなく、全てプログラムからの動的生成)
指定したURLの読込みが完了するまで待機させる為です。
各種HPで、 Application.DoEventsを使ってはダメという事なのですが
そうすると読込みが完了するまで(マルチスレッド上で)待機させるにはどういう手法がありますでしょうか?
>>18 マルチスレッドプログラミングを行う場合、
何かの処理(例えば、Labelコントロールに値の設定)を行う場合
毎度、1つの処理ごとに★process★部分に1行づつ記述をしなくてはならないのでしょうか?
毎度囲むよりは、一つ定義してその中に纏めて処理を書いた方が効率が良いと思い
>>15 の様に記述しております。
Invoke((Action)(()=>
{
// ★process★
}) );
DocumentCompleted上手く使う
Application.DoEvents自体シングルスレッドアプリケーションをマルチスレッドっぽく見せるためのものだからなあ
>>20 上手く使うっていうか、この場合はDocumentCompletedにハンドラ突っ込んで
最初のforループでNavigate直接呼べばよくね
Invoke何のために使ってるん
みんな正規版使ってる?
>>20 WebBrowserコントロール自体は、
デザイナ画面からツールボックスをドラッグして、配置といった使い方をしていません。
デザイナ画面では、 TabControlを配置しただけです。
そして、プログラムよりTabPageの追加 > それぞれのTabPageにWebBrowserコントロールの追加
こういった構造になっています。
その為、複数のWebBrowserが存在している状態でどうすれば
Application.DoEvents(); を使わずに
複数あるWebBrowserのうち、特定のスレッド内でブラウザ読込みが完了したというイベントを
DocumentCompleted を使用して探知する事が出来ますか?
do
{
Application.DoEvents();
} while (tab_web_browser.ReadyState != WebBrowserReadyState.Complete);
ご伝授ください。はやくタブブラウザつくりなぁー。
いやちょっとその質問はアホだろ WebBrowserコントロールごとに別のデリゲート入れればいいだけだ
>>22 現状は、1つのTabControl内に複数のTabPageが存在しており
各々のTabPageの中にはWebBrowserControlがプログラムより生成されています。
1つのスレッドが1つのTabPage内にあるWebBrowserControlの読み込み完了を監視しているイメージです。
1つだけのブラウザで、シングルスレッドであれば下記の様なイベントコードを
事前に書いておく事により判定が可能かと思いますが、
複数ブラウザが動的に作成されるため、読み込み完了を判定する方法が分かりません。
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//読み込みが完了した場合の処理
}
sender見ろよ
たぶんマルチスレッドに手を出す以前の問題
>>25 senderあるから別のデリゲートである必要すらない
>>27 senderを見れば確かにイベントの発生元を探せますが、
そもそもプログラムからWebBrowserを作成していますので
***の部分がプログラムの実行まで分からないのです。
よって事前に↓みたいな定義ができずに困っています。
void webBrowser***_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//読み込みが完了した場合の処理
}
みんなメシにしようぜ! 俺もうお腹ペコペコだわ
>>31 ありがとうございます。
・・・実力不足を痛感しました。
2日間粘ってたんですが。。。
上で誰かが言ってるけど順序ちげえんだよ まだお前には早すぎる
17万3千円で〜す♪
我
割る
私 可能 得 VS 無料 理由 私 拾 無料 他 言葉 割物
MSDN
ネトウヨは糞尿、まで読んだ。
windows formapplicationってもう古いの? wpfがメジャーなんですか
どっちかつーとWPFが死んだ でも技術の転用でメトロが・・・
45 :
43 :2012/07/16(月) 16:14:56.19
>>44 windows 8のmetroの話ですね
windows metroって今までのwindows form applicationとはぜんぜん違うけど、wpfの延長戦じゃなかったんですか
普段はas3 on flex@mxmlを使っているので、思ったよりもwpfって楽な気がしました。
面倒なところを全然作っていないからってのもありますが
>>45 たぶん、「WPF流行ってないから使いたくないけど、Metroへの移植考えるとWPFなんだよなぁ」的ニュアンスかと。
mxmlに慣れてるって前提なら、絶対FormsよりWPFの方がいい。
CDockablePaneってないの?
同じこと聞くなよ 九官鳥か? 鳥がPCなんか触ってんじゃねえよ
↑ 鳥に向かって語りかけてるキチガイ発見w
鳥頭
鳥頭?
ロッテ製品不買運動 韓国200万人の自営業者が
飲食店など韓国の自営業者が全国規模で、流通大手ロッテグループ製品の不買運動に乗り出した。
大型スーパーの進出で商圏を奪われ生き残りの危機に立たされているとし、コルモク(路地)商圏
生存消費者連盟と有権者市民運動が、酒類を扱う飲食店や宿泊業など小規模商工業者団体の
会員らとともに16日、不買運動を開始した。
これら団体は先月末、韓国チェーンストア協会に対し、大型スーパーの義務休業の順守やクレジット
カード手数料体系の改編受け入れなどを要求した。しかし成果が得られなかったことから、今月13日、
ロッテグループに闘争の意志を書面で伝えた。要求が受け入れられるまで無期限で不買運動を続ける。
ロッテグループのウイスキー「スコッチブルー」は国産ウイスキー市場で現在3位、焼酎「チョウムチョロム」
は「チャミスル」と激戦を繰り広げている。飲食店やカラオケ店でこれら酒類やミネラルウォーター、
清涼飲料が販売されなくなれば、ロッテは大きな打撃を受ける。
また、小規模商工業者側とその家族、市民団体を合わせた約600万人は、ロッテ百貨店やロッテマート、
ロッテスーパーなどの小売店を利用しないことにした。菓子類や氷菓、ハンバーガーなども不買運動の
対象とする。
さらに、外食分野などの小規模商工業者団体や市民団体にも、不買運動への協力を呼びかけている。
http://m.yna.co.kr/mob2/jp/contents_jp.jsp?cid=AJP20120716001400882&domain=6&ctype=A&site=0100000000&mobile 関連記事
韓国・ロッテ製菓など製造のアイスクリーム8種から基準値以上の細菌検出
http://news.livedoor.com/article/detail/6723748/
俺のネトウヨ脳も爆発しそうです、まで読んだ。
全部読めボケ 横着すんな
あついな、ビールおかわり
あいよビール、ホットね
枝豆と焼き鳥五本もらおうか、たれは塩で
System.Diagnostics.Process.Start() でプロセスを開始したとき,新しくできたウィンドウ(?)へフォーカスが移ってしまいます。 うつらないようにできないでしょうか?
Procress.Startじゃ無理だった気がする CreateProcessとかで
1 TraceSource.TraceEventのイベント識別子ってなに? 解説には監視ツール云々ってあるけど有用なら使いたい 2 TraceWarningやTraceErrorが無いけどInfo以外は何で出力するの?
>>60 > TraceSource.TraceEventのイベント識別子ってなに?
書き出す先次第
イベントログならイベントIDが独立した項目に存在してるから
イベントビューアでフィルタリングできるとか
> TraceWarningやTraceErrorが無いけどInfo以外は何で出力するの?
TraceInformationの他がないってこと?
ならTraceInforationの解説見ればいいよ
TraceInformationはTraceEvent呼んでるだけ 他のが欲しけりゃ拡張メソッドでも切っとけば イベントIDは具体的な利用計画が無ければ特に価値はない 一意に振って台帳とか作ると仕事した気になれるって程度
【林山】日本は世界で何番目にお金持ちなのでしょうか?日本国家のバランスシートを見ると、日本の対外純資産は252兆円もありますね。
【廣宮】世界1位です。日本は21年連続世界一のお金持ち国家です。
【林山】政府が国民や企業に借金をしている関係って、銀行の預金に似ていませんか。銀行預金は、国民や企業にとって資産だけれど、銀行にとっては借金です。
政府の借金が増えると、国民や企業の資産が増えるということですか?
【廣宮】その通りです。
【林山】お金は日本の中をグルグル回っているということですね。『金は天下の回りもの』という言葉がありますが、わたしは水の循環をイメージしました。
空から雨が降ってきて、川を流れて、海に流れ込み、空へと返るイメージです。
みんな将来が不安で水を自分の池に貯め込み、誰も水を使わないからドンドン川の水位が落ちてきて、さらに不安になって水を貯め込む。まさに悪循環。これがデフレスパイラルですね。
どうすれば悪循環が好循環になるのでしょうか?
【廣宮】おカネを使わず民間が借金を減らしているときに、政府までおカネを使わず借金を減らすと経済はますます悪化します。それが1929年大恐慌が起こったメカニズムです。
おカネを使わず民間が借金を減らしているときは、政府が借金を増やしてどんどんおカネを使えば良いんです。ただ、できるだけ将来につながる投資となる使い方が望ましいでしょう。そうすると、将来、「水」そのものの量を増やせる話になります!
政府の財政再建、支出の切り詰めは、景気が良くなり、民間が喜んで借金を増やしながら設備投資や住宅投資をバンバンやるようになってからにすればいいんです。
http://labaq.com/archives/51753925.html
リフレ馬鹿死ね、まで読んだ。
全部読めよカッス
オブジェクト型配列より値の取得+キャストがうまくいきません。 どこがおかしいですか? private void btn_execute_double_Click(object sender, EventArgs e) { BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); //@引数を定義 object[] object_array = null; object_array = new object[] { 50,"Birth", new System.DateTime(1999, 11, 07) }; bw.RunWorkerAsync(object_array); } private void bw_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = sender as BackgroundWorker; object object_array = e.Argument; //Aオブジェクト配列のうち0番目の中身をintにキャストしてセット → なぜか失敗 int jj = (int)object_array[0]; //Aのコードで発生するエラーメッセージ Cannot apply indexing with [] to an expression of type 'object'
お前の目は節穴か DoWork内でobject_arrayの型は?
>>67 サンキュー
object[] object_array = (object[])e.Argument;
でいけた。
コンパイルエラーはMSDN見てから質問な
おいす しむらうしろ
>>61 ,62
サンクス
実際に使うならアプリの要件に合う出力メソッド用意するのが良さそうだね
真正右翼のヒロイン登場『大日本サムライガール』
http://news.nicovideo.jp/watch/nw314727 「真正なる右翼は、日本に私ただ一人である。有権者諸君、我が国は今、大きく舵を切るべき瞬間を迎えている。
日本が取れる指針はもはや少なく、残された時間には猶予もない。」
いきなり何だと思われたかもしれませんが、これは大日本サムライガールという小説のヒロイン、
神楽日毬(かぐらひまり)ちゃんの決め台詞なのです。
いや、決め台詞というのもふさわしくないか。街頭演説の時の前口上なのです。
何ともすごい小説が出てきました。この本は真に日本を憂うあまり、自らが独裁政権を敷くしかないという結論に達した
真正右翼の16歳の美少女ヒロインと、そんなヒロインを陰に日向に支える主人公織葉颯斗(おりばはやと)くんのお話なのです。
http://news.nicovideo.jp/photo2/229868l.jpg 『大日本サムライガール』至道流星/星海社FICTIONS
この表紙の少女が神楽日毬ちゃんです。手に持っているのは愛用の拡声器「拡さん」。
この少女が、政治の頂点を目指すために、アイドルとして芸能界の頂点を目指すのです!
ネトウヨのネ、まで読んだ。
codezineのサンプルを見ていたらば、こんなのがあったんだけど > System.Threading.ThreadStart(DoSomething); ()を付けないでメソッドを呼び出すと、メソッドのアドレスがセットされるんですか? AS3だとこんな感じですかね? private function m():void { f:Function = this.func; this.addMethodName(f); };
C#では、メソッド名そのものはアドレスでもオブジェクトでもない 構文上でのみ存在する特別な型で、デリゲートのコンストラクタに渡すことで そのメソッドを指すデリゲートのインスタンスが作れる ちなみにデリゲートのnewは省略できて、new Thread(DoSomething)でもOK これもDoSomethingがデリゲートなのではなくて、あくまでnew Thread(new ThreadStart(DoSomething))の省略表記 あとx => x + 1 みたいなラムダ式も、それ自身アドレスでもオブジェクトでもなく上記のメソッド名と同じ扱い
ASにもDelegateあるだろ。あれと一緒。
ただ、C#では関数名そのものはオブジェクトではないし、メソッドのアドレスを取得する構文も持ってないので、
デリゲートをインスタンス化するための専用の構文があって、それが
>>74 。
実際には new ThreadStart(x.DoSomething) は new ThreadStart(x, DoSomethingのアドレス) という意味になる。
77 :
74 :2012/07/21(土) 18:01:09.33
>>75 deltes t = new deltes(this.method);
deltes t = this.method;
これが同じ意味ってことですね?
>>76 Function.call()で落ちることがあるので、落ちないようにc#ではdelegateを使っているって事ですね
delegateはtypesafeなハズなので、asはどちらかというと唯の関数ポインタに近いですね
落ちないようにってw デリゲートは特定のインスタンスメソッドを指す関数ポインタがほしいってとこから来てる。 インスタンスメソッドを呼び出すためには、関数ポインタだけではなく「どのインスタンスか」の情報が必要。 そこで呼び出し対象のインスタンス参照と関数ポインタをひとまとめにしたのがデリゲート。 ActionScriptのDelegate.createと一緒だ。(向こうが真似した)
79 :
デフォルトの名無しさん :2012/07/22(日) 00:46:40.65
業務エラーを表現する方法は、例外or戻り値? 検索してみたが、宗教だった
MSの人は戻り値と言ってる
>>79 なんか定期的に出るなこの話w
例外機構と例外オブジェクトの区別は明確にした方がいいと思うよ。
(あまりメジャーな手法じゃないけど、例外オブジェクトを返り値にする選択肢もあるわけで。)
まあ例外機構って意味で例外って言ってるんだと思うけど、この話になるたびに
毎度言ってることだが、例外機構のそもそもの第一目的は、コードがその例外の発生を
想定して適切に処理するようになっていない場合、プログラムを強制終了させること。
だから重要な区別は業務エラーかどうかってことではなくて、そのエラーが適切に
ハンドリングされなかった場合にプログラムの停止を強制する必用があるかどうかという区別だ。
業務エラーは例外の発生原因とは限らんのだよ で、問題にしてるのは、業務エラー発生時に例外を起こして 例外処理機構でハンドリングするのが妥当かどうかってことだ .NETではJavaのようにチェックされる例外がないので、 例外を処理される事を期待するようなロジックを組み立てるなってどっかの本で見たな つまり業務エラーは例外で処理するなって事だと
その業務エラーがはじめから想定できているのであれば エラーというより要件になるだけだからな 想定できていなかったケースならコケたほうがいいだろ
よくわからないが、戻り値は ・関数の成功の有無 ・結果 ・エラー情報 にすればいいのか? マジキチやな
想定できない業務エラーなんてありえないと思うが 業務要件にないエラーは業務エラーじゃないだろ 想定できないエラーで例外発生するなら、例外処理で処理すればいいだけ 例外は発生してないが、想定された業務エラーが起こったときに、例外を発生させる これが是か非かで論議になるだけ まあ、好きにすれば良いと思うが。まさに宗教論だろ、こんなの
>>84 違う。・関数の結果 のみ。
想定しているエラーはエラーではない
関数の正しい結果だ
Control.BeginInvoke内からラップした例外を投げても、ThreadExceptionにはラップが剥がされてBaseExceptionが送られてくるんだけどこれはバグ?正常な動作? 以下のような例だと何重にラップしてもMyExceptionではなく素のIOExceptionがThreadExceptionに送られてくる。 private void Form1_Load(object sender, EventArgs e) { Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); new MethodInvoker(Test).BeginInvoke(null, null); } void Test() { //時間のかかる処理 System.Threading.Thread.Sleep(1000); //例外発生 this.BeginInvoke(new MethodInvoker(delegate() { throw new MyException("MyException1", new MyException("MyException2", new System.IO.IOException("IOException"))); }), null); } void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { //ShowMessage(e.Exception); if (e.Exception is MyException) { return; } //SaveError(e.Exception); Application.Exit(); } public class MyException : Exception { public MyException(String message,Exception err):base(message,err) {} }
Microsoft Connectにも載ってるバグ
Galaxy S3の画面の”焼付き”を韓国メディアが検証!→24時間連続点灯で焼き付き、しかも戻らない
http://engawa.2ch.net/test/read.cgi/poverty/1342832178/ 画面に残像が残る、いわゆる”焼付き現象”は今に始まったことではありませんが、Galaxy S IIIのマニュアルに記載されている「画
面劣化によるムラが発生した場合、サムスンは責任を負いません。」という一文(韓国版のみ?)が原因で、議論がいつもより激し
くなっているようです。サムスンはこの記述に対し謝罪し、内容の修正を行うとコメントしたそうです。
そうした中、Galaxy S IIIの焼付き現象について、韓国メディアのetnewsが検証を行いました。
検証に用いたのは、韓国版Galaxy S III LTEと、IPS液晶を搭載する「Optimus LTE II」。それぞれに白と黒のチェック柄を24時間連
続で表示させ続け、表示を元に戻した時の残像の様子を確認しました。
http://www.youtube.com/watch?v=OIqqnnb1LBw 結果、Galaxy S IIIでは、ホーム画面に戻った後にも、テスト用のチェック柄が画面に残りました。背景を青色にすると顕著です。一
方、液晶を採用するOptimus LTE IIでは画面の異常は確認できませんでした。
そしてその後12時間電源をOFFにし、再度確認してみても、残像は表示され続けたままでした。
焼き付きの原因は、AMOLEDで使われる赤、緑、青の発行体のそれぞれで寿命が異なることにあります。寿命が異なることで、同
じ時間発光させ続けることで、一部分だけが暗くなり、画面にムラが生じるというわけです。特に青は寿命が極端に短いとされてい
ます。
AMOLEDは高いコントラスト、応答性、構造的に薄くできるなど、液晶と比べて多くの利点もあります。しかし”寿命が短い”という欠
点も抱えているようです。今のところ根本的な解決は不可能で、寿命を延ばすことが最善策であるとされています。
しかし24時間でこうも簡単に焼き付くものなのですね。ここまで顕著な結果を望まなければ、あるいは数時間で焼付きを体験できる
かもしれません。しかも一度焼き付くと、元に戻すことはできません。
http://www.datacider.com/28903.php http://www.datacider.com/wp-content/uploads/2012/07/galaxys3_barn.jpg
.NET4ではTask/Parallelが導入されたわけですが、Thread/delegateを使うメリットってあると思いますか Task/Prallelの説明を見ると、Thread/delegateが面倒な気がします。 Thread/delegateは過去の互換性のためだけに残っているってイメージでいいですかね?
STAThreadが絡むとThreadじゃないと駄目だな
ThreadとTaskじゃレイヤーが違う。 Threadの方が下層で、よっぽどのことがない限り直接使う場面ない。 delegateのBeginInvokeは、完全にObsolete。
自分でスレッドプールを作る必要があるときに必要になるよ 優先度変えたりとかね アセンブラと高級言語みたいなもの アセンブラは互換性のためだけに残ってるわけじゃないよね
96 :
92 :2012/07/22(日) 14:52:48.82
「先進国の韓国、世界中で売春するのは異常」
http://www.chosunonline.com/site/data/html_dir/2012/07/22/2012072200166.html (抜粋)
このところ米国やオーストラリアなどで韓国人女性を中心とした売春組織が
相次いで摘発されるなど、韓国の売買春問題が国際的に注目を集める中、
国際的な売買春予防団体「ノット・フォー・セール(Not For Sale、NFS)」が
韓国に支部を設立することになった。
バストン教授が売春に携わる韓国人女性と最初に関わったのは2007年。
バストン教授は「当時はロサンゼルスでFBIと協力し、
あるマッサージショップで働いていた売春目的の韓国人女性100人を摘発した。
女性たちは全員が国外退去となったが、後にほとんどが韓国に戻ってから再び売春をしたり、
家族に見捨てられたりしていると聞いた」と述べた。
韓国政府が最近打ち出した違法ヤミ金業者の根絶対策に注目しているというバストン教授は
「韓国では女子大生がヤミ金から学資金を借り、これを返済できず売春を始めるケースが増えている。
一度違法ヤミ金業者に関わってしまうと、売春をすればするほど逆に借金が増え、
最終的に抜け出すことができなくなる」と指摘した。
バストン教授はさらに「韓国は1人当たりGDP(国内総生産)が
2万ドル(約158万円)を上回る先進国なのに、
世界で売春を行う女性が多いのは非常に特殊な現象だ」とも述べた。
海外に出てまで金のために売春を行うのは、開発途上国の貧しい女性がほとんどだというのだ。
韓国人女性による海外での売春問題は非常に深刻だ。
米国とオーストラリアの両政府によると、米国で売春目的で働く外国人女性の4人に1人(23.5%)、
オーストラリアでは5人に1人(17%)が韓国人で、
そのため韓国は「売春婦輸出国」という汚名を着せられているほどだ。
韓国国内での風俗業の市場規模もおよそ15兆ウォン(約1兆300億円)と推定され、
関係する風俗店の数は4万6000件以上に上り、ここで働く女性の数は27万人に達する。
ネトウヨきもっ、まで読んだ。
全部読めよ低脳
同意
>>92 Metro Style Appsの.NETではついにThread削除されたよ
hoge.exe を起動しWindows Form上の「実行」ボタンを押した場合に スレッドとして処理をさせています。 New Thread(AddressOf HogeMethod ) ・・・ (A) 「実行」ボタンを押しスレッドを走らせた直後に 呼出元の hoge.exe を画面上の「閉じる」ボタンを押してWindows Form自体を終了させたとしても タスクマネージャーで確認すると hoge.exe プロセスが生きたままになってしまいます。 そこで、対処方法として「実行」ボタンを押した時に 起動するスレッドに任意のプロセス名を付けて、 例) hoge_other_process_1.exe プロセス処理を開始させ、 「閉じる」ボタンが押された場合には hoge_other_process_1.exe を kill する、という風にしたいと考えていますが (A) の実行時にプロセス名を任意で設定し処理させる事は可能でしょうか?
読んでねえけどVBだろそれ
定期的に終了フラグ見に行ってフラグが立ってたら抜ければいいだけだろ .NET4ならTaskとCancellationTokenを使え それ以前ならThreadPoolとフラグ なんでどいつもこいつもThreadを使いたがるのか
>>104 誰かがthread プログラミングをやってましたので
興味を持ちました。
マルチスレッドを使うのは勝手だがThreadクラスは触るな
レガシー記事の害悪 古くなった記事のページランク下げろよなウンコGoogle
>>102 プロセスとかフラグとか面倒なことしなくてもThread.IsBackgroundをtrueにすればいいよ
ThreadPoolの(必然的にTaskも)スレッドは元々バックグラウンドスレッドだよ
110 :
デフォルトの名無しさん :2012/07/23(月) 13:20:26.68
111 :
デフォルトの名無しさん :2012/07/23(月) 13:22:04.48
>>108 そんな方法があったんですね。ありがとうございました。
>>101 それの意図は、WinRTとの重複削除の方。
Threadは別にレガシーじゃない。低層なだけ。
低層APIの方が、なんか使いたくなる名前なのはよくない気がするなぁ。
>>112 WinRTにはThread相当のものは無いよ
.NETのThreadPoolがWinRTへ移動して
.NETの方はTaskだけになった
あれ、勘違いしてた。 まあ、その方が、誤用されなくていいか。
hoge.exe が起動にパラメータを渡し、 その値によって初回起動画面を自動で切替えたいのですが下記コードだとどうもうまく行きません。 パラメータを Windows Form アプリケーションにどういう風に渡せば良いのでしょうか? 【Program.cs】 [STAThread] static void Main(int i_parameter ) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if ( i_parameter == 1) { Application.Run(new form_one()); } else if ( i_parameter == 2) { Application.Run(new form_two()); } else { Application.Run(new form_other()); } }
起動オプションはstring[]しか受け付けないよ。 C#のというか、大昔からのOSの制限。 int.TryParse とかで整数化する。
固定で1、2なら直接文字列同士で比較しても良さそうだけどなw
>>116 >>117 ありがとうございます。
試してみます。
static void Main(string[] str_arrangement )
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// str_arrangement ← コヤツの中身で判定
朝鮮猿っていつまで経っても、結局日本の後追い猿真似しか出来ない寄生虫民族なんだよね
属国の歴史しか無くて、ずっと独自文化がゼロなのはなぜなのか本当に良く判るわw
< #`Д´> <うぎゃああああ!!フランス人までネトウヨの嫌韓厨だったニダーーー!!!ネトウヨ!ネトウヨ!ネトウヨ!!
■フランスメディア「KPOPに独自性は感じられない」「日本や米国の模倣」「商業主義」「つまらない」
パリで韓流コンサート「日本文化から韓国を知った」
2011/06/14(火) 09:45
一方、コンサートが終了した現在、当日の模様について報道しているフランスのメディアは
比較的少ない。この状況下、コンサートの模様を報じているのは、フランスのニュースサイト「Rue89」だ。
中でも目立つのが、K−POPは特に独自性が感じられないという意見だ。これまでフランスでファン層を
増やしてきたJ−POP、ひいては米国のポップスを踏襲しており、商業主義的な音作りだという意見や、
演奏がコンピューター管理されているためか野性味に欠けるといった意見が寄せられている。
http://news.searchina.ne.jp/disp.cgi?y=2011&d=0614&f=national_0614_016.shtml
120 :
デフォルトの名無しさん :2012/07/24(火) 18:40:57.07
C#で外部プログラムを書き以下の様にして起動しています。 問題点としては、起動した時のプロセス名が一律 sinsuke.exe となってしまい 連続で起動した場合にプロセス名が被ってしまい、 外部プログラムより特定のプロセスだけをkillする事が出来ません。 System.Diagnostics.Process(sinsuke.exe) で起動させる時にプロセス名を sinsuke_001.exe とかいう風に起動させる方法はありませんか?
プロセスIDがあるだろ
122 :
デフォルトの名無しさん :2012/07/24(火) 20:15:59.45
>>121 System.Diagnostics.Process(sinsuke.exe)
を実行して起動した プロセスID はどうやったら取得出来ますか?
125 :
デフォルトの名無しさん :2012/07/24(火) 22:28:58.50
>>123 >>124 プロセスIDでやるのはちょっと無理そうだったので
実行時にexeファイルをコピーしてそれで代用する事にしました。
フックとイベントって何が違うんですか? そもそも、フックって考え方がC#にあるんですか
イベントは処理を追加できるポイントのことで、フックはそこに処理を突っ込むこと 「イベントをフックする」という風に使う
むしろイベントとフックの共通点が分からん
C#的な意味でのイベントはプロパティの一種みたいなもん デリゲート型で+=と-=だけが許可される フックは普通「メッセージフック」を指すんでC#とは無関係 動詞として使っても間違いじゃないけど、イベントは「サブスクライブ」するのが正しい
>フックは普通「メッセージフック」を指すんで それは違うんでないの?
イベントに限らず、クラスを継承して特定のメソッドをオーバーライドしてそこになんか処理を突っ込むことも フックと呼ぶことがあるな
既存のコードの何か特定のきっかけに応じて処理をすることを一般にフックと呼ぶ 非常に広い意味の言葉だよ
C++/MFCの方が、C#で作成されたアプリより きびきび動作するのはなぜですか? MFCは糞なんて忌み嫌われてるのに。
ルーピー死ね、まで読んだ。
136 :
デフォルトの名無しさん :2012/07/25(水) 01:13:11.24
>>134 C#アプリはネイティブコードじゃないからだよ
MFCと比べるならC#じゃなくてWinFormsな マジレスすると糞だから速いんだよ そりゃMFCくらい低レベルなライブラリを用意すればC#でも速いわ
Cで書かれたネイティブDLL中のエントリーポイントをリストアップして 自動的にDllImportのスタブを生成してくれるツールって無い?
無いような気がするなあ なぜって名前しか分からんから 手間的にスタブ生成しても何が変わるって程でもないんだよね どうせ引数定数呼び出し規約とか調べなきゃだし
141 :
140 :2012/07/25(水) 10:09:17.22
>>140 はバイナリからじゃなくてヘッダファイルから宣言を生成するツールな
エクスポートされてる関数を並べるだけならdumpbin /imports:hoge.dll の結果を置換すればいいと思うけど
そうしたところでどうせヘッダが無いとほとんど何もわからないんだし
importsはexportsの間違い
143 :
デフォルトの名無しさん :2012/07/25(水) 19:32:15.01
英語力が無いのも困るけど 英語力があり過ぎるとちょっと回りと変数名・メソッド名につける名前が しっかりし過ぎていて長くなるよね。
どっかのスレにカエレ 出てくんな
145 :
デフォルトの名無しさん :2012/07/25(水) 20:19:03.47
Oh i deny your foolish advices
C#で記述した内容をC/C++/CLIのどれかしらのコードに出力してくれるような ツールってあーる?
CLIはReflector系のを使えば
148 :
デフォルトの名無しさん :2012/07/25(水) 21:22:27.47
dgv[3,3].Style.BackColor = Color.Pink で色を付けたあとに もう一度クリックされたら、元の色に戻したいんですけどどうしたらいいですか? dgv[3,3].Style.BackColor = Color. ???
if(dgv[3,3].Style.BackColor == Color.Pink) { dgv[3,3].Style.BackColor = Color.xxxx; } else { dgv[3,3].Style.BackColor = Color.Pink; } バックカラーを事前に調べてこんなコード書いておけば?
Emptyじゃないの
151 :
デフォルトの名無しさん :2012/07/25(水) 21:35:02.39
>>149 質問の仕方がわるかったですね。
ようは元のボタンの色が一体何なのかが分かりませんでした。
152 :
デフォルトの名無しさん :2012/07/25(水) 21:35:48.63
画面を見ればよろし
this.Text = dgv[3,3].Style.BackColor.ToString();
>>151 this.Text = Color.FromArgb(dgv[3, 3].Style.BackColor.ToArgb()).ToString();
155 :
デフォルトの名無しさん :2012/07/25(水) 21:50:37.39
しぃしゃあぷって、adv[3, 3]みたいな書き方できるんだ なにそれw
インデクサも知らない奴は初心者スレに行けば
157 :
デフォルトの名無しさん :2012/07/25(水) 22:02:20.28
(´・ω・`)
158 :
デフォルトの名無しさん :2012/07/25(水) 22:55:14.72
159 :
デフォルトの名無しさん :2012/07/25(水) 23:04:43.98
パラメータに半角スペースを含めた文字列を入れた場合に どうもおかしな事になってしまいます。 スペースも含めてパラメータとして一つの配列のセルに 格納するにはどうすれば良いでしょうか? ★外部アプリより起動する場合のコード Process.Start("tasiro.exe", "syabu taiho zannen"); ★パラメータを受ける側のコード [STAThread] static void Main(string[] str_ary) { } ★デバッグした時のパラメータ 【期待しない値】 str_ary[0] "syabu" str_ary[1] "taiho" str_ary[2] "zannen" 【期待する値】 str_ary[0] "syabu taiho zannen"
空白を含む場合は""でくくるってコマンドライン引数の基本だろう?
>>159 コマンドラインの引数の仕様は古くから半角スペースはセパレータと
して機能するから「期待しない値」が正常な動作だよ
仕様を理解してないだけ
Process.Start("tasiro.exe", "\"syabu taiho zannen\""); これじゃあ駄目?
やってみろ
>>160 おおっ!!見落としてました。
>>161 ありがとうございます。
仕様だったのですね。 "" で括ります。
>>162 あざーす。試してみます。
しっかし、俺の作成した tasiro.exe に誰も突っ込みを入れてくれなかったなw
マーシーは消えて時間たつしネタとしては弱い
解決した途端文体が変わったw
マーシーでジョークソフト作ってたんどす。
スイスに極右政権が誕生!! 外国人の生保受給者・軽犯罪者を永久追放、祖国強制送還へ
http://engawa.2ch.net/test/read.cgi/poverty/1343227547/ スイス、外国人犯罪者を追放へ 生活保護の不正受給も対象
スイスで28日、特定犯罪をおかした外国人を自動的に
国外追放する法改正の国民投票が行われ、賛成52.9%で承認された。反対は47.1%だった。
特に、スイス人口の大半を占めるドイツ系住民の賛成票が多く、全26州のうち否決はわずか6州だった。
今回の国民投票は極右政党「スイス国民党(SVP)」が主導したもの。現行法では、
有罪となった外国人に対しては判事の個別判断で国外追放処分とすることができたが、
改正新法では、特定の犯罪で有罪判決を受けた外国人は自動的に国外永久追放となる。
対象となる犯罪行為には、強姦、深刻な性犯罪、強盗などの暴力行為、麻薬密輸のほか、
生活保護の不正受給も含まれる。
www.afpbb.com/article/politics/2776977/6517971
171 :
デフォルトの名無しさん :2012/07/26(木) 16:25:36.14
DataGridView 上で Control + c Control + v を出来る様にしたいのですがどうしたらいいですか?
コピーは出来るはず ペーストは自分で作る
datatableの内容をxmlにしてwebに公開することは簡単にできますか? あと、datatableを受信することもできますか iis <---- XML(datatable) -----> 他の言語
datatableは使ったことないけどxml(テキスト)としてアウトプットは簡単だよ
WCFでいいじゃん DataSetは使えなくなるけど型付きなら別に扱い変わらないし
177 :
173 :2012/07/27(金) 00:01:23.62
WCFって動的SQL文に相当するやつ作れるんですか? 例えば、 if ( isXXX ) { sb.append("and ID = '1'"); } みたいな
WCFは基本的に通信技術 DbCommandの組み方なんて関知するわけがない
Entity Frameworkを使うなら、.NET4以降ではObjectContextに対して普通にSQL実行できる
すんません、C#でこういうことできますか? this.txtbox1.text="fuga"; a="this.txtbox1"; //または a="this.txtbox1.text"; &a.text="hoge"; //または &a="hoge"; b=this.txtbox1.text; //b 出→ hoge これの名称もわからず直な質問ですが理解できた方おしえてください。
できないと答えておく
182 :
デフォルトの名無しさん :2012/07/27(金) 13:42:43.01
変に希望を持たすのは教えたがりの悪い癖だぞ
>>180 動的なParseというかExecというかは、できなくはないけど、文字列から直接実行ってのは結構大変。
これだからLL出身者は
187 :
デフォルトの名無しさん :2012/07/27(金) 18:16:20.19
DataGridView 上のボタンを自動でクリックしようとしているのですが どうしたらよいでしょうか? ↓こーいう事をやりたいです。 dgv_query[5, 0].click();
188 :
デフォルトの名無しさん :2012/07/27(金) 18:21:15.66
やり方よりどうしてそういう処理が必要なのか・・・
選択状態にしたいだけじゃ
190 :
187 :2012/07/27(金) 18:34:17.43
自己解決しました。 日本語で紹介しているページはないですね。 stack over flow で調べました。
191 :
デフォルトの名無しさん :2012/07/27(金) 20:20:13.60
アプリをずっと回しているとメモリをガンガン消費しやがるな。
192 :
デフォルトの名無しさん :2012/07/27(金) 20:21:06.40
GC.collect(); ってやっても意味が無いのか?
コードに問題があるんでしょ 解放出来ないオブジェクト一覧とか出せればいいのにね。 そーゆーの無いの? 問題となる操作の前後で比較すれば簡単に分かりそう
196 :
デフォルトの名無しさん :2012/07/27(金) 22:16:45.26
>>193 timerイベントの中でガリガリやってるので・・・
もうちょっとあたりをつけてみます。
>>194 釣りじゃねーよ。はげ。
CLRプロファイラみたいな奴?
198 :
193 :2012/07/27(金) 22:21:36.59
>>196 そういう情報は最初に書け。
そんなだから釣りだと言われるんだ。阿呆。
メモリプロファイラ使えば、メモリ消費してるオブジェクトがどこで作られてるかすぐ分かる。
無料のCLR Profilerでいいから、ログ取って調べてみろ。
199 :
デフォルトの名無しさん :2012/07/27(金) 22:24:52.25
>>197 198
thank you .i use it.
あんな一言で自分のバグ以外に原因を追求しようとするなんて 釣りじゃなかったらただの初心者だろw
201 :
デフォルトの名無しさん :2012/07/27(金) 22:51:12.82
>>200 Webbrowser Navigate でメモリを消費してるっぽい。
調べてみたらどうも既知の問題みたいだな。
まいった。どうしようか。チックイベントでやってんだが。
202 :
デフォルトの名無しさん :2012/07/27(金) 22:54:11.32
>>201 適度に自作アプリその物を再起動すればいいんじゃね?
さすがにアプリを一端落とせば解放されるでしょ
203 :
デフォルトの名無しさん :2012/07/27(金) 22:59:07.36
>>202 やはりそれしかないですかねぇ。
XPの貧弱なハード上で動かしているので
高頻度で再起動をしなくちゃなりません。
つーかなにやってるのよ
>>196 画面描画とか定期的なイベントみたいに
呼ばれる回数が多いメソッドの中では毎回オブジェクトを生成しない方がいい
生成は初めだけにして出来る限り使いまわしたりプリミティブ型で済ませるといい
生成コストが重いやつはそうだけど 寿命の短いオブジェクトを作り捨てる分にはGen0で回収されて問題にならない。 中途半端に長生きしてGen1/Gen2に行っちゃうようなのが多いなら影響が出てくる。 その辺の最適化は徒労に終わる場合が多いから、ちゃんとプロファイラ使ってボトルネックを確認してから取り掛かるべき
>>205 プロセス落としてあげるしかないみたいですねぇ。
>>204 >>206 そーいう感じで書いてるつもりですけど
チックイベントで一定間隔で欲しいページのデータを拾おうとしています。
なのに1回ループする事に数Mバイトずつ増えており困ってます。
自プロセスで メガンテ して死亡したらザオリクで復活させて
まるでウィルスの様な動きをさせるしかなさそうですね。
もしかしてWebBrowserクラス使ってる?
って既に言ってたね
>>208 なぜそれを先に言わない…
HttpClientかHttpWebRequest使え
>>208 データ収集が目的で閲覧までは必要ないなら使わない方がいい
他のクラスがあるし
あ、HttpClientじゃなくてWebClientだったわ。スマン
>>211 >>212 WEBページの内容を解析して
特定の値だけ取得してます。
例えば <h1></h1>とか
WebClientかHttpWebRequestでhtmlを取得すればリークしない。 後は正規表現とか適当なスクレイピング用のライブラリ作って抜き出すだけ。
>>180 に答えてくれた方ありがとうございましたー
メニューやFormなどをDBから組み込み立ち上げできるようなんできないかなーって
思ってたんです。メンテ→コンパイル→鬱〜なんで楽かなおもて。。
それなら別に動的コントロール生成でできるじゃないか
>>180 です、メニューとかはメインFormを動的に作成させるよう仕込んだらDBのデータ元でメニュー管理や作成はできました。
ただFormなのですが、、説明が。。ぶっちゃけると
FormHoge.cs
FormHoge.Designer.cs
ってファイルをディレクトリから拾ってきて動的に実行したいって事なんです。。MDIFormで例をあげると
親だけはプロジェクトからコンパイルなどを行い。子Formらはコンパイルせず、えっと。。ファイルから立ち上げる。。みたいな?
説明むりスマソ
phpクラス読み込んでるんと似たような感じです。。
またはForm単一でコンパイルしたファイルみたいなのあるんですかね?
たぶん何いってんだこいつって思いでしょうが、説明がうまくできません、すまん
219 :
デフォルトの名無しさん :2012/07/28(土) 09:27:49.95
ファイルがあるんなら実行時コンパイルは容易だよ CodeDOMでググれ 設計としては全くお勧めしない
>>218 もっと根源の要求は何?
動的にやるにしても、ソースコード読み込みである必要はないわけで、
プラグイン的なことがしたいだけならMEFってのの利用推奨。
動的にdllを読み込む。
>>219 調べて見ます、ありがとう
>>220 えとシステム営業中でも、とあるモジュール(というのかな)、たとえば顧客管理A(Form)
の急な変更を要求された場合、メンテしてexeをコンパイルしなおす間、全システムをオフにしなくてもメンテができるんじゃないかな
と考えております。のちに共同開発などする場合、貴方は在庫管理Bをつくってくれ、なんて頼んでそれだけに没頭してもらえるかなぁとか。。
浅はか?
MEF調べて見ます、ありがとう。
変更は厳しいんじゃないかな クラス追加してく形になると思う
そんな急な変更がしたいならWebにすればいいのに exeなら自動更新機能を付けるとかさ
モジュール同士のIFが変化しないなら行けるだろう 「見た目だけの違い」ならば
phpの経験はあるようだからphpでやればいいよね ダイナミックなデプロイはLL言語お得意のはずでしょう
ASP.NETでもファイルコピーだけでデプロイできるよね
ASP,NETはとっつきにくかったのであまりわかりません。 たしかに今自分がやりたい事はLLが手っ取り早い気もしますが、そこは目瞑ってC#で。 とりあえずMEFが近いんかな?って見ています、Form等をDLL→読み込めるんですね。 こんなやり方は変態なのかな。。
うん。完全に厨二病の類
そのシステムとやらはずっと起動しっぱなしなの? 毎日朝起動するタイプなら起動時に新バージョンがあったら 自動的にダウンロードして更新するようにしておくよね。 起動しっぱなしならまあ定期的にバージョン確認をして 更新してたら再起動を促すとかすればいいのでは。 WindowsUpdateみたいに。
いいや変更要求はこれこれここはこうしようと がんがん来るのです。今やれ、さぁ今、なうなうなう です つけっぱじゃないけど、バージョン確認とか鬱 その場で瞬時に対応型です、糞上司め
ClickOnceを使おう(提案)
プラグインて怖くない? 有料機能解除されたり、内部情報丸裸にされたり バックドアじゃん、セキュリティどうなってんの?
webでやれw
TDD見たいな形態で開発しとるんか? それとも客先で運用しながら随時更新ってことか? 危険すぎるな
>>232 それを本番環境でやるの?
どうでもいいシステムなんだなw
どう見ても自殺行為です…。
>>230 更新のためのアプリの再起動が許されるならClickOnce使っとけ
起動時や一定間隔で更新チェックしたり、通知出したり
古いバージョンで繋げなくするようなのが簡単にできる。
さすがにスキーマの変更はないと思いたいw
240 :
デフォルトの名無しさん :2012/07/28(土) 19:43:44.27
Application.Restart(); で自分自信のWindowを再起動する事が出来るみたいなんですけど、 この時に、パラメータを受け取った上で再起動する方法とかってありますか? 色々と調べてみたんですけどちょっと見つかりませんでした。 最悪、外部ファイルにパラメータを設定しておき、 FormLoadイベントにてその値を読もうかと思っています。
Application.Exitをコールしてから自分自身をProcessStartInfoで起動すればいいのでは
242 :
デフォルトの名無しさん :2012/07/28(土) 20:29:45.48
>>241 ありがとうございます。
そんなの用意されていたんですね。
243 :
230 :2012/07/28(土) 21:38:39.34
いいえTDD運営してるわけではありません、一応ちゃんと確認上での更新をしてますよ。 スキーマの変更までは行きません。 プラグインは特定の条件を充たさないと立ち上げないって事でそこんとこは回避できそです。 ClickOnceもちょっと勉強して自分のそれに理想なのか見てみます。。 ホントPhpとMysqlでやったほうがメチャ近道なんだろうけど。。 やっぱココはC#でこういう作りで行きたいんですw誰がなんと言おうと 意地っ張りな厨二病ですね
javaよりc#の方がプログラミング楽な気がする javaだとインターフェイスとかの実装が面倒だし、クラスライブラリ以外のframeworkが多すぎる 意義ある人いるー?ノシ
まったく意義なし
その至れり尽くせり環境になれてしまうと プログラマとは廃人同様
win2kのソースコードが流出した際は大変な問題になったのに MSはなぜ、.netを推すの?
248 :
デフォルトの名無しさん :2012/07/28(土) 22:30:36.44
>>247 基礎を抑えつつも餌で釣ることで抜け出せなくする作戦だよ
IDEの支援でC#サイコーなやつ量産しておけば企業向けのアプリはC#採用するかとか
なるかもしれないじゃん
大学などの学生にはドリームスパークでただで配ってるし
OSやofficeで利益確保しつつ開発などで囲い込む作戦
逆コンパイルが容易というのはパクってもすぐばれるということでもある
250 :
デフォルトの名無しさん :2012/07/28(土) 23:45:57.65
↑ いいこといった。
別にソースなんか公開しても金稼ぐ方法があるし(RedHatやMySQLを見ろ)
mysql は oracle だろ。 あと↑らの糞コードなんて 自分のコードが汚くなるだけだから見る価値もねーよ。うぬぼれんな。雑魚。
MEFってアセンブリのアンロードできんの?
Managed Extension Framework (MEF) には別プロセスで動かしたりアンロードする機能はない。 Managed Add-in Framework (MAF) にはそういう機能があるんだけど、そもそもMAFがあんまり使われていないという…
普通のアプリでMVCをやろうと思うとそれぞれのクラスの数が View > Model > Controlerになっちゃうんですけど MVCって1 対 1対 1にならなきゃ駄目なんですかね
MVCはアンチパターン
んなことないよ 適用できる範囲で柔軟にやるべきだ MVC教の経典を読んでるわけじゃないんだろう?
259 :
デフォルトの名無しさん :2012/07/30(月) 14:38:45.18
ClickOnce にチャレンジしようとしてるのですが 発行先のマシンを社内の特定マシンではなく レンタルサーバ(例えば、さくらインターネットのスタンダードプラン)上に発行する事は可能でしょうか? もし出来るとした場合に、 ID/PASSを入力して正規のユーザの場合のみ サーバよりclickonceでソースをダウンロードさせたいのですが そういった事は可能なのでしょうか? ※基本認証だとセキュリティー的に脆弱との事ですので それ以外の方法があればお教え下さい。
Explolerもしくはブラウザからアクセスできればだいたい置けるよ。 Digest認証でよければそのままいけるかな?
261 :
デフォルトの名無しさん :2012/07/30(月) 17:32:17.15
Digest認証? ググってみます。
ってClickOnceと認証は同時かいな。 Windows認証以外は無理じゃないか。
263 :
デフォルトの名無しさん :2012/07/30(月) 17:50:25.46
基本認証 → OK → ClickOnce 起動画面の起動 って流れだとダメですかね?
ちょいと相談に乗ってくれ テキストファイルを解析するツール作ろうとしてるんだけど その入力フォーマットが空行で区切られたブロック毎に振り分け先を変えるってもの ブロックの種類は、中に含まれてる特定の文字パターンで決まる 最初正規表現でやろうと思ったんだけど、複数行だと上手くヒットしない このまま正規表現で進めていいものか不安になってきた もしもっとマッチする技術があるなら教えて欲しい
正規表現は遅いよ
RegexOptions.Multiline
>>263 必ずブラウザから起動ならいけるかな、、まあやってみるしか
>>264 サンプルデータだせ
お前の日本語だけで理解できるエスパーはいねえ
269 :
デフォルトの名無しさん :2012/07/30(月) 18:13:42.30
WebBrowser Control をWindowsフォーム上に1個のせて 5ページ程遷移させてるんだけど それだけでメモリを50Mとか食ってんだけどこれって標準? 何かやたらとメモリを浪費してる気がするんだけど。
>>266 MultiLineは知ってるんだけど空行判定がうまくいかないんだ
>>268 当り障りのない範囲で・・・・・
===================================
ほげ
ホゲホゲ
ほげ
ほげ〜〜〜〜〜〜
『ほげ』
日時:yyyy/MM/dd HH:mm
場所:ほげスタジアム
参照→ほげサイト:
http://www.hoge.com ======================================
上から2つまでのブロックは何番目かで意味が決まり、それぞれタイトルと本文
その次からがあったりなかったり順番すら変わったりで、『』付きのやつは催し物情報
参照→があるブロックは最終的にHTMLのAタグになる
今は全部手動でコピペしてるんだけど、いい加減メンド臭くなったから半自動化したい
全自動まで行けばベストだけど、入力データが微妙にフォーマットに合ってなかったりが
多々あるんでそこまでは求めない
当面の目標としては、ブロックの振分をして種類別のTextBoxに入れ込みたい
271 :
デフォルトの名無しさん :2012/07/30(月) 19:11:51.39
>>269 そんなもんだろ
ライブラリが大半を占めているから気にすんな
273 :
デフォルトの名無しさん :2012/07/30(月) 19:28:50.55
>>272 そんなものっぽいですね。諦めます。
ちょっとした画面作って起動しても10M位食いますしね。
274 :
デフォルトの名無しさん :2012/07/30(月) 19:32:02.87
>>271 だるいのはわかったがソレは誰宛の回答なんだ?
ネトウヨきもっ、まで読んだ。
>>270 ライブの情報か何かか?
それをどう振り分けたいのか
どこまで試したのか(失敗したコード)
フォーマットが表記揺れして情報も足りないとなると、どうしようもないわ。
もうめんどくさいから改行2個でsplitして、最初のをタイトル、残りのは先頭行チェックして振り分けりゃいいんじゃね。
標準ライブラリーの正規表現で上手く処理できないなら 自分で字句解析構文解析処理するのがセオリーだと思う。
FOXってあっちのウヨテレビじゃん
一回だけならエディタでインデントしてTSV化→ExcelかDBで集約って手作業でいいと思う
readonlyってメリットあると思いますか? 自分には↓のコードが等価に思えます private string key { get; } private readonly string key;
>>281 等価じゃない。
constとreadonlyとgetのみのプロパティは全部別物。
等価に思えるなら等価に扱っていればいい 必要な時がくれば分かる
284 :
270 :2012/07/31(火) 15:50:18.37
やっぱり構文解析するしかないかぁ
レスくれた皆さんども
ところで
>>280 のTSV化ってなんでしょう?
Tab Separatable Victim
286 :
270 :2012/07/31(火) 17:36:13.44
>>285 ・・・あ゛〜すんません、ググってもそれらしきものヒットしないんですが
何をするものなんです?
的外れだから気にしなくていいよ
288 :
デフォルトの名無しさん :2012/07/31(火) 23:14:53.90
ループの中で あとN秒お待ち下さい。 というメッセージを表示しつつ、1ループ毎に1秒待機して this.Refresh()してるんだけど たまーに応答無し が表示されて経過秒数が不明になる事があるのですがなぜでしょうか?
部分的なこと書かないでソースだしてよ
別スレッドにすればいい
>>289 int waiting_time = 20;
for (int i_wait = 0; i_wait < waiting_time; i_wait++)
{
lbl_status.Text = (waiting_time - i_wait).ToString() + "秒後まってね★";
this.Refresh();
Thread.Sleep(1000);
}
時間の掛かる重い処理をさせる時は定期的にApplication.DoEvents();を入れる もしくはThreadクラスを使用
DoEventsを気軽に使わないで下さい Windowsのメッセージの仕組みを隅から隅まで知り尽くした人だけがリスクを鑑みた上で使っていいです
余計なお世話だ
295 :
291 :2012/08/01(水) 10:28:38.73
PCを再起動したらちゃんとカウントされる様になった。 意味不明。 マルチスレッドはちょっと厄介なので手を出したくないねん。
向上心のない奴だな
別スレッドで処理しろってのは正しいけど、Threadクラスはダメだって。 あれは生で使うものじゃない。 .NET 4以降ならTask、それ以前ならBackgroundWorkerとか。
298 :
デフォルトの名無しさん :2012/08/01(水) 15:43:00.96
>>297 なんで Thread クラスはダメなの?
本当にダメなクラスだったらそもそもFWから除外されている気がします。
俺はダメじゃないと思う
300 :
デフォルトの名無しさん :2012/08/01(水) 15:59:26.41
Javaと切磋琢磨してるからな データベースもそうか
>>298 一番の理由は低レベルで扱うのが面倒だから。
もっと使いやすく安全なやつがあるのに、
あえて使わないといけない理由を説明できるようになるまでは使うべきでない。
逆だな。 CをやってからC#をやるべき
なんで突然JavaとかCが出てきたの?
>>298 低層APIだから。
Cの中にasm含めるような感じ。
ないと困るけど、必要な場面そんなに多くない。
305 :
デフォルトの名無しさん :2012/08/01(水) 18:22:52.84
Taskとか使っていると、突然意味不明のCPU使用率低下とか起こすので 未だに、シビアな処理はThread使ってるな
308 :
デフォルトの名無しさん :2012/08/01(水) 19:07:59.95
知らんがな。
c++で書いたコードをc#で使うにはどうすればいいんですか?
310 :
デフォルトの名無しさん :2012/08/01(水) 20:30:13.23
>>293 はスレッドにも言えるよ。
初心者が誤解するからここで勧めるべきでは無いと思う。
下手したらスレッドという言葉すら知らないまま、並列処理が実現出来てしまうかも知れないんだぞ?
ThreadとMoniterで地獄を味わいつつも目的を達成した人へのご褒美ぐらいに考えた方がいい。
C++のソースをDLLで分離してwin32APIを使うようにインポートサービス経由で使う
それが嫌なら
>>310 のいうように書き直す
スレッドは隠ぺいしていい気分にならない方がいいよ デッドロックのデバッグは大変困難だ、避ける事が非現実的な事は数学的に証明済み
禁断のキーワード P/Invoke
>>313 下手に見える方がデッドロックおこるだろ。
DoEventsは隠蔽どうこうじゃなく副作用が大きすぎるから駄目だといってる
そうだね でも311!=313だからDoEventとスレッドの隠蔽が一緒だとは言ってないよ
デッドロック発生に非同期処理の隠蔽度合なんてほとんど関係ないと思うが、数学的証明とやらには興味がある
>>318 なんかエラソーな奴いるが、
情報やっているなら、まっ最初に習う、コンピュータ専門学校でも教えるくらいだ。
つまりググレカス
レースコンディションとスレッドに直接の関わりが無いことを誰かまず指摘してあげてください
321 :
デフォルトの名無しさん :2012/08/01(水) 22:48:05.88
なんで、スレッドの話になるとスレッドがあれるんだろ? さて、それはさておき質問させてください。 mene_strip コントロールをを初めて使い始めたんですけど、 マウスが上位階層の項目の上にフォーカスがあたったら 子要素を展開させたいんですけどどうすれば良いでしょうか?
スレッド弄り始めて、なんか分った気になっているんだろ 普通に情報系で勉強してきた奴なら常識な話を、なんでこんなに偉そうな態度で間違えられるのかってな
朝鮮人の扱い方 ∧ ゝ∧ ( ´∀`) 【 旧日本陸軍の朝鮮兵に対する注意書き】 .ノ|ソ|"\ \ノ」==ヽ!ノ /_l _| 一、いつ、いかなる時でも唐辛子粉を食事に際し好きなだけ使わすこと。 一、絶対に頭、体を叩いてはいけない。怨みを持って復讐する気質があり、脱走の原因となる。 一、清潔な食事運搬用バケツと雑巾バケツの区別をよく教えること。 一、危険な状況下では銃を投げ捨てて哀号!と泣き出す習癖があるから、日本兵二名で一名の朝鮮兵を入れて行動せよ。 __ │ | _☆☆☆_ ( ´_⊃`) 【米軍による韓国兵の扱いマニュアル 】 ( ∞ ) | | | (__)_) 1.韓国人には強気で押せ。抵抗する場合は大声で命令しろ。 2.命令を聞かない場合は身体で解らせろ。 3.同じことをくり返す場合、犬のように何回でも同じ様に叱れ。こちらが上と言うことを身体で解らせろ。 4.理由は聞くな。どうせ大したことは言っていない。 5.身体で解らせた場合、根に持つ場合があるので、後で身辺には気をつけて行動しろ。但し、徹底的に解らせる迄、手を抜いてはいけない。 6.相手を3才児と思い、信用したり頼りにはするな。重要な仕事は任せるな。 ,,,,,,,,,,,,,,,, ミ,,,,,;露;;;,ミ ∩;`_っ´∩ ヽ / 【 旧ソ連共産党による朝鮮の扱い方 】 | | し⌒J 1、頭痛の種になるだけだから関わるな 2、手段を選ばぬキチガイ揃いだから関わるな 3、関わるとこっちが痛い目に遭うから関わるな 4、関わってきたらウォッカ飲んで忘れようぜ
ネトウヨきもっ、まで読んだ。
325 :
デフォルトの名無しさん :2012/08/02(木) 19:06:11.36
exe だけで1M超えるアプリってどう思う? 機能がどんどん詰め込まれていって 巨大化しますた。
「見合う」って言葉勉強してからもう一度質問したら
327 :
デフォルトの名無しさん :2012/08/02(木) 19:21:39.30
↑誰にいってんだろ。このオジサン?
言われたと思った人じゃないですかねー。
329 :
デフォルトの名無しさん :2012/08/02(木) 19:25:17.92
>>325 リソースのせいでもなく?
ネイティブなexeだったらリソースなくても簡単に1MB超えるけども。
331 :
デフォルトの名無しさん :2012/08/02(木) 19:27:05.00
俺らがどう思おうが、使う人間が同じように考えるとは限らんぞ 大事な要件なら当のユーザーにヒアリングしろ どうでもいいなら黙ってろ
個人的な感覚で言うと1MB程度どうということもないな フロッピーでやり取りしてる時代ならともかくね
DLLに分割してサブフォルダにでも入れとけばexeが小さくなって誤魔化せるぜ
334 :
デフォルトの名無しさん :2012/08/02(木) 20:43:54.48
>>330 Windows Form を7個程度使ってます。
リソースはありません。
取り敢えず動けばいいのでスルーする事にします。
335 :
321 :2012/08/02(木) 20:44:48.09
そんな事より誰か オラにアイデアおぉううう
336 :
デフォルトの名無しさん :2012/08/02(木) 20:49:17.25
>
>>335 Windows Formのならデフォでそういう動作になってると思うんだけど...
337 :
321 :2012/08/02(木) 20:50:30.38
>>336 WEB系の開発が多かったから
JavaScriptのHoverイベントみたく展開したいのですよ。
それがどうもユーザライクな動きに見えます。
338 :
デフォルトの名無しさん :2012/08/02(木) 20:52:32.57
うーん WEB系の開発の方がやっぱり面白いな。
>>337 言ってることがよくわからんが、だからデフォでそういう動作になってるって。
っていうか、たぶん問題の内容が伝わってないんだな。
最低でも他人に問題が伝わるように書かないと誰も回答してくれないと思うよ。
>>337 標準から外れた挙動がユーザライクねぇ?
そう思ってたのは自分だけってオチじゃあるまいな。
>>339 こういう事がやりたいんだろう。閉じるの考えるのメンドクセ
private void testToolStripMenuItem_MouseEnter(object sender, EventArgs e)
{
var menuItem = (ToolStripMenuItem)sender;
menuItem.ShowDropDown();
}
MenuStripに子アイテム入れるんじゃなく自前で開いていると見た
342 :
デフォルトの名無しさん :2012/08/02(木) 21:29:39.93
なんでやってないと思ったの?
344 :
デフォルトの名無しさん :2012/08/02(木) 21:36:14.46
>>342 ルートのアイテムの挙動の事を言ってるのなら最初からそう書くべきだったね
346 :
340 :2012/08/02(木) 22:16:54.04
>>342 Web系と言うから見当は付いたが
お前の使ってるブラウザもマウスオーバーでメニューが開くようにはなってないだろ?
そういう事だ。
HTMLでよくあるのは:hoverでしょ だからMouseLeaveもやらないと動作が違うし、偶然出たメニューが出っぱなしでウザい でも普通に出したメニューがMouseLeaveで消えるのもウザい つまり死んだ方がいいよ
死ぬのは手前や
349 :
デフォルトの名無しさん :2012/08/02(木) 22:37:22.21
ゲームとかの見た目からして違う独自UIだったらHoverでいいだろうけど コモンコントロールの見た目で違う動作されるとイラつく
↑ 焼き魚食え
あ、俺ほっけ
354 :
デフォルトの名無しさん :2012/08/03(金) 13:26:24.32
質問です。 System.Diagnostics.Process.Start("exeのパス名"); を実行して別プログラムを立ち上げる際に、 そのプログラムのウィンドウ非表示状態でバックグラウンド動作するような方法ってありますか?
ProcessStartInfo使えば
356 :
デフォルトの名無しさん :2012/08/04(土) 14:32:42.09
C#を初心者にもわかりやすいように解説してるサイトない⁇
だんねんながら
魚食えって言ってるのに…
C#のWindowsFormからデータ取得を押した時に
Webサーバ側で基本認証されたサイト上にID・PASSを送信し
認証が突破された場合には、
WEBサーバから特定のデータをクライアントに戻したいと思います。
これを実現する為にはどうすれば良いのでしょうか?
■図
Windows Form
↓
実行 ボタンの押下
↓
ID=takesi PASS=komaneti
↓
認証突破
↓
http://datatoruzo.com/get_data.php ↓
"komaneti,komaneti2,komaneti3" をクライアントに戻す。
突破ってなんか攻撃しているかのようだな
韓国の誤審騒動を契機に台湾で高まる反韓感情、「因果応報だ」
ロンドン五輪をきっかけに、台湾で反韓感情が高まっている。
誤審の犠牲者だと自ら主張する韓国に対する批判や冷やかしが広まり、「因果報応」との声も高まっている。
中国メディアの新浪網が3日付で報じた。
ロンドン五輪の女子エペ個人準決勝で延長のすえに敗れたシン・アラム選手は、
判定を不服として国際フェンシング連盟に抗議を提出したが、
台湾では2010年広州アジア大会テコンドー女子で失格となった楊淑君選手を引き合いに出したうえで、
「因果報応だ」との見方が広まっている。
台湾の楊淑君選手は10年広州アジア大会で電子防具の規定違反を理由に失格となったが、
台湾では「韓国人審判の介入によって失格になった」との見方が広まり、反韓感情が高まった経緯がある。
ロンドン五輪においても、台湾のネットユーザーたちは「五輪の開幕以来、韓国ばかりが判定不服で訴えている。
これは韓国が自分の立場からしか見ていないからだ」と批判したほか、
シン・アラム選手の判定をめぐる騒動については楊淑君選手の件での因果報応であるとの論調が目立つ。
http://london.yahoo.co.jp/news/detail/20120804-00000004-scn
「我成、網右翼王!」迄読了
366 :
デフォルトの名無しさん :2012/08/04(土) 20:30:25.71
>>363 サンキューやってみる。
DLってのが若干気になるけどね。
>>362 自分のサーバだから何をしようと勝手でしょ?
>>366 >自分のサーバだから何をしようと勝手でしょ?
言葉の使い方がおかしいっていわれてるんだよ…
まあいいじゃねえか じゃんじゃん突破してくれたまえ
369 :
デフォルトの名無しさん :2012/08/04(土) 22:19:30.39
>>367 your sent message is more weird than mine.
baka
被害妄想
372 :
デフォルトの名無しさん :2012/08/04(土) 23:44:58.87
there are many fookish persons at this page. Because when i speak in english , they stop speaking. your brain is tremendous lack of knowledge Hahha--
373 :
デフォルトの名無しさん :2012/08/04(土) 23:45:39.73
今後このスレッドへのレスは全て英語で行おうかなw?
your sent message wwwwww
375 :
デフォルトの名無しさん :2012/08/05(日) 00:07:32.61
↑人の送った英語をコピーするしかできない低学歴www
broke throughとauthenticated
韓国ハンファグループ日本法人のハンファ・ジャパンは2日、
総合商社の丸紅が建設を計画している日本全域の太陽光発電所に、
向こう4年間で約50万キロワット分の太陽光モジュールを供給することで
丸紅側と合意したと明らかにした。近く本契約を締結する。
供給されるモジュールは全てハンファソーラーワンの製品で、
売上額は6000億ウォン(約416億円)に達すると見込まれる。
日本への太陽光モジュールの供給が本格化したのは、
東日本大震災が発生した昨年3月以降だ。
ハンファグループは震災後、鳩山由紀夫元首相の支援要請に応じて
太陽光発電システムなど10億ウォン相当の支援を実施。
これを機に金升淵(キム・スンヨン)グループ会長が日本を訪れ、
野田佳彦首相や丸紅の朝田照男社長と面会し、太陽光発電事業での提携を協議した。
http://japanese.yonhapnews.co.kr/headline/2012/08/02/0200000000AJP20120802003300882.HTML >ハンファグループは震災後、鳩山由紀夫元首相の支援要請に応じて
>太陽光発電システムなど10億ウォン相当の支援を実施。
>これを機に金升淵(キム・スンヨン)グループ会長が日本を訪れ、
>野田佳彦首相や丸紅の朝田照男社長と面会し、太陽光発電事業での提携を協議した。
ネトウヨきもっ、まで読んだ。
全部読めカス
↑きめえ
>>369 > your sent message is more weird than mine.
⇒ あなたの送られたメッセージは私のものより不思議です。
⇒The message in which you were seen off is more wonderful than my thing.
⇒ 見られたメッセージ、から、私の所持品より素晴らしい。
⇒ It is more wonderful than the seen message to my personal effects.
⇒ それは、私の所持品への見られたメッセージより素晴らしい。
さすが Excite、 わかってらっしゃる (w
lol
>>381 お前英語出来ないだろwww
機械翻訳して文法がむちゃくちゃなのに気付いていないみたいだしなwww
認証突破ァ!
>>383 機械翻訳の馬鹿さ笑ってたら、予期しないアホが一匹釣れてしまった。
どうするよ、このアホ (w
全員殺処分で
383は残念な子
突破してしまえ
C#のスレかと思ったら夏厨とネトウヨのスレだったでござる。
390 :
デフォルトの名無しさん :2012/08/07(火) 13:55:49.60
http://www.02.246.ne.jp/~torutk/javahow2/commandline.html#doc1_id41 ここのサイトの
public class MyApplication {
private static int number;
private static String name;
public static void main(final String[] args) {
parseOptions(args);
:
}
private static void parseOptions(final String[] args) {
if (args.length<2) {
System.err.println("引数指定が不足です。");
System.exit(1);
}
number = Integer.parseInt(args[0]);
name = args[1];
}
}
このソースてすが
parseOptions(args);
この部分で引数としてargsを渡してるけど、
argsの中身ってつまりな何なのかわかりません…
ご教授お願いします。
391 :
デフォルトの名無しさん :2012/08/07(火) 14:02:40.20
windowsについてるコマンドプロンプトなんかでコマンドを入力して プログラムを実行する際にプログラムに指定する引数が文字列として 通知されるだけだよ
392 :
390 :2012/08/07(火) 14:31:01.02
>>390 はjavaのソースでしたね…すいません。
c#でコマンドライン引数の学習をしていたのでこちらに書きました。
>>391 すいません。学習不足でよくわかりません…
コマンドプロンプトで指定した文字列が
mainのString[] argsに格納されて
parseOptionsメソッドにargsに格納された文字列を引数として渡してるということですか?
>>392 IDEは使ってるの?
mainの最初の行のとこにカーソル持ってってF9押してF5押して
止まったらargsにカーソル合わせてShift-F9押してみたら
正確に言えば文字列の配列だね コマンドプロンプトで入力した文字列だと スペースをセパレーターとして最初のプログラム名を覗いて全部文字列の配列として格納される aaa.exe bbb ccc ddd と入力した場合 public static void main(final String[] args) { parseOptions(args); : } このときのargsは3つのstringが入ってて args[0] には bbb args[1] には ccc args[2] には ddd となってる
http://ideone.com/GCOG2 コンソールアプリのプロジェクト作ってこれを貼り付けてビルドして
出来た実行ファイルをどこでもいいでも手持ちのマシンのドライブの
直下においてコマンドラインから実行してみなよ
IDEから呼び出せたっけ?w
IDEからコマンドラインは、プロジェクトのプロパティのデバッグの開始オプションの コマンドライン引数に入れられる。
398 :
390 :2012/08/07(火) 14:53:44.53
というかいつの時代になっても入門はへろ〜わ〜るどで黒い窓に文字出すだけなんだな・・・ いい加減サンプル書く人も考えろよ・・・
それが一番手軽だからだろ
間違いようのないものこそ入門に相応しいと思うよ
Good bye world
こんにちわ世界w
404 :
デフォルトの名無しさん :2012/08/08(水) 00:04:58.23
ばかだな。 さようなら世界だろ。
ロープを用意しろ
We Are The World
407 :
デフォルトの名無しさん :2012/08/08(水) 12:53:53.15
static void Mina(string[] args) { if (a == 0) { return; } if (a == 1) { return; } if (a == 2) { return; } } こういった場合のreturnってどういう意味があるのでしょうか?
それ以降のifを実行しなくて済む
409 :
デフォルトの名無しさん :2012/08/08(水) 13:06:34.89
なるほど。returnが入っているブロックのifだけ終わって、 他のifは実行されるんだと思ってました。 returnの制御があまり良くわかっていませんね…
} else if〜 みたいなので書いてもいいしネストを深くしてもいいけど たまーにそういう書き方もするねえ 深い意味は特になくてそれ以降の処理をしない場合にそのメソッド(関数)を抜けるため
using System; using System.Collections; class a { static void Main(String[] args) { Hashtable v = new Hashtable(); v["111"] = "a"; v["222"] = "b"; v["333"] = "c"; foreach (string k in v.Keys) { Console.WriteLine("{0}={1}", k, v[k]); } } }
ガード句だろ
414 :
デフォルトの名無しさん :2012/08/08(水) 15:31:20.24
using System; using System.Collections; class a { static void Main(String[] args) { Hashtable v = new Hashtable(); v["1"] = "a"; v["2"] = "b"; v["3"] = "c"; foreach (string k in v.Keys) { Console.WriteLine("{0}={1}", k, v[k]); } } } こういったプログラムがあったときに 上記の例だと出力結果が 1=a 2=b 3=c になりますが 上のプログラムの一部を v["111"] = "a"; v["222"] = "b"; v["333"] = "c"; に変えると出力結果が 222=b 111=a 333=c と順番が変わってしまうのはなぜですか? さっぱりわからないので教えてほしいです。
HashtableとかDictionaryは順番は不定 キー順にしたけりゃSortedDictionary使うとか 値ならLinqでソートするとか
416 :
デフォルトの名無しさん :2012/08/08(水) 15:35:59.04
>>415 なるほどです。
では
v["1"] = "a";
v["2"] = "b";
v["3"] = "c";
のときは、たまたまキー順に出力されていた
ということですか?
そうだね。 多くはハッシュ値順になるだろうけど、そのハッシュ値の出し方はそれぞれだしね。
418 :
デフォルトの名無しさん :2012/08/08(水) 15:41:17.57
>>417 ありがとうございます!脳みそスッキリです!
データベースも順番に取り出すにはorder by をつけるよね
420 :
デフォルトの名無しさん :2012/08/09(木) 01:24:44.76
Chartコントロールの折れ線グラフ(fastline)って線の色とか太さ変更できますか? 散布図のマーカーは弄れるんだけどこれがどうにも・・・
Seriesコレクションのプロパティ 線の色はColor 太さはBorderWidth かな
OZ見たいなシステム作るとしたらどの言語でいく??
OZって何ですか?
OZでググったら、バンドのWEBサイトやら、ゲームやら、システム開発会社やら 色々出てきて訳わかめ
まさかサマーウォーズじゃないだろうしなー
オンスに決まってんだろ
魔法使いとか大泉の西武とか
428 :
デフォルトの名無しさん :2012/08/09(木) 17:57:48.63
OpenReadメソッドでは、パラメータとして対象ページのURLを指定して呼び出すと そのページ・データを読み取るためのストリーム(Streamオブジェクト)が返される。 この場合のストリームってどういう意味ですか? ググってもよくわかりません。
>>428 データアクセスを抽象化したものって感じかな?
アクセス対象がメモリにあろうがストレージ上にあろうが
同じ方法でアクセスできるよ
>>421 遅くなりましたがありがとうございました.
望み通りに変更することができました.
431 :
デフォルトの名無しさん :2012/08/09(木) 22:39:25.31
>>428 ストリームが返されるって意味がわからない
分からないならそのままにしておくべし
433 :
デフォルトの名無しさん :2012/08/09(木) 22:42:45.46
434 :
デフォルトの名無しさん :2012/08/09(木) 22:47:45.59
435 :
デフォルトの名無しさん :2012/08/09(木) 22:52:13.26
>>434 「ストリームという共通のアクセス方法」
どういうこっちゃ
もうストリーム嫌い
436 :
デフォルトの名無しさん :2012/08/09(木) 22:55:17.73
ストリームちゃんって難しい子ねぇ〜
ストリームの概念を大雑把に理解できないとオブジェクト指向とか無理じゃないの?
438 :
デフォルトの名無しさん :2012/08/09(木) 23:02:29.23
>>437 まじかよ…
オブジェクト指向におけるストリームってそんな大事なのかよ…
ストリームについて徹底的に学習するしかないか…
439 :
デフォルトの名無しさん :2012/08/09(木) 23:04:10.20
ちげーよw C言語の段階ですでにポインターという抽象的な表現を用いてるし その後の言語なんて抽象化しまくりじゃないか 抽象表現が理解できないのなら無理って話
440 :
デフォルトの名無しさん :2012/08/09(木) 23:05:54.81
>>439 なるほど…
抽象表現について一から勉強してきます。
TCP/IPでのレスポンスの受け取りとか、ファイルの読み込みとか 標準入力の受け取りとか、メモリ上に作ったバイト列へのアクセスとか 全部メソッドが違ってバラバラだったら嫌じゃない
442 :
デフォルトの名無しさん :2012/08/09(木) 23:17:37.72
そうそう ストリームっていうように細かいアクセス方法は違えど「データの流れ」と見なせるからねえ・・・
443 :
デフォルトの名無しさん :2012/08/09(木) 23:18:14.45
C#でエクセルを扱うアプリケーションを作ろうとして、例えば、あるセル番地を読み込むって場合に var hage = sheet.Cells[1, 1]; ってハードコーディングしてしまうと、将来的にセル番地に変更が出たときに面倒なので変数で置き換えたいんです。 これ自体Excel VBAなどでは常識のような作法ですが、 Excel VBAの場合、適当なモジュールにConstでセル番地を宣言していましたが、 C#の場合は、何処にそういう定数を書くべきなのでしょうか? (1) 外部の人間に保守・更新をする可能性がある場合、外部ファイルに定義する。 (2) 外部の人間は保守・更新をする可能性がない場合、内部ファイルにfinal変数で定義する。 と思っているのですが、(1)は、外部ファイル参照のオーバーヘッドがやや心配ですし、 そもそも、どういうファイルに定義するべきなのかも分かりません。 resxファイル? txtファイル? iniファイル? どれを使うのが妥当なのでしょうか?
普通は名前定義でアクセスするだろ
445 :
デフォルトの名無しさん :2012/08/09(木) 23:26:43.75
ここっていつ聞いてもすぐ答えてくれてかなりありがたいけど 24時間張り付いて新しい書き込みをチェックしてる人いるの?
>>443 普通はアプリケーション構成ファイル(App.config)を使う。
フォームのサイズみたいにアプリ内で更新される場合はアプリケーション設定(.settings)の方。
>>445 答えてる人はいっぱい居るから、どの時間帯でも誰かしら居るんじゃないか?
専ブラに登録しておけば開いてるタブの新着チェックで一緒に読み込まれるからなあ PCで作業してるから居るときは嫌でも目に入る
>>447 嫌で目に入ってるのに
いつも答えてくれてありがとう。
好きです。
>>443 禅問答みたいな回答になるけど、ワークシートのレイアウトを知っているべきクラスが
当然あるはずだから、そのクラスに記述すればいいんじゃない?
そのために、まずセルの位置を表すクラスを用意する必要がある。
セルの位置情報はその型のreadonlyのフィールド(C#では非推奨のやり方)か
プロパティーで取得できるようにすればいい。
>>448 自分の範囲だけでやってるとどうしても偏った知識になるからねえ
勉強もかねて首突っ込んでる
>>444 ありがとうございます
名前定義なんて初めて知りました
結構Excelには詳しいつもりだったのですが・・・
>>446 ありがとうございます
.resxでも.settingsでもなく、App.configなのですね
>>449 ありがとうございます。
そうなると、
public static class セル番地 {
static readonly Range 番地1; = "A1"
}
みたいなクラスを用意すればいいってことですか?
>>452 素直にrowとcolumnの値を持った方が後々応用が利くと思うよw
ここのスレはyahoo知恵袋より有能だな
ストリーム を直訳すると 小川 こんだけでなんとなくデータストリームとは何ぞやのイメージが湧くんじゃねーかな
やれやれポインタの悪夢が終わったら今度はストリームか。
プログラムの話でOZっていったらサマーをー図にでたやつの事にきまってんだろjk バンドとか普通にねぇだろ
おたくうぜー by 田村ゆかり
>>459 あー
さまぁ〜ずに出たやつのことね。了解。
GCすげぇ null入れたらほんとに解放してくれてる
>>462 GCすげーつーか.netの仕組を考えるとある意味当たり前のような
C/C++では考えられないくらい情報取れる仕組だしなあ
disposeの扱いが面倒だし 開放タイミングわからないのは気持ち悪い
ゲームループ回してるのにこまめに解放してくれる。 なんか一気に解放してプチフリーズみたいになるのかと思ったのに。
C#スレでその質問をするとか、もう答えは出てるんじゃないの。 本当にどの言語で開発したらいいのかを聞きたいなら他スレで聞けば良い
下手っぴなんでC#以外使えんのですよ なのでC#の方が俺に合わせるべきですね
ソビエトロシアではC#があなたを使う!
親愛なる同志、アンダース・ヘジルスバーグは見ている
.Net Framework 4.0 をWindows XP に入れて 同じプログラムを実行しているんですが 3台のうち1台のみ正常に動作し 他の2台については動きが怪しいです。 アプリは起動するものの 実行中にエラーは出ないものの特定の処理をスキップしている様なのです。 ここで疑問なのは、仮にプログラムのバグであれば3台とも 動かないハズなのですが1台だけ問題無く動くのです。 Windows 7 のマシンでやると全て正常に動作しています。
そうでっか ごくろうはんでんなー
>>470 ここで疑問なのは、相談であれば特定の処理を書くなり、コード示すなり
するハズなのですがそれらは全く書かないのです。
長いコードをいちいちかけるか。
そうなんだ、じゃあしょうがないね。 ばいばい。
>>470 >>473 技術者なら問題の切り分けが出来るようにならないと
まず「特定の処理」をさらに絞り込んで
問題が起きる最小のコードを作ること
>仮にプログラムのバグであれば3台とも動かないハズ
環境のわずかな違いによって動かないことなんていくらでもあるよ
例外を表示するところからだなー
>>475 サンキュー
ちょっと面倒だけど地道にプログラムを
切り取って調べてみます。
>>470 スキップしているならそうなんだろう。
ファイルが破損しているかもしれないので何度も上書きしたら直るかも。
PC3台のそれぞれのスペック それぞれの.NET Frameworkのインストールバージョン 最低これがわからないとどうしようもない。
こんな時サクッとリモートデバッグ出来たら楽なんだろうけど、 イマイチ使い方わかんないんだよな〜
あとXPの.NET FrameworkってVista以降より古いバージョンしか 提供されないんじゃなかったけ?
全部同じだぞ
>>481 Win7に標準で搭載されてるのは.NET3.5.1(3.5SP1+累積パッチ)
現行最新の4はXP SP3以降
Win8に入る4.5からはVista SP2以降
484 :
デフォルトの名無しさん :2012/08/13(月) 18:34:41.60
自作アプリを公開するとき、 Releaseモード面倒なのでDebugビルドで公開しても問題なし?
俺はDebugビルドの方が面倒
デバッグ用に特にコードとかいれてないと違いわからんよな。 ステップ実行してたら飛ばされる行があってRereaseでやってたことに気がつくくらいw
487 :
デフォルトの名無しさん :2012/08/13(月) 19:53:02.49
switch 文で分岐するとき、必ず 1〜3 の値が入ってるはずなんだけど、 念のため default を書いておいて例外投げたいって時、適当な例外ありますか? NotImplemented じゃないし、InvalidData は System.IO 名前空間だし、InvalidProgram は 「通常、コンパイラのバグ」って書いてあるし・・・と、適当なのが見つけられなかったので
個人的にはArgumentかInvalidOperation、たまにNotSupported
どうせケアレスミスの回避なだけでテスト終わったら通らないロジックなんでしょ?>例外 自分でどこで落ちたかわかるようになってればなんでもいいよw
その気持ち判らんでもないが>ダメ男
つかAssertにしとけばええやんけ
ApplicationException、 はもはやは非推奨です
>非推奨 ApplicationExceptionでのcatchはな。 MSのミスで派生クラスを作ってしまったのが理由なので、 継承して使う分には(意味は無いが)問題無い。
MSのミスというより、例外クラスの種別を継承関係で表現する必然性がそもそも乏しいんじゃないのかなと
詳細エラーを派生で定義するやり方は悪くないと思うけどなぁ 適当でいいときはベースで例外受け取って 細かく処理したいときは派生で受け取る まあこれだとベースにエラー定数もたせてswitchでもできるけどswitchは見た目キモイからな
>>497 さあ?ようわからんが、
try {
// ...
} catch (ApplicationException ex) {
// ...
throw;
}
としてtryブロック内でApplicationExceptionの派生クラスの例外が発生したとき、
catchブロック内からthrowされる例外は何になるのかいのう?
499 :
デフォルトの名無しさん :2012/08/14(火) 21:37:21.15
2社から提供されたDLLを使用することになったんだけど、 どちらのDLLも、さらに別の共通DLLを参照してた。 そこまでなら問題ないんだけど、共通して呼び出してるDLLのバージョンが違っていて 実行時にクラッシュします。プロセスを分けずに解決する方法はないでしょうか?
ネタとしか思えない情況だなw どうやっても一つのプロセスの中に同じ完全修飾名が同居可能とは思えないがどうなんだろう。
まずは提供元に話してみたら
ILMerge だっけ。ああ言うのは使えないのかな。
503 :
デフォルトの名無しさん :2012/08/14(火) 22:54:11.80
>>502 ILMerge で提供会社単位でDLL作成しなおしたら出来ました。
ほんとにありがとうございます。
実際は2社でなく、たくさんの会社からDLL提供してもらってて
一部の会社の契約がきれてて困ってたんです。
ただの思いつきだったのに、本当に出来たんだ。w なにより。
あるWebサイトの専用ブラウザを作ろうとしてるんですが そのサイトからhtml形式で情報をダウンロード 正規表現などを使ってほしい情報を抽出して整形してメモリあるいはローカルファイルに保存 までできてるとしてこの後 整形したデータから作ったhtmlを一般のブラウザで表示されるような形で表示したいんですが可能でしょうか? それともコントロールを地道に配置してWebサイトっぽく表示するしかないんでしょうか?
可能です
>>505 確かDocumentTextに動的に作ったhtmlを流し込めば
navigateと同じ動きしたなあ
でも問題はダウンロードした場合と違ってプログラム内部から
htmlをnavigateさせた場合はhtml内部の相対アドレスは全部変えておかないと
だめなはず
<html> <h1>可能!</h1> </html>
510 :
デフォルトの名無しさん :2012/08/15(水) 16:24:38.30
俺流のタブブラウザを作成しているんですけど ページが表示された時にスライダーを自動で一番下までスクロールするにはどうすれば良いでしょうか?
.NET 4.0 にて、HTMLのParseして遊ぼうと思い、いろいろ試していて、
LINQってのも使ってみたいから XDocument + SGMLReaderでと画策中。
ある程度ローカルで試して、さて対象のWEBページを、と挑むと、
「':' 文字、16 進数値 0x3A を名前に含むことはできません。」と…
どうやらSGMLReaderが「xml:lang」ってのは直接名前として扱えない、と怒っている模様。
[対象のWEBページの先頭]
-----------------------------------------------------------------
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml " xml:lang="ja" lang="ja">
<head>
:
-----------------------------------------------------------------
この箇所は特に収集対象ではないので、最悪読み飛ばしするかなーと思ってますが、
ちゃんとした回避策があるのでしょうか?
XML方面にとんと疎いので、調べてみても到達しません。
よろしくお願いします。
XML文書だって文書が自分で宣言してるんだから SgmlReaderじゃなくてXmlReaderの仕事じゃね?
>>513 …おおっ!気づいてませんでした!
ありがとうございます!
textBox1とtextBox2とbotton1を用意して botton1を押すと、 textBox1に入力された数字とtextBox2に入力された数字を 足して表示してくれるプログラム書きたいんだけど どうすればいい?
フォームデザイナーでテキストボックス2つと結果表示エリアを用意する。 テキストボックスのステータスが変わったら2つのボックスから数値を取得。 取得した数値を結果表示エリアに出力する。
>>515 質問の仕方を間違えてる
どうすればいいのかわからないのでサンプルソースください
って書くんだ
すまん どうすればいいのかわからないので 優しい方 サンプルソースください
やさしいしサンプル書いてあげてもいいけど いまから晩御飯のハンバーグ作らないといけないから 夜まで全裸で待っててくれ
<<519 しょうがない 全裸でまっていよう って誰が言うんだよ サンプルコードはってくれ
簡単そうで細かいチェックが必要なんだよな・・・
誰か優しい方 お願いします
おぉ
525 :
デフォルトの名無しさん :2012/08/17(金) 18:55:17.32
>>525 コードも出さないでケチだけつけるんだね^^
IDisposable継承してDisposeできるものはなんでもマネージドってことでいいんですか?
どこをどう解釈してそんな結論に至るんだ
いや実際そんな感じでしょ。 少なくとも外見的にはそう。 例えばSystem.Windows.Forms.Formは内部でアンマネージドなリソースを扱ってはいるが Form自身はマネージドなんじゃないの?
マネージド/アンマネージドは そういう区別のために使う言葉じゃない
.Netが処理の仕方を知ってればマネージド しらないならアンマネージド つまり APIを通じて得たリソースなどはアンマネージド それをラップしてIDisposableにしたものはマネージド
managed/unmanagedって書いてくれ
デストラクタでの例外の可能性のあるコードって握りつぶそうが何しようがそれはもはやバグだから俺ならすぐに落としてしまうが 開発段階でそんなコードはぜんぶ潰すように心がける
IDisposableだろうがなんだろうがアンマネージドなリソースはアンマネージド IDisposableはリソースを開放する一般的な方法を既定してるだけ マネージドなリソースはほっといても最後にはGCがよきに計らってくれるが、アンマネージドなリソースはそうはいかない だからプログラマがちゃんとリソースを開放するために統一的な方法を用意した。それがIDisposable
An unmanaged resources are still unmanaged even if we use IDisposable. The IDisposable just defines a general way to release some resources. An managed resources are released automatically because GC will do the right thing at last, but it is not for unmanaged resources. Therefore, a way is prepared for programmers that the resources to be released correctly, that is IDisposable.
Corrected version of
>>536 [For foreigners]
Unmanaged resources are still unmanaged even if we use IDisposable.
IDisposable just defines a general way to release some resources.
Managed resources are released automatically because GC will eventualy do the right thing, but it is not for unmanaged resources.
Therefore, a method is prepared for programmers so that the resources will be released correctly, that is the IDisposable.
×eventualy ○eventually
マネージドはC#が知ってること アンマネージドはC#の知らない、たとえばOSのAPIを使ったコードのこと マネージドコードはすべてそのままMonoなどの別環境に実行ファイルを移植可能
Monoなんか使わねーよ
>>537 アンマネージドリソースはアンマネージドリソースだって言ってるだけだな。
言っちゃ悪いけど、ただの循環論だね。
問題は、最初から言ってるように内部でアンマネージドリソースを使ってるもの(例えばForm)をアンマネージドと
呼ぶべきかどうかじゃないのか。
OSとか環境依存のリソースじゃなければマネージド 環境依存するならアンマネージド
アンマネージドリソースと アンマネージドコードを ごっちゃにしてるから悪い
>>541 >>537 はリソースがどうこうじゃなくてIDisposableを説明してるだけだからな
>>543 アンマネージドコードってのはあんまり聞かない言い方だと思うけど、結局のとこ
リソースと、そのリソースを使うコード(オブジェクトとかクラスって言う方がいいかも)の区別が大事だってことね
Formクラスはマネージドもなにもない(埋め込みリソースとかどうなってるのかわからんな)
Formオブジェクトはアンマネージドなリソースを使うかもしれないし、使わないかもしれない
Formオブジェクトがアンマネージドなリソースを使ったら、それはアンマネージドコードってことか
全然違うから黙っとけ ついでに意図不明な英訳も止めろ
>>544 >Formオブジェクトはアンマネージドなリソースを使うかもしれないし、使わないかもしれない
君にはまだここは早過ぎる。
知恵遅れにお帰り。
>>541 using,dispose,closeを呼ばないとファイナライザ走るまでメモリ以外のリソースが食いっぱなしになるならアンマネージド扱いしていい
>>548 じゃあアンマネージドをラップしたものはマネージド?
ラップするって考え形がおかしい ラップしようがしまいがアンマネージコードはマネージコードにならねえよ
なるよ だってアンマネージドリソースでもラップしてIDisposableを正しく実装したら using Dispose Close ファイナライザのどれかでちゃんと解放してリソースリークから保護してくれる これはすでにマネージドリソースそのもの
552 :
548 :2012/08/18(土) 17:29:24.53
実際のところ、コネクションプールとかファイルアクセスだとかを考えると アンマネージリソースを抱えた瞬間そいつはアンマネージリソース扱いかなぁ。 呼称でなく、考え方的な意味で。
「共有リソース」「外部リソース」(性質)と「アンマネージリソース」(実装)の区別が出来てない奴がいるな
554 :
548 :2012/08/18(土) 17:31:09.84
>>551 いやいや、メモリ不足のときはgc走るけど
リソース不足のときにgc走らないし
class MyResource { // リソースを取得する。 public static MyResourceHandle Get(); // リソースを解放する。使い終わったら必ずこのメソッドを呼ぶこと。 public static void Release(MyResourceHandle res); } 実際に何のリソースかは知らんが、これでアンマージリソースのできあがり。 単に解放をGC任せにできない何かの総称だからな。
>>549 ラップしたって「using,dispose,closeを呼ばないとファイナライザ走るまでメモリ以外のリソースが食いっぱなしになる」という状況は変化しませんけど
その問いに何か意味あるの?
>>558 はい正解ちゃんオメデトーw
満足した?
>>560 階層が一段深くなっただけで状況は一緒なんだよな
ReflectionやInVorkを易しく学べる書籍やサイトってないでしょうか? 会社の先輩から教えてもらってもちんぷんかんぷんでした・・・ これがわからないとオブジェクト思考プログラミングはできないそうなので
その辺が分からないから、こんなナンセンスな話をぶちあげておられるのでは。
「アンマネージリソースを持ったマネージオブジェクト」だな
invokeはメッセージバッシングの一形態として考えてもいいが、reflection必須ってどういうこっちゃ
非常に怪しい先輩だな。
>>563 その先輩は当てにしない方がいい
OOPが分かってない奴ほどやたらとリフレクションを使いたがる
もしくは自分でフレームワーク作るような上級者が使うものだが、
それにしたってOOPは関係ない
共通型システムを理解していなければリフレクションが使えるし、 理解していなければOOPが出来てないって意味だと思う
お前らの解釈は良いからM$はマネージドリソースとアンマネージドリソースをどう定義してるんだよ?
MSの人は全部マネージリソースって言ってるよ
>>559
OOPというよりは静的型の勉強だな リフレクションをちゃんと理解すれば、オブジェクトがメソッドを持ってるなんて 馬鹿な勘違いをすることがなくなる OOPではそうなんじゃなくてあくまで「静的型では」な
放置してもそのうち回収されるのがマネージドリソース 放置してたら大変なことになるのがアンマネージドリソース
Reflectionダメ、絶対!
知ってて損しないのは確か 使わないけどね
多用されてるところといえば unityのエンジン側とか シリアライザとかか
使い方だけ知ってて危険性を認識していなければ損するよ
C#(.NET)の設計思想ってフレームワーク作る奴と使う奴をはっきり区別してる印象だわ メタプログラミングの機能はかなり充実してるけど作る奴向け
IQueryableとか作るの楽しいのに
IQueryableなんてフレームワーク作る奴向けの最たるものじゃね 利用者がそういうのを意識しなくていいことに意味があるんで
>>579 そうそう、カスタムコントロールとかIDEまわりまでキッチリやろうとしてかなり大変だった。
デザイナ上でのUndoまで面倒見てやんなきゃだからな。
I think thy are very crazy.
ミスった I think they are very crazy.
10個くらいのプロパティを持つhogeクラスに 呼び出し元からそれら10個のデータをhogeクラスのインスタンス化のタイミングで コンストラクタを通して渡したいんだけど、 どういった方法が一番スマートかなあ。 10個の引数をコンストラクタに書くのはあり得ないと思うし(わかりやすくはある?) それらの渡したいデータの型はintとかstringとかListなんだけど〜 良い知恵があればお願いします。
ファクトリ
EffectiveJavaのBuilderパターン読め
コンストラクタは使用するにあたって必要なプロパティの組み合わせ分あると楽かなー 使う側としてはね。
コンストラクタもオーバーロードあるし好きなように どっちにしろやらないといけないことはあるんでしょ?
590 :
デフォルトの名無しさん :2012/08/20(月) 17:25:36.22
複数のスレッドから呼び出される関数があるんだが、 中の処理は必ず1スレずつ順番にやっていくようにしたい。 現在処理中であれば次のスレは関数の上のほうで止まって待ってるようなことできませんかね? いい方法あったら教えてください。
モニタってやつか
592 :
デフォルトの名無しさん :2012/08/20(月) 17:47:34.01
594 :
デフォルトの名無しさん :2012/08/20(月) 20:02:24.41
会社の先輩からインターフェースを習ったんですが、たとえ話が微妙でぜんぜん理解できませんでした。 色んな銘柄のたばこがるけど、吸い口と火を付けるところはどれも同じとかいうたとえでした。 ググってみたところ、継承だとA>B>Cというようにスーパークラスは1つしかサブクラスに継承できず、継承も深くなるのであまり好ましくないと解説してました。 インターフェースならいくつでもサブクラスに追加できる点がメリットと解説してました。 ここで疑問なのが、クラスは色々な処理のメソッドを持ってますが、インターフェースは空のメソッドです。 変数がメソッドな構造体みたいなイメージしか沸いてこないのですが、どなたかわかりやすく解説していただけないでしょうか。
実用例を出さないで説明して混乱を招くパターンだな
596 :
デフォルトの名無しさん :2012/08/20(月) 20:23:37.96
>>595 は
>>594 を批判したんじゃないよ
説明した人の話ね
インターフェースその物はあまり利用しないけどざっくり調べたところで思うのは
人に利用してもらう機能を提供する人にとって便利な物に過ぎない気がするなあ
IComparableなんかを見てると
設計者「お前らの細かい要求をいちいちスーパークラスに実装してらんねえ!共通のインターフェースだけ作っとくので中味は適当に実装しろ!」
スーパークラスが1つしか持てないからインターフェイスを使うのではなく、 スーパークラスを複数設定すると問題が起きるので2個目以降はインターフェイスしか使えないと思ったほうがいい
598 :
デフォルトの名無しさん :2012/08/20(月) 20:28:07.11
途中になってもた という設計者の本音が垣間見える気がする 確かに多重継承を認めてないC#の場合はスーパークラスが一つしかもてないので 残りは何らかの方法で持つしかないんだが効能としては多重継承禁止と上でも説明した 部品を設計する人にとってどうかって意味合いも大きい気がする
ほとんどすべてのメソッドをインターフェイスに宣言しておいて クラスの外から依存関係を突っ込めるようにするやり方もあるよ クラス同士が直接結合しないので差し替えて単体テストがやりやすくなる
なんかいろいろ同じような機能が増えたけど ひとつにまとめたいなー クラスをひとつにすると改造めんどくさいから 各クラスがひとつのインターフェイスを実装することにしちゃえ えい! みたいな使用法が多い気がする
インターフェースなんて共通の規格みたいなもんだろ 例えば、HDMI端子(インターフェース)を持っている装置(クラス)があれば、 (装置の中身を知らなくても)HDMIという共通の規格を用いてデータをやりとりできる
602 :
デフォルトの名無しさん :2012/08/20(月) 20:47:39.46
はぁ?
>>601 その例えは適切でないよ
大多数の人は接続するだけで片方の中味の実装したりしないw
データを圧縮するクラスがあったとしよう。 圧縮アルゴリズムにはzip/LZH/arcなどいろいろあるから 圧縮フォーマットごとにクラスを作ることになる。 だけど、それらのクラスは使い方はみんな同じにしたい。 そういうときに、インタフェースメソッドとしてcompress()とexpand()を 実装しておけば、圧縮アルゴリズムが何であれ統一された使い方で 圧縮と展開が可能になる。 また、メソッドの引数に対してクラスのインスタンスを渡すような時、 クラスの型を引数に取ると引数の型が固定されて使いにくい。 そういう時にインタフェースを引数に取れば、同じインタフェースを 実装するクラスならどれでも引数として渡すことができる。
605 :
デフォルトの名無しさん :2012/08/20(月) 20:50:45.53
人間インターフェース作って、そっから男性クラス、女性クラス派生しても、射精メソッド、生理メソッドをどうやって実装するかが問題である。
中学生か
たとえばクラス書いてて、文字列を出力したいと思ったときに interface IPrinter { void Print(string text); } class MyClass { public IPrinter printer; public void Method() { printer.Print("文字列"); } } こんな風にする。なんでConsole.WriteLineやMessageBoxを使わないのかというと、 こうしておけば出力の動作をクラスの利用者が自由に決められるから。 こういうのをIoC(制御の反転)という
608 :
デフォルトの名無しさん :2012/08/20(月) 21:01:14.18
はぁ?
609 :
デフォルトの名無しさん :2012/08/20(月) 21:01:45.25
小学生か
こういうのをテンプレートといいます
例え話はするだけ無駄
612 :
デフォルトの名無しさん :2012/08/20(月) 21:07:31.91
,, -‐''" ̄ ̄`゙ ヽ、 / \ / i アイキャンダンス ♪ ノ ___ノ 加速させろ (____,,--‐‐ '''"~ l川 ♪ アイキャンレディゴー . |(●), 、(●)、 |川 | ,,ノ(、_, )ヽ、,, |リリ ゴーウェイ ♪ | `-=ニ=- ' |((( 彡\ `ニニ´ /ミミ / `ー‐--‐- ´  ̄ \ / .l _,,ヽ ___ 〉、 | l / ,' 3 `ヽーっ ヒト- _ l ⊃ ⌒_つ !__  ̄, ̄ `'ー-┬‐'''''" L  ̄7┘l-─┬┘ ノ  ̄/ .! ̄ ヽ └‐ '´ ` -┘
そのうち分かるようになるよ 継承という縦の繋がりだけじゃ不便だったから、 インターフェイスで横の繋がりも表現出来るようにしましょうという事。
「インターフェースは複数のオブジェクトに共通する機能を実装するためのメソッド等の規約を定義したものです」 たとえ話よりわかりやすい
質問を最後まで読んでる奴が一人としていないような気がする件について
616 :
デフォルトの名無しさん :2012/08/20(月) 21:20:30.85
JavaになくてC#にある要素、というのを学んでるのですが インデクサってー何のためにあるんですか? foreachあれば入らないんじゃないですか?
617 :
デフォルトの名無しさん :2012/08/20(月) 21:20:42.57
foreachで複雑な配列初期化してみな
619 :
デフォルトの名無しさん :2012/08/20(月) 21:22:05.10
>>616 質問の意味が、わかりません。
出直して来てください。
俺はスレタイ読んでいない奴の方が気になるがね ここの所ageる初心者丸出し君が大量にいらっしゃってくれちゃっているが お前たち用の初心者スレはここじゃないんだよ
621 :
デフォルトの名無しさん :2012/08/20(月) 21:26:27.83
人間未満は森に還ってろどあほう
>>621 癇に障ったかな?あなたに言った覚えはないのだけれど、思う所はあったようだねw
インターフェースにするかクラスにするか、 コンストラクターを呼ばせるか、クラスファクトリを作るかとかは 全体のフレームワークを設計するようになった時によりよい設計を する為に必要なだけだから、とりあえずは与えられたライブラリーが 要求する者を自分で作ればOK 習うより慣れろじゃないけど、概念的なことを前提知識の無い状態で 説明されても理解は難しい。とりあえずまずい設計でも良いから どんどん動くプログラムを書いていくのが上達の早道。 じゃないかなぁと思ってる初心者です。 この道を行けばどうなるものか、危ぶむなかれ。 危ぶめば道はなし。踏み出せばその一足が道となる。 迷わず行けよ。行けばわかる
625 :
デフォルトの名無しさん :2012/08/20(月) 21:29:43.57
626 :
デフォルトの名無しさん :2012/08/20(月) 21:30:20.94
これが自称非初心者のスレですか。
>>594 インターフェイスの仕組みが疑問なのか?
hogeがIHoge型のときのインターフェイス経由のメソッド呼び出しhoge.Hogehoge();の動作を説明すると
1. hogeに入っているオブジェクトの実際の型(クラス)を取得する。
2. 1で取得した型の中にある Hogehoge() メソッドを検索する。見つからない場合は基底クラスを検索。
3. 2のメソッドを呼び出す。
これだけの話。この説明だとインターフェイスがどこにも出てこないが、
実際、JavaScriptのような動的型の言語ではインターフェイスは必要ない。
C#は静的型の言語なので、変数hogeの型がHogehoge()メソッドを持っていることを
コンパイル時に確認できないといけない。だからインターフェイスを使って、
hogeがHogehoge()メソッドを持っていることを保証する。
インターフェイスがあると実行時にメソッドが見つからないというエラーが起きないし、
2.の検索も高速に行える。
629 :
624 :2012/08/20(月) 21:56:48.68
インターフェイスはコンセントの差し込み口だよ 差し込み口さえ決まってたら、電力の共有元が原子力発電所から きた物でも、ポータブルエンジン発電機でも、AC/DCコンバータ でもちゃんと動くだろ。 逆に言えば、コンセントのインターフェースさえ決めておけば、 供給先はドライヤーでも、パソコンをつないでもかまわない。 最初に家を建てる時にインターフェースが決まってれば 家を建てた後で何が差し込まれるかなんて気にしなくて良いだろ。
インターフェースってしっくりこないんです まで読んだ
気が触れているとしか思えない
インターフェースなんて半端なもんは要らんから多重継承させろ メソッドの中身コピペ推奨してるようなもんじゃねーかインターフェースなんぞ
コピペで済むなら抽象基底クラスにそのメソッドが配置されていなければなかったというだけの単なる設計ミスですね
>>632 多重継承ってどーなの?C++さんでは出来ちゃうらしいけど
635 :
デフォルトの名無しさん :2012/08/20(月) 23:58:06.32
>>633 その考え方は巨大万能糞基底クラスの元だろ
普通に包含しろ
>>635 だよね、おれの理解はまちがってなくてよかった
638 :
デフォルトの名無しさん :2012/08/21(火) 00:19:59.58
というか多重継承禁止にするほど副作用がありすぎたから 海外の頭のいい人がスーパークラスは一つだけで後はインターフェースでやれってことになってるんだし そういうことだよ しょっぱい日本のプログラマーが担当してる狭い世界で多重継承欲しいと思っても 視野を広げるとそうじゃないだよ
知性は方法や道具に対しては鋭い鑑識眼を持っていますが、目的や価値については盲目です。
IEnumerator という例があるのにな
それを言うならIEnumerableだろ IEnumeratorの方は別に抽象クラスでも問題ない 値型に実装したかったからインターフェイスなだけ
IEnumeratorは役割的には抽象クラスのStreamなんかに近いが Streamと違って仕様がはっきりしてて単純なので後でメンバが増えたりしないし 簡単に実装できるしそれだったら柔軟な方(インターフェイス)でいいやってことなのかな
643 :
デフォルトの名無しさん :2012/08/21(火) 20:20:44.40
どうも、また会社の先輩にインターフェースを質問したんですが、USBの差し込み口と一緒、規格なんだよ!わかれ!と言われました。 ネットで色々調べてみたら、ただ仕様通りにコーディングしてるレベルの駆け出しPGが意識するような機能ではないっぽいですね。 まだDLLを設計とかフルスクラッチする技術も知識もないので、必要になったとき勉強します。 どうもありがとうございましたスレの皆さん。
いや基礎知識だから理解しろよ
645 :
----------------v-------------------- :2012/08/21(火) 20:25:05.20
_,,-=-,,,_ ,,=":;;;;=''''-ミミミ=,,、 ,r';;;;;;,r" `''=;::::ミ、 ,r-シ″ ,r'''ヾ、 .ヾ::::} . / / ヽ;,._, 〉 ゙}:{ {/´ .__゙,.' 、 ,,,、、 ゙l=、 イ´ ‐-(. r' ´、゙゙''! ,i::::{ , | ;t=、:.:.`・ノ ゙ヾノ.,/::;r′ l、 ヾヾ>:.:.゙! ,/::;/` .ヽ:.:. `ヽ、゙"‐'` .,メ‐^ .\:.:. ._/ `ー-、____,-.'
先輩ボコボコにしてやりたい
647 :
--------------v------------- :2012/08/21(火) 20:28:15.61
∧_∧ (.<(|)>) ( ⊃ ⊃‖ | | | ‖ (__)_) ‖ \,ゝ`/~ /~ /∴∴*;‖,,:.,/ ,.、,'・ / / ,.、,'・・ '・,.、,'・、′,'・, ,' ,.、,'・、′,'・ | |~ /^ ) ,.、,'・、′, \・ '・,. :,"o∴\ \∴:: ・ ;,'・,_,,,,'・, ,'・, ,'・/ ・, ・ ;,',.、: ・, ,'・/∴,,゙・,,∴\'・, ,'・, ,'・ / \ ・, \ \,.、: ・,「∴;, ゜∴ ;∴」; ;ノ、;;;@;;!∴; . _,,___ ,.、: ・, ,'・i,. ,,゙;;;; ゙,, ●.,i ・、′/ 〉∴;"( 〉∴"o;( ′, ̄,. /●,,゙・;;^\ \∵;,,o,;:/ ),,O;.:O∴",,◎'":〉 ),,O;.";:〉 「;,,''“。∴・∵ |・ '・,.、,'′, ̄,.、: _ ,..-'"´ ̄\ \ :i,.∴ ,,゙;;;∴;,ノ _」 ,/´ ヽ \∵;,,o,;:/ |,.、,'・・ '・,.、,'・ ///∴,,゙・,,∴\'・ ∴: '"-ゞ ∴:: ;,'・,`゛ー-"-ー'ヽ"゛"',「∴;, ゜∴ ;∴」; \ ・ '・,.、,'・、′,'・, ,/,'・ 〉∵o* ,'・, ,'・i,. ,,゙;;;,, ● .,i ヽ. ;∴",,,O;.:O∴;",,''∴`;, ,'・,\∵;,,o,;:/ \ ・ '・,.、,′,'・, ・,.∴∴*;",,∴* ,'・, ・、′/ 〉∴;" '・、′,'・, ,.、/,'・;;∴o",,∴,,.. | |~ /^ ) | .ヽ、 \ __ ., ヽ_-  ̄ ̄ ̄ ̄ .| 丶 .| | .| ´`ヽ,.`、  ̄_--/  ̄ .| ,L__ノ / | .´ |.ヽ --─ ̄ (___) ┐ .| / | /∧ ヽ ┌ | | ∪ / | イ´
インターフェイス単体じゃインターフェイスを実装してる側から インターフェイスを使う側へのプッシュができないから、USBの例えはちょっと…
649 :
----------------v-------------------- :2012/08/21(火) 20:45:43.83
) ( ,, ) ) ゙ミ;;;;;,_ ( ミ;;;;;;;;、;:..,,.,,,,, i;i;i;i; '',',;^′..ヽ ゙ゞy、、;:..、) } .¨.、,_,,、_,,r_,ノ′ /;:;":;.:;";i; '',',;;;_~;;;′.ヽ ゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、} ".¨ー=v ''‐ .:v、,,、_,r_,ノ′ /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ ゙{y、、;:...:,:.:.、;:..:,:.:. ._ .、) 、} ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′ /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、} ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
650 :
デフォルトの名無しさん :2012/08/21(火) 21:12:42.04
バカでもPGやっていけるってことが分かった
____ 、-''~:::::::::::::::::::::::"ー-, ;:::::::::::::::::::::::::::::::::::::::::::i |:::/ ̄ ̄ ̄`' ̄ ̄¨ヾ::::| |:::| ━、_ _.━ |.:.::| |/ .,-ェュ ,-ェュ |.:.:|_ サトルー! (゙| ´ ̄ ,/ 、  ̄` |/,. | | ( 、 ゙、__,-'' 、)ヽ__/ \ `こニニ'´ _..┘ \___ _ ,∠ / ` \ / __ /´> ) (___|_( /<ヽ/ | / ´ | /\ \ | / ) ) U ( \ \ )
ム板もID入れなきゃならない時期にきてるな。
まーたその話か 過去何度となく声が上がっては見送られたことか
見送られる理由が至極不明
勢いあるスレ軒並み爆撃されてるのかと思ってたんだけど そうじゃなくて Win32スレとかVSとかWindows系だけ爆撃されてるね
他のスレ見る限り馬鹿ほどID変えて必死に自演してるから意味ねぇ。
別に見送る決定をしたわけでもなく単に立ち消えになっただけ そこまでのムーブメントでもなかったし
他の板のIDも運営の都合で導入されたと思われるものばかりだしな ユーザの要望なんか聞いちゃいない
>>656 >>660 ネイティブ信者か何かと思ってたが、Win32スレも被害にあってるのなら違うのか
あそこ何年も前に俺が荒らし始めたんだが 俺はもうあそこ見てないけどまだ荒れてるのか
昔は悪かったなんてショボイ話はいらん
664 :
デフォルトの名無しさん :2012/08/23(木) 17:13:24.33
下記に記載の事が出来るのかちょっと教えて下さい。 現在、WEBページ(cakePHPで構築)上の特定のページの内容をC#(Windowsアプリ)から取得したいと考えています。 ただし、そのデータを閲覧する為にはWEBページにログインする必要があるのです。 C#から WebbrowserControl とかを使わずに自動でログインした状態で特定のページのデータを取得する事って出来たりしますか? 質問文を書いた後で言うのもなんだけど、やっぱり普通にWebBrowser Controlを使った方が簡単そうだな。
同じような話がスレが変わる後とにでてきて説明するのも疲れるな
666 :
デフォルトの名無しさん :2012/08/23(木) 17:44:19.39
>>665 似た質問のスレURL、レス番を書けばいいだけじゃね?
>>666 残念ながら明確な答えはないんだよね
なんていうか
女が自分の身の上相談するのに「友達のことなんだけださ〜」くらいの
ぼかした質問されても答えに困る
ログインした状態がサイトによって違うから個別に対応するしかない ブラウザコントロール使うとその辺の手間は省ける場合が多いな。
669 :
デフォルトの名無しさん :2012/08/23(木) 18:00:42.75
>>667 >>668 汎用的な答えは無いみたいですね。
やはりデータ取得時にはWebBrowser Controlを使用して行います。
そもそもなぜWEBサーバ(ログイン認証方式)の箇所にファイルを
おくかというと生データをWEBサーバ上におくのは、当然ですがセキュリティー的にまずいからです。
670 :
デフォルトの名無しさん :2012/08/23(木) 18:05:14.91
エロサイトか何か知らんけど情報を出せってことだな
今の段階だと
>>667 のいう女が「友達のことだけど〜」と前置きして
相談するのと同じレベル
基本的には人がやっていることを同じようにやれば いいだけのはずだけど、ワンタイムパスワードみたいな ものがあると面倒かもね。
CakePHPならCookie有効にしとけば問題ないと思う つーか自前の鯖なら専用Webサービスも追加すればいい
673 :
デフォルトの名無しさん :2012/08/23(木) 22:25:09.16
C#でグーグルの検索項目に "ほげ" と入れて検索ボタンを押したいのですが frameを使っているみたいで一般的なサイトの様に出来ません。 frameを使っているサイト内の そのframe内にある項目にC#を使用して文字列の入力をする事は出来ないのでしょうか?
contentWindowでググれ C#関係ないからもう来るな
グーグルの検索なんてURLに検索文字列をエンコードしてリクエストするだけだカス
初心者ほどクドイ真似したがるよな
677 :
デフォルトの名無しさん :2012/08/23(木) 23:02:42.28
>>674 ぐぐってみます。
>>675 そんなの分かってる
>>676 GETパラメータ q=***
でやるやりかた位しってんだよ。
実際にframeを使ってるサイトに入力が出来るか実験したいんだ!
678 :
677 :2012/08/23(木) 23:07:11.50
俺がやろうとしてる事をやろうとしている人を発見しますた!!
つっても普通にq=でPOSTしてるだけだから何も変わらんのだが
680 :
679 :2012/08/23(木) 23:09:34.23
すまんGETだった
>実際にframeを使ってるサイトに入力が出来るか実験したいんだ! 初心者ほどクドイ真似したがるよな!な!な!な!な!な!
682 :
677 :2012/08/23(木) 23:18:49.06
↑ あほ。 簡単な方法はすでに出来るから 次のステージへの挑戦としてやってんだよ。
>挑戦 初心者ほどクドイ真似
アホの相手なんてやめてさっさと挑戦に戻れば? それとも暇なの?
汚くてサイト側の変更に極めて弱くて非常に非効率な方法が次のステップか お前は一体どこを目指してるんだ
686 :
デフォルトの名無しさん :2012/08/23(木) 23:24:28.11
初心者は黙れ。 いっけんくどく見える事をやり遂げられるかいなか、、、、 そこにプログラミングスキルの真意がある事にまだ気付かぬか、、、 この愚民どもが、、、
クックブックばっかよんでる底辺土方にありがちだと思う増す
お前デジタル土方に向いてるわw
ああ、こいつは目的を達成する前に目移りして飽きるタイプだな
やり遂げられないに613(無意味)マイクロソフトポイント
ちょっと前にもGoogle検索のURLクエリを拒否する人がいて「Googleの裏をかく(キリッ」とか言ってたね
裏をかくもクソも、ブラウザがやってることをC#で書いてるだけだもんな
というかGoogleなら検索APIがありそう
OAuthで認証してRESTのAPI利用して結果のXMLをXLINQで… みたいな方向に進んだ方が遥かにためになるわな
695 :
デフォルトの名無しさん :2012/08/23(木) 23:49:07.55
しかし、疑問があるな。 Google 検索 ボタンのソースを見ると↓になっていて、 typeにsubmitなんて記述が無いのに <button id="gbqfba" aria-label="Google 検索" name="btnK" class="gbqfba gbqfba-hvr"> <span id="gbqfsa">Google 検索</span> </button> プログラムから追いかけると↓で正常に認識されてるんだよなぁ。不思議だ。。。 if (type.Equals("submit")) { //click }
本格的に独り言が始まった こりゃやべーわ
697 :
デフォルトの名無しさん :2012/08/24(金) 00:32:41.31
HTMLでUI作りたいってWPFスレで騒いでた阿呆が居なくなったら 今度もまたHTMLか。板違いのネタがこうも続くと飽きるわー
>>697 グーグルのhtmlがリンクしてるjsの中味みてみろ
>>699 どの *.js の何行目あたりでしょうか?
ローカルに全てDLしてbuttonのクラス名とかidでgrep
かけてもヒットしません。
スレ違いですよ死ね
702 :
デフォルトの名無しさん :2012/08/24(金) 13:45:47.74
>>701 _____.
┏┳┳┓ / \ ..┏┳┳┓
┏┫┃┃┃ / /・\ /・\ \ .┃┃┃┣┓
┃┃┃┃┣┓|  ̄ ̄  ̄ ̄ |┏┫┃┃┃┃
┃ ┃┃| (_人_) |┃┃ ┃
┃ 珍カス ..┣| \ | |┫. STOP!┃
┗━━━━┛\_ ... \_| _ /...┗━━━━┛
┏┻┓┃
.. ┏━┛ ┣┻┓
.... ┗━━━┫ ┗━┓
.. ┗━━━┛
ごめんなさい「死ね」というのはミスタイプです 送信する前によくチェックするべきでした死ね
704 :
デフォルトの名無しさん :2012/08/24(金) 14:06:20.39
>>703 _____.
┏┳┳┓ / \ ..┏┳┳┓
┏┫┃┃┃ / /・\ /・\ \ .┃┃┃┣┓
┃┃┃┃┣┓|  ̄ ̄  ̄ ̄ |┏┫┃┃┃┃
┃ ┃┃| (_人_) |┃┃ ┃
┃ 珍カス ..┣| \ | |┫. STOP!┃
┗━━━━┛\_ ... \_| _ /...┗━━━━┛
┏┻┓┃
.. ┏━┛ ┣┻┓
.... ┗━━━┫ ┗━┓
.. ┗━━━┛
>>698 HTMLSHIRANAINO??WWW
プログラマのみなさんは2ちゃんブラウザは何を使っているの?
707 :
デフォルトの名無しさん :2012/08/25(土) 09:39:31.29
>>705 _____.
┏┳┳┓ / \ ..┏┳┳┓
┏┫┃┃┃ / /・\ /・\ \ .┃┃┃┣┓
┃┃┃┃┣┓|  ̄ ̄  ̄ ̄ |┏┫┃┃┃┃
┃ ┃┃| (_人_) |┃┃ ┃
┃ 珍カス ..┣| \ | |┫. STOP!┃
┗━━━━┛\_ ... \_| _ /...┗━━━━┛
┏┻┓┃
.. ┏━┛ ┣┻┓
.... ┗━━━┫ ┗━┓
.. ┗━━━┛
708 :
デフォルトの名無しさん :2012/08/25(土) 09:40:24.64
>>706 _____.
┏┳┳┓ / \ ..┏┳┳┓
┏┫┃┃┃ / /・\ /・\ \ .┃┃┃┣┓
┃┃┃┃┣┓|  ̄ ̄  ̄ ̄ |┏┫┃┃┃┃
┃ ┃┃| (_人_) |┃┃ ┃
┃ 珍カス ..┣| \ | |┫. STOP!┃
┗━━━━┛\_ ... \_| _ /...┗━━━━┛
┏┻┓┃
.. ┏━┛ ┣┻┓
.... ┗━━━┫ ┗━┓
.. ┗━━━┛
710 :
デフォルトの名無しさん :2012/08/25(土) 10:06:41.80
>>709 _____.
┏┳┳┓ / \ ..┏┳┳┓
┏┫┃┃┃ / /・\ /・\ \ .┃┃┃┣┓
┃┃┃┃┣┓|  ̄ ̄  ̄ ̄ |┏┫┃┃┃┃
┃ ┃┃| (_人_) |┃┃ ┃
┃ 珍カス ..┣| \ | |┫. STOP!┃
┗━━━━┛\_ ... \_| _ /...┗━━━━┛
┏┻┓┃
.. ┏━┛ ┣┻┓
.... ┗━━━┫ ┗━┓
.. ┗━━━┛
質問なのですが、 class NumUpDownEx<T> { private T m_value; private System.Windows.Forms.NumericUpDown m_ud; // これは適切に与えられる前提 T Value { get (T)(object)m_ud.Value; } } // decimalをTにキャスト ... } は一応コンパイルできて動作もするのですが、(object)へのキャストを無くして、 decimalからTに直接キャストさせる方法って無いですか (「decimalからTにキャストできる」ということを制約で与える等。)
712 :
711 :2012/08/26(日) 18:55:50.71
失礼しました 誤: T Value { get (T)(object)m_ud.Value; } } // decimalをTにキャスト 正: T Value { get { return (T)(object)m_ud.Value; } } // decimalをTにキャスト
713 :
デフォルトの名無しさん :2012/08/26(日) 18:57:58.44
>>711 _____.
┏┳┳┓ / \ ..┏┳┳┓
┏┫┃┃┃ / /・\ /・\ \ .┃┃┃┣┓
┃┃┃┃┣┓|  ̄ ̄  ̄ ̄ |┏┫┃┃┃┃
┃ ┃┃| (_人_) |┃┃ ┃
┃ 珍カス ..┣| \ | |┫. STOP!┃
┗━━━━┛\_ ... \_| _ /...┗━━━━┛
┏┻┓┃
.. ┏━┛ ┣┻┓
.... ┗━━━┫ ┗━┓
.. ┗━━━┛
>>711 C#のジェネリックは内部の(CLRの)仕組み的に無理。
>>711 whereで構造体かdecimalが持ってるインターフェースの制約を与えれば可能
それ以外は不可
LINQのorder句なんだけど、order句を使った場合って遅延実行って無理だよね? 全要素を少なくとも1回走査しないと並び替えなんてできないし もし出来るというならどうやって実装してるん?
718 :
デフォルトの名無しさん :2012/08/26(日) 22:35:45.07
LINQってそんなに便利なのか? 現状の機能で事足りるから 別に手を出したいと思わない。 メリットを教えてくれ。
>>717 全要素の走査は必要だが、ソート完了前に要素を返し始めることは無理ではない
あと遅延実行は「GetEnumeratorを呼ぶまでソートが実行されない」って意味だと思うよ
>>718 未開の野蛮人にPCの必要性を説明できるか?
そういうレベル
LINQ使いはMAC使いみたいなもの。
722 :
デフォルトの名無しさん :2012/08/26(日) 23:37:28.73
Webbrowser コントロールの入力項目に C#から文字を入力しようとしているのですが 下記コードにて InnerText にしっかり値を設定したにも 関わらず、その部分を通り過ぎたところでクイックウォッチで値を見ると nullになっています。(すぐ1行下で・・・) 原因としては何が考えられますか? string name = "次郎"; element = wb.Document.GetElementById("id_hoge"); element.InnerText = name;
部分的なコードじゃなくてさ・・・
>>722 そのコードは間違っていない
他が間違っているはず
他のアプリのクライアント領域を取り込んで 自作アプリの領域内で動作させたいんですがC#にそんなことはできますか? まるで他のアプリがひとつのコントロールみたいになってる!的なイメージです
WinAPIで頑張ればできるのかもしれないが知らん 少なくともC#と全く関係ないのは間違いない
727 :
デフォルトの名無しさん :2012/08/27(月) 00:04:41.58
>>723 >>724 自己解決しました。
valueに設定した通りますた。
しかし、このコードでもいいはずなんだけど。。。わからぬ。
728 :
デフォルトの名無しさん :2012/08/27(月) 00:08:17.77
navigateもしくは DocumentTextで構築した情報以外に自分で追加した情報は 一部のアクセス方法では反映されてなかったはず だからどんなコード書いてるか出せって言ってるのに気かねえやつだな
729 :
デフォルトの名無しさん :2012/08/27(月) 00:11:53.10
↑ 2chに一度に書き込める文字数は限られてるでしょ?
webbrowser使うならjavascriptでやればいいじゃん 何でもC#でやろうとするからだめなんだよ
ネタかバカだろ。
すくなくとも、
>>730 は 2ch 専用ブラウザ とは関係ないし。
>>725 SetParentでググれ
出来ると思うけど大変だよ
737 :
デフォルトの名無しさん :2012/08/27(月) 09:06:57.66
だからC#関係ないつーに C++ですでにその辺を実現しててC#に移植したいっていうのならまだわかるけど
.NETにそう言うのないのかって聞きたいんだろ
739 :
デフォルトの名無しさん :2012/08/27(月) 09:17:06.15
逆アセンブルされないアプリを作る場合 C++しかない?
難読化すればいい
742 :
デフォルトの名無しさん :2012/08/27(月) 11:05:52.13
リバースエンジニアリングは程度の問題でC++で作ったところでできちゃう .netの場合な難読化しててもいろいろ情報が埋まってるので復元しやすいだけだし
逆アセンブルはC++でもできるぞ .NETの場合はその出力が読みやすすぎるのが問題で 難読化すればかなりマシにはなる
.netの場合は難読化してなければほぼ元のソースに復元できるけどなw
VS(2010以降)なんかILSpyで逆コンパイルしたら 惚れ惚れするような美しいソースコードが出てくるぞw
俺の書くソースはもともと難読化されているから 復元されても平気
>>740 定番回答の三ヶ条
・お前の書いたコードなんて読みたがるやつは居ない
・カジュアルハック対策なら難読化しとけ
・隠したいデータはクライアントに渡すな
>>747 いや俺の書いたソースはパクリたいと
思う奴らがごまんといるんだよ。
だから難読化は必須なのさ。
C++も逆アセンブル出来るとはしらなんだ。
749 :
デフォルトの名無しさん :2012/08/27(月) 11:23:44.01
>>748 x86/AMD64のマシン語がならんでるだけなのにできないと思うのが不思議だわ
>C++も逆アセンブル出来るとはしらなんだ こんな事言うレベルの奴のコードなんて見たくもない
>C++も逆アセンブル出来るとはしらなんだ。 まあこの程度の人が書くコードなんてたかが知れてる、、、 というか、自分がやってることに関連してなきゃそうそう使えんだろ
絶対に逆アセンブルされないプログラミング言語は何?
糞プログラマほどオープンソースに抵抗あるよな そのしょぼいソフトにしかアイデンティティがないんだろう
無いよ 汎用品使ってる以上は
一回逆アセンブルしてリファクタリングの時代がきたのか
他人の有償のコード使っているとか、GPL違反とかにひっかりそうな部品使ってるからかな? もしくは、こっそり使いたいと思っているからだったり?
逆アセンブルされて困るのは自分が考案したアルゴリズムぐらいだろうか 自分のプログラム見直したらそんな技術は何一つなかった・・・
dll一切無しで1MB以上のexeしかないフリーソフトってすごく怪しいんだよね
画像とか埋め込むと1メガとかすぐ逝っちゃう
MFC静的リンクとかすごいことになるよ
性的リンクとかすごいことになるよ
ILMergeなんてものもあるからな。
766 :
デフォルトの名無しさん :2012/08/27(月) 17:54:32.41
GetElementsByTagNameで要素を取得するのと 正規表現を駆使して取得するのとで処理が速いのはどちらでしょうか?
実際に計測してみろとしか言いようがない
768 :
デフォルトの名無しさん :2012/08/27(月) 18:01:29.21
みなさんの経験上ではどちらが速いのかなと思いまして…
元のdocumentの長さとか、何回検索するかとか
770 :
デフォルトの名無しさん :2012/08/27(月) 18:21:00.49
逆アセンブルする必要性が感じられん。
>>768 「経験上」って最も信用しちゃダメだよね
経験上で言うなら、取り敢えず楽な方で書く
773 :
デフォルトの名無しさん :2012/08/27(月) 21:03:11.20
GPLって気づかなくて製品化しちゃって難癖つけられたらどうすればいいの? ライセンス料が法外で払えなかったら回収?
774 :
デフォルトの名無しさん :2012/08/27(月) 21:04:33.00
分離して自力でコード書くとかすればいいんじゃね? 対策方法はあるでしょ
製品化するようなものならたいていはGPL感染源の他にも 他のサードのライブラリ使ってるだろうから、 それらのソースコードをすべてGPLで公開できない限りはどう足掻いてもGPL違反だな もしくはGPL感染源の著作権者に金積んで特別にライセンスしてもらうか
自分で自力で考えて書いたコードがたまたま権利違反してたらアウトっておかしくね?
>>777 完全に自力で書いたなら問題ないでしょ。特許侵害は起こりうるけど。
GPLと気付かずネットに転がってたコード片をコピペしただけでも感染する。
779 :
デフォルトの名無しさん :2012/08/27(月) 21:33:18.58
Element.InvokeMember("click"); でボタンをクリックした場合に DocumentCompleted イベントが発生しない場合があるのですが 何が原因でしょうか? もしくは、強制的にこのイベントを走らせる方法とかってあったりしますか?
780 :
デフォルトの名無しさん :2012/08/27(月) 21:33:27.97
難読化したコードと、ただの糞コードは、紙一重。
781 :
デフォルトの名無しさん :2012/08/27(月) 21:38:54.57
そもそも他人コードなんて読みにくいうえ、自分より上でもなんだこの汚いコードとか言っちゃう人多くて、他人のコード拒絶する人多いのにそんな心配必要かな・・・。 GithubやCodeprojectなんかには日本人PGじゃ到達できないレベルのがごろごろしてるんじゃないの? 盗まれるとかより、自分の稚拙なコードが衆目に晒されるのが恥ずかしくて耐えられないんだが・・・
難読化する意味について
>>778 一番悲惨なパターンはネットに転がっていたソースはフリーで、
後になってGPL判明でまとめてGPL感染するパターンかなw
回避というか、気付いてしまったときに、他のライセンス、つまり、
マルチライセンスの確認するぐらいしか今のところ手はないのかな。
オープンソースプロジェクトなんて9割は すぐに投げ出したスケルトンコードだけのゴミ
盗みたくなるようなアルゴリズムってどんなのだ?
786 :
デフォルトの名無しさん :2012/08/27(月) 21:54:38.79
お前のスキルでは、盗めないよ
>>783 それいいな
dobonみたいなサイト作って釣ってコピペグラマ全滅とかおもしろそう
788 :
デフォルトの名無しさん :2012/08/27(月) 21:56:17.84
弟子「先生、処女を貴重だと思う男は多いです」 孔子「その通りだ」 弟子「しかし逆に童貞は女に気持ち悪がられます」 孔子「確かに」 弟子「おかしいじゃないですか、何故このような意識の違いが生まれるの ですか」 孔子「それは一度も侵入を許していない砦は頼もしく、一度も侵 入に成功したことがない兵士は頼りないからだ」
コピペでプログラムなんかできんの?
790 :
デフォルトの名無しさん :2012/08/27(月) 21:58:37.86
>>787 部分的なコードはそもそもGPLがどうのなんて権利はないでしょ
>>782 全裸で変態扱いされるか、ネクタイつけて紳士扱いされるか程度の差。
俺のコードは美しいというの以外は、とりあえず、難読化しておけばいいよw
>>781 カタカナ英語的な壁がすでに日本人の場合出来上がっている点もあるしな。
でも、きっと魔改造とか、技術革新的部分に日本人は関わっているような気はする。
>>787 やめてくれ。俺、お世話になること多いからw
まあ、GPLライセンス違反したもの派生がどこまで波及するかは法廷で争われていなかった気がするから、
下手すると、サイト運営者がすべてのライセンスに関して賠償なんて話になるし、意図的だと、
それも加味されて、えらいことになる可能性高いから、やめとくべきだとは思うけれど。
792 :
デフォルトの名無しさん :2012/08/27(月) 22:01:11.85
>>790 程度問題だけどMSDNのサンプルコードは一応ちゃんと全部ライセンス付いてたりするし
i=i++って書くとGPLに感染するんだっけ?
>>789 やる気になれば、できるような気はする。基本は積み木だから。
ただ、積み木だって崩れれば意味がないから、技術や経験なしには無理だよね。
でも、よい書き方を真似てみようとがんばってみるときにコピペすることの方が多いんじゃないかな。
ところでGPLの下で.NETアプリを配布する場合、.NET Framework自体も GPLで公開する義務が発生するの? Monoでカバーされてる範囲は「オープンソースの代替が存在する」ということでセーフだろうけど WPFとかASP.NET(Web Formsの方)とかどうなんだろ
797 :
796 :2012/08/27(月) 22:20:17.05
あ、WebFormsはMono実装あるな
そんなふざけたライセンスをMSが許容するわけがないだろ…
GPLが癌なのは確かだけど、いくらなんでもその解釈はGPL勉強しなおしてこいと言わざるを得ない。
GPL汚染の範囲をハッキリさせるために、誰か裁判やりまくってくれないかな
>>800 御尊命なうちに直接聞くのがいいような気がするw
.NET Frameworkを配布物に同梱したらアウトだよね Windowsにプリインストールされてる.NETを利用するのはどうなんだろうな .NET Frameworkが「システムライブラリ」かというと微妙だし OSに含まれてるかどうかはWindowsのバージョンにもよるしなあ
>>803 .NETを利用したGPLソフトウェアを配布するときの話
.NET Frameworkを再頒布する権限がGPLの成果を使ってるかどうかに依存するっていう 発想がよく分からない気が。 それって別問題じゃないの?
>>802 ん、同梱時点でMSの再頒布ライセンスに同意していないと配布できないじゃん。
GPLと互換性のないものを同梱して配布したらGPL違反になるから GPLをそのまま適用することはできないんじゃないの? 当然MSから見りゃ再頒布ライセンスに従えば配布していいよというだけだけど、 あくまでGPL側の話
>>801 ライセンスとして一人歩きしてるから、判例積み上げるしかないよ…残念な事に
通常、.NETでライブラリを参照して利用するとライブラリにGPLが感染するのは明らか。 .NET自身のライブラリに例外条項が適用されるかどうかが問題で、 .NETがOSの一部とみなされるならOKなんだけど、仮にそう認められても例外の例外で 「コンポーネント自体が実行形式と一緒に頒布される場合は除く」だから GPLに.NET同梱はダメと解釈するのが自然じゃない? MSが許さないんじゃなくて「GPLを適用できない」ということね
.NET界隈は癌が進行してなくて快適だな Ms-PLがGPLとは組み合わせられないが他のOSSライセンスとは共存できて使いやすい
最近はMSはApacheライセンスをよく使ってるよ Ms-PLだと変な問い合わせが多かったから、よく似た(GPLv2不可も含めて) 有名なのを使うことにしてるらしい
こんな議論は他スレでやってくれ
enum jungle { ~ } Jungle Jungle{get;set} プロパティ名は、一般的に頭が大文字みたいなので、大文字にすると enum名と被ってしまう、そのような場合どうすればおk?
enum HogeType HogeType Hoge
そのままでいいよ 標準ライブラリにだって型名と同名のプロパティなんか幾らでもある enumを内部型にしてるなら外に出してinternalにしとけばよい
むしろ、名前かぶってまずいと思った理由はなんなんだろう。
可読性だろ
Hoge.Hoge.Hoge.Hoge どれがネームスペースでどれがクラスでどれがプロパティかわかるか?
ワロタ
気になるなら名前を工夫しろ 我慢できるならそのまま行け それだけ 悩んでる時間あるならコード書け
>>819 残念、属するクラス名と同じ名前のメンバは定義できない
824 :
デフォルトの名無しさん :2012/08/28(火) 15:18:44.53
最初は、いくらコードを綺麗にしているつもりでも リファクタリングを繰り返すうちに 自分で書いたコードでも読み辛くなってしまう。 そんな事ってお前らないですか? どうしたらこれを回避出来るのだろうか?
自分の書いたコードが読みにくくなるのは、時間がたって忘れてくからでは。 その前提で、赤の他人が見てもわかるもの作らないとどうしようもない。
826 :
デフォルトの名無しさん :2012/08/28(火) 15:44:09.91
コード量が多くなるとどうしても スパゲッティーコードになってしまう。
コードなんて別に綺麗じゃなくていいよ
828 :
デフォルトの名無しさん :2012/08/28(火) 16:11:32.54
コンソールアプリケーションで コマンドプロンプトからプログラムを実行し 途中まで実行したら一度ストップし エンターキーが押されたら再度実行するということはできますか?
console.readline(); でいいよ
簡易Webサーバもどきみたいのを作っているのですがマルチスレッドについて詳しく解説している書籍などはありませんでしょうか 知っていたらお願いします .net 3.5なので非Taskであれば嬉しいです
あるのかわかりませんがlock(this)と書いて注意の一言も無い本やサイトは辞めとくのが賢明
あと、Thread建ててその中で同期I/OとかSleep書いてるのもアウト。
>>833 > あと、Thread建ててその中で同期I/O
Unityだとそうしないと固まるAPIがあったわ
>>834 いや、それも書き方悪い。
自分もUnityやってるというか、そういう同期I/Oやっちゃってるコードの直し方の指導やったところ。
>>831 More Effective C#の3章がまるまるマルチスレッドだった気がする
>>835 非同期api呼んだらランタイム内部のキューに積まれて、そのままキューの中身が実行されない。
通常のmonoランタイムでは動く。
obj.hoge()
複数スレッドから触る以前に、これだけで死ぬのに書き方が悪いとか言われてもw
>>838 スレッドリソース確保しっぱなしになったり、コンテキストスイッチのコスト跳ね上げるから。
特に、スマホとかでシングルCPUだと致命的にパフォーマンス落とす。
>>837 それ、WPF→Silverlightでも似たような文句言う人いたけど、たいていはほんと書き方悪いだけだから。
インターフェイスだけ一緒で内部実装違う環境で動かして死ぬとか、それはAPIの想定外の使い方してる。
そりゃ、Unityはたいがい変なことしてて、iPhone実機で動かしたときだけ死ぬコードとかもあるんだけども。 非同期I/Oは普通に呼べたよ。
>>845 socketのbegin~系でios proで停止しないコード書いてみ
想定外の使い方(笑)
オープンソースの有名なライブラリは軒並み止まる。
silverlightみたいな環境はともかく、通常のmono/.netは想定外の使い方ができるような複雑なインターフェイスは備えてないだろう
>>842 その問題、Unity 3系で直したみたいな話なかった?
ゲ制作のUnityスレでやれよ
stringプロパティをもつクラスの配列を、AtoZでソートしたいんだけどどうすればいいかな。Listを使わずにする方法があれば教えろください
stringプロパティ → string型のプロパティ
Array.Sort(array, (x, y) => x..String型のプロパティ.CompareTo(y.String型のプロパティ)) または array.OrderBy(x => x.String型のプロパティ) 配列にしたければ最後に.ToArray()を付ける foreachするだけなら後者でToArrayなしがおすすめ
>>849 Class class = new Class[1000];
にしておいたとき、Clsssのインスタンスを1000個作ってない場合はどうすればいいんだろ。
あれ、俺日本語おかしいな。とりあえず、NullReferenceExceptionを回避したいんだ。
ユーザーが任意のタイミングでClassを作れるようにしているんだけど、あらかじめClassを1000個作っておくのはできないとして...
Class class; Class[] class; 別物よ
>>851 あぁ、ごめんごめん。
Class[] class = new Class[1000];
こっちでした
仮にClassのインスタンスを1000個作っておいても、ソートされないのだがなんでだろう...。 100%俺が悪いのだろうが...
隣の席に座ってないからw コード晒せよ
nullを結果から除外し、プロパティ値がnullなら空文字とみなすんだったら var result = from x in array where x != null orderby x.プロパティ ?? string.Empty select x; ソートした結果がresultに代入されるのであって、arrayの内容は変化しないことに注意
シーシャープて弱参照はないんですかいな?
WeakReference
.NETの弱参照はJavaの弱参照みたいに手軽なキャッシュとして使おうとすると すぐにGCされてしまって全然役に立たなかったりする キーがGCされたら適当なタイミングで値もGCしたいというようなときに使う
WeakReference直接使う用途って何かある? というか、ConditionalWeakTableとWeakEvent以外の用途。 キャッシュの類に使おうとすると逆にパフォーマンス落とすらしいし。
あー、Java方面では結構弱参照って言葉聞くと思ったら、キャッシュ用途に使えるような挙動するの?
>ConditionalWeakTable そんなもん追加されたのか。WeakReferenceを使うほとんどの用途はこれで十分だな。 Javaの弱参照は「GCしてもいいけどなるべくGCしないでね」という指定ができるから キャッシュに使いやすい
>>847 ですが、解決したので報告を...
まず、既にあるClassのインスタンスの数をとっておきます
1000個のインスタンスを作ってstringに文字コードで最後あたりにくる、使われる可能性の低いものを入れ込んでおいて、ソート。
ソートは
>>849 の Array.Sort(array, (x, y) => x..String型のプロパティ.CompareTo(y.String型のプロパティ)) を使用。
最初にとっておいたインスタンスの数以降のClassをすべて破棄。
このような方法をとりました。なんともまわりくどい方法ですが、ラムダ式もLINQもろくに理解していないバカなので許して。
何と何が矛盾してるって主張なのかわからんのだが
866 :
デフォルトの名無しさん :2012/08/29(水) 21:23:14.48
オブジェクトの配列をクラスの配列と呼ぶのはやめて さらにClass classとか書くのやめて Javaスレかと思った
素直じゃないから
さっきからソース出せって言ってるじゃん 話を聞いてて思うのが素直に「わからないので見てください」というのが足りない
面白そうな問題には全く見えないしどうでもいい
うい。
>>867 JavaならClass clazzだろ
これ見ると吐き気がするわ
俺なら吐くね
>>824 プログラムの規模が大きくなると、リファクタリングでは吸収できない構造の変化が生じる
プログラムの複雑さに対応できる、データ構造・クラスの設計など見直しが必要になる
876 :
デフォルトの名無しさん :2012/08/29(水) 22:23:38.31
Class orz にしとけ。どうせ、しょぼいから
877 :
831 :2012/08/29(水) 22:27:03.89
こんばんは色々有り難うございます More EffectiveC#ってのを買ってみます さんくすですー
それはアッー
879 :
デフォルトの名無しさん :2012/08/29(水) 22:31:40.38
interfaceを使って IList と IList<T> みたいなのを作りたいのですが、出来ません。 public interface ISample { object Test { get; } } public interface ISample<T> : ISample { new T Test { get; } } public class IntSample : ISample<int> { public int Test { get { return 0; } } } --- 上みたいに作っても、コンパイルエラーになってしまいます。 エラー 1 'IntSample' はインターフェイス メンバー 'ISample.Test' を実装しません。'IntSample.Test' は、一致する 'object' の戻り値の型を持たないため、'ISample.Test' を実装できません。 どうやったら、できるんでしょうか?
>>881 インターフェイスメンバの明示的実装という
public class IntSample : ISample<int>
{
int ISample.Test { get { return this.Test; } }
public int Test { get { return 0; } }
}
883 :
882 :2012/08/30(木) 01:01:36.94
訂正 object ISample.Test { get { return this.Test; } }
>>862 フレームワークレベルでそういうのを提供してしまうと、
GCのパフォーマンスチューニングでネックになったりしないのかな?
Oracleがんばってる?
JVMはGCや最適化などについて無駄に細かい設定ができるから そういうJVMの特定の実装に期待したコードを書くなら自分で設定しろってことなんだろ
意味不明
.NETの設定は逆にブラックボックスすぎ GCの設定なんてフラグが4つあるだけだからな しかもクライアント用の設定を選ぶと実質設定項目0という
>>886 WORAを標榜しといて、特定のJVMの実装を期待したコーディングや設定するのってダブルスタンダードじゃね?
>>889 大きく互換性を損なうような実装はそもそもオラクルがJavaと認めないから問題ない
オープン標準なCLIとは違って、あくまでオラクルにライセンスを受けたものだけがJavaだからな
そしてASFに絶縁されご機嫌取りにOOOを贈ったと
リジェクトされる理由が互換性だけなら良かったんですけどね…
>>894 そんなもんユーザーコードレベルで実装できるわけないんだから
実際の挙動は当然JVMの実装次第でしょ
そもそもまだWORAって謳ってんだっけ Oracleになってから公式に聞いたことがないけど
サーバーならある程度WORAいけると思うよ クライアントでは全くもって幻想だけど
まぁスレチだからこのくらいにしとけって
>>895 残してくれる「かもしれない」って書いてるだろ
実装次第だからネックにもならないし、設定も特定の実装に依存もしない
ドキュメントにあることだけを前提にすべき
少なくともキャッシュしたい意図をJVMに伝えることは出来る
>>899 実稼働環境を前提にしないパフォーマンス調整なんか何の意味もないよ
っていうか実際試さないでどうやるんだよw
試して工夫した時点で環境依存だよ
はいはい次の方どうぞ
>>900 そうでもないさ、Windowsクライアント環境でチューニングしたものが
Linuxサーバーやモバイルでも少なからず効果出てる
JavaだけでなくC#でもな
そりゃチューニング内容にもよるけど、そんなに環境特化しなくても出来ることはある
はいはい次の方どうぞ ボクたちはそろそろ家に帰って寝ようね
>JavaだけでなくC#でもな 取ってつけたような一行w
Javaなんてサーバーで動かすものだから 稼働環境に応じてチューニングするのが当然という考え方なんだろ .NETはクライアントでもよく使われるから、どこでも特別な設定なしにそこそこの効率が出なきゃいけない
○○だけではなくC#もな、と付け加えることによって、あらゆる話題を扱うことを可能にする このままこのスレはWin32APIスレの二の舞になってしまうのか!? ご期待ください
あふれ出る無理やり感w
避難所が都合2スレもあるから、ああはならない
CLIがオープン標準ていうのは形だけだからなぁ。 実質はMSオリエンテッドなシステム限定だからオープンとは お世辞にも言えない。
>>909 CLRは世代別GC、CF CLRはマーク&スイープGCで性質が全然違う。
XNAのおかげでその辺の最適化の話は色々出てたけど、.NETでやるのとはまるで違う。
.NETでGC周りのチューニングすれば.NET CFでも少なからず効果出るってのは暴論としか言えない。
MonoがCLIを一応実装していてMSも認めているのは事実だからな Javaなら確実に特許侵害で訴えられる それにCLIの実装が難しいのはJVMに比べて遥かに詳しく文書化されてるからで それだけオープンになってるとも言える Javaの公開されてるJVM仕様だけ読んで忠実に実装したところでJavaと認められるわけじゃないしな
もう飽きたからJavaキチは巣に帰れよ…お前らも相手すんな
というかJavaは実装に必須の部分が特許になってるんで 実装すると特許侵害 ↓ Java互換なら特許使用を許可するよ ↓ Java互換名乗りたければTCKに合格してね ↓ TCKはモバイル環境での実行を禁止したVMにしかライセンスしないよ ↓ ( ゚д゚) ってモデルになっている
厳密にC#の相談に限定するなら.NETなんて環境依存だから出てけとも言えるはず
>>911 世代内は普通にマークアンドスイープなんだけど
まさかプログラミングMicrosoft .NET Frameworkすら読まずに喋ってないよね
しかもほとんどのオブジェクトは第一世代で寿命を終える
>>916 2000年のPart1からずーっと.NETの話題OKだった実績があるわけで
>>917 まさかそんな基礎知識以前の突っ込みしてくるとは思わんかった。
世代別GCと(1世代だけの)マーク&スイープGC
わざわざ()内を書かないと理解できない系の人間か?
Part1見返すと、当時はマイナーすぎてアンチが全然居なくてワロタ
俺が必死に普及(布教)活動してた頃だな
お前らって高学歴なの? 1年ぐらい勉強してもお前らの会話さっぱりわからないんだが 大学でちょろっとC言語習った程度の俺には無理なのか
現場でこんな話してたらキチガイと思われるから安心していい。
VS C# 2001 Standerdを買った頃が懐かしい
VC++のためにVS2003.NETアカデミック版買って、.NET…何それ?ってなったのが懐かしい。
当時は.NETなんてやる奴いねーよwと笑ってた俺が今じゃC#ばっかりだからなぁ
>>923 最初は誰でも初心者。やってる内に色々覚えるさ
俺は最初VC#2003standard買って次にtheSpoke買った 初めから買えばいいものを VC#が無駄になった
このスレのGCも有効にしてくれー
趣味グラマだけどExpress以前はcsc.exeとEmEditorで遊んでたわ リソースの作り方わかんねーとか叫んでたw
長らく秀丸を愛用してきたがIDE全盛の流れで利用頻度が かなり落ちてきた。
>>923 知ってるふりさ,ぐぐってある程度な文書こぴぺして語尾つけてるだけ。
ある条件を満たすまでスレッドをブロックしたとき, 昔はwhile(!条件){ Sleep(1); }を使っていました。 しかし、SpinWait.SpinUntil()を使うとよいと聞いたのですが、 両者にどのような違いがあるのでしょうか? また最近の実装方法を知りたいのですが、Taskは終了するまでブロックという 使い方が主なようですが、条件でブロックすることはできないでしょうか?
SpinWaitはSystem.Threading 名前空間に属していますけど 同じ名前空間のクラス全部目を通してみましたか? 通してないのならManualResetEvent、あるいはAutoResetEventを参照してみてください
>>935 処理をシーケンシャルに書きたいからブロックしてるだけなんだったら、
Taskを使ってスレッドをブロックせずに待つのが今風
ContinueWithやawaitを使って終了後の処理を続ける
>>935 ちなみに、「条件を満たすまで待つ」の代わりに「条件を満たしたらイベント起こす」みたいな、
オブザーバーパターンというか、Rx的な挙動で実装するのがおすすめ。
みなさん、レスありがとうございました。 親切な方の多いスレですね〜。
using System; using System.Collections.Generic; using System.Linq; using System.Text; class sample { public static void Main() { Console.Write("数値..."); int n = int.Parse(Console.ReadLine()); Console.Write("実数..."); double x = double.Parse(Console.ReadLine()); Console.Write("{%0}{1} 整数*実数", n , x); ←NG } } どうして動かないのかさぱりわからん。
{%0}
>>942 どうして%が・・・ありがとう、まったく気が塚なんだ
それは気付けよww まあ、やっぱなぁ、文字列中に特殊文法埋め込むのはビルド時にエラーにならないのがつらい。
ビルド前処理で検査すればいいじゃん
なにそれ? ねえねえねなんなの? なになに?
SetWindowsHookExでマウスホイールをフックして 左クリックに置き換えたいんだけどうまくいかねえ もしかしてLowLevelMouseProcのwParamとかlParamの書き換えってできない?
Win32スレで聞いた方がいいと思う。確か出来なかったと思う。 WinRTへ移行しようという今更そんなことをやろうとしてる人が いるのにちょっと驚き。
LLじゃ置き換えは無理 ローカルで良いなら非LLで置き換えられたはずだけど
>WinRTへ移行しようという今更 またまたご冗談を
>>948-949 やっぱこれが原因か、ありがとう
だが残念ながらグローバルなんでどうしたものか…
拾ったメッセージは破棄して、別途SendInputあたりでいけるといいんだが
win8プログラム作るのに気をつけることって特にありますか?
>>948 WinRTだとできないとでもいいたいのか?
windowsRTはいわゆるサンドボックスになってるでしょ フックとかそんなのは認められてないはず
しまった windowsRTと書くとARM版のOSのことだな winRTです
>>947 どうせゲーム操作をカスタマイズしたいとかなんだろ
>>952 新しい方のスタイル(Metro)なら同じC#が使えてもフレームワークが全くの別物だから
気をつけるとかいう次元じゃなくて一から出直し
普通のデスクトップアプリなら何も変わらん
960 :
デフォルトの名無しさん :2012/09/03(月) 11:14:19.00
>>958 煽りは誰でもできる
windowsRTと書いたことに対するのなら
>>956 で訂正してる
サンドボックスの話なら最新の仕様は知らんのでなんとも言えんけど
以前みたところだと数秒ルールとかやたらいろいろ制限あるなあというのは覚えてる
Windows Store apps用.NETのBCL互換性ゼロは何とかならんのか WinRTと被ってるからって全部削除しなくても ThreadPoolなんか形だけ残しとけばいいだろ…
同じC#で.NETでも、フルセットとMonoとsilverlight(WP7)とWinRTで ファイルアクセス、シリアライズ、非同期、GUIと別ものになってるのがつらい。 これからはDataContractだSerializableは絶滅だと思ったけど、 Monoではむしろ後者が使われてるし、どれにすればいいんだよ?
MonoはWCFを一応サポートしてるだろ。 Monoはサーバーがメインターゲットなんだから、その辺はどんどん注力される部分。 WCFのシリアライザって通信用だし 単にデータの保存に使うならXmlSerializerが一番だと思うよ。
>>963 MonoでもMonoフルセットとモバイルで使われてる2.0系派生Mono
(silverlighベース)があって後者だとWCFダメじゃないですか?
silverlightベースという割にはSerializableや色々オミットされてるものが
使えて(便利だけど)これまた独自セットで混乱します。
XmllSerializerは扱いづらい気がして避けていて、
neue.cc/2010/05/29_261.htmlを見てからはNetDataContractSerializerが
いいと思っていました。XmlSerializerならどれでも使えそうですね。
とても参考になりました。ありがとうございます。
今ファイル重複検知&削除プログラムを書いてます @ディレクトリを指定して開始 Aディレクトリ内のファイルをサブフォルダ内のファイルを含めて(再帰的に)列挙 Bファイルサイズやヘッダなどの情報を使いすばやく候補を絞り込む Cデータを完全に比較して重複しているものをリストアップする D重複したファイルからひとつを除き削除する E終了 という手順で書いてます この@〜Eの間にユーザーやほかのプロセス、あるいは自プロセスのほかのスレッドから ディレクトリやファイルを変更されると各工程の間で整合性が取れなくなりバグになります したがいまして@〜Eの間、指定ディレクトリ以下のディレクトリとファイルを保護したいのですがそういったことは可能でしょうか?
いいえ不可能です
思いつかないな 俺なら直前にもっかい比較して何かおかしかったらアラート出してログ残しておわり
指定ディレクトリ以下のディレクトリ/ファイルのアクセス権を剥奪するとかかな。
まあ、俺が作るとしたら
>>967 に一票だけど。
> 自プロセスのほかのスレッドからディレクトリやファイルを変更されると
それぐらいは、自分でそんなことしないようにしろよ…
>>965 対象のファイルをすべて読み取り専用属性にする、またはすべてのファイルのハンドルを握ったままにする
とりあえずハンドル握っちゃうとして いつ解放するかが問題だなw
「木口古兵は死んでもハンドルを離しませんでした
ReadOnlyで全部開く(開けなかったものは対象外の仕様にする) 比較する 開放して削除する(ここで割り込まれるかも)
>>965 困るのは要る(重複してない)ファイルまで消すことだろ?
Dの1セット(重複ファイル)毎にロック&変更確認してから消していけばいい
ユーザーが重複ファイルを新たに作った場合は再実行すれば済むことだし
候補絞り込みのためのハッシングしてから 絞込みが終わるまでの変更もブロックせんといかんのでは 結局の所、諦めるか泥臭い方法に落ち着くな
絞りこみ段階ではロック無しでいいんじゃね 楽観的ロックで大丈夫
>>976 絞り込みで重複判定受けた後に上書き、あるいはバッファフラッシュで必要なファイルに化けた場合、消される可能性があるけど構わないの?
この質問者が嫌がってるのはまさにそこだと思うけどな
あと編集されても更新されたと判断できるか怪しい FileWatcherはバッファが溢れたら検出できない ファイル時刻なんて任意に設定できるし言わずもがな
てか、ディレクトリやファイル名が頻繁に変わるようなプログラムってどんなのだ? 想像つかないんだが
p2pファイル共有じゃねえの? ユーザが制御できずファイルが増える&重複しやすい。
いやP2Pではないでしょ 確かに頻繁にファイルを更新するけど サブフォルダが入れ子状態で複数作られたりするわけでもないし 恐らく、WEB画像を収集するとかかもな 例えば、デフラグツールの場合は一旦コピーしてからそれを操作して 後で元ファイルを削除しているよね
>>977 だから
>>974 でロック&変更確認って書いてるわけで
ロック後に再度ハッシュ計算するってこと
変更されてないことを確認しないと楽観的ロックとは呼べないからな
指定ディレクトリ内の全ファイルをロックするのはナンセンスだろう
Linux(Ubuntu)&Monoとかだったらデフォで1024個ファイルディスクリプタ作った時点で
上限に引っ掛かってアウトだし
次スレの季節
ほ
も
い
い
990 :
デフォルトの名無しさん :2012/09/06(木) 19:49:55.76
うんこちんちん
うんちこんこん
992 :
デフォルトの名無しさん :2012/09/06(木) 20:34:25.47
. ∩_∩ ; ; | ノ|||||||ヽ ` , / ● ●| ;, |\( _●)/ ミ おいおい、こんな絵で抜けるなんてどんな神経 ; 彡、| |∪| |、\ , してるんだよ? こんな三流ゴミ絵じゃあ ./ ヽ/> ) : 抜けないなっ! (_ニニ>/ (/ ; ; | | ; ' \ヽ/ / : , //\\ . ; し’ '`| | ;
993 :
デフォルトの名無しさん :2012/09/06(木) 20:35:09.64
____ / \ / ⌒ ⌒\ / ( ●) (●) \ | ,ノ(、_, )ヽ | \ -=ニ=- / ノ \ ____ / \ / ⌒ ⌒ \ / (●) (●) \ | ,ノ(、_, )ヽ | \ -=ニ=- / ノ \
994 :
デフォルトの名無しさん :2012/09/06(木) 20:35:40.94
/ ̄ ̄\ / \ ____ |:::::: | / \ . |::::::::::: | / ⌒ ⌒ \ |:::::::::::::: |/ (●) (●) \ ん? . |:::::::::::::: } | (__人__) | . ヽ:::::::::::::: } \ ` ⌒´ _/ ヽ:::::::::: ノ | \ /:::::::::::: く | | | | -―――――|:::::::::::::::: \-―┴┴―――――┴┴―― ・・・どうした? / ̄ ̄\ / ⌒ ⌒\ ____ |::::::(●)(●) | / \ . |:::::::::::(__人__)| / ⌒ ⌒ \ |::::::::::::::` ⌒´ |/ (●) (●) \ さっきからこっち見てる奴がいるお・・・ . |:::::::::::::: } | (__人__) | . ヽ:::::::::::::: } \ ` ⌒´ _/ ヽ:::::::::: ノ | \ /ヽ三\´ | | | | -―――――|:::::::::::::::: \-―┴┴―――――┴┴――
995 :
デフォルトの名無しさん :2012/09/06(木) 20:38:37.79
/:::_::::::::::::::::::::::::::::::::::::::::::\ /:::::::::::::::\::::::::::::::::::::::::ハ :::::::::::\ /:::::::::::::::::::::::ヽ::::::::::::_::| |_,,::::::::::ヽ /::/:::!:::!::!:::::::::::|:::::::::::ヽ、__O__ ノ:::::::::::::ヘ |:::|::::|:::|:::!:、:::|:::|::::::::::::::::/ ハ ヽ::::::::::::::::::| ______ i:::i:::::i、:i ヽミ :::::|::::::::::::::::ゝ' ヽ'::::::::::::::::::| / \. ヽ:i::::iヽi`゙"ヾミ:|:::::::::::|::::::::::::| ::::::::::::::::::::::| / \ ヾ:i ミ≡=- |:::::::::::|:::::|/i::::::::::::::::|:::::::| ./ u  ̄ \ / .|::::::|::::|/ヽ i:::::/:::::::/ ::::::| / (ー) \ ヽ //// //::// 〉//:::/::::.::/::::::::::| | ///// (_人) `、_ ' ""` ー 〈:::/:::.:::/:::::::::::::| | '⌒| ヽ , /:/::::.::/:::::::::::::::| \ u / ヽ, . - ''"ヽ /:':::::./::::::_ :::::| \ / ヽ./::::::::/// \\ / \ /::::::::/// .\\
996 :
デフォルトの名無しさん :2012/09/06(木) 20:39:31.93
/ / / | _|_ ― // ̄7l l _|_ _/| _/| / | | ― / \/ | ――― | | / | 丿 _/ / 丿 jlllll聿b d聿圭llll聿a 〈lllll||O||O聿广 ゙゙弋皿广 ____ _ノl彡 ュl聿圭ll聿aィa メ"l圭lllllllll聿癶lL _d'´ |巛lll圭聿彡 ゙ヘ_ j圭 l!llllll聿l圭彡 ゙ll_ ィ广´ |!|lll聿レ゙|圭l´ 弋a_ ノ/ j圭ll聿聿Jレ’ ゙モ 、 ノ´ |聿巛l聿レ 弋____ 宀'勺聿/ ゙宀聿ll勺ユ;-..,,,,_ ゙~~ゞ广  ̄ ゙|l广'll聿! 彳 !卅 |廴ト|ト !从|〉 |聿!|l |聿!|! ノ廴爪 ノ「 ゙|l爪 彳 弋l廴 jl廴 ヾ聿 ヾ宀マlョr
997 :
デフォルトの名無しさん :2012/09/06(木) 20:41:35.00
∧_∧ このカクテルは私のオゴリだ (`・ω・´) シュッ (つ と彡 ./ / ./ / ./ / / / / / / | ̄ ̄ ̄ ̄ ̄| | __ | ガシャン | (__();o。| ゜*・:.。 コロコロ
998 :
デフォルトの名無しさん :2012/09/06(木) 20:42:21.24
__ ./ ・ ヽ / .ノ・| / ` / ちょっと失礼します __// /| . ̄ 7 ./! L_ ./ /  ̄ / />__/  ̄ ̄  ̄
999 :
デフォルトの名無しさん :2012/09/06(木) 20:43:27.84
)))))))))) (((((((((((((((((( ))) ─ ))))))) / (●) \(((((( / (⌒ (●) ))))) ティモテ /  ̄ヽ__) /(((( ティモテー . /´ ___/))))))))) | \((((((((((((( | \ \__))))))))))つ \__|二つ((( ))))))))))))
1000 :
デフォルトの名無しさん :2012/09/06(木) 20:44:55.60
/ ̄ ̄ ̄ \ / ― ― \ / ( ●) (●) \ | (__人__) | __,〜 -,_ _ _ \__ `ー ´__/ |\`ー〜' \ /: : : : : l\ /j: : ::ヽ \| ̄ ̄ ̄| \ ヽ :ヽ: : : :7ヽ./>: : : :r:\  ̄ ̄ ̄ \( ̄ ⌒⌒⌒⌒ ̄⌒ ⌒ ⌒ヽ ヽ \
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。