くっそ意外と面倒くさかった。
>>3 と
>>4 はリンク先見てない
まあ乙
今さっき、 String.Split(params char[] separator); に"params"がついていることを知ったorz ずっと new[]{'='} みたいにいちいち配列にして渡してたよ orz orz orz
8 :
デフォルトの名無しさん :2013/03/19(火) 15:57:58.75
>>7 >String.Split
ムダに長いステートメントだなw
へ?
起動中にタスクバーで自身のアプリのアイコンを右クリックすると出てくるメニューに 新たな項目を追加するのはどうすればいいんですか? 例えばChromeでいうと「新しいウインドウ(N)」や「シークレットウインドウを開く(I)」です
上2行の言わんとする事がわからん Form1 f = new Form1(); f.Show(); じゃないのか
馬鹿かと思ったw
>>10 Chromeで言われても分からんが、最大化とか移動とかがあるメニューでいいのか?
WinFormのライブラリではサポートされてないからWin32API使う必要がある
GetSystemMenuでメニューのハンドル取ってきてInsertMenuItemする
ちなみにウィンドウの左上のアイコン部分をクリックすると出るメニューと共有される
ゴミいらねw
2chの情報をありがたがってるようでは無能の域を抜け出せないよ
などと無能のしたり顔でお送りいたしました
煽ることはできても反論はできないんだw
以上が単芝の生涯である
馬鹿のやること 煽り、罵倒、レッテル貼り
Twitterに投稿してろ
チキンにはそれが出来ない
僕はそう考えていた、だが・・・
CやC++から見たらC#なんて赤ちゃん言語だよねw
以上が単芝の性生活である
プログラムが大規模になったらからプログラマが扱いやすいように簡単な言語が生まれたんじゃなくて プログラマ人口が増えるにつれ馬鹿が増えたからってことだから
この書き込みは追い出し部屋からお送りしております
以上ドカタのストレス発散でした
>>13 ありがとうございます
その方法を試してみたところ、ウインドウ左上のメニューには追加されましたが、タスクバーの方のメニューには何も追加されていませんでした
それと、またChromeの例で恐縮ですが、Chromeではウインドウ左上とタスクバーのメニューでは別々の項目が入っており、どうも共有されていないように思います
ならChromeと同じ言語でやれば?
>>13 すみません、どうやら自分がタスクバーで見ていたのはいわゆるメニューではなくジャンプリストというWindows7からの新機能のようです
C#からはWindows API Code Packというライブラリを使って追加することができました
同じ言語で同じコード書けば同じになるんじゃね
Windows API Code Packなんてゴミそのまま使う奴なんているのかよ バグだらけで放置されてるのに あんなのソースを参考にする程度の代物だろ
.ni 7 /ノ ヽ\ 壁に向かってしゃべってろゴミ l^l | | l ,/) / /゚ヽ /゚ヾ\ .n ', U ! レ' / / ⌒ ⌒ \ l^l.| | /) / 〈 | (____人__) | | U レ'//) ヽ\ |lr┬-l| / ノ / /´ ̄ ̄ノ ゙=ニ二" \rニ |
そんなに悔しかったのか
>>10 の質問でジャンプリストが最初に頭に浮かばないのは低能で即刻死んだほうがいい最悪に醜悪な産廃
ワソクマ掲示板に出現するハウリングという奴、見当違いの書き込みばかりでうざい。 スレ汚しも甚だしい。 もっとも、質問者の質問の内容もアレなんだが。
>>24 >CやC++から見たらC#なんて赤ちゃん言語だよねw
こいつは
CもC++もC#もどれ一つとしてまともに書けない
C#は,ほぼすべてのC機能を包含してますが何か。
うんこに触るやつもうんこ
↑うんこ
いまどきC#なんてやってる奴は何をやらせても駄目
VBやJavaとは違って、C#しかできないからC#やってるって人はそう多くないんじゃない? 複数使えて当然
いまどきC#できない奴は何をやらせても駄目
そんな自己否定しなくていいのよ
てかマジレスすると、なんでも出来て初めて半人前だしね。
単発が湧いてきたな
そのネタさっき見た
底辺ドカタが脳内エリートプログラマーになりきって自分を慰めるスレはここですか?
いいえ ドカタではなく引きこもりですから
Java 土方 C++ 大工 C 設計士 C# 自称自営業
Java 設備屋 C# 自宅警備員 VB 土方 Objective-C 電気屋
最後だけちょっとよくわかんない
過疎 C#終わったな
まるで今まで始まっていたかのような口振りじゃないか 目が節穴のようだな
WPFとLINQがこけたのが痛い。
痛いのはお前。 終了。
Winform && Linq禁止プロジェクトばっかじゃん。
行末の句点も禁止だ
>>57 (´・∀・`)ヘー 土方の周囲ではそうなんだー
MFC同様、PG偏差値60以上じゃないとWPFの保守は無理だね。
もうwinformなんて使わせてくれないぞ
それは地獄だな。ご愁傷様。
>>57 Winform && ( Linq禁止)
なのか
(Winform && Linq)禁止
なのかはっきりしろ。それでもプログラマか?
>>63 という書き方だと演算子の優先順位は関係ないが
演算子の優先順位が関係ない記述方法(逆パスカル? こういうの→ 4 5 + 2 - 4 / = 8.5 )
でも無さそうだからやっぱり後者じゃね?
うわ、コピペミスった。 一般的に単項演算子のほうが2項演算子より優先順位が高いから後者じゃね? 演算子の優先順位が関係ない記述方法(逆パスカル? こういうの→ 4 5 + 2 - 4 / = 8.5 ) でも無さそうだからやっぱり後者じゃね?
OTL何もかもが間違ってる。支持したいのは前者の方だ。 Win8 de nazeka IME ga ugokanai orz orz orz
.ni 7 /ノ ヽ\ 壁に向かってしゃべってろゴミ l^l | | l ,/) / /゚ヽ /゚ヾ\ .n ', U ! レ' / / ⌒ ⌒ \ l^l.| | /) / 〈 | (____人__) | | U レ'//) ヽ\ |lr┬-l| / ノ / /´ ̄ ̄ノ ゙=ニ二" \rニ |
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○y-~~ < あんまり気にすんなよ
|\ \
_| ̄|○ ̄|
>>66
WinformってWindows Formsのこと? これつかわずにC#でどやってWinアプリ作るのさ?
Winforms = Windows Forms = Win32API + コモンコントロール、GDI, GDI+ のラッパー。 WPFのこともたまには思い出してあげてくださいね
GDI==Gasoline Direct Injection
C#のFormsの生産性に感動してたC#初心者ですが マジでFormsの使用禁止にしてる会社ってあるわけ? C#でどーやってアプリつくんの? FormsってのがまたまたMSの都合で廃止されるとか?
WinFormsは永久に不滅です
wpfに完全移行してる人居る?
業務ならASP.NETに移行してる人は山ほどいると思う
GTK#に移行している人は・・・・きっといないと思う。
>>75 ASP.NETサーバーコントロールかASP.NET MVCか悩むところ。
<% %> タグ全開でコード自家書きだったらチトへこむ。
今のMVCはRazorの@記法だろ VSのテキストテンプレートもあれに置き換えればいいのに
いや拡張子をaspxからそのままaspに変えてもそのまま動きそうなのがごろごろ メンテしたくねぇ~
データによって値型、参照型分けた と同時に格納領域もスタックとヒープにそれぞれ分けた もうこれだけでC#>>C++。あーすっきりした ジェネリックの演算子の多重定義だけなんとかならんか?
それやると実行時のジェネリックの特殊化がC#の言語仕様に依存してしまうから無理。 どうしても必要ならdymamicが使える。dymamicは実行時に言語仕様に応じたコードを動的生成する仕組み。
BinaryFormatterってやたら遅くね? 内部でXMLに一度変換してんの?
自分でソース読め
>>82 XmlSerializerよりは速いと思うけど。。
>>81 教えてくれてTHX
そーかdynamicか。早速やってみたらとりあえず動いた。
C++のdynamicキャストみたいなもんと勝手に思い込んでたワ orz
Deserialize BinaryFormatter 00:00:59.1693980 Check => OK Deserialize XmlSerializer 00:00:02.7073623 Check => NG XmlSerializerのほうが全然速い。Deserialize失敗してるけどw
コピペ君って馬鹿だな、まで読んだ。
くそっ騙されたwww
dynamic は参照に対してはNGなんだな マトリックスクラスつくって,Matrix<T>として, T== double or Complexで配列の型を切り替えたいだけなのに。
いやT[]をdynamicで扱うのは別に問題ないはずだけど何がNGなんだ? それより問題は処理速度で、その手の計算にdynamic使うのは重くなりすぎるからやめとけ どうしてもコピペが嫌ならVSのテキストテンプレートでも使えばいい
>>91 2つだけならジェネリック型使うより、2つクラス作ったほうが良さげだな。
ってかComplex型で(real)doubleも代用させればいいんじゃね?
dynamic使っていいなら、虚数部分の無駄があっても十分ありな選択肢だと思うよ。
class Matrix{ dynamic data; public Matrix( string type, int col, int row ) { if( type == "double" ) { data= new double[ col, row ]; } else if( type == "Complex" ) { data = new Complex[ col, row ]; } } コンストラクタは こんな感じ?
C++/CXが普及することはあり得ないので 代わりにネイティブコード吐くC#が出てきそうに思うんだが?
それなら新言語投入すんだろ
>>87 これって.net4.5でも直ってないの?
採用してる仕組みが違うから速さが違うだけで別にバグじゃないし、 BinaryFormatterは.NET Remotingの一部で今やレガシー扱い。WCFに置き換え。
Store辺りだとJavaScriptが既にVB超えて2番手に 来てたりするから心配になってくる
C#で中間コードかネイティブコードかは仕様に言及されてないだろ つぎはぎC++よりよほどいいと思うが
>>98 .netはCoreでシリアル化サポートしないってことかよw
WCFにシリアル化の仕組みは当然付いてるしXmlSerializerもあるだろ?何が不満なんだ? だいたいC#のBCLにシリアル化は無いぞ
objectクラスになんでSerializableAttributeがついてると思ってんだよ。 MFCから逆行してる。
XmlSerializerは糞遅い。しかもDeserializerできないものがある。
実際バイナリより速いのに何と比べて言ってるの?
XmlSerializerって起動時にコンパイルするから遅く感じるけど プリコンパイルしたら爆速
sgen.exeが無かった頃の印象が強かったからなぁ
ストアアプリの方の新しい実装だとプリコンパイルなしで速いよ WCFの方と同じく、csc使わないで直接IL吐くから
なにこのシリアル化の意味すら分かってないようなレスの嵐 釣りだよな
なにを喚こうがRemotingが公式にレガシー扱いされている事実は変えられないよ
確認しないと分からないのか
特に比べる気もないので、帰っていいよ
私の記憶が正しければBinaryFormatterの話だったと思うのですが…
XmlSerializer意外に優秀だなぁ BinaryFormatterのデシリアライズおせえなぁ って感想しか出ないな
圧倒的な結果を見ることもせず馬鹿が現実逃避を始めました。
世間の常識とか、MSの認識とか、そんなもの興味ないす
シリアライザっていうのは基本的に通信用なので、 シリアル化の速度なんかよりサイズを抑えることの方が重要 XmlSerializerはXML文書を扱うことに主眼が置かれているのでいわゆるシリアライザとはちょっと違うが
そんなヘンテコな状況のパフォーマンスなんてどうでもいー、という人は、各シリアライザの基本的な使いかたの参考にでもしてください
XmlSerializerが速く見えるのは失敗してnewしてないから。勘違いしないように。
見てもいないから勘違いしようがない
そもそもXmlSerializerをBinaryFormatterやDataContractSerializerと比べるのが間違い。 XmlSerializerと比べるなら役割的にはXML DOMやLINQ to XMLだろ。
>>118 通信ってのはプロセス間通信も含まれるし、外部記憶装置に対しても読み書きする。
普通はバイナリのままでサイズは小さい。さらに圧縮するのはかなり特殊。
実装者が落とし穴に気をつけなきゃいけないようなものをセキュアだなんだと言って欲しくない 可能なら、頑張っても落とし穴に落ちることができない仕組みにすべきなんだから
誤爆した
で、WCFのシリアライザで何の問題が? 君の好きなバイナリにも対応してるし起動も遅くならないし動作も速いよ
何の問題もないことは使う積極的な理由にはならんのです
要件が2.0なのです。
引導が渡った所で寝ましょう
XML厨が作ったBinaryFormatterとXmlSerializerは欠陥品です。 改良されたのがDataContractSerializerなのでそちらを使ってください。
ファイルサイズドン!さらに倍!
ECMA-335のCLI仕様書って.NET4相当? 最終更新がJune 2012ってなってるけど
よう終わりの見えない四月バカ
136 :
デフォルトの名無しさん :2013/04/09(火) 08:33:48.14
唐揚げ
138 :
デフォルトの名無しさん :2013/04/11(木) 06:25:40.31
本当に内容をよく読んでいないなw
>>134 >JAWA(ジャワ")」と呼ばれる言語
おまえ情弱過ぎ
C→C++
JAVA→J++
なんてのは古い
ぶいぶい言わせてるJAVAプログラマのための
新生 JAVVA 言語
語源的には W == UU(ダブルユー)だけどなwwwwuuuu
140 :
デフォルトの名無しさん :2013/04/11(木) 11:25:25.86
JAUUA
いつまでエイプリルネタを引っ張るんだ
>>137 スキルもなく、何が問題なのかも分からずに答えようとするからこうなるのさ。
未だに自分の犯した過ちに気付いていないようだね。
式木とdynamicの使い分けがよく分かりません。 どちらも動的処理に使う認識なのですが それぞれに適した用途はどんなのがあるのでしょうか?
>>143 まったく違うものだと思うのだが、どう同じだと持ったの。
式木はDlinqやEFで使ってる奴だよね?
145 :
デフォルトの名無しさん :2013/04/11(木) 16:01:48.53
>>137 > 自分が当初他の方の発言を一部ではあれ、横から口出ししてしまったことによって起こってしまったことだとは反省しています。
> ただ、正直なところ、じゃあその発言が悪かったのかと聞かれると、「そんなことはない」と今でも思っています。
> とはいえ、あそこで反論して炎上させて一騎打ち、なんてしても個人的には構わないですが、
かなり痛いなw
そんなにボコられたいのかwww
アズレさんを怒らせたようだな
未だにシリアル使われるんだよなあ 何でだろ
コピペするってことはシリアル化するってことすら理解してないならふらっと池よと。
149 :
デフォルトの名無しさん :2013/04/11(木) 22:15:46.35
Sendkyes.send("abc"); とかをクロームブラウザで表示されたページの テキスト入力欄とかに送るとフリーズする人いる? aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbcccc... みたいな感じで数千数万文字入力が送られる感じで
他のアプリでKEYUP殺してんだろう。
送るためのメソッドを実行するショートカットキーがAだったりして
メモ帳に送ってみて問題なければブラウザのせいだろう。
2010Express、.NET4.0です。 private void myform_FormClosing(object sender, FormClosingEventArgs e) { Properties.Settings.Default.RET = RET.Checked;(1) Properties.Settings.Default.Save(); } toolstripmenuitemのRETというインスタンスのChecked値をsettingsに保存したいのですが、 RETのプロパティバインディングで、バインディングしているので、 (1)はもはや不要だと思うのですが、(1)がないと、formclosing時における RETのChecked値がsettingsファイルに保存されません。 どうしてでしょうか。
以前同じ事をやってうまくいったときのソースとくらべてみたら、 以前のには、DataBinding.Addというのが追加されていました。 しかし、これが何だったのか思い出せません。 これはどうやったら追加されたのか思い出せません・・うーん
拡張メソッドが「拡張子」ってVSで表示されるのって誤訳だよね
MS語に誤訳もクソもあるかよ
MSが拡張子だといったら拡張子なんだよ MSは神だから
インテリセンスされちゃったんだろ
hoge()の戻り値がTask<bool>のとき if(await !hoge())と書きたい if(!await hoge())だと違和感ありまくり
なにそれ気持ちわるい
どっちも キ モ イ
お前がキモイ
翻訳してるのは普通に翻訳会社だよ。 誤訳の類はベータの段階で気づいた人が報告入れないといけないんだけど、 日本ってベータ使う人少ないみたいで製品になってから初めてクレーム来る。
Extension Methodの訳語として何が正しいかを決めるのはMS MSは「○○子」って名称良く使うし意図的にやってんだろ
あれは明らかにバグだよ。 C#の仕様書日本語版では拡張メソッドになってるもの。
長いだろ
なら、「拡張」でいい。 元の英語リソースは「Extensions」だったはずだし、あそこの表示。
日本語で「拡張」というと拡張する行為を指すからなあ extensionのように拡張した一部という意味では使わないから違和感がある
Filename extensionを拡張子と訳すのもバグだと主張してこい
Stringの1文字ずつを処理する時に日本語が文字化けしないようには どうしたらいいんでしょうか? 単に元に戻るだけのような下の処理でも文字化けしてしまうのですが String str = "こんにちは"; StringBuilder sb= new StringBuilder(); for(int i = 0; i < str.Length; i++) { sb.Append(str[i]); } Console.WriteLine(sb.ToString());
しないだろ
しねえよ 処理じゃなくてソースファイルの文字コードがおかしいんじゃないの
あれ、と思って単純に Console.WriteLine("テスト"); ですら文字化けしてしまいました もしかしてPlayStation Mobile SDKでは日本語は使えない・・・とか?
環境を先に書けよボケが
すいません、解決しました C#を全然理解できていないのでプログラムに問題が あるのかと思ってしまいました
勉強ならそんな変な環境でやるよりPCのVC#で済ませたほうが効率いいよ しかもPSMって今のはもうすぐ無くなってUntyになるんでしょ?
書き込む前にリロードしろよ、な?
こんにちは・・・ webbrowserコントロールを使ってページが表示されるまで待機したいのですが、Ajaxを使ったページのロード中の待機はどのようにすればよいのでしょうか?
どうしようもないだろ。Ajaxのページがロード中かどうかはページを作った奴が決めること。
SQL Server Compact 4.0で insert into table (column) values (value1),(value2); のように複数行の挿入、更新を1つのクエリで実行できないのでしょうか?
Compactは;で区切ったクエリ並べられなかったっけ?
183 :
181 :2013/04/15(月) 05:51:21.78
>>182 ;で並べると解析エラーが出ました
それぞれのクエリ単体では正常に動作します
184 :
デフォルトの名無しさん :2013/04/16(火) 11:15:03.39
Listの内容でcomboBoxの中身を作るコードを書いています。 とりあえず希望通りのcomboBoxは出来上がったのですが、 comboBoxのDisplayMemberとValueMemberプロパティに自作クラスの名前を文字列で指定するのがちょっと不安です。 C#の世界ではこういうものなのでしょうか? List<MyClass> MyList = new List<MyClass>(); //MyListの中身を作成する (略) comboBox1.DataSource = MyList; comboBox1.DisplayMember = "Name"; //MyClassのNameプロパティ comboBox1.ValueMember = "Code";//MyClassのCodeプロパティ
185 :
184 :2013/04/16(火) 11:17:18.60
×自作クラスの名前を文字列で ○自作クラスのプロパティ名を文字列で
C#の世界というかフレームワークの世界じゃないかな
汎用的なデータバインディングのためにリフレクション使ってるのでプロパティ名が必要になるのは仕方ない。
VisualStudioがプロパティ名の変更時に置換サポートしてくれないのが問題なのであれば、
式木からプロパティ名拾うような拡張メソッド生やすといいかも。
http://ideone.com/tJtpaN 多少式木構築で遅くなるけど、バインディングする時だけだし問題になるほどではないはず。
関連した話としてはCallerInfoがあるけど、変更通知と違ってこの場合は使えないね。
Parallel Programming in .NET 4. Coding Guidelines の4pageの例に挙げられてるけど ループ内で生成したタスクにループカウンタを手渡したい場合は、 いったんローカル変数にコピーしてから使えというのを知らなかったばっかりに3日悩んだ。 北山洋幸のParallel プログラミング in .NET Framework 4.0読んでから TPL使い出したんだけど、この本には一切書かれてないんだな(見落としてただけかも?) はまった人居る?
>>187 それはTPL特有というわけでなく、
.NETのクロージャ一般に見られる現象なのだが。
凄く基本的かもしれませんが、アクセスレベルをC++のようにまとめて指定することはできないんでしょうか。 例えば、 public int a; public int b; public int c; を public: int a; int b; int c; のように、いちいちpublicと付け足さずに済む方法を知りたいです。
カンマ
盲点でした。ありがとうございます。
>>188 ループカウンタのまま使うのと
いったんローカル変数にコピーするのと
内部ではどういう処理の違いがあるの?
現象だけ見てるとタスク生成と、変数のハンドリング同期の問題だと思うけど。
スコープの違いだよ ループ開始時に作られて終わるまで生きてる変数と ループブロックの中で毎回作られてる変数の差
var list = new List<Func<int>>(); for (int i = 0; i < 3; i++) { list.Add(() => i); } Console.WriteLine(list[0]()); // 0を期待 これをコンパイルするとこんな感じになる class temporary { public int i; public int Do() { return i; } } var list = new List<Func<int>>(); temporary tmp = new temporary(); for (tmp.i = 0; tmp.i < 3; tmp.i++) { list.Add(tmp.Do); } Console.WriteLine(list[0]()); // 3
>>187 そうだ、いいこと思いついた。俺のケ・・・
for (int i = 0; i < 5; i++) {
Task.Factory.StartNew(() => Console.WriteLine(i)).Wait();
}
すっごく同期です……
197 :
デフォルトの名無しさん :2013/04/17(水) 14:32:02.50
COMはAppDomainを使ってドメイン分離しても1プロセスに1つで無意味なのでしょうか?
意味が分からん クライアントなのかサーバなのか まあCOMは.NETとは無関係の技術なんだからプロセスに1つきりの何かならAppDomainとは無関係に1つだろ
199 :
デフォルトの名無しさん :2013/04/18(木) 13:08:48.01
var cts = new CancellationTokenSource(); var ct = cts.Token; var t = Task.Factory.StartNew(() => { while (true) { ct.ThrowIfCancellationRequested(); Console.WriteLine("working"); Thread.Sleep(1000); } }, cts.Token); StartNewの2番目のCancellationTokenは何に使われてるのでしょうか? 無くてもキャンセルはされますし、 逆にThrowIfCancellationRequestedが無い場合はキャンセルされません。
>>199 http://msdn.microsoft.com/ja-jp/library/dd997396.aspx >ユーザー コードによってスローされた OperationCanceledException を確認した場合は、例外のトークンと関連付けられたトークン
>(タスクを作成した API に渡されたトークン) とを比較します。 これらのトークンが同一であり、トークンの IsCancellationRequested
>プロパティから true が返されると、タスクはこれをキャンセルの受信確認と解釈し、Canceled 状態に遷移します。
>または例外のトークンがタスクのトークンと一致しない場合、OperationCanceledException は標準の例外のように扱われるため、タスクは Faulted 状態に遷移します。
Task<T>.Statusの値が変わるわけだな
どうでもよすぎワロタ
>>200 長年のもやもやが消えました。ありがとうございます。
>>202 そういうところこそ妙に気になるもので(汗
Windows 認証 (基本認証) ダイアログが起動した場合に ユーザ名 パスワード を入力し「OK」ボタンをwindows API を使って処理したいのですが どうすれば良いでしょうか?
DataSetを使って開発すると何かいいことありますか? DataTableはかなり使うのですが、DataSetは使ったことありません
WindowsAPIならP/Invokeという仕組みで呼べます
mysqlの入力フォーム作ろうとしてるけど もしかしてC#じゃない方が良いのではと思ってきた
お好きな方法でどうぞ
好きにしろ
そんなもんPHP(笑)とかRuby(笑)とかで十分
211 :
デフォルトの名無しさん :2013/04/21(日) 22:32:39.66
ネットワーク上のファイルを表示したListViewからドラッグ&ドロップで エクスプローラにファイルをコピーしています。 現在、ドラッグ開始時に一時ファイルにダウンロードし、 一時ファイルのパスをDataObjectに格納してDoDragDrop()を呼び出すようにしています。 この方法だとファイルが大きい場合に固まってしまうので、 ドロップ時にダウンロードするようにしたいのですが、良い方法はありますでしょうか?
一時ファイルのパス文字列(実物は存在しない)だけ作っておいてそれでDataObject作ってDoDragDrop, ドラッグソースのQueryContinueDragイベントでe.Action == DragAction.Dropだったらそこでダウンロード開始、でいけないか
実証コード private void panel1_MouseMove( object sender, MouseEventArgs e ) { if( e.Button != 0 ) { var d = new DataObject(); var sc = new System.Collections.Specialized.StringCollection(); sc.Add( @"C:\Users\Hage\Desktop\存在しないファイル.txt" ); d.SetFileDropList( sc ); this.panel1.DoDragDrop( d, DragDropEffects.All ); } } private void panel1_QueryContinueDrag( object sender, QueryContinueDragEventArgs e ) { if( e.Action == DragAction.Drop ) { System.IO.File.Create( @"C:\Users\Hage\Desktop\存在しないファイル.txt" ).Close(); } }
Entity framework 5.0を使うと、Exceptionが発生してしまいます。 --Exceptionメッセージ-- Message=テーブル 'B' に FOREIGN KEY 制約 'FK_dbo.B_dbo.A_A3_Id' を設定すると、パスの循環や複数のカスケード パスが生じる可能性があります。ON DELETE NO ACTION、ON UPDATE NO ACTION、を指定するか、他の FOREIGN KEY 制約を変更してください。 制約を作成できませんでした。以前のエラーを調べてください。 --Exceptionメッセージ-- どうしたら、解決できるでしょうか。 コードはこれ。 /ideone.com/s8ZbPW 宜しくお願いします。
Entity frameworkはよくわからんのだが クラスAの中でクラスBを使用して、クラスBの中でクラスAを使用してるけど それコンパイル通るの?
216 :
デフォルトの名無しさん :2013/04/22(月) 13:01:17.95
>>213 >>213 ありがとう(^^
private void panel1_QueryContinueDrag( object sender, QueryContinueDragEventArgs e )
{
if( e.Action == DragAction.Drop )
{
Thread t = new Thread(...);
while (!IsDownloadEnd()) {
Application.DoEvents();
}
}
}
で実現できました。
ただ、このままだと、CPU100%なってしまうですが、
ループ中にSleep()を入れると今度はアプリの反応が鈍くなります。
今度はこの解決方法を模索中です。
217 :
214 :2013/04/22(月) 16:50:43.66
compact framework 3.5 のDataGridで質問です。 ヘッダーの幅を変更するプロパティはあるんだけど、 高さを変更するプロパティが見つからない・・・ ぐぐっても出てこないのでヘッダーの高さを変更する方法を教えて下さい。
219 :
デフォルトの名無しさん :2013/04/23(火) 22:21:55.25
MDI親(Form1)の子(Form2)にpictureBoxを作って、 別のclassから描画用メソッドを呼んで線を描きたいのですが、 動かしてみると何の反応もありません。 MDIフォームにせず、Form2から別のclassの描画用メソッドを呼ぶと描けます。 なぜMDIフォームの子からは描けないのでしょうか? サンデープログラマなので、見当もつきません。 詳しい方、よろしくお願い致します。
222 :
218 :2013/04/23(火) 22:38:52.69
質問取り下げます
コテってやっぱクソの訳にも立たないカスだな
>>219 「描画用メソッド」の中身が分からんと何とも言えない
とりあえずInvalidate()でもしてみたら?
224 :
219 :2013/04/23(火) 23:23:56.94
ご回答ありがとうございます。
>>221 子ウィンドウを複数作る予定なので、classに共通メソッドを書こうと思った所、
今回の問題に突き当りました。
後学のためにも、原因を知りたいなと思っております。
>>223 描画用メソッドとは書いていますが、
g.DrawLineで、呼び出し元の子フォームのpictureBoxに
線を描き出すだけです。
Invalidateは初めて見たので、調べたいと思います。
グラフィックスを引数で渡す関数を作って使え
>>224 描画するときはOnPaintイベント内ですると幸せになれそう
OnPaint()に描画処理を書いて、外部からInvalidate()とかRefresh()とかしてOnPaintイベントを起こせばいい
おい片山 便所から出てくんなよ
>>224 gってことはCreateGraphicsとか変なの使ってんじゃない?
Paintイベントのe.Graphicsが正解だよ
あっごめんOnPaintじゃなくてPaintイベントね
下みたいなプログラムで、最も新しい日付のSampleクラスインスタンスを取ってきたいんですが、 どうやってとってきたらいいでしょうか。Linqでかっこいー書き方を教えてください。 public class Sample { public DateTime DateTime { get; set; } } private void Test() { IEnumerable<Sample> samples = new List<Sample> { new Sample { DateTime = new DateTime( 2013, 1,1)}, new Sample { DateTime = new DateTime( 2013, 3,2)}, new Sample { DateTime = new DateTime( 2013, 1,3)}, new Sample { DateTime = new DateTime( 2013, 2,1)}, new Sample { DateTime = new DateTime( 2013, 3,1)}, }; // samplesからもっとも新しい日付のSampleを取ってきたい。 }
samples.OrderBy(c => c.DateTime).Last()
Enumerable.LastはO(n)だからsamples.OrderByDescending(c => c.DateTime).First()のが速いよ カッコ悪いけど
これが有名な暗号化言語C#。他人のコードはとても読めない。保守不能。
読む気がない人には読めないだけだよ
理解不能。
Last()の値がほしいけど、First()のほうが速いから逆ソートするのである。 実装の知識がないとコードから読み取るのは不可能だな。
Listはこの場合仕方ないね
なんでジャップはVBとかRubyとか無駄に複雑な言語を好むのか そのくせ難しい機能は使わないという
>>237 知らなくても感覚で分かるとは思う。
でもとっさに自分で書ける気がしない。w
感覚的に読めても、感覚的には書けないというか。自分で書く必要が出たときには忘れてるというか。
ほとんどの人はLast()のままだろうな。
>>232 .LastがO(n)だっていうソースと.OrderByDescendingがそれより早いというソース教えてくれ
早さはよくわからないけど、一番大きいのが欲しいのなら 大きい順にならべて先頭を取るほうが自然だと思う
自然かどうか早いかどうかでなくカッコいい書き方が要件である よって審美眼について触れてない解答は全て0点である
本来は、最大値を求めた上で、その最大値の要素すべて列挙するのが正しいのかな?
248 :
デフォルトの名無しさん :2013/04/25(木) 09:38:23.65
LINQっておもろそう。 samples.Where(p => p.DateTime == (samples.Max(q => q.DateTime))) カッコいっぱいつかってるかカッコいい書き方っすかねw
samples.Where(p => p.DateTime == (samples.Max(q => q.DateTime).ToList())); ならどうか
C#2.0止まりの雑魚なのでさっぱり読めないお
from q in samples where q.DateTime == samples.Max(r => r.DateTime) select q
変数を2つ使ってる時点で重いだろ
>250 2nなので O(n)ですよ
O(n)ってのは、処理件数と処理時間が正比例するってだけで、1件当たりの処理時間は問題にしてない 早いか遅いかは1件当たりの処理時間と件数できまるのであって、1件あたりの処理時間が長い処理ならO(n)の方が遅いこともありうるんだが
なんかエラーが出やがる s = samples.Where(p => p.DateTime == (samples.Max(q => q.DateTime))); Console.WriteLine("{0}", s.DateTime.ToString("d")); s = samples.Where(p => p.DateTime == (samples.Max(q => q.DateTime).ToList())); Console.WriteLine("{0}", s.DateTime.ToString("d")); Program.cs(40,11): エラー CS0266: 型 'System.Collections.Generic.IEnumerable<Linq2.Sample>' を 'Linq2.Sample' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください) Program.cs(42,45): エラー CS1061: 'System.DateTime' に 'ToList' の定義が含まれておらず、型 'System.DateTime' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
>>257 sの型が変
日付型をなんでToListしようとしてんの?
あ、 class Sample { public DateTime DateTime { get; set; } } Sample s; はあるよ Sample s = samples.OrderBy(c => c.DateTime).Last(); Console.WriteLine("{0}", s.DateTime.ToString("d")); s = samples.OrderByDescending(c => c.DateTime).First(); Console.WriteLine("{0}", s.DateTime.ToString("d")); これはちゃんと動く
samples.Where は Sample型じゃない。
262 :
デフォルトの名無しさん :2013/04/25(木) 11:02:28.05
>>248 と
>>251 は複数になる可能性あるから
ToList()したのをList<Sample>で受けてforeachで引っ張り出さないとだめなんでねか?
ちがうよ
もっとも新しい日付のSampleが1つでいいのなら
>>232 でいい。
複数必要なら、Interactive ExtensionsのMaxBy()を使うとシンプル、標準だけだと一時変数必要かも。
LINQはデータ処理の流れがそのまま表現できるのがいいとこなので、標準で表現し辛いなら拡張メソッド生やすべき。
全く違う操作で計算量比べても意味がないんだけど 線形探索のO(n)とソートのO(log n)でどちらが速いとか比較してどうすんだよ
は?w
どうもしねーよ ズレた発言して粋がんなカス
夢でも見たのか?
もちつけ
LINQは素人には計算量が読めないってこった。
操作も分かってないのは致命傷だろ
LINQとラムダで一気に糞言語と化したよな。 分かりにくい言語トップでも狙ってんのかね、ヘジは。
馬鹿に無理ってこった
LINQなんてオブジェクト指向とか普通の制御構文とか そういうのの学習に費やすコストに比べたら全く難しくないよね なんでそこまで頑張ったのにそこで学習やめるのかと
>samples.OrderByDescending(c => c.DateTime).First() こんなコード大量生産してるほうが馬鹿。
>>278 同一人物のseikyou.ne.jpだからだろ
は?なに安価付けてんの?しばかれたいの?
通報した
もうバレバレなんすよ uyかQくらいしかいないから
で、どうすんの?また「コンロバーナーww」とか荒らすのか?
284 :
デフォルトの名無しさん :2013/04/25(木) 22:35:01.25
Max()やMin()なんて結構いいじゃん For文で全部走査して比較してってやるよりコード減らせるし見た目わかりやすくなるやん
Linq使うのとふつうにfor文回してMax, Minを求めるのとどっちが速い? 特にTPLの比較が興味あるわ. Prallel.ForEachでMax, Min求めようとすると最終的にそれぞれのコア出力値を 排他制御してもう一度比較しないといかんのよね
配列ならunsafe使うのが早い
na
PropertyGridで文字列のプロパティを「ファイルを開く」ダイアログで設定できるようにする方法はあるけど、 これフィルタかけられないのかな? pngファイルだけ読み込ませたい時とかに大変だし…
FileNameEditorを使ってんのならInitializeDialogをオーバーライドすればいい
>>290 まさにそれだ!ありがとう!
これで作業が進むよ
データがshortの巨大な配列をファイルから読み込む場合 ReadUInt16をループさせるよりReadBytesで一気に読み込んで 変換していく方がいいのかな?
>>293 配列をメモリーストリームにすればファイルと同じようにアクセスできるでしょ
>>293 一番パフォーマンスがいいのは、byte[]で読んでunsafeで
byte[](配列の先頭のポインタ)をshort[]にキャストする方法らしい。
>>214 もういないかもしれんけど
素直にエラーメッセージの解決法に従うか、DB設計し直す
個人的には後者がオススメ
横に長くなってるからAとBの関係を表すテーブルを間に
はさんだほうがいい。
>>295 >>297 Buffer.BlockCopyを使えよ
unsafe使わなくていいしCLR組み込みだからunsafeより速いぞ
BinaryReaderでファイルから文字列を読んでコンソール出力すると それ以降、まったくコンソールから出力できなくなるんだけどなんでだろ… エンコードしてもそのまま出力してもファイルから読み込んだ文字列を 表示した後は一切、出力されなくなってしまう
独り言なら穴掘っていくらでもほざいてろ
ARIB STD-B24 のエンコードのC#の実装ってある?
303 :
デフォルトの名無しさん :2013/04/29(月) 00:58:28.84
ドキュメントコメントを書くときに下記のようには書けないのでしょうか? なにか代替手段があれば教えてください。 ちょっと変な例ですがやりたいことのイメージです。 /// <remarks> private int calc(int a, int b) { /// 1. aを10倍する<br/> int tmp = a * 10; /// 2. bをたす<br/> return tmp + b; } /// </remarks> と、かいて <remarks> 1. aを10倍する<br/> 2. bをたす<br/> </remarks> を得たいです。
代替手段というより考え方を変えた方がいい 不必要に実装を晒す非常に悪いドキュメントだ ドキュメントコメントは外から見てどういう動作をするかがわかればいいの
同じ板の別スレッドにマルチポストして意味あるのかw やっぱり変な奴ってやることなすこと変だよな
306 :
デフォルトの名無しさん :2013/04/29(月) 01:38:32.99
303です。 304さん, ありがとうございます。 「ドキュメントコメントは使う人が読むもの」と理解しました。 保守する人が読むものは普通のコメントで書くことにします。 305さんはじめ皆さん、失礼しました。 「長すぎます」のようなエラーが表示されたので書き込まれていないと勘違いしました。 リロードしたらもっとふさわしいスレッドがあったので、そちらにも書き込んでしまいました。 申し訳ありません。今後、気をつけます。
あるよ。
>>309 仕様書の存在は知ってるんだけど、できれば厳密じゃなくてももっと簡潔な説明が欲しい。
かぶった
>>312 後だししてるつもりはないよ。
俺が欲しいのは
>>307 のリンク先のVB用のドキュメントに対応するC#er向けのもの。
つまりひと言で言うと、算術演算子のオーバーロードの解決法に関するドキュメント。
やっぱり、少なくともMSDNには存在しないみたいだね。
完全独自仕様のVBと違って「基本的にCと同じです」でほとんどのプログラマに
通じるからだろうけど。
どーでもいいけど「仕様書読め」ってよくある応報だけど、そういう奴に限って自分が読んでない。
読んでたら仕様書読めなんて普通の神経してたら絶対に言えないよw
でたよ普通 お前の都合のいい言い訳に使われる普通なんて知ったことか 規格が普通なんだよ
後だししてるつもりはないなら補足レスなんかしないだろ。 普段からこうやって言い訳してるんだろーねー。
>>314 仕様書読んでないの?!
普通酒の肴にして読んだり寝る前に読んだりするでしょ!
仕様書を読まないとかあり得ないだろ…?
何もかも逆引きで済ましますよ 仕様書とかありえないっすねw 会社の書棚も逆引き本ばっかりでしたよ そんなもんでしょw?
DB接続って何使ってる?
>>320 こう言うのが居るから相対的に自分の評価が上がるなんて若い頃は思ったものだが
人を使うようになるとこんなんばっかで何が作れるんだよってキレたくなる
ふっつーにSqlConnection/Commandかな
324 :
デフォルトの名無しさん :2013/04/30(火) 00:55:45.41
JavaからC#に来たけど、MSDNのドキュメントはすごく見づらい。
>>307 あたりで貼られているMSDNのリンク先でも、画面左のペインでサブ項目を折りたたみできるが、
ある項目を展開すると、他の項目が消えてしまう。
隠さないで全部表示してほしい。Ctrl-F で検索もできるし。
Javaはウンコとかいろいろ言われているが、javadoc (APIリファレンスだけでなく) はものすごくたどりやすい。
るりま、pythonなどもいろいろ見てきたが、言語のオンラインドキュメントでjavadocが一番。
>>324 それは間違いなく慣れの問題ですw
どっちも慣れた後ならJavaのドキュメントの方が糞に思えてくると思うよ。
あと個人的見解だけど、ブラウザで見るオンラインのドキュメントは、あくまで
オマケもしくは最新情報的な意味合いしかないと思う。
ローカルのビューワは間違いなくMSDNの方が見やすい。
まあ2010以降は劣化が激しい気がしないでもないけどw
ちょっと質問させてください。 C#(プログラム)からルータの管理画面を開いて 自動で切断 > 接続 を繰り返していると たまに 「ページが見つかりません」というエラーメッセージがWebbrowser上に 表示される様になります。 こうなった場合には、ルータとVDSLの電源をオン、オフにしなければ 192.168.2.1 にアクセスしようとしてもフリーズした状態になります。 VDSL+ルータでの接続をしている事が原因なのでしょうか? どうすれば、切断、接続を繰り返しても今回の様な事象に なる事を防ぐ事が出来ますか?
ハードの問題だと思うよ
328 :
デフォルトの名無しさん :2013/04/30(火) 02:24:09.42
ソフトでも ハードでも コンタクトレンズをつけたまま
>>324 MSDNがより糞になったその仕様は最近のものなんだよね
少し前まではクラシック表示が選択できた
その前は、読み込みが少し遅いけどツリーが全部表示されていた
現状のオンライン版MSDNが最高のクソなのは確か。
ASP.NETとC#のバージョンに関係性はありますか? ASP.NET3じゃないとC#3.0以降は使えないとかありますか?
ASP.NET3ってつまり.Net Frameworkが3って事だと思うんだが 対象のフレームワークバージョンで動くアセンブリ作るなら動くんじゃね でもIISの設定とかあるから合わせる方が楽だと思う
ASP.NETは.NET Frameworkの一部なので 独立したバージョンでは呼ばないな。 もしかしてASP.NET MVC Frameworkのことか?
333 :
326 :2013/05/01(水) 19:36:47.74
>>327 ルータのファームウェアを更新して
1日程度問題なく動く様になったのですが
また再び動作が怪しくなりました。
なんで、切断、接続をするだけで WEBページが見つかりません なんてエラーが出るのでしょうか?
デフォルトゲートウェイであるルータまでが見えないなんてすごく納得いきません。
どう考えてもまともな用途じゃないんだから人に聞くなよ
kakorokuでニコ生を録画したいのか?
ルーター側だって簡単なOSが動いてんだよ ドライバのできが悪いんだろうさ これ以上くだらない話を続けるなよ
ちなみにどこのルーターですか? ババを引かされるのは嫌なので後学のために教えてください
質問者もどうかと思うけど、これだけの情報でルーターの問題だと断定する奴も どうかと思うけど。 とりあえず自動で接続とか切断とか、俺には何のことを言ってるのかさっぱりわからない。 普通なら疑うところはまずここだろうに
>>336 ドライバの出来が悪いの?
しかし切断・接続を繰り返すだけでアクセス出来なくなるなら
HPに書いてろよ!!
>>337 教えない。地雷を踏んでください。
ついでにファームのことをドライバとかいう奴も信用してはいけない
>>339 「できが悪いルーターです」と書いたらお前が買わないだろww
>>340 素人かよ
ファームとドライバは別もんだ
>>338 今時ルーターの設定画面も見たことないようなお爺ちゃんはすっこんでればいいよ。
お前以外全員理解してるから。
344 :
339 :2013/05/01(水) 20:03:28.40
ファームウェアとドライバは別物なのですが そんな事も分からない人はレスしないでください。 回線のつなぎ変えを繰り返すだけで 接続の出来なくなるのはやっぱり プログラム外の問題ですか?
>>344 だから、その「回線のつなぎ変え」とは具体的にどういう操作なんですか?
そこが肝心だろう。
>>346 全然肝心じゃねえよ頭腐ってんのかてめぇ。
つか相手すんなよ ぶち殺すぞ
349 :
339 :2013/05/01(水) 20:11:21.47
>>346 ルータ管理画面を開いて
切断 を押した後しばらくして 接続 を押す
それをプログラムで自動でやっているだけです。
>>347 >>348 お前らバカは他のスレに池
WebBrowserでルーターの接続画面開いて切断ボタンやら接続ボタンやら押してるって話だろ? WebBrowser使って自動ログインしたいとかその辺と同じ話で、そんな所にC#側の問題が介在する余地はねえだろ 諦めてメーカーに突撃しろ
>>349 ルーターの管理画面ってどういうものですか?
そこも大事だぞ。
>>349 ルーターの管理画面にそんなのある?
無線のイーサ子機の設定か何かと勘違いしてる気がする
さすがC# 低レベル御用達
>>352 あんた自分の家のルーター設定したことないのか?
ルーターの設定でどこに繋ぐって グローバルIPを割り当てるサービスに繋ぐんだろう 普通プロバイダーだと思うけどな
ITパスポートより酷い
1日に何回もログインする人がいるとは思いませんでしたので、 ログイン履歴をそのまま放置していました。 10回もログインすると、メモリーが不足して、動作が不安定になります。 ↑ ルーターではないが……こんな製品もあるんだ……
>>360 僕なら10リクエストごとにApacheを再起動しますね
エレコムのルーターにバックドアが存在するって昔あったじゃん 安い製品なんてあの程度の作りだと思うけどねえ かろうじて動く程度のしろもの
/j /__/ ‘, // ヽ ', 、 // ‘ ! ヽ …わかった この話はやめよう /イ ', l ’ iヘヘ, l | ’ | nヘヘ _ | | l ハイ!! やめやめ | l_| | | ゝ ̄`ヽ | |〈 ̄ノ ゝソノノ `ー‐' l ! ¨/ n/7./7 ∧ j/ / iヽiヽn |! |///7/:::ゝ r===オ | ! | |/~7 i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/ | | | | l {':j`i::::::::::::::::`ーr ' ||ー---{ | '" ̄ ̄iノ .l::::::::::::::::::::::∧ | ゝ ', , 一 r‐‐l γ /、::::::::::::::::::::::::〉ー= ___ ヘ ヽ } / o |!:::::} / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ ノ / o ノ:::::∧ /ヽ o ヽ::::::::| o i::::::::ヽ、 / / / ノ::::::/ /::::::::ヽ o ヽ:::| o {::::::::::::::Υ /
いわゆる黄金厨
>>349 他人の釣り場で勝手な事しないでもらえますか
やはりkakoroku絡みだったか
「ルーターの管理画面」でこんなに食いつかれると思わなかった さすが
ルーターなら普通TELNETでも接続できるから TELNETで切断/接続するようにしたら? そっちのほうが安定しそう。
369 :
デフォルトの名無しさん :2013/05/01(水) 21:37:18.88
ELECOMとCANONは粗悪品多し
まだ言ってるのか。 だから切断/接続ってどことどこの間のことだよ。
>>371 え?
普通にtelnet 192.168.0.1
とかやってみたら?
telnet で ルータの再起動とかって出来るんだねw 勉強になりましたwww ブラウザベースでやる必要とかねーってことか。 一人の賢い人 と その他のバカども サンキュー
ブラウザの問題じゃねーって言ってんのに 何で接続しようがお前のルーターはウンコだよ
解決したならいいやん
もう二度と来るなよ
ブロードバンド回線が、CATVなどのDHCPだと、PPPoE のような接続/切断 の概念がないから、
>>356 みたいな人がいるのもあながち間違いではない気がする。
>>378 だから、それはルーターの機能じゃなくてモデムの機能。
何を寝ぼけたこと言ってんの
ISDNの時代、ルーター内蔵TAなんてあったからあれで勘違いしてるのがいるのかね。 よーわからん
よくわからんがうちのAterm WR8150Nには 接続/切断あるよ
天然スレッドストッパーの私が通りますよ
>>379 おまえこそ何言ってるんだ?
最近のブロードバンドルータは PPPoE モードや DHCPモードなど WAN 側のいくつかあるが、
WAN側の設定を DHCP にすると、PPPoEの時と違ってルータの管理画面から接続/切断ボタンが消えるものが多い。
DHCPモードの時にブロードバンドルータの電源入れると、WAN側のポートにケーブルがつながっていれば、
即座にDHCPでIPアドレスを取りに行こうとする。
もちろん、PPPoEモードにすれば、管理画面に切断とか接続ボタンが復活する。
おれのもっている NTT-ME MN8300と NEC の WR8700N がそうだ。
だいたい、いまどきルータとモデムを別々に使っている人なんてほとんどいないだろ。
ブロードバンドルータにモデム機能も内蔵されているし、
ユーザから見て、PPPoE だろうが DHCP だろうが、モデムを使っているという意識はない。
いまどきモデムなんて言葉を知っているのは、我々を含めた一部のマニアだけだ。
(と、ブロードバンド時代の前にパソコンでネットにつないでいたひとたち)
だめだなこりゃ。
ネタでなく本気で
>>383 のように思ってるのならバカの壁としか言いようがない。
例外のおっさんは相変わらず粘着質だなあ
回線の接続切断とISPの接続切断がごっちゃになって齟齬が起きてるだけだろう。 故意のようにも見えるが。
ウルトラマンさんがお怒りだぞ
ルータで切断・接続なんてあたりまえだろ。 理解出来ないヤツはバカ あと今の時代モデムを知らないヤツなんていねーよ
なんでずっとC#と関係ない話してんの?
切断・接続なんて無いっていってる人がいるから
流れぶった切って悪いが、質問です javaで書かれてる動画処理(モーショントレース)のやつをc#かc++に移植しようと思うんだけど、どちらがいいかな(互換性、拡張のし易さそして、コンパイルしたプログラムの軽さ的に)
C#
C#スレでそういう質問をするのはナンセンスだな。C++スレでは別の答えがあるだろう。
少なくともJavaで書かれて使われているってことは それで満足な速度が出るんだろうと言う想像はつく
別にそんな意地の悪い回答をするような質問じゃないと思うが... 誰が考えてもパフォーマンス以外の要素ではC#が圧倒的に有利に決まってる
398 :
デフォルトの名無しさん :2013/05/03(金) 15:54:18.29
うるさいゴミ
398 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん
>>396 逆なんだな…
開発者がスペックに物言わせて、メモリリーク並みのメモリ消費を放置、機能抜いて改善する感じの状態ww
一応、c++でも聞こうかとは思うけれど、マルチになるかなぁと思いまして…
パフォーマンス改善したいのならC++しかない だたし、時間がかかる部分だけC++で、その他はC#というのもあり
J#とかIKVMとか答えるのが風流
>>401 ハイブリッドか
c#から呼び出すってことやろ?
>>403 おうおうにして間にC++/CLIが挟まるけどそういうこと
P/Invokeか 大変だぞあれ 共有メモリとMarshalを使えばそうでもないかもしれんけど
>>405 いや、C++/CLIでC#用のラッパを作るだけよ
>>404 なるほどね。
ちょ、調べてやってみるわ
お前らはインターフェイスを宣言して使ったことがありますか インターフェイスってどういう時に役に立つのかわからないなーって思った
IDeepCloneable IThisLock ぐらい
410 :
408 :2013/05/03(金) 22:37:06.15
javaの本とか見ていると、ポリモーフィズムを使いまくっているよね java屋はポリモーフィズムのことを、あんなに考えてプログラム組んでるのか?
目に見えて役に立つのは、 多重継承回避と、一部の機能のしかさわらせたくない場合かな あとは、リフレクションを使ったプラグイン的なことをする時とか まあ多重継承回避以外はクラスでもできるんだけどね 実装を直接公開すると、お互いのクラスがすごく密に繋がってしまう メンバを増やすと、実装を公開している全ての箇所で直ちに使えるようになるし インタフェースでそのあたりが解消される 密でもいい状況なら別にいいんだけどね
こういう質問をする人にそんな抽象的な話が理解できるとは思えませんがw インターフェイスで何ができるかを理解するのは難しくないと思うけど、 C#の場合機能が一部重複するデリゲートがあったりするので Javaより一段話がややこしいかも
>>412 デリゲートは実装を強制させたりする事が出来ないし、リスナーの代替機能として使われているだけなので
インターフェイスとは役割が違うような気がする
デリゲートってタイプセーフな関数ポインタでしょ
関数ポインタは「インターフェイスと機能がかぶっている」と言っているのと同じじゃない?
リスナをJavaではインターフェイスで実現してC#ではデリゲートで実現する訳で、その部分は同じ役割でしょ
>>413 何を反論されてるのかよくわかんない。
役割が同じなんて言ってないよ。
機能が一部重複すると言ってるんですが。
まぁた言葉の定義に踏み込んでああでもないこうでもないってムダに話が長くなる ☆ 予 ★ 感 ☆
417 :
デフォルトの名無しさん :2013/05/04(土) 05:15:49.87
C#を使った開発で、XAMLを使うらしいんですが、 やけにやや古いバージョンでの開発経験があるかどうか確認されました。 C# + XAMLで、.NET 2.0 (=C#2.0)で開発することなんてあるのでしょうか? WPFもsilverrightも.NET3.0からですよね?
(Formsから移植しろとか言うのかな)
420 :
デフォルトの名無しさん :2013/05/04(土) 10:10:50.14
なんか現場のマネージャーが元開発者だったらしくて、すげぇうえから目線で会話してくんだけどさ。 でももうコーディングしてないし、自分からPGのキャリアパス捨てといてまだ現役気取りとかうざすぎる。 しかも質問してもまともな回答まったくないからレベル低いと思ってんだけど、どうやったら確かめられるかな? 諸先輩方はこういうときどうやってやり込めますか?
争いは、同じレベルの者同士でしか発生しない
あーはいはい、って答えとけばいいんだよ。 まあすっっっっっごく同情するけど。
答えると「お前みたいに甘やかすカスがいるからレベルが低くなるんだ」とイチャモン付ける 頭のイカれたuyが常駐してるもんな
マ板でやれ
と図星を突かれた粘着が発狂しております お前がいつもマ板でやるべきネタレスをしたりネタスレを立ててる癖に、人がやると 途端に目くじら立てるのな 分かりやす過ぎ
なんでもいいけどもうせめてもう少し笑えるネタを書いてよ
春ですね
妄想ならいくらでも書けそうだが 現実の現場にゃ笑えないネタしかないんだよ
現実現実ってそのしょっぱい現実にお前を導いたのはお前自身のくせに何を
そそ元と言えばそういう現実にしか行けないお前が悪い
まあ、無能な自分を棚に上げて「ブラックガー」って吹き上がってる馬鹿、2chには多いねw
そうそう。↑とか。
そうそう。↑も
434 :
72 :2013/05/04(土) 14:28:28.02
Rev Sync On (笑)
>>434 笑いのツボが人とずれてる自分を、その自覚もなく平気で晒している様が
逆説的に笑える(かもしれない)、というネタでしょうか。
悪いけどやっぱり全然面白くないよ
436 :
72 :2013/05/04(土) 14:38:05.66
Rev Sync On (笑)
ハブられた435w
PGのキャリアパス PGのキャリアパス PGのキャリアパス
C#の話しようぜ 419で思い出したけどMEFってどうなん? C#に人気アプリなんて無いのに誰がプラグインを供給する設定?
自分の主観と客観が区別が付かなくなったら人間終わりだね。 残念ながら2chにはそういう終わってる(その上終わってる自覚もない)奴が多い。 バブルのちょっと後に脳内革命って本が流行ったけど、あの本の主張が今頃になって結実したんだろうか
なるほど自分が変だから世の中が変に見えるとは思わないんだ。 まあ変な奴はたいがいそうだが。
>>439 積極的に供給されてるのはVisual Studioの拡張くらいしか知らない
VisualStudioの拡張は2010からMEFのはず
プラグインというかMEFは実行時にコンポーネントを掻き集めてアプリを構成してくれる仕組み 画面ごとにDLL分けてるような業務アプリなんかで使うと便利なんだと思う 公開プラグインに使おうと思うと、MEFに任せて終わりじゃなくて AppDomainを分離して落ちにくくしたりとかいろいろ考慮すべきことが多いんじゃないかと
コンポーネント間の依存関係がぐっちゃぐっちゃな場合・・・ というか、柔軟性が求められる場合に活躍するのがMEFだな。 大規模アプリでも綺麗な設計ができる天才には必要ないけど 平凡なプログラマにとっては非常に助かる存在。
MSはDI Frameworkに否定的だったから、 MEFはSystem.AddInの代替的な位置づけだね。 System.AddInは使いづらかった。
手軽だけど柔軟かなぁ 例えばアセンブリ署名のチェックとか出来ないよね 結局自分で書いてもDLL読み込んで公開インターフェースで型検索してインスタンス化するだけだから楽したい時用だと思うんだけど それともアセンブリアンロードとかMEFでしか出来ないような事があるの?
>>447 ホットスワップ対応ってことかな
使ってる途中でプラグインdllの入れ替えが出来る
449 :
デフォルトの名無しさん :2013/05/08(水) 15:35:46.47
C#の質問より.NETの質問かもしれませんが、 C#でタッチパネル対応のアプリケーションを作るにはWPF4以降じゃないと駄目なのでしょうか? なんかC#でタブレットのアプリの開発を任されたのですが C#の古いバージョンでの開発経験があるかどうか問われたので 今更LINQもないC#で開発するのか気になったのですが
タッチパネルのどの機能が欲しいんだ?
451 :
デフォルトの名無しさん :2013/05/08(水) 19:00:31.65
>>450 普通にタッチしたりとかスマホみたいなUIです
452 :
デフォルトの名無しさん :2013/05/08(水) 19:02:41.39
いや、
>>451 は取り消してください
タッチパネルだからといって、スマホみたいなインターフェースとは限りませんね・・・
だから何の機能がほしいんだよ 必要な物くらい把握してないのか?
はい
455 :
デフォルトの名無しさん :2013/05/09(木) 09:03:40.68
たっちょんぱ
457 :
デフォルトの名無しさん :2013/05/10(金) 21:33:21.99
質問です FtpWebRequestを使ってFTPでファイルをアップロードする際に、 ディスクフルを検知する方法はありますか? ディスクフル時にWriteの出す例外は ディスクフル以外でも出うるようなIOExceptionでしかなかったので……
459 :
デフォルトの名無しさん :2013/05/13(月) 20:50:06.79
来月中にC#覚えないと首だといわれたのですが、C#とVIJUAL C# って別物? 一般的にC#って なにをさすのですか?
中1レベルの英語から始めたほうが良いと思う
C#の勉強より退職届をきれいに書く練習したら?
462 :
デフォルトの名無しさん :2013/05/13(月) 20:56:10.09
VIJUALwww
変数名すごいことになってそう・・・
>>459 悪いことはいわないから、覚えずにクビになりなさい。
覚えてもろくな事にならない
PC遠隔操作事件に関して質問です。 1月5日に江ノ島の猫の首輪についていた「iesys.exe」のソースコードを つけたのは、遠隔操作犯とは別の便乗犯であり、 そのソースコードは「iesys.exe」のバイナリを逆コンパイルしたものを 解析、コメントを付与し、あたかも自らが作ったように偽装したもの だったという説があります。 この説は明確な根拠を以て否定できるのでしょうか? 否定の例) 逆コンパイルソースには必ず○○という情報がついてしまう。 C#に詳しい捜査官であれば、この点を見逃すことは無いはずである。
C#なら逆コンパイル簡単にできるしありえるな
逆コンパイルしたソースってただのテキストだぞ
>>468 当然ながら便乗犯は、偽装のために.slnや .csproj は手製で作成していた
ということが前提の説ですよ。
*.csしか入ってなかったんじゃね
まだこんな探偵ごっこしてるのか 進歩ねえ脳味噌だな
つかあの時点でアプリ名とかどのアプリだったとか 一般人は知らなかったのでは?
>>472 11月の時点でこんな記事がある。
internet.watch.impress.co.jp/docs/news/20121109_571902.html
>>466 裁判官なんて、結論ありきで後から理由付けするんだから、そんなのどうでも良いよ。
もちろん結論は気分次第な。
>>474 「実」より「情」で判決が出ちゃう現状だからこそ、
技術論で真実を探求しておく必要があるんじゃないか?
探偵ごっこすんなとか、裁判なんていいかげんとか言ってる奴って 結局、技術的な見解が言えないから管を巻いてるだけなんだよなw かく言う俺も技術さっぱりだけどなw
逆アセンブラなんか誰でもできるんだから その辺りの知識があればソース作るなんて無駄なことはしないわな
裁判官は「真実」に拘束されないんだよ。 物理法則に逆らってもOKだし、黒を白と言ってもOKなんだよ。
>>477 以前、ニュー速+で逆アセンブル説を紹介したら、
「荒唐無稽な説」とか言われたけど、そうでもないの?
>>478 日本の司法は、自由心証主義を採用しているからねw
Wikipedia 自由心証主義
ja.wikipedia.org/wiki/%E8%87%AA%E7%94%B1%E5%BF%83%E8%A8%BC%E4%B8%BB%E7%BE%A9
中間言語のままのほうが読みやすいし
真実を見極める目がないから質問してるくせに笑っていい所なのか?
特定のexeやdllファイルから抽出するのではなく、拡張子ごとに
関連付けられている、48 x 48 とか 256 x 256の
特大アイコンを取得したいんですが、手掛かりがありませぬ。
ググると出てくるのが下記のページ。
http://iamignorant.blog11.fc2.com/blog-entry-22.html 肝心のOpenSourceのサイトがリンク切れで、
どのライブラリ(クラス)をどう使ったのか、さっぱりわかりません。
この情報、もしくは他の方法で、関連付けられたアイコン取得方法、
どなたか知っておられましたらお願いします。
SystemImageListSizeでググるとなんか出てくるけど有償だな まあInternet Archiveで見れるが
SHGetFileInfo とか? 使ったことないし .net じゃないけど。 ぐーぐる先生がたくさん知ってるぞ。 いっそフリーソフトとかで取って来ちゃう方が楽じゃね。
結局、逆コンパイルの件について確かなことが 言える人はいないのか…
はいはい終了終了
>>488 そうやって無理やり終わらせようとする
さては犯人だな?
記念真紀子
馬鹿って罪深いな
MenuStripにAltを押したときのみ表示というような機能はありませんか?
あるかもしれないけど、なければvisibilityとbindingしなよ。
どこに聞いてよいか分からないので、こちらで質問させてください。 SQLServerのCLR関数を使いたくdllを作っているのですが、 Assembly.LoadFromの関数を使うとエラーになってしまいます。 どのように設定すればLoadFromが使えるようになるのでしょうか? よろしくお願いいたします。 以下エラー文 ユーザー定義のルーチンまたは集計 "Test" を実行中に .NET Framework エラーが発生しました: System.IO.FileLoadException: LoadFrom()、LoadFile(、Load(byte[]) および LoadModule() はホストによって無効にされています。 System.IO.FileLoadException: 場所 System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 場所 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 場所 System.Reflection.Assembly.LoadFrom(String assemblyFile) 場所 TestDll.Class1.Test(SqlInt32 patientNumber)
LoadFrom では、指定されたパスに対する Read と F:System.Security.Permissions.FileIOPermissionAccess.PathDiscovery、または WebPermission が必要です。
>>494 SQL CLRを動かす際には、SQL Server側の設定も必要なんだよ
初期の状態では権限が足りなくて、.NETからファイルの読み書きとかが出来ないようになっている
有償のEditionだとGUIから設定可能だけど、ExpressEditionはSQL打って設定を変えなきゃいけない
VisualStudioから設定してもうまく動かない時があった。
SQL CLRの設定はSQL Serverで確認してみてね!!
SQL Serverの設定と.NETストアドの配置がめんどいよー
497 :
デフォルトの名無しさん :2013/05/20(月) 18:33:31.39
C#の解析を防止したいのですが、どうするのがいいのでしょうか?
解析した者に対する呪いを込めながらプログラミングする
平文で書いた暗号を敵に読まれたくないのですが
500 :
デフォルトの名無しさん :2013/05/20(月) 18:38:08.57
俺みたいに解析防止されているものをさらに解析するお仕事の人間もいるので ぶっちゃけ素人の対策なんて玩具に等しい
そして今のところ呪いは功を奏していないようだ
死ね~(呪い)
C#でウィンドウズフォームアプリを作ってるんですけど、 コントロールの名前ってどうつけたらいいんですか? textBox1, textBox2ってかっちょわるいし、具体性にかけるとおもう
検索ボックスならtxtSearch 名前欄ならtxtName
>>505 なるほど
ハンガリアン記法風がよさそうですな
ありがとうございます
先頭からtxt001,txt002,...とつけてexcelで管理 新しいコントロールの追加は決められた書式で 申請して許可を取ること
かっこいい名前 txt漆黒ノ呪文サーチティニング txt女王より賜りし剣の名前
ORMを使って開発している人いますか?
510 :
デフォルトの名無しさん :2013/05/20(月) 22:01:55.00
txtじゃテキストボックスなのか文字列なのかいまいち分からない
C#では通常ハンガリアン記法は使わないからstringに txtプレフィクスをつけるようなことはしない。 例外的にフォーム上のコントロールなどは ハンガリアン記法が有効なケースがある。 よってtxtを文字列と勘違いすることは無い。
ハンガリアン記法という言葉は誤解を生むので 単にプリフィクスと言えば良い
韓が李安
モンゴリアンチョップは関係ないか・・・
wpfよりwindowsformsの方が楽だなー flexはすごく楽なのに
まゆしぃ「л ψ こんがりぃ」
txt後藤真希 txt矢口真里 txt石川梨華 ってサンプルなら見たことある
chbHoge tbHage btnHige cmbFoo pnlBar gbBaz
古くせえネーミングだな 今は省略も英訳もしないのが普通 textBox_名前 comboBox_都道府県
きめえw
読む時は良いけどコーディングするとき面倒じゃない? 長ったらしいコントロール名の後に日本語入力モードにして・・・って
522 :
デフォルトの名無しさん :2013/05/21(火) 18:22:55.21
IntelliSense前提だろうなあ
支那チョンから漢字orハングルだらけのソース受け取ったらどんな気分になるかね
524 :
デフォルトの名無しさん :2013/05/21(火) 22:18:40.80
ソースファイルを分けることでのデメリットってありますか? 分けすぎると重くなったりしますか?
そんな寝言を言ってるようなレベルで重さとか気にする意味は全くない 必要に応じてどんどん分けろ
「重くなったりしますか?」という考え方が間違ってる。 実際問題なく動作してるならどんな非効率なコードでもいいんだよ。それより動くものをさっさと作れ。 ファイルというかクラスを分けることによってオーバーヘッドが増えたりメモリ使用量が増えたり というのも全くないとは言わないが、普通はまず問題にならない。そういうのは問題になってから考えること。
普通軽くするために分けるんじゃね
実行効率よりVSが重くなるのが先 1人で作る分には問題無いだろうが
529 :
デフォルトの名無しさん :2013/05/21(火) 23:38:30.12
そうかならどんどん分けてくわ
XSLTの読み込みに失敗します。DTDにはルートノード名を書かないと いけないと思っているのですが、そうするとルートノード自体が 宣言されていないと言われます。環境は VisualStudio 2005 です。 XSLTは以下です。 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]> <xsl:stylesheet version="1.0" xmlns:xsl="ここはテンプレ通り"> </xsl:stylesheet> コードは↓のようにしています。長いので分けます。
XmlReaderSettings stgs = new XmlReaderSettings(); stgs.ProhibitDtd = false; stgs.ValidationType = ValidationType.DTD; XmlReader rd = XmlReader.Create(@"a.xsl", stgs); XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load(rd); xslt.Load で"'xsl:stylesheet' 要素が宣言されていません"と例外が発生します。 よろしくお願いします。
533 :
530 :2013/05/29(水) 19:10:16.29
>>532 あ、中身はあります。↓のようなカンジです。
<xsl:stylesheet version="1.0" xmlns:xsl="テンプレ~">
<xsl:template match="text()" />
<xsl:template match="/Contents">
<Section>
<Text ID="Text1">
<Segment><xsl:value-of select="Content"/></Segment>
</Text>
</Section>
</xsl:template>
</xsl:stylesheet>
DTD部分がなければ読めるんですよ(>_<)
ドキュメントには、ValidationType に DTD セットするときは、DtdProcessing に Parse をセットしろとあるが、それは?
おっと.NET Frameworkのバージョン古いかも
536 :
530 :2013/05/29(水) 19:35:32.89
>>535 ですね。.NET2.0には DtdProcessing プロパティがないです。
ドキュメントのサンプルにあった XmlReader.Read を使った処理は動くんですけどね…
ValidationType消したら動いた(.NET 4)
あるインターフェースAの実装クラスCをWCFで公開したいのですが、Aの定義が変更できないので 中間に派生インターフェースBを作ろうと思っています。 public interface A { int aMethod(int a); } [ServiceContract] public interface B : A { [OperationContract] int aMethod(int a); //★ } public class C : B :(略) このとき、メソッドに[OperationContract]属性を付けるには★印のように同じシグネチャの宣言を 記述するしかないんでしょうか?また、そのときA.aMethod(int)が隠蔽されますが、そのことで 不都合はないでしょうか?
インターフェイスの定義を変更とか、インターフェイスの意味なくね?
インターフェースってC++で言う所の抽象クラスみたいな物か
隠蔽する時は new 付けるとかなかったっけ? 元のを呼ぶときは super だか base だかで呼べば良いんだろ? (C#とJavaごっちゃになっててすまん)
インターフェイスの隠ぺいだからクラスとはまた事情が違う
>>539 変更したいわけではなくて、Aの定義そのままでWCFに必要な属性を付けたいだけです。
>>541 そこが気になるところで、継承ではなく隠蔽なので厳密にはA.aMethodとB.aMethodは
別物となると思うんですが、公開されるのはBとその実装であるCと決まっているので
問題ないと考えていいのか?ですね。
そもそもこういうケース、WCFではどうするのが普通なんだろう?元のインターフェースAを
修正して属性を付加することしか想定されていないのかな?
BがAを継承する必要性がない
委譲じゃね
MSDN の ServiceContractAttribute の説明では、インターフェイスの継承は可能とある。 普通だと、A と B の定義は別で、実クラスで両方のメソッドを入れるのが思い浮かぶけど、 WFCだし、いろいろ試してみては。
>>544 Bなしでやる方法ありますかね?
ChannelFactoryはクラスじゃなくてインターフェースを要求するから
AをCが直接実装する形じゃできないと思ったんだけど。
あー、いや、CがAを継承する必要がないならもともと問題は生じないわけなんで、 そこは大前提ってことで。 ってあれ?シグネチャが適合すれば継承関係がなくても C as A って 成功するんでしたっけ?もしそうなら、たしかにBはAを継承する必要がないですが。
B : A はやめて C : A, B ってことだろ
>>550 そうするメリットがよくわかりませんが、この場合、CreateChannelで得られるBから
インターフェースAを求められないのでダメですね。
Aの定義が変更できないなら 実装クラスに属性をつけるしかないだろ
そもそも属性って定義の一部なのか? あれは実装の一部じゃないのか?
wcfはwebserviceみたいなものだから、 ホスト側のオブジェクトとリモート側のクラスは本質的に別物だろ。 シグネチャさえあってりゃ良いのではない? 試してないけどName指定で名前合わせてみればどうだろ。 [ServiceContract(Name="A")] public interface B { [OperationContract] int aMethod(int a); }
>>551 サービスで公開してないメソッドが使えるわけないだろ
>>554 なるほど、そういうこともできるんですか。
ただ今回、クライアント側もAの定義を持っていて、その場合はうまくいきませんでした。
クライアント側でAを再定義できるならそれでいけそうですが。
今回、既存のインターフェースであるAをWCFで位置透過に操作できるようにしたかったんですが、
WCFでそれをやるにはA自身に手を入れなきゃダメってことですかね。
クライアント側でBのラッパー作ってAにすればいいだろうが
AとBのラッパーにするしかないかなと思ってたけど、BをラッパーでAにするってのは 具体的にどうすればできるんでしょう?
A(){ B(); }
馬鹿コードでしたw
芝を生やすとバカに見えるぞ 注意しよう
オマエガナー↑
クラスの中に、staticなコレクションで自身のインスタンスを持つ、 次のようなクラスを書きました。 class Person { static Dictionary<int, Person> list = new Dictionary<int, Person>(); public int ID { get; private set; } public string Name { get; private set; } public string Kana { get; private set; } public static Person GetPerson(int id) { return list.ContainsKey(id) ? list[id] : null; } public static bool Add(int id, string name, string kana) { if (list.ContainsKey(id)) return false; var p = new Person(); p.ID = id; p.Name = name; p.Kana = kana; list.Add(id, p); return true; } } 他の人に言わせれば、相当違和感があるコーディングなようです。 このコードにはどんな問題がありますか? デザインパターンから見て、このようなコードはありえない or やめるべきですか?
PersonはAddしたいオブジェクトなのに その操作がPersonクラス自体を対象としてて そのコレクションをPerson自体が持っているというのはどうかな void PersonCollection.Add( Person )とか Person PersonFactory.Create()みたいにしたくならない?
必ずインスタンスが1つしかないという条件を付けたいなら、むしろ563のようなコーディングの方が望ましいよ。 つか、俺なんかもそういうの作ってるよ。
PersonがPersonとしての機能だけじゃなくて Person製造機とPersonコレクションの機能まで持たされてしまっている 自分しか使わないコードなら好きにしたらいいけど
>>565 インスタンスが1つしかないという条件なんてどこにもないわけだが
それでいいんじゃないか。 そのクラスをオブジェクト思考的理解すると、 人類は共通した仲間リストを瞬時に共有化できる。すなわちジオン・ズム・ダイクンが 提唱したニュータイプ、お互いに完全に分かりあえる人類をクラスにしたわけだ。
キモい
>>570 staticでも[ThreadStatic]や型引数があれば増殖するぞ
今回は全く関係ないが
経験的には機能を提供する側がstatic使うと微妙なことが多い
デザインパターンなんて気にしても仕方のないレベルだろ 思うさまに書けよ1年くらいは
staticで宣言しとくと、変なところでnewされてバグったりしないから良いよ。
あるかないかじゃなくて目的のために使うんだよ、パターンってのは
Flyweightにする理由があまり感じられないし
ひとつしかないって保障されるならとりあえず シングルトン化しといて欲しいんだが、無理でしょうか。
かえってメモリ食うばあいも多いよ パフォーマンスチューニングが目的ならそういうのは本当に必要になってからやれ
シングルトンじゃ無いんでしょ? なら良いと思うよ あとたまにはDictionary.TryGetValueの事も思い出してあげてね
メモリ食うのは悪いことではない
>>563 デザインパターンは関係ない。
特にそんな風に書くべき理由がないのなら書くべきじゃない。
理由は、端的に、プログラマの頭の中にある(はずの)モデルがコードから
読み取りづらいから。(頭の中に明確なモデルがあればこんなコードは書かないと思うが...)
Personのコレクションを操作するオブジェクトは、そのまま素直にそういうクラスで表現してよ。
モデルとコードの間に乖離があるようなコードを書くのはダメグラマ。
俺には
>>582 は利用者本位の実務的な意見に見える
Person内に、static list はオブジェクト指向完全無視だしなぁ。 人は人、名簿は名簿でクラス化してくれないと。
一度、class Person を別の名前にして、ID, Name, Kana を持つ class Person を別に定義してみれば。 細部は間違ってなくても全体の筋が悪く、英語として体をなしていないみたいな、そういう感じ。
>>563 全員が常に最新の名簿を持ってて誰に問い合わせてもメンバーの情報が取得できる、
と考えると違和感ない。
動くコードがあればどうとでも言い訳できるさ
>>587 違和感あるよw
問い合わせしたいだけなら名簿の参照を持たせるだけでいい。
名簿は名簿のシングルトンクラスで管理すべし。
名簿とPersonを合体させるのはおかしいし、
オブジェクト志向のデザイン思想に反してる。
>>588 587じゃないけど、俺は違和感ないよ。
むしろ全部がPersonクラスにカプセル化されて、かえってわかり易いんじゃないかとも思うし、
そういう意味ではオブジェクト指向の趣旨にも合致してるだろ。
同意 オブジェクト指向ならPersonクラスは 画面表示もデータベース操作もXMLシリアライズも全部持ってていいよね 効率や保守性や実装の都合などの観点で必要ならそれを"あえて"分けるんだよ
PersonのクラスメソッドでDBアクセスしてPerson取ってくるのって スクリプト言語ではよくあるパターンだけど そういえば.NETのORMってそういうActiveRecordみたいなのは聞かないよな
ま、解釈は人それぞれだけど、致命的なのは再利用性に乏しい事だよ。 例えば、別の名簿を持つ必要が出てきたときに、設計を変更するか、同じようなクラスをもう一つ作らなきゃならない。 シングルトンでなければ、インスタンスを増やすだけで対応できる。 この程度なら、必要に応じて作り直せるけど、大規模システムでヤられると殺意を覚える事がある。
>>592 横だけれど、そうなると、正規化と程度の問題という気もするなぁ。
大規模でなければ許される程度の実装ではあると。
質問者の意図として一般的かそうでないかという感じの質問と見たが、 その場合回答は一般的でない、の一言に尽きる。そんだけの話。 つうかこの書き方をするメリットってなによ。 そうじゃないなら一般的に書けばいいだろうに。
>>582 クラス名で混乱するだろうな。
>>592 あ、そういえば、拡張メソッドなんてものもあったね。
596 :
563 :2013/06/01(土) 12:00:17.91
貴重な意見、たくさんありがとうございます。
意図としては、
>>594 さんの推測通り、一般的にどれほど受け入れられるのかと思いまして。
内部でインスタンスを持つということに抵抗があるのもよくわかります。
個人ならともかく、複数人で分担してコードを書いている場合、
どちらかというと避けたほうがいいコードのようですね。
>>592 さんには、殺意までわかせてしまうようですし><
オブジェクト指向、難しい・・・
597 :
563 :2013/06/01(土) 12:07:06.48
こんなことをメリットといっていいのかわかりませんが、 Visual Studioを使っていると、Personクラスに関係する何かをしたいとき、 とりあえず Person とタイプして、コンマを打てば、インテリセンスで何とかなるので 手抜きしやすい、というものがあって、こんなコードを書いてみました。
うんこ
599 :
592 :2013/06/01(土) 12:21:53.86
>>593 >>596 ぶっちゃけシングルトンはグローバル変数だから、安易さだけで使うと後々痛い目を見ることが多いんだよね。
だから、普通は必要最低限の部分を見極めて、その部分だけをシングルトン化するものだよ。
オブジェクト指向的にも名簿と個人情報は別。
また、名簿がシステムで一意なのか、コピー可能なのか、これもまた別の話。
みんなで同じものも持ちたいから static って用法としてどうなの? static は、static的なオブジェクトにのみ使ったほうがいい。Mathクラスとかのような。
卑 日 / ._ノ 怯 本 L_ _-‐──-) .在 .え 者 に / ./:::::::::::::::::::::ヽ .日. l だ い / _____ /:::::::::::::::::::::::::::::::i ニ マ け る l /..::::::::::::::::::::::::::::- _ ./::::;;;::'''``""'''''' 、く カ ジ ニ 朝 i . /:::::::::::::::::::::::::::::::::::::::::\ i::::::/ --─‐‐- 厶, !? ダ 鮮 l /:::::::/~ ̄ ̄ ̄~ヽ:::::::::::::::ヽ ゙l,゙/ ,-ー、 Ll /,ー--、.ヽ よ 人 _ゝ /::::/ \:::::::::::| i i._--\ /--゙` レ、⌒Y⌒ヽ ね は 「 |:::/ '⌒` '⌒ヽ |::::::::::| ( l -'"/ ヽ `ーー ゙`l ./´゙'l,:: -┐ ,√ ヽ| \ / |:::::::::| 〈 ( )、 > /'゙i,. j: レ'⌒ヽ/ . . /| _人__人ノ_ ヽヽ ノ`ー'` ヽ----/' j゙jノ./:: 人_,、ノL_,iノ! |,<___ < _ > _____「 L_ヽ 〃r─‐- 、ヽ / /'´ノ:::: / ヽ| ー─── ノ キ 了 \ヽ ヽ, -‐┤} } .ノr''゙ / ハ ウ { /\/!`h、⌒/ ) モ |/! 「ヽ, `ー /) _ ‐' ./ ..ッ ェ ヽ r-、 . // / |  ̄ ,く | > / / `'//-‐、 / ハ | > /\\// / /ヽ_ / ! イ ( / / // / `ァ-‐ ' / ..ッ ハ / /! ヽ レ'/ ノ ニ > ' ∠ -‐  ̄ノヽ / ハ ..ッ .... { i l ! / フ .ダ ./ -‐ / ̄/〉 〈 \
>>592 再利用なんて考えてプログラム作ってたらいつまでたっても完成しないよ。
>>594 一般的だよ。
この1日のレスみても賛否半々だろ。
>>600 有りだよ。
レス乞食
有りねぇ。オブジェクト思考に反するけどねぇ。 いつ誰が変更するかも分からずマルチスレッドで同期までしっかりと考えないといけないね。 スパゲッティコードの再来だな。
一番まずいのはAddの引数
目的を考えずにパターンがどうとか言うとこのようにグダります
デザパタの勉強は最後でいい。 デザパタ先にやった人ってコード書くのがやたらに遅いイメージがある。 デザパタやって悩むとか本末転倒。
そんなん言われてもうちデザイン以外完璧やし
頭が完璧じゃなさそうだぜ
>>607 前半は同意。
後半はダメ。
本末転倒だろうが何だろうが、悩まなければ成長しない。
思考停止していいのは、反射的に判断できるくらいの経験を積んでから。
パターンで悩んだらパターン化した意味ないやん。
そりゃそうだw悩まない為のデザインパターンだからなw
とりあえず、楽して結果出せるのが当たり前と考えてるヤツが多い事はわかった。
どんな事でも楽して結果を出せると考えられるのがプログラマに向いた資質
プログラマに限らんだろ
趣味のプログラミングなら理屈こねて理屈通りにコーディングしても構わないとは思うけど、 仕事としてのプログラミングは理屈よりも期間と品質。
頭でっかちばっか
デザパタを使うと品質もスケジュールもボロボロになると告白してるだけじゃないですか
教義じみてて揉めるのが最悪
なんでもデザパタに当てはめようとして、必要以上に複雑なコードを書くやつは稀によくいるな
理想 PG「このオブジェクトをどうすべきか悩む。」 デザパタ屋「こういう場合はこのパターンだからこうだよ。」 PG「ありがとう」 現実 PG「このオブジェクトをどうすべきか悩む。」 デザパタ屋「うーん、この場合どのパターンにするべきか悩む。」 PG「やっぱ難しいよね。」
デザパタ屋なんているのか… 底辺IT土方の闇は深いな
>>563 からまだ24時間経ってないのに、何この盛り上がり。
規制解除されたからな。
パターンはあくまで目安だから 状況に合わせて好きに作ればいいよ
開発やってりゃ、知ってれば同じような解決法で簡単に片付く事例が多いよね。 デザパタはその事例集なんだから、使えるなら使った方が楽。 複雑化させてしまうのは、その人が目的と手段を取り違えてるだけ。 要はバランスの問題だけど、知らなきゃ選択すらできないので、知る努力をしといて損はないと思うよ。
デバパタ勉強して悩むのは構造化の基本的なスキルが身についてないから。 因数分解ができないタイプ。
こうやって先輩風吹かせて和が尊べないワナビが多いのが極悪
質問者(
>>563 )の悩みはどう考えてもデザインパターンと無関係なのに
鬼の首でも取った様にデザインパターンデザインパターンて。
ほとんど、何でも無理矢理朝鮮半島ネタに絡めるネトウヨみたいだ。
デザパタなんて別に高度な話題でも難しいわけでもないと思うけど、
そんなにコンプレックスが刺激されちゃうワードなのかね。よくわからん。
>>629 「デザインパターンから見て」
と質問に書いてあるのが読めないのでしょうか?
ちょっとでも相手より上に立ちたい安い自尊心というものをご理解いただきたい
>>631 問題は質問者がどう言ってるかじゃない。
質問者が提示した問題の問題領域がデザインパターン的な問題かどうか、それが問題でしょう。
Yesならデザインパターンの是非について語るのも多少の意味はあるかもしれない。
(実際のレスを見る限り、語られているのはほとんど回答者自身のコンプレックスの開陳
だけのように俺には見えるけど)
Noなら、質問者がどう言おうがデザインパターンの話をする意味はない。
単に「あなたの問題はデザインパターンと無関係」と言って普通は終わる話だ。
説教は部下にやっとけ
デザインパターン=GoFって発想に縛られてるからそんな珍講釈を垂れちゃうんだよ .NET設計のベストプラクティスとでも言い換えれば分かるか?
>>633 おいおいズレてるぞ
質問者が納得できるかどうかが一番の問題だろ
その流れで話が弾むなら、それも自然だよ
むしろ、いきなり訳のわからん噛みつきされてもなあ
そんなん技術論以前のコミュニケーションの問題だわ
スレチすまん
謝るくらいなら喋るな 生きるの辞めろ
自前でリスト構造記述すれば Dictionaryが無くなるってほぼ同じコードにならないか 自己参照部分が追加されるだけで
Dictionaryはハッシュテーブルであってリストじゃないぞ まあハッシュかぶった先はリストの可能性もあるけど
その理屈ならシングルトン(=グローバル変数)は使い放題だね
この話いつ終わるんだ? 物理的に殺さないと終わらないの?
646 :
デフォルトの名無しさん :2013/06/02(日) 00:29:56.39
よくあることなので諦めて ID無いところだとどうにもできないからスルーしてね
仕事としてやってるプログラマとニートプログラマとじゃ 永遠に平行線でしょ。
ニートプログラマってなんだよ ニートが暇潰しにプログラムやってんの?随分と崇高なご趣味をお持ちなニートですこと
仕事で自分の意見を通せないような雑魚PGは恥ずかしくないの?
むしろ仕事に誇りとプライドを何て人がいないせいで熱弁して肩透かしをくらうパターンが多いから 意見が通らない環境あこがれるわ
日本のSEの99%はコードが書けないのにPGが意見を通すと対立の元。 SE様が仰る通り糞仕様どおりコードを書けばよい。 間違ってもこんな仕様じゃ動きませんよと言ってはならない。
>>651 人の目を見て話せないモジモジ系(笑)の人なんだろうけど、
自己保身のためにも、不適正な仕様に従うにしても、最低限それが不適切であることは
ちゃんと指摘しておいた方がいいと思うよ。
なあ、PG ってどの程度の仕様もらって作業するの? クラス仕様とかまでもらえるの?
それは絶対に指摘してはならないと言ってるだろう。頭の悪い奴だ。
>>652 >>651 は日本のIT業界を皮肉ってるだけだよ
それとモジモジはどこからそう読み取った?
>>653 会社毎に文化が違うからなんとも言えないかな
肩書きは契約に直結する場合が多いし
個人的にはクラス仕様までもらったらコーダーだと思う
大手SEは外部設計書すら書かないよ。全部下に丸投げ。 そして無能SEは自分のミスも全部PGのせい。 とくに外資だと失敗はほとんどPGのせいにして責任回避するのがふつう。
無能PGは良くても無能SEは良くないとでも言いたげだな
滑稽なスレだ
そろそろマ板でやれと言われるぞ
幼稚園板でいいよ あるのか知らないが
>>661 メンヘル板ならこいつら幼稚な奴らにぴったりだろう
というか精神科行けよと思う
どう見ても精神に異常を来たしてるだろう
>>655 本気で言ってるのなら、君が皮肉った方がいいのは日本のIT業界じゃなく、
君自身の性格的欠陥の方。
最低限の自己保身的行動が取れないのは、バカかコミュニケーションスキルが欠如してるか、
またはその両方だろう。
.,r‐--,,,_、 .゙l゙'i、 `゙''-,,,,,,,,,,,,,,,,,_ : ゙l `'i、.,r‐-、,,`'-,、 `''ー、_ ゙l ,/゛ `゙''''ミッ、 ゙゙'''-,、 У `!ヽ、 ._,,i、 ,,,,,、 / ゙r゙l, / ‘i、 { ゙i、 | ゙'i゙l ./ |, ゙l、 ゙l | _,,,,_ .゙'},. | ,/ ゚i、 ゙l ゙l、 ゙l ,r'"` `゙゙''',゙',lri、,,/ .゙l ゙l ヽ │ .| .彳 ゚|″ | .| │ │ .ヽ_ _,,-° `i、 .| .,,゙l, .゙ケ'=ッ、 ゙l, ,,,,,,、  ̄ ̄ .゙l,-'シ'',!.゙l ,/゜ ゙'i、 .}i、`.゙'i、 `'| `'i、 ,,,rン・'゙,,,-'i| .| .l、,,」 ゙= | .゙ヽ, .゙!, i″ ゙''i, .l │ /" .゚┓ .| ‘'''l" ゙'-,,、゙l、 .,,「 | ゙l、 ゜ .| ゙l'-,、 `゙''゙‐'" ./ .ヽ .| | ゙'ヽ,、 / '゙l .,ノ ′ .~'―--―ー¬''" ヽ-, |、 " .l゙
>>663 性格的欠陥を指摘するとは大した洞察力だ
でも
>>651 はオレじゃないんだ残念
つーか肩の力抜けよ、あんた面倒臭いよ
絡むといつも疲れる
思い込み分析によるコミュニケーションスキルの欠如指摘ワロタ
アスペ、コミュニケーションスキルの欠如。 こんなことすぐ言う奴はたいてい日本で浮いてるKYな奴。
てか、ネットでそんなこと言ってるヤツは浮く以前に空気扱いなんじゃ。なにも言えなくて。
C#ネイティブコンパイラって 市販とかフリープロジェクトの動きってないの? ソニーがゲームで使っただけ?
ネイティブって存在するのかな? C#->C++へコンバートしてとかそんな 手法ばっかりじゃないの? あとuniftyはあくまでスクリプトのポジションに当たる コードをC#でかけるってだけで.netのような使われ方はしてないはず
ソニーのは? C++中間言語手法?
ちなみにネイティブコンパイラで、仮想環境じゃなくともオートでfreeってできるもん? オートfreeでガベコレはOS任せとか
>>673 monotouchがios向け開発でやってるような手法じゃないの?
GCに相当する機能をあらかじめ用意して
C#->C++コンバートしたコードと一緒に
リンクしておくの
OSにやらせるんじゃなくてライブラリでそれぞれのアプリ単位でヒープ管理するてことかな?
そうそう 確かisoの開発制限の関係でこじんまりしたGCの機能を MonoTouch側が用意して実行ファイルを作る際に 一緒に入れておくことで実現してたはず C#でも書けるけどやっぱりiosの開発の制約上 objective-cにコンバートしてたしね
ジェネリックでないクラスの ジェネリックなコンストラクタを どう書けばよいですか? C++で以下のようなコードを C#でどう書けばよいですか? class A{ template<typename T> A(T t){} };
それがC#で出来るとして、どういう使い道があるんだ? コンストラクタじゃないメンバーなら出来るから、 わざと出来なくしてるんじゃないかな。
generic classを継承して、genericじゃないclassを作るか、 generic classのコンストラクタの中で、Tの型に応じた処理を入れれば良いんじゃない?
>>677 それが出来ない事でC#のgenericはコードの肥大を防いでるんじゃなかったっけ
class A<T>{ public A(T t){} } の何が嫌なん?
>>681 何が嫌とかじゃなくて、何故できない仕様なのか知りたいという
知的好奇心でしょ。
>>681 確かJITコンパイラ用のMSILはこのようにしてもコードを1つしか吐かないので、
C++のようにコンパイル時に要求された全ての型のコードを生成してしまうのと違って
動的なジェネリックが可能になってるとか
あまりに自由度が高いのでwhereで型の制約ができるし
MSILはスタックマシンだけど あれコンパイルしたとしてC++並に効率的になるのか?
スタックマシン?VMじゃないぞ JITコンパイラを使っている比較的新しい言語だ 今の性能が余っているCPUだからこそ出来る芸当
それはmscoreeの話でCILはスタックマシン用言語だろ
MSILは評価スタックを使用するスタックマシン用言語 実際のCPUはレジスタマシンだが どのようにコンパイルされているのだろう
IDEならブレークポイント掛けて逆アセンブル見ればいいじゃん
JITコンパイルの結果まで出てくるのか?
mdbgでなんかできなかったかな
>>677 技術的にはできない理由はないと思うが
明示的に型引数を指定する場合にクラスの型引数なのかメソッドの型引数なのか曖昧になるだろ
コンストラクタの型引数に限り明示不可というのも一貫性に欠ける
hoge+= (e,sender) => method1 = null ↑これってどういう意味ですか? デリゲートもラムダ式も分かるんですがnullの部分の意味がよくわかりません メソッドにnullを代入することってできるんですか?
693 :
デフォルトの名無しさん :2013/06/04(火) 05:54:07.63
Devexpressってなんですか?
>>692 method1はメソッドじゃなくて変数じゃね?
変数名に惑わされるなって教訓ワロタw
>>693 ググれば分かるだろ?サードパーティ製のUI部品だよ
697 :
677 :2013/06/04(火) 09:06:11.47
>>678 >>681 以下のようなことをやりたいのです。
interface I{}
class B<T> : I{
public B(T t){}
}
class A{
I i;
public A<T>(T t){ i = new B<T>(t); }
}
>>679 いただいたアドバイスを元に色々試していたら
static createメソッドという所に落ち着きました。
ありがとうございます。
class A{
I i;
A(I ii){ i = ii; }
public static A Create<T>(T t){
return new A(B<T>(t);
}
}
699 :
デフォルトの名無しさん :2013/06/04(火) 10:47:46.31
>>692 ラムダ式って結局はコンパイラが展開してるんでしょ?
展開した形って表示できないのかね?
>>697 要は動的にジェネリックを生成すればいいんだろ
Aのコンストラクタをobjectで受けてその型でBをインスタンス化する
public A(object t) { i = (I)Activator.CreateInstance(typeof(B<>).GetGenericTypeDefinition().MakeGenericType(t.GetType()), t); }
とかでどうだ?
>>695 デリゲートなら別にありうる変数名だと思う
webbroeserコントロールでメッセージボックスが表示されたときにOKボタンを自動で押すにはどう書いたらいいですか?
またロクでもないもの作ってるな?
webbroeserコントロールの質問は禁止といっとろーが
解決したからもういいです
どういたしまして
おまわりさんこの人です
709 :
デフォルトの名無しさん :2013/06/05(水) 10:44:35.65
スレッドを開始してしばらくするとスレッドは終了するんですが そういうスレッドは何もしなくてもそのうちメモリから解放されますか? ちなみにスレッドは2ちゃんのスレッドのことじゃないです
解放されます
そうですか それならいいんです
じゃないの? 俺は、Exitedイベントで終了処理を書いてるけど
713 :
677 :2013/06/05(水) 12:10:29.29
>>700 作られる型は静的に決定するので、動的に作る方法で
解決できるとは思いもよりませんでした。
勉強になります。
>>700 って.GetGenericTypeDefinition()いらなくね?
public static void KakuchouMethod( ref this StructreFoo foo ) { ... } みたいなのがほしいよぉ
>public A(object t) { i = (I)Activator.CreateInstance(typeof(B<>).GetGenericTypeDefinition().MakeGenericType(t.GetType()), t); } むずかしすぎてわからん 解説して
typeof(B<>)…B<>の型情報 .GetGenericTypeDefinition()…B<>→B<> ※無意味 .MakeGenericType(t.GetType())…B<>→B<tの型> Activator.CreateInstance…new B<tの型>(t)
Interface1を実装しているClass1があって、 Class1を継承しているClass2があって、 Interface1で宣言されているMethod1を Class2でオーバーライドするには、 どのように書けばよいですか? interface Interface1{ void Method1(); } class Class1 : Interface1{ void Interface1.Method1(){} } class Class2 : Class1{ override void Method1(){} //??? } インターフェースではなく抽象クラスなら オーバーライドできましたが、 インターフェースは変更できないです。
void Interface1.Method1(){} ←この意味が分らん。何をしたいの? こうじゃないの? class Class1 : Interface1 { public virtual void Method1() { } } class Class2 : Class1 { public override void Method1() { } //??? }
721 :
719 :2013/06/07(金) 13:17:47.76
>void Interface1.Method1(){} ←この意味が分らん。何をしたいの? Interface1のMethod1を明示的に実装する構文のようです。 >こうじゃないの? 教えていただいたとおりにすると、 Interface1.Method1経由で呼出したときに Class2.Method1ではなくClass1.Method1が呼出されました。
void Interface1.Method1() { } がprivateのせいだと思うから、こうするとか。 class Class1 : Interface1 { void Interface1.Method1() { } } class Class2 : Class1,Interface1 { void Interface1.Method1() { } //??? }
この場合は隠蔽になるのかな
724 :
719 :2013/06/07(金) 14:31:41.20
>>722 Interface1.Method1を呼ぶと
Class1.Method1が呼出されました。
基本クラスと同じインターフェースを実装しても
無視されてしまうようですね。
>void Interface1.Method1() { } がprivateのせいだと思うから、こうするとか。
これは明示的にインターフェースを指定するときの構文で
publicと付けられないし、自動的にpublicになるようです。
正解はここに書いてあったわ。
インターフェイス メンバーの明示的な実装
http://msdn.microsoft.com/ja-jp/library/vstudio/ms229034 (v=vs.100).aspx
>機能を派生クラスによって専門的に処理する場合は、
>明示的に実装されたメンバーと同じ機能を提供するプロテクト仮想メンバー関数を用意します。
>明示的に実装されたメンバーはオーバーライドできません。
> これらを派生クラスで再定義した場合、派生クラスでは基本クラス実装を呼び出すことができなくなります。
> プロテクト メンバーに名前を付けるには、明示的なインターフェイス メンバーと同じ名前を使用するか、
>またはインターフェイス メンバーの名前に Core を付け加える必要があります。
まずは明示的な実装が本当に必要かどうか再検討すべきだな。
>>719 privateかpubicかじゃなくて、インターフェイスの明示的な実装ってのは
まさにインターフェイスを実装してるだけで、そのクラスのメソッドを定義してることにならない
つまり
>>719 ではClass1.Method1というメソッドは存在しない
存在しないんだからClass2でオーバーライドできない
明示的なメソッドの宣言はpublicに出来ないんだからそういう事だよな
>>728 >明示的なメソッドの宣言
インターフェイスの明示的な実装のことだよな?
publicにできないんじゃなくて、privateとしても存在してない
Class1の内部からでも(インターフェイスにキャストしない限り)Method1にはアクセスできないぞ
インターフェイス回りは基本的には暗黙的にpublicだ
>>729 ああそうか
明示的な使い方をしないと見えないんだった
>積極的な理由がない場合は、インターフェイス メンバーの明示的な実装を避けます。 結論 : MS様が使うなと言っている。
インターフェイスならAdapterパターンでいいだろ
なんとも初歩的な話をしてるな
>明示的な実装について理解するには、高度な専門知識が必要です。 結論 : MS様が馬鹿には無理と言ってるのだから初歩ではない。
インターフェイス関係の仕様はVBの方が理論的に綺麗だな
VB仕様はメンバー名を考えないといけないのが微妙
>Public Property Name() As String Implements IHello.Name 普通は一緒でいいんだけどね
変える必要がある場合の話に決まってるだろうが
そのときはこう、あんまり考えんで >Private Property IHello_Name() As String Implements IHello.Name
結局 virtual が高給、ということですかね
デザイナでBindingSourceはっつけて 自動生成されたコード見ると Datasourceにtypeof(型)をいれてんだけど あれって何やってんの?
Bindingって複数の型突っ込めなかったっけ?
バインド先のDataBindings.AddじゃなくてBindingSource BindingSource.DataSource = typeof(デザイナで指定した型); こんな感じ
同じようなコードを手動で書いて >BindingSource.DataSource = typeof(デザイナで指定した型); の行のあるなしを試してみなよ デザイナーは機械的にコードを差し込んだり抜いたりしてるから 確実に型を指定したりとか何か理由があってやってるだけじゃないの?
コメントアウトしても特に影響は無いみたい
普通に考えればDataSourceの型を特定してるんだろ プロパティウィンドウでDataMemberとか指定したときのチェックとかに要るんじゃね
ああ、それ以前に、デザイナで指定した値の保存に要るんじゃないか
一時的にデザイナ用で入れてるだけっぽいね すっきりした。ありがとう
751 :
デフォルトの名無しさん :2013/06/09(日) 03:49:41.37
有料のVSは無料と比べて エディタに違いありますか? マクロとかアウトライン表示とか欲しいんですけど
マクロはもちろんある アウトラインはもっと優れたセマンティックな機能(クラスビューやエディタ上部のバー)で代用するもんだ
有料エディションは拡張機能でエディタ含めていくらでもカスタマイズできる
754 :
719 :2013/06/10(月) 12:43:47.34
>>725 >>727 void Interface1.Method1(){}
は
public void Method1(){}
の糖衣構文だと勘違いして書いておりました
実際には、明示的な実装は必要ありません。
ところが、Class1でpublic virtual void Method1(){}として
Class2でpublic override void Method1(){}としても
Interface1.Method1経由でClass2.Method1は呼ばれませんでした。
そりゃそうよ
756 :
デフォルトの名無しさん :2013/06/10(月) 16:36:05.03
やっとReflectionの使い方わかったわ 動的インスタンス生成とかぜんぜんイメージわかん説明やな・・・
>>754 interface Interface1 { void Method1();}
public class Class1 : Interface1
{ public virtual void Method1() { MessageBox.Show("Class1"); } }
public class Class2 : Class1
{ public override void Method1() { MessageBox.Show("Class2"); } }
で
Class2 a = new Class2();
a.Method1();
((Interface1)a).Method1();
さてどうなってる?
758 :
719 :2013/06/10(月) 17:50:49.44
>>757 意図どおりになってますね・・・。
ってことは、情報後出しになって、申訳ないのですが、
具体的にはInterface1はIReflect、Method1はInvokeMemberです。
呼出し側はMSScriptControl.ScriptControl.Evalで
こいつが何故かClass2を無視してClass1.Method1を呼出してしまうのですが、
そもそも、overrideされて、見えなくなってしまったメソッドというのは
呼出せるものなのでしょうか?
Class2として作成した場合、Class1としてのvtableにも
Interface1としてのvtableにもClass1.Method1は登録されないと思うのですが、
他に、どの経由でClass1.Method1を呼出しているのでしょうか?
class Class2 : Class1, Interface1{} としてClass2でも明示的に実装すればよかった話じゃないの?
>>758 とりあえずミニマムコードつくって上げれ
>>759 それ今話題になってた明示的な実装とちゃう
派生クラスで上書きしてるメソッドで、ベースクラスのメソッド呼んでただけとかいうオチじゃないだろうな
MSが説明してるんだから使いこなせないなら明示的な実装するなよと。
>>719 の質問はinterfaceの明示的な実装を派生先でどうやってoverrideするのか
という質問なので、答えはoverrideできないが正解。
議論を続けたいなら、どういう動作をinterfaceで実装したいのかをちゃんと説明しろ。
>>763 >interfaceの明示的な実装を派生先でどうやってoverrideするのか
インターフェイスを再実装して明示的実装すればいいんじゃないの?
interface I1
{
void M();
}
class c : I1
{
public void M()
{
MessageBox.Show( "c1.M" );
}
void I1.M()
{
MessageBox.Show( "I1.M" );
}
}
class c2 : c, I1
{
void I1.M()
{
MessageBox.Show( "I1.M (2)" );
}
}
基底の実装を呼べないんじゃ片手落ち
MSDNに従うと継承みたいなことをしたいならこうしろってことだな。 class Class1 : Interface1 { void Interface1.Method1() { CoreMothod1(); } protected virtual void CoreMothod1() { } } class Class2 : Class1 { protected override void CoreMothod1() { base.CoreMothod1(); } }
>>767 C++ の pure virtual destructor 問題と同一にみえますねえ
>>765 とっくにそうしろと言ってるのに納得しないのだ。
>>763 ちゃんと流れと中身見ろ
>>754 で言ってるのは、明示的な実装をoverride出来ないことではない
明示的実装ではないメソッドをoverrideしたのに、呼ばれてないと言っている
それに対する反証が
>>757
>>770 overrideの仕様どおりふつうに呼ばれる。
間違ったコード書いてるかoverrideの仕様を勘違いしてるかどちらかなのは明らか。
772 :
719 :2013/06/11(火) 10:42:41.39
すいません、
>>771 さんの言うとおりなのです。
それで再現するミニマムコードを抜出し中なのですが、
なかなか再現せず、全然関係ないところに問題がありそうなので、
そちらのほうを探してみます。
何か分れば報告します。
付合ってくださった皆様、どうもすみませんでした。
ミニマムコード抜き出しっておかしくないか? 今正常に動いてないコードから、関係ないと思われる所削って行けば良いだけだろ ちょっとずつ削って様子見て、正常に動いたら、原因は削った所なんだし これ以上削れないところまで削ったのがミニマムコードだろ
がっちりスクラム組んでんだろ
見て分らない時点でC#の知識が足りない。
そもそも知識が足りてたらここで質問する必要ない
チョン消えろ
778 :
デフォルトの名無しさん :2013/06/12(水) 19:13:37.12
WindowsForm上の検索ワード入力エリアに検索ワードを入力し YahooにGETパラメータで検索を掛け検索結果を取得しようとしています。 大抵のワードでは検索をかけられるのですが この時「嵯峨」という文字についてはどうやってもうまくエンコードを掛ける事が出来ません。 search.yahoo.co.jp/search?p=嵯峨 とブラウザから実際に検索を掛けても ?? と文字化けした状態で検索が掛けられています。 なぜ他のワードでは問題無く出来るのに、このワードだけ文字化けしてしまうのでしょうか?
送る前にURLエンコードしてるからに決まってんだろ
780 :
デフォルトの名無しさん :2013/06/12(水) 19:47:50.37
>>779 では、なぜ他の文字では問題無く検索が出来ているのでしょうか?
この文字だけがなぜかうまくできないのです。
当たり前だ。おまえがエンコードしないからだ。エンコードしろ。
C#関係ねえじゃん死ねよ
単体テストのときだけインターフェースの実装を変えたいような場合、下記のような方法を考えたのですが、 もっとスマートな方法はあるでしょうか IA a; #if DEBUG a = new TestA(); #else a = new ClassA(); #endif
単体テストをしなけりゃいい
>>778 今時5C問題も知らないとか15年遅いよ
世の中に知恵遅れをお詫びして死ね
うちだとカバレッジ100%にならないから単体テストとして扱われないわ、それ
いや、だからどうすりゃいいのかと
788 :
デフォルトの名無しさん :2013/06/12(水) 20:24:04.45
>>781 >>785 正確には
string str_return = "";
str_return = Uri.EscapeUriString(txt);
return str_return;
ちゃんとこれをファンクションとしてかませてやってもこの文字はダメなんです。。。(謎)
>>783 別にいいじゃん
テストの時に凝った細工をすると裏目に出る
>>788 yahoo.co.jpはデフォルトでは入力文字列はEUC-JPでURLエンコードされたものとして扱う
ei=UTF-8ってクエリを追加すればUTF-8でいける
他の文字でei付けなくても何でいけるのかは知らん
っていうか今時デフォルトがEUC-JPなのか……
793 :
デフォルトの名無しさん :2013/06/12(水) 20:54:51.07
>>790 >>791 ぉおおwww知らなかったwww
ありがとうございます!!!!!!
>>785 馬鹿なのはお前( ゚д゚) 、ペッ ( ゚д゚) 、ペッ
そうやって質問者を装って煽るなよ知的障害者くん
>>785 こうなりたくないから上から出る時は何度も確認してから書いてるわ
どうせそいつはこれから5Cに躓くだろw
>>798 おれが教えてやったのに死ねや、チンカス。逆ギレゴキブリめ。
800 :
デフォルトの名無しさん :2013/06/13(木) 19:58:13.04
JavaとC#のアプリ(WPF3.5で書いてます)の両方で扱える
テキストの暗号化復号化アルゴリズムを書こうとしているのですが、
暗号化の結果が同じになりません。
下記にソースを置きましたので
見ていただけないでしょうか。
ttp://www.dotup.org/uploda/www.dotup.org4269469.txt.html DLパスは sagesage です。
Java、C#ともに暗号化/復号化が上手くいっているのですが、
暗号化の結果が同じにならないため、
「Javaで暗号化したものをC#で復号化」がNGです(逆も然り)。
C#側を直すとしますと、どう修正すれば良いでしょうか。
宜しくお願いいたします。
とりあえずパディングが違うだろ
PaddingModeが違う
803 :
800 :2013/06/13(木) 20:07:54.27
すみません。 ソース中の "hogehoge" はアップロード用に適当に入れたもので 本来ですと128bitの文字列です。 (ソース中に鍵を置くことについては、今はテスト用なので触れないでください) 宜しくお願いいたします。
おっと
PKCS5ならC#の方のBlockSizeは64じゃないの
806 :
800 :2013/06/13(木) 20:10:42.86
>>801-802 レスありがとうございます。
PaddingModeについては全部(ANSIX923, ISO10126, None, PKCS7, Zeros)試してみましたが、
結果は一致しませんでした。Java側と同じものが無かったのでひとまずアップロードしたものは
PKCS7の時のものでした。
他にも違うところがありますでしょうか。
意味も無く試しても意味が無いんだよ
808 :
800 :2013/06/13(木) 20:13:52.83
>>805 試しに64にしてみましたところ、
CryptographicException の例外が投げられました。
エラー内容: 指定されたブロック サイズはこのアルゴリズムには有効ではありません
>>807 仰る通りですが、試しにやってみました。
809 :
800 :2013/06/13(木) 20:18:05.03
完全に同じじゃない pkcs5はBlockSize64ビット限定だから pkcs7は64~256のはずだけど、.NETに蹴られるってことは 自力で埋めるしかないってことだな
811 :
800 :2013/06/13(木) 20:45:22.26
ほげ
>byte[] src = Encoding.Unicode.GetBytes(plainText); これは byte[] src = Encoding.UTF8.GetBytes(plainText); こうじゃなくて良いの?
814 :
800 :2013/06/13(木) 22:11:29.16
>>813 ありがとうございます。
UTF8にしたところ、JavaとC#とで同じエンコード結果になりました。
その後調べてみますと、PKCS5でエンコードしたPaddingは
PKCS7でも取り除けることが判りました。(その原理については計算してみます)
また、その逆もできるかどうかも検証してみます。
WCFで質問です。 下のようにサービスとコールバックのinterfaceを定義してsvcutilでwsdlを生成したんですが、 それをクライアント側に取り込んでみるとIMyServiceCallback(サービス名+"Callback")という 新しいinterfaceが定義されてしまいました。 これだとinterfaceの互換性がなくなってしまうため困るのですが、クライアント側に公開する コールバックinterfaceを自動生成ではなく明示的に指定することってできないんでしょうか? [ServiceContract(CallbackContract=typeof(IMyCallback)] public interface IMyService { } public interface IMyCallback { }
817 :
デフォルトの名無しさん :2013/06/14(金) 17:55:05.79
C#を使ってWebBrowserを起動し ページ内のリンクのクリックは出来るのですが、 iframeの中のリンクはクリックする事は出来ないのでしょうか?
できるよ
819 :
デフォルトの名無しさん :2013/06/14(金) 18:20:06.48
>>818 iframeの中のリンクのクリックの仕方を解説した
オススメサイトがあったら教えてください。
昔やったことある
以前このスレだったと思うけどだれかがhtmlを再帰的に 解析するツールぽいの書いてたけどコード張ってるurlを どなたか知りませんか?
822 :
デフォルトの名無しさん :2013/06/15(土) 09:14:28.37
ADO.NETでSqlDataAdapterを使って SQL severからテーブルを取得したいのですが、 INNER JOINを利用してテーブル取得はできないのでしょうか? conn = new SqlConnection(connStr); conn.Open(); string sqlStr = "SELECT ShopTable.ID, Shop, ShopCategory,ShopTable.Comment FROM ShopTable INNER JOIN ShopCategoryTable ON ShopTable.ShopCategoryID = ShopCategoryTable.ID"; dataAdapter = new SqlDataAdapter(sqlStr, conn); よろしくお願いします。
出来るに決まってんだろ
DBなに使ってるか知らんが、まずそのSQLがエラーなく通るのをそのDBで実行して試せ
ごめんなさい。 こういう反応があるということは同じ箇所に、 別なエラーが発生してるということか。 ありがとうございました。
できたら、 ・どういうミスをしていたのか ・どういう対策をしたのか などなどを報告してくれると後に続いていいと思うが。べつに 828 だけじゃなく。
830 :
デフォルトの名無しさん :2013/06/16(日) 18:56:15.41
File.Copy() 関数について質問です。 今、ファイルを編集するアプリを作っています。 String fileFullPath = ファイル選択ダイアログからパスを取得します String tmpFullPath = fileFullPath + ".tmp"; としていて、 File.Copy(fileFullPath, tmpFullPath, true); を、以下の箇所で読んでいます。 ・ファイル読み込み時 ・上書き保存時 ここで、ファイル読み込み時は動作OK。上書き保存時に例外が発生します。 (厳密には、tmpファイルが無い状態からFileCopy関数を2回呼ぶと例外が発生します) 内容: UnauthorizedAccessException パス ....ファイル名.tmp' へのアクセスが拒否されました。 読み込み専用ではありませんし、別のアプリなどがアクセスを握っていないこと は確認済みです。何が悪いのか分かりますでしょうか。
そのディレクトリのアクセス許可は? それともあらゆるディレクトリで発生するの?
832 :
830 :2013/06/16(日) 19:19:53.65
>>831 特に制限をかけていない D:\ ドライブ直下にファイルを置いて
実行してみましたところ、例外は発生しませんでした。
前にテストしていた場所は、
C:\Users\{MyName}\Desktop\テスト用
にファイルを置いていました。
デスクトップ上のフォルダーって
アクセス厳しいのでしょうか。
>>832 フォルダで右クリック、プロパティ→セキュリティでアクセス許可変更すればいいんじゃね
7はちょっと戸惑うね
834 :
デフォルトの名無しさん :2013/06/17(月) 16:57:27.41
Windows 7 環境でアプリケーションを常に管理者として実行させる C#プログラムを作成しようとしているのですが参考になるサイトがあれば教えてください。 例) start_app.exe をキックすると 管理者権限でしか動作しない hogehoge.exe を管理者権限で起動する ~~~~~~ ↑ のプログラムを作りたいです。
ウイルスでも作成するのか
完全母乳育児における最大のデメリットは、「一人の時間が持てない」でも「飲酒ができない」でもなく「乳首がありえないほど伸びる」である。 私も2 年ほど完全母乳育児をしてきたが、気がつけば見事な伸び乳首だ。引っ張ればチュウインガムの如く伸びる乳首。 実測で4cmを記録。平常時でも2cm近くある。 で、みなさん信じられないかもしれませんが、ここまで伸びると、乳首も垂れるんですよ。 ええ、乳首です。乳首が、です。 「垂れ乳」というジャンルはご存知かとは思いますが、もっとミクロに「垂れ乳首」です。 んで、もっというと、乳首は折れます。 ブラジャーを外すとですね、時には上を、時には下を向き、乳首が折れて乳房に張り付いてるんですよ。 「折れる」というか「畳まった」状態です。 ここまでくると、乳首をセクシーの象徴として見ることができなくなり、人体の神秘そしてその無限の可能性を表す神々しい存在のように思えてまいります。 女としての自信を失った私は、折り畳まった乳首を眺めながら 「お。今日は両方上向きだから金運アップだな!」 などと、オリジナルの乳首占いで気分を高めることしかできません。 それもこれも、すべて母乳育児のせいです。求められるがままに吸わせた結果がこれです。 でもまあ、2年間、毎日平均1時間吸わせてるとすれば、トータルで約700時間ですからね。 日換算すれば、1ヶ月間吸われっぱなしってことですよ。そりゃあ、人体の形状も変わるってもんです。 と、開き直ってたんですけども、さすがに顧客には詫びを入れないとマズいだろうと思ったんで、 元メインユーザーに「こんな有様になってしまい、大変申し訳ない」と頭と乳首を下げながら謝ったところ 「母親の勲章じゃないか。素晴らしいことだよ。胸を張って生きなさい」 と激励されましたが、その後受注がありません。どうしたらいいでしょうか。
C# 管理者でググルだけで答えが見つかる
普通にProcess.Startで起動すればUACダイアログが出てこないか? そのアプリを管理者権限で起動するようにマニフェストで設定しても どうせそのアプリを起動するのにUACダイアログが出るから同じじゃね? そういうことじゃなくてUACすらくぐり抜けるアプリを作りたいということ?
839 :
京都県警 :2013/06/17(月) 17:37:38.85
おまえらウィルス作成罪幇助で全員タイーフォだ!!!
UACを潜り抜けたいという質問だったのか そんなのできたらUACの意味ない
start_app.exeを管理者権限で起動しとけば、 子プロセスも管理者権限じゃなかったっけ。 start_appをどうやって管理者権限で起動するかといえば・・・
>>841 start_appを管理者権限のstart_app2.exeから起動すればよい?(´・ω・`)
タスクスケジューラ使えばいいじゃんw
UACの無いXP怖い
「毎回クリックするのが面倒」という理由でUACをオフにしているバカ多いよね
だけどどうせメクラ判で何も考えずにOK押すんだから結局ほとんど同じこと
その責任の一端はおれらにもあると思うぜ 署名付ければ緑色になるんだっけ? それをせずに危険なメッセージでOK押してって言ってんだから
コンビニのレジの年齢確認ボタンみたいなものか
どうせ個人情報晒したり2chに犯罪予告書き込むのに管理者権限は要らないしなあ
でも人間がクリックする必要がある、という意味でセキュリティ上の利点はある
開発環境をインストールしていないPCで 起動しなくなってしまいました。 エラーも表示されなかったのですが、 Formコンストラクタの例外をメッセージボックスに出したところ 「クラスが登録されていません (Exeption from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))」 たぶん、AxWindowsMediaPlayerを貼付けてからだと思うのですが、 Windows Media Playerを、どうやったら登録できますか? VC#2010 Express
exeと同じとこにAxInterop.WMPLib.dllやInterop.WMPLib.dllを入れてみるとか
メディアプレイヤーのバージョンが違うとか
WPFにすべき
WPFのMediaElementはお勧めしない たしかにいろんなファイルを簡単に再生できて 追加のinterop.dllが必要ないとか便利だけどバグが多すぎ。。 個人的に酷いと思うのはH.264でエンコードされたファイルをサブモニタで再生すると ハードウェア支援を切らない限り100%フリーズするバグ しかも修正される気配もない。 まあ対策しつつ使ってるけど……
バグを使用だと思う広い心が必要です
リリース前に発見したらバグ リリース後に発見したら仕様
859 :
851 :2013/06/19(水) 12:03:06.34
>>853 まさにこれでした。
ありがとうございます。
.net4でTaskを使ってスレッドプールを使った場合に、同時にアクティブになるスレッド数は、いくつなのでしょうか? ThreadPool.GetMaxThreads や ThreadPool.GetAvailableThreads では 1000 程度の数字が 得られますが、実際に 100msec ぐらいの間隔でどんどん Task を Start していくと、 いくつか実行開始したところで Task の実行が遅延したり、実行順が入れ替わったりします。 Thread で書き直すとそんな現象は起きないので、スレッドプールを使った場合に固有の現象かなあと。
いくつか実行してみて、それらが全部実行中になるようなら 一定間隔で実行数を少しずつ増やしていくって動作だよ
>>860 そういうのをOSが制御するのがスレッドプールなんだから、OSの都合による、が答え。
なんでスレッドプールをOSが管理していると思っちゃったの?
論理CPU数だと思ってた
適度に並列化と直列化を行うのがスレッドプールの役割だから、 それ無視して、まとめて大量に起動させたいときは、 ThreadPool.SetMinThreadsをあらかじめ上げておくか、 LongRunningオプションを付けるか。 Task.Factory.StartNew(() => { ... }, TaskCreationOptions.LongRunning);
866 :
デフォルトの名無しさん :2013/06/20(木) 17:15:26.38
あるアプリケーションを管理者として実行すると 「ユーザ アカウント制御」というダイアログが起動しますが そのダイアログ上の「はい(Y)」をWindows APIを使用して クリックしようとしているのですが Spy++で確認してしっかりターゲットのウィンドウハンドルを 指定した状態でボタンをクリックしているのですが どうも反応がありません。 手動でクリックすると、「ユーザ アカウント制御」ダイアログが 閉じて起動させたいアプリケーションは正常に起動します。 Windows API では、「ユーザ アカウント制御」ダイアログ上の ボタンをクリックする事は出来ないのでしょうか?
それができたらセキュリティホールだろ
ハードウェアで押せ
869 :
デフォルトの名無しさん :2013/06/20(木) 17:46:19.33
>>867 WindowsAPIじゃ出来ないって事ですか?
>>868 自動でやりたいんです。
最悪、それはUACの通知をオフにする事によって対応出来るのですが、
起動したアプリケーションがタスクトレイに収まります。
タスクバーの右下部分に縮小して表示される
アイコンの上で右クリックした時に表示される
プルダウンメニューより特定のワード(作業メニュー)を手動でクリックしているのですが
それをWindows API を使用してエミュレートする事は可能でしょうか?
※要するに手動で特定のアプリケーションを使用して行っている事を
Windows API を使用して自動でやる為のプログラム開発をしています。
個人用とかと思ったがもしかして人に使わせようとかアホなことを企てているのか?
>WindowsAPIじゃ出来ないって事ですか? WindowsAPIでシリアル接続orUSB機器等を制御してマニピュレータでマウスを該当領域に移動させクリックさせればすべて解決
なぜこれがセキュリティホールになるってわからないのか 理解不能 よくプログラム組めるな?
>>866 > 「ユーザ アカウント制御」というダイアログ
こんな言い方してるし、これが何のための物なのか全く分かってないのだろう
アホなんだろうきっと
本当にSpy++でハンドル見れるの?
セキュアデスクトップ(セキュリティで保護されたデスクトップ)無効にしてないかい?
UACは通常プロセスから管理者プロセスへの作用を遮断するんだよ
だからSendMessageは届かない
解決するには
①マニフェストでuiAccess="true"を指定
これはユーザー補助ツール向けにUI制御を許可するというもの
MSに申請し証明書を発行してもらう必要がある
②自分が管理者プロセスになる
>>843 の方法ならダイアログ出ない
③NortonUACToolはホワイトリストを持てるらしいぞ
④②で他プロセスを開始すればそれも管理者だからそれでいいじゃん
放置でいいだろ
877 :
デフォルトの名無しさん :2013/06/20(木) 20:39:58.93
Windows 7 や Windows Server 2008 でプログラムが死んだ時に 「プログラムを終了する」とかいう余計なダイアログが出てくるんですけど これ出てこないようにする方法ってありますか? 基本ディスプレイのない状態で使うので 死んでも自動再起動する作りにしたいのですが、 このダイアログを閉じない限りプロセスが終了しないようで 死んだかどうか判定できないわ強引に起動すると二重起動になるわで困ってます ちなみに、問題レポートは既に無効にしてあります
アプリケーションループ自体をtry-catchで囲って例外を潰せばいいんじゃねえの
>>865 ありがとう、考えてみればMaxがあればMinもあるはずですね。
SetMinThreadsで50ぐらいまで上げて、期待したようにTaskが動き出しました。
しかしMinThreadsをこれぐらい上げると、それを維持するコストって、
どう考えたらいいのだろう。
880 :
デフォルトの名無しさん :2013/06/20(木) 21:12:05.88
>>871 後半は金掛かり過ぎでしょ。
>>875 みれました。
そもそもUACのダイアログが出ない様にセキュリティーレベルを事前に落とす事により解決しました。
残りの問題なのですが
タスクバー上の特定アプリ(例えばサクラエディタ等)を
Windows API にて 右クリック > メニューの選択
という事は出来ますか?
>ちなみに、問題レポートは既に無効にしてあります
885 :
デフォルトの名無しさん :2013/06/20(木) 22:20:29.21
タスクバー上をWindows API で操作は出来ますか?
日本語でおk
888 :
デフォルトの名無しさん :2013/06/21(金) 15:37:06.39
まだスレタイで話題誘導する慣習が残ってるのか 早く潰えればいいのに
IpcServerChannel/IpcClientChannelでプロセス間通信(ローカルマシン内)しているのですが、 IntPtr型の戻り値で以下の例外がでます System.Runtime.Serialization.SerializationException: ストリーム 'Invalid' に無効な型コードがあります。 IntPtrをSerializeできないためのようなんですが、 回避策はやはりInt64等にキャスト/IntPtrに再キャストするしかないんでしょうか?
>>890 ポインタを他のプロセスに渡して何がしたいんだろう…
例えばウィンドウハンドルなら他プロセスにおいても意味あるだろハゲ
サイズがプロセスの種類に依存するからそりゃシリアライズはできないだろうな
>>892 他プロセスが同じウィンドウシステムで動いてる保障はありますか?
ちょっと何言ってるのかわか(
要件次第だろ 一般化して考える必要があるとは全く思わない ウィンドウハンドルを例にしたのも、IntPtrを他プロセスと共有して意味がある可能性を示唆しただけで、何の矛盾もないがな
素性がわからんプロセスとIPCなんかせんだろ。
898 :
デフォルトの名無しさん :2013/06/22(土) 18:47:09.26
縮小しているアプリをWindows APIを使用して アクティブにしようと次のコードを書いています。 //ウィンドウをアクティブにする IntPtr h = FindWindow(null, "こまねち"); ShowWindow(h, SW_SHOW); しかし、 The name 'SW_SHOW' does not exist in the current context というエラーが出てしまうのですが SW_SHOW はどうやって幾つの値を設定すればよいのでしょうか?
899 :
898 :2013/06/22(土) 18:49:59.39
ぐぐって自己解決しました
最善はWindowsSDKをインストールしてその中から定義してる値を調べる 大体は「#define SW_SHOW」をweb検索する
901 :
デフォルトの名無しさん :2013/06/22(土) 18:53:13.78
winAPIスレじゃないんだが
先日リリースされたC#言語使用5.0版の 変更点をアホな俺に誰か10行ぐらいで 説明していただけませんか?
お 前 に は 関 係 な い 事 だ
905 :
903 :2013/06/23(日) 17:35:11.88
今ちらっと読んだ。 async/awaitが言語仕様に取り込まれただけと見た。
foreachのスコープとかCaller Infoもそうじゃね?
>foreachのスコープ なんでこんな細かい変更知ってんだよw
908 :
デフォルトの名無しさん :2013/06/23(日) 20:08:14.37
caller info いいよな。 でも IDE としては VS2010 のほうがいいと聞いているので VS2012 買う気が起きない俺
foreachで
>>187 みたいなコピーの手間がなくなるってことかな
あー歓迎する
>>907 LINQ中毒者にとっては結構重要な変更だから
911 :
デフォルトの名無しさん :2013/06/23(日) 22:35:24.27
C#に関する資格とかある?
死角などありません。無敵です。
四角い仁鶴が
今はMCPDじゃなくてMCSDなのか
>>908 パフォーマンスも機能も全ての面でVS2012が優れてるんだが
もう、隠し切れないんだから、すみませんでした!淫乱女として生きていきます!で、平気な顔で出てきて、元夫にごめんなさいしたほうが何かと未来が有ると思うんだけどなぁ・・・ 有吉が叩いてる淫乱アイドルいるじゃん。 矢口はリアル淫乱女なんだから、『作りモノ』より居場所あるんじゃね?
916 gobackすまん
出た当初にも散々言われたけど見づれえよな 開発環境までアレにする必要ねーじゃん
最近サービスパックが出て 2010と同じような白と青の配色が選べるようになったけど そういう話ではない?
>>920 いや、そういう話。
UI選べるなら2012推奨。
間違えた・・・すまない
>>883 ようやく試せました
そこで Exit させたら見事表示されなくなりました!
ありがとうございました
だけどVS2012はUpdate2でもちょと挙動不審な動作が多いね
.netってちょっと知ってると他人のアセンブリでも リフレクション出来ちゃってハッカー気分になれるよね
HTMLってちょっと知ってると (以下略
メタ情報が実行モジュールに沢山記録されている言語の宿命だね ほんとに必要なら難読化でもつかいなされ
難読化なんか意味ね~って よく読めばわかるもん
それなら逆アセンブラでよく読めば何だってわかるだろ
アセンブラは読んでも分からんな 真面目に読んだこともないけど
古文書だって読めるんじゃね
CPUが理解して動いてるのだから 読んでわからんわけが無い
難読化したところでわかりにくい名前がついてるだけの普通のソースコードじゃん アセンブラは読む訓練をしたことがないから出来んが難読化したC#やJavaなんか馬鹿でも読めるわな
昔Z80の頃にハンドディスアセンブルしてたことある。 ハンドアセンブルした簡単なバイナリだったからできたけど、高級言語でコンパイルした バイナリはやりたくないな。
Z80コードぐらい暗記しろ。バイナリのまま読め。
x86系は読みやすいな。IA64は無理っぽ
MIPSみたいに遅延スロットが絡んでくると本当に目が回る 焦点が定まらなくなる
ヘ!
ヘ!とかまじ作為的
>>935 甘いな
制御構造をgoto文の山に書き換える暗号化されたものは、眺めるだけで脳から変な汁があふれるぞ
xxx = list.OrderByDescending(obj => (decimal)obj.A / (decimal)(obj.B + obj.C)); このような式でA=0の場合のエラーを回避したいのですが、どのように書けばよいのでしょうか?
obj.A=0でエラーになるの? てっきり(obj.B + obj.C)=0でエラーになるのかと思った。 「(decimal)obj.A / (decimal)(obj.B + obj.C)」をメソッドにして そのメソッドの戻り値でソートするんじゃだめ? それならそのメソッド内で0の場合のことも考えられると思うのだが ハズレっすか?
945 :
デフォルトの名無しさん :2013/06/28(金) 10:34:46.22
>>935 VB6出身者にC#で書かせたらナチュラルに難読化されるお
>>942 に加えて巨大なプロシージャ書いてくれるわすべてをstaticにしてくれるわで
もう泣きそう。
>>944 ありがとうございます。
計算するときに
0 / (1+2)
のようなことになり”0 で除算しようとしました。”というエラーになる感じです。
仰る通り、関数の戻り値にすればいいのですが、
出来ないのかなぁ?と思い、後学のためにお聞きしようと思った次第です。
947 :
デフォルトの名無しさん :2013/06/28(金) 11:05:04.83
>>947 ばっちりイケました!
ありがとうございました。
普段あまり使わなかったんですが、こういう時に使えるんですね。
勉強になりました。
>>946 他のところがおかしいんじゃね?
decimal d1 = 0;
decimal d2 = 1000000000;
decimal d3 = d1 / d2; // d3 == 0
950 :
デフォルトの名無しさん :2013/06/29(土) 16:12:10.77
Windows API を使用してListView内の N番目の要素の値の取得とかって出来ますか?
イミフ(
コモンコントロールのならWinAPI叩けば取り出せる。LVM_GETITEMでggr
953 :
デフォルトの名無しさん :2013/06/29(土) 17:26:17.57
>>952 C# で作られていないネイティブアプリ上のListviewでも取得出来ますか?
コモンコントロールならな あと別プロセスのメモリの読みとりが必要になるけど
コモンコントロールって何ですか?
オーナードローでないやつ
適当なこと言うなよw と思ったけどそもそもC#関係ないし許す
ブビ厨の頭の中にある(comctl32で昔使用した) 画面部品群のことです その中にスピンを含むかどうかは微妙
MFCだってコモンコントロールのラッパーだろが VB目の敵にしすぎてメクラになってるな
Opaqueの読みは「おぱきゅー」でいいですか?
Opacity と Transparency どっちを使うか迷う
>>961 そんなの関係ねぇ そんなの関係ねぇ はい
オペイク
DataSetが二つの全くカラムが異なるDataTableを持っていて 1つのDataGridViewを用いて、二つDataTableをボタンなどで気軽に 切り替えられるようにしたいのですが、 どうすればよいかわかりません DataGridViewは簡単にデータソースを切り替える様な事は サポートしていないのでしょうか? お手数おかけしますが、もし良ければご回答お願いします
DataGridViewを2つ用意して差し替えればいいだろ タブを消したタブコントロールを使うとかしてもいい
>>967 なるほど。
確かにその通りですね!
ありがとうございました。
XElementでSingle/Doubleを扱う場合ってInvariantCultureでやってくれるんでしょうか。 コンストラクタ、Saveメソッド、明示的なキャストで問題になるんじゃないかと…… (例えばヨーロッパ風の小数点",") 書きだすとInvariantになるっぽいんですが、明確に書いてあるドキュメントってないすか
ドキュメントはないんじゃないかな XML Schemaが小数点を"."で表現するから.NETのXMLクラスはそれに従ってる模様 // XML Schemaの仕様書見てもBNFがない IEEE754のほうで定義されてるのかね ちなみに変換はSystem.Xml.XmlConvertが引き受けてる
Application.Idleイベントの逆のイベントはありませんか? メッセージがない状態からある状態へ移行したときに発生するような。
自作だな
>>970 XMLでは小数点が決まってるんですか
ははぁー
ありがとございます
XMLじゃなくてXML Schemaな XSLTなんかは変換関数で小数点の文字や桁区切り文字を指定できるようになってる
976 :
デフォルトの名無しさん :2013/07/04(木) 12:36:43.32
昔のVisual Studio だと Control + K , K Control + K , M でコード内のブックマークの追加、削除が出来ていたと思うんだけど 2010になってから出来なくなったのでしょうか?
ここで質問してる暇があったら VS立ち上げてオプションのキーボード画面開いて ブックマークを含むコマンドを表示させたり ショートカットキーでCtrl+K Kって入力したりするんだ
visualstudioは単独スレがあったはずだが
979 :
デフォルトの名無しさん :2013/07/04(木) 13:29:59.54
>VS立ち上げてオプションのキーボード画面開いて >ブックマークを含むコマンドを表示させたり →どうやってやんの?
"ブックマーク"と入力しろよハゲ
981 :
デフォルトの名無しさん :2013/07/04(木) 19:03:05.32
t
982 :
デフォルトの名無しさん :2013/07/04(木) 20:00:02.00
あ
お
うめ
梅
うめ
梅田
うめ
989 :
デフォルトの名無しさん :2013/07/05(金) 17:18:25.43
激安最高です。 激安中古Adobe取扱店でググってみて 色んな中古ソフトが激安いいね
うめ
ccになったから中古買っても意味ないじゃん
梅
雨
傘
1000
999
998
999
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。