ネトウヨのニュースコピペ荒らしはこまめに通報しましょう。
コピペとかどうでもいい。
何だ立てたのか
うめ
客指定のフレームワークがない時って、S2Container.net,S2DAO.netあたり使ってる?
ある
11 :
デフォルトの名無しさん :2012/05/06(日) 22:28:37.36
拡張子の関連付けにおける ProgID の重複防止に関する質問です。 今、プログラムでレジストリをいじって拡張子の関連付けをしようと思っています。 HKEY_CLASSES_ROOT\(ProgID)\shell\open\command にコマンドを記述し、 HKEY_CLASSES_ROOT\(拡張子) に ProgID を登録すれば良いというのは分かりましたが、 ProgID を決め打ちすると他アプリとたまたま重複する可能性が捨てきれないと思いました。 重複しない事を保証するにはどのようにすれば良いのでしょうか?
誰もつかわないような変態的な拡張子にする。
13 :
デフォルトの名無しさん :2012/05/06(日) 22:35:04.20
ちなみにその話はC#関係あるんだろうか
ProgIDの重複より拡張子文字列の重複の方がよっぽど深刻だぜ
というか他のプログラムは気にしてないので
>>11 だけ気にしても意味がない
C# でやろうとしています 拡張子重複は重複時に警告出すので考慮はしてあります。 ProgID はたまに .1 がついてる重複回避なのか別用途なのかよく分からないものも見かけるので、 他のプログラムは気にしてるものかとも思ってましたが・・・そういうわけでもないんでしょうか。 HKEY_CLASSES_ROOT\CLSID 内に ProgID が記述されているようなので、 初回起動時に重複チェックしてユニークなものを CLSID 内に記述しておき、 以降はそこを参照する、という事も考えましたが、 COM を使ってるわけでもないのに CLSID に勝手にキーを追加しても良いものかと思っています。 あるいはエクスプローラからの登録時に使われる (拡張子)_auto_file を使えば 重複も気にしなくていいのかもと思いましたが、 勝手にこのキーを作って問題はないのかと気になりました。
いい悪いの話はMSに聞かねえとわかんねえよ
C#でやるにしても今話してるところはC#に関係ないよw
c#でシステム系のコード書くとかなりの確率であとでライブラリに追加されんだよな。
どう考えてもWindowsの仕様の話しだし、何でやろうとしてるかは問題ではない C言語でも同じことはできるんだから
.1とかついてるのはバージョン。重複防止とは違う。
.NET 特有の流儀があるかもと思いここで質問しましたが そんなものは特にないし、そもそもそこまで気にしてるアプリはないということですね 了解しました ありがとうございます
そう言うことは最初に書いてあげるといいと思うの。特に1行目とか。
24 :
デフォルトの名無しさん :2012/05/07(月) 04:03:11.61
デモ確かに、名前空間がどうとかネーミングルールがどうとか言う割に、 拡張子(というか、関連づけ?)に関してはかなりいい加減だよな。 今から収拾つくもんでも無いだろうけど。
コレクションのforeachをスレッドセーフで処理したいのですが、 lockする以外によい方法はないでしょうか?
System.Collections.Concurrent名前空間下のコレクションを使う
自分で作るファイルの拡張子ってまだ3文字以内にこだわっているの?
>>25 スレッドセーフの意味は何がしたいかによって違う
foreach全体をlockする代わりというなら、いったんコレクションをコピーしてから(もちろんロックして)列挙するくらいしかないぞ
拡張子ってさ、program.c#とかでも良かったんじゃない?なんでcsにしたんだろうな〜
記号は極力使わない方がいいだろ
fileスキームでもフラグメントって使えるんだったか
program.csharp
program.シーシャープ
C++で string glb; //グローバル変数 string __declspec(dllexport) foo(){ string tmp=glb; return tmp; } call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 cl /LD /Tp "hoge.cpp" /link /DLL /DEF:"hoge.def" という風にしてdllを作っています. C#で [DllImport("hoge.dll", CharSet=CharSet.Auto, ExactSpelling=true)] public static extern string foo(); としてfoo()関数を使用してみたのですが, 「System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作 を行おうとしました。他のメモリが壊れていることが考えられます。」 などと出てきてアクセスできません。 なんとかならないでしょうか? 環境はWindows 7 64bitです
string返すのはダメだろう 文字列を受け取るならC#側でメモリを確保して引数にポインタを渡し、 C++側でそこに文字列を入れるのが普通だと思う
っていうかC/C++のコードとしても間違ってると思う。 どんなお漏らしし放題のコードだよw
C++から呼ぶんだったらstd::stringの値返しは問題ないだろ? C#から呼んだらリークすると思うけど
stringにマーシャリングできるのはchar*かw_char*
/*C++*/ int __declspec(dllexport) foo(char* buf, int n) { strncpy(buf, glb.c_str(), n); return min(glb.size(), n); } /*C#*/ [DllImport("hoge.dll", CharSet=CharSet.Auto, ExactSpelling=true)] public static extern int foo(StringBuilder buf, int n); こうか? 合ってるかは知らん
CharSet=CharSet.Ansiにするか wcharにしてUnicodeにしないとまずくない?しらんけど
Autoだし問題ないんじゃね?
Autoが有意なのはDLLがHogeWとHogeAの両方を公開してる場合だけ 大抵はWもAもないからAutoは却ってまずい
Autoだとたいていの環境(Windows9x以外)だとUnicodeになっちゃうんじゃね? 今の時代、Autoって意味なくね?
ないね
質問です! ファイル監視をするのにFileSystemWatcherを使用すべきか Threading.Timerで監視をするのか迷っております。 仕様としては 1.指定の1ファイルの更新日時が変更されたときにイベントを発生させたい。 2.ファイルが更新されることは非常に稀(ほぼ初回起動してからは滅多に変わらない) というものです、どちらも簡単に実現可能なのですがどちらがより負荷のかからない 処理なのか知りたいです。 具体的にはFileSystemWatcherが指定ファイルが変更されたときにOSからの通知で つどイベント発生しているか・・・なのです><
FileSystemWatcherで十分。むしろスレッドタイマーとか無駄に使って アクセスしてたら無駄な負担が掛かる。FileSystemWatcherのイベントで更新日時が変更されたかどうかは、 判定可能。
スレッドタイマーで十分。むしろFileSystemWatcherとか無駄に使って アクセスしてたら無駄な負担が掛かる。スレッドタイマーで更新日時が変更されたかどうかは、 判定可能。
49 :
デフォルトの名無しさん :2012/05/12(土) 09:46:57.88
>>46 Windowsであるなら、FileSystemWatcherの実態はWiin32API。
http://d.hatena.ne.jp/s-kita/20100131/1264900167 NotifyFilter プロパティさえ設定していれば、
最低限必要なタイミングのみで処理できるので、
単純なプログラム内の負荷は最小化できると思う。
スレッドタイマーでグルグル回しても、更新されるタイミングが極端に少ないというのなら、
毎度チェックする処理の分、無駄な負荷が発生する。
ただ、FileSystemWatcherの使い方にはそれなりの考慮がいるので注意。
>>49 ふむふむ、内部的にはWin32ApiのRegNotifyChangeKeyValueみたいな
処理が走っているのかなぁ?
実際にFileSystemWatcherを使用した実装も行ったのですが、少々くせが
ありましたね(汗)(ファイル変更イベントが2回来るとか)
51 :
デフォルトの名無しさん :2012/05/12(土) 10:07:04.28
>>50 まあ、何のケースだったかは忘れたが、更新頻度の高い監視をしたら、
バッファーオーバーフローおこすケースもあったんで、過去には採用を見送ったこともあるくらいだ。
そういう「くせ」に気を付ける必要はあるが、「頻度が低い」という当該条件下なら、
スレッドタイマーによる判定の有用性はあまり思いつかないな。
多少のコーディング・設計的な手間を犠牲にしても、FileSystemWatcherで良いと思う。多分。
FileSystemWatcherは更新を検知して監視しているファイルシステムを更新するとヤバイよね 予想外のタイミングでイベントが発生して大変だった
真面目にやるなら、 FileSystemWatcherで監視 ↓ バッファがあふれたらTimerに切り替え ↓ 更新が無いまま一定時間が経過したらFileSystemWatcherに戻す が妥当だな。
・FileSystemWatcherのイベントハンドラ(のスレッド)内で処理を実行 なんてことしなければバッファが溢れることなどまず無い 仮にそれでも溢れるとしてもイベントをトリガーとして使うだけ ・どれかが変更されたことを検知したら監視対象の全てを自前の処理で確認
やなこった
しょうがねーな、俺が読んでくる
いやいや俺が
よくわかんないんだけど、そのバッファーって勝手に解放されるの? それとも各自が解放するの??
FileSystemWatcherなんて使ったことなかったが、結局FileSystemWatcherを使っても
ファイルシステムへの変更を逐一漏らさず検出することは出来ない場合がある、ってことか。
まあよく考えれば当たり前かな。
>>46 の用途がそうかどうかわからないけど、通常は
- 必ずしも変更を逐一検出する必要はない。(短時間に複数回変更が行われても、
一回だけ通知してくれればOK)
- でもイベントによる変更の通知より後にさらに変更が行われて、それが
通知されないケースが発生しうるのは困る。
こういう場合が多いと思うから、だとするとタイマーで自前でポーリングした方が安全な気がする。
やなこった
> ファイルシステムへの変更を逐一漏らさず検出することは出来ない場合がある、ってことか。 監視イベントが大量に発生するとバッファが溢れて通知漏れする場合がある フィルタで監視イベントを減らすか、バッファの容量を増やして対応するって M S D N に か い て あ る じ ゃ な い で す か なんで読まないの? 説明書読まないで始めていいのはゲームだけだから
MSDNは説明書ではないんですけど
俺は説明書読んでからゲーム始めるよ。むしろゲームやってるより楽しかったりする
説明書読まないとできないゲームは糞ゲー( ・`ω・´)キリッ
C#もゲームみたいなもの
つまり説明書嫁
>>63 それで万事解決とも書いてない。
MSDN読んでないタワケはどっちだよ
>>70 じゃあ
>>61 に書いたことのどこが間違ってるのか言ってみろ。
っていうか言わなくていいから馬鹿は黙ってろ。
まるで子供の喧嘩ね
>>72 C#は、おこちゃま用のインタプリタ型の言語なんだから適当なのでは?
インタプリタ?
JITって何なんでしょうね
インタプリタ方式との比較 [編集] インタプリタ方式との違いは、インタプリタ方式がその都度コードを解釈しながら実行するのに対して、JIT方式は機械語に変換したものを実行することである。また、インタプリタ方式と同様に実行時にJava仮想マシンや共通言語ランタイムのようなランタイム環境を必要とする。 インタプリタ方式と比較すると性能面では以下のような差が出てくる 機械語に変換されるため、コンパイル後の実行速度はインタプリタ方式の数倍の性能となる モジュールやクラス、関数のロード時にコンパイルが行われるため、プログラムの起動には時間がかかる 一度コンパイルしたコードを保持するために、より多くのメモリ容量を必要とする
NGワード:インタプリタ
FileSystemWatcherは、内部でReadDirectoryChangesW(WIN32API)をunsafeコードで呼び出す。 InternalBufferSizeは、バッファサイズ。初期値は、8192Bytes。
>>61 ファイルごとにイベントハンドラが呼び出されるとは限らないけど、
ファイル変更後には1回以上イベントハンドラが呼び出される
つまり、FileSystemWatcherのイベントハンドラで
(タイマーでやろうとしている)変更確認を行えば良いだけ
>>80 オーバーフローしない限りはね。
って、だから行空け馬鹿の
>>63 ですら言ってることだけど、MSDNをちゃんと読もうよ。
最初からMSDNを読んでいれば、こんなことにはならなかった・・・・・
class ウィンドウ { public int 幅 {get;set;} } って何がしたいんでしょうか? public int 幅; でよいのでは?
なぜフィールドを公開してはいけないのかを調べなさい
あなた自身はしらないのねw yahooで検索します
・virtualにしとくと派生クラスでoverrideできる ・プロパティとフィールドを区別するフレームワークも多い ・使わなくても警告が出ない
>>83 試しにフィールドとプロパティをそれぞれ1つずつ持ったクラスをList<T>で簡易データソースにしてDataGridViewに喰わせてみるといい
つまりそういうことだ
88 :
デフォルトの名無しさん :2012/05/12(土) 23:55:21.72
89 :
デフォルトの名無しさん :2012/05/12(土) 23:55:55.89
>>86 とか
>>87 みたいな、オブジェクト指向を分かってなさそうな回答を見るとなんだかなあ、って思う。
オブジェクト指向w ちょっと前に誰か書いてたけど、いきなり大上段の話を始める奴は確かに馬鹿っぽい。 っていうか、なんでかなあと思うならまずお前が答えろって
オブジェクト指向というより、ちょっとしたことでもとりあえず関数通しとけば 後で変更しやすくて便利っていうC言語の時代からある考え方だろ
フィールドは、クラス内部で状態や値を持つものとして扱う。 プロパティは、クラス外部に何らかの形で状態や値を公開するものとして扱う。 プロパティは、一種のメソッド(関数)であり、入出力(set/get)時になんらかの特定の処理が可能。 例えば、Widthという横幅を表す状態があるとして、設定される値の範囲を抑制するなど。
93 :
デフォルトの名無しさん :2012/05/13(日) 00:05:48.61
>>90 「DataGridViewで表示するとき便利だよ!」
→「じゃあ、このオブジェクトはDataGridViewで表示しないし、全部publicフィールドでいいや!」
みたいな。色んな前提が抜けてる。大上段、ってのがそういう意味じゃないかもしれないけど。
DataGridViewとかは、オブジェクト指向云々ってよりは、.NETの仕様というか機能みたいなものかと。 データバインドは、リフレクション掛けて公開されたプロパティが対象という・・・
95 :
デフォルトの名無しさん :2012/05/13(日) 00:13:34.40
>>94 だから、オブジェクト指向なんていう基礎中の基礎をすっ飛ばして、
ポトペタで満足している連中なんだろうな、と推察しているわけだ。
何のこっちゃw
無闇にフィールドがpublicで公開されてると、気持ち悪く感じるようになる。 constとかreadonlyとかで読み取り専用のフィールド(規定値等)であれば、良いけど。
オブジェクト指向ってのは無意味なカプセル化をするって意味ではない それにフィールドからプロパティへ変更しても再コンパイルしてもらえない状況なんて現実的に考えにくい
public constは怖いだろ
プロパティがオブジェクト指向かというとまた微妙な問題で、原理主義者の中には嫌う奴もいるけどな
フィールドとの比較じゃなくてメソッドがあるのになんでプロパティが必要かという話だったら
どっちかというと
>>94 のような開発環境の都合による理由が大きい
101 :
デフォルトの名無しさん :2012/05/13(日) 00:26:25.76
102 :
デフォルトの名無しさん :2012/05/13(日) 00:27:43.40
>>100 開発環境の都合じゃなくて、Javaで成されていたところのSet〜、Get〜メソッドの
糖衣構文と考えるのが妥当なんじゃないか。
>>102 糖衣構文じゃないよ。ちゃんとプロパティの情報はメタデータに残る。
命名規約じゃなくてちゃんとプロパティの情報があるほうがIDE作りやすい
>>100 メソッドとの比較だとまあそうだね。
ただ開発環境の都合っていうと妥協の産物みたいに聞こえてちょっと引っかかる。
コーディングルールみたいなものとも考えられる。
無意識の意識付けといった感じで、フィールドであれば、クラス内部のみ。
プロパティであれば、クラス外部とのやりとりに使われるといったような意識付けができる。
>>102 が言うように糖衣構文(シンタックスシュガー)だな。
それに加え.NETだとプロパティにメタ情報を持たせてDataGridViewなどのデータバインドをさせたり、
リフレクション通してあれこれしたりできる。
106 :
デフォルトの名無しさん :2012/05/13(日) 00:38:46.87
>>103 確かに、糖衣構文というのは間違いだな。
コンパイルしたら元の形が無くなるのが糖衣構文だもんな。
IDE作りやすいから、という理由でプロパティが作られてるとは思わないけど。
命名規則(フィールドnに対するアクセスが、GetN、SetNにより行われる)に依れば、
IDE側は別に困らないじゃないか。
事実Javaはそうしているわけだし。
むしろ、そういうGetメソッド・Setメソッドをいちいち気を遣って作ることが面倒で、
またタイプミスなどのつまらないヒューマンエラー因子の入り込む余地を無くすため、と
考えるのが妥当であるように思うがね。
んー、プロパティもイベントもデリゲートも実装的な話をするとインターフェイス+メソッドで実現できるんだけど、 言語機能としてよくあるパターンを追加することで技術も概念も一般化するし、 そうすればそれらを前提としたWPFデータバインドやLINQのような高機能フレームワークが生まれる こうやって進歩したのがJavaとC#の違いじゃないのかな
それらは全く使われないがなw つか、C#自体がそれほどつかわれないか
人間は概念の生き物だから、イベントにしろプロパティにしろ、それが必用な概念であれが 言語レベルでサポートされていた方がストレスは小さいね。 実用的な必要性以外にそういう人間工学的な面もあるとは思う。
C#はIDEが悲惨なことを除けばいい言語だ
煽り馬鹿クン、他にもっと楽しいこと探した方がよくないか?w 人生って思ってるより短いよ
図星でした
プロパティとするか、メソッドとするか悩むときがあります 例えば、 private Date m_birth; なんてフィードドがある場合 public int Age public int GetAge() でどちらが、真っ当なのですか?
>>113 曖昧性があるのは否定しないけど、それは誰も悩まないと思うw
どう考えてもプロパティー
>>113 すぐに結果が返ってくる(処理時間が短い)場合は、プロパティ、
例えば、Webアクセスやデータベース、ファイル等、何らかの形で負荷または、時間が掛かる場合は、メソッド。
利用者側からすると、プロパティは、頻繁にアクセスしても特に問題ないものという認識がある。
116 :
uy :2012/05/13(日) 01:10:05.45
>public int GetAge() これだとsageたくなったときにGetSageになってしまい変だ つまりこっちの方がイイ > public int Age
117 :
デフォルトの名無しさん :2012/05/13(日) 04:27:45.27
プロパティにするか、メソッドにするかの基準は MSDNのどっかにあった気がする。
動けばいい
年齢は勝手に変化するし、DateTime.Now時点で計算するとも限らんのでメソッド向き OneTimeバインド限定ならともかく
メソッドにバインドするのってどうやるの
>>120 プロパティのバインディングは結局リフレクションでget/setメソッドを呼んでるだけ
バインディングっていうのはCLRにそういう機能があるんじゃなくて
WPFみたいなフレームワークが勝手にそう呼んでるだけ
何をやってるのじゃなくてどう書くのって聞いてんのよ <Binding Path={}> ←これにどう書けばいいんだ?
エスパーな方は、いらっしゃいませんかー?
最近このスレぎすぎすしてるよ、よくないよ
>>122 ObjectDataProvider使えば何とかなるかもしれない
そもそもメソッドにバインドってできんの?
というかする必要あるの?
必要があるかどうかはテメェの考えることじゃねぇ
そうだ。俺が考えることだ。必要ない。
undo,redoについて教えてください。 あるドキュメントモデルの中には複数のプロパティが存在します。 あるプロパティが変化した際に、そのドキュメントのクローンをスタックしておけば 簡単ですが、メモリの無駄遣いとなります。 あるプロパティ毎に行おうとすると、 interface ICommand Data1UpdateCommand : ICommand Data1UAddCommand : ICommand Data1DeleteCommand : ICommand Data1InsertCommand : ICommand と・・・ ひとつのプロパティに複数のコマンドを一々定義していくのかと・・・・ なにいい方法はありますでしょうか?
メモリなんて今腐るほどあるんだしMementパターンでいいんじゃね
リフレクションベースでやれば大分工数減らせるんじゃね?
工数の意味を分かってるのかしらんw
134 :
デフォルトの名無しさん :2012/05/14(月) 22:33:34.44
>>130 とりあえずは簡単な方法で実装してみては?
ある程度作っていけばまたいいアイデアがでてくるかもしれないし
この手の質問って、最近の至れりつくせりのお手軽言語の弊害だよな この程度のことは、我流でも何でもいいからとりあえず実装してみろ あとで、あ〜こんな便利なやり方もあるんだ のほうが絶対いいと思うが。
>>135 ゲームの進行にも共通してるのか「なるべく無駄な道を歩みたくない」症候群
になってるよね
単純なCloneより良い方法がないかと聞いている質問者にCloneを勧めた挙句、 最近の若者は〜とバカにしはじめるスレはこちらになります XMLにして差分を取るってのを思いついたが実用的ではなさそう エディットグラフがいるし
138 :
デフォルトの名無しさん :2012/05/14(月) 23:13:49.00
>>137 今最良に思ってる方法でも開発を進めていくと駄目な場合もあるし
今駄目と思ってる方法も実は後でよかったとなることもあるし
public int Hoge { get { return base.GetValue("Hoge"); } set { base.SetValue("Hoge", value); } } みたいにすれば? 差分取っていくように既定クラスでGetValueやSetValueを実装するのは簡単でしょ
シリアライズしてバイナリ化しておく。
普通のエディタと同じ方式にすればいい。
シリアライズしたら、バイナリでも元のオブジェクトよりでかいぞ
143 :
デフォルトの名無しさん :2012/05/14(月) 23:43:24.24
まあ既存のシステムなんかも参考にすればいいんじゃね? DBのジャーナルだってレコードのクローンのような物でしょ
こんなんじゃ誰も質問しないくなりそうだな 益々.NET衰退
むしろ断片情報だして銀の弾丸がもらえると思ってる方がお花畑過ぎる
概要しかわからないんだし、開発途中だったら経験段としてはシンプルな方法でやっとけになる
手の込んだことになるとバグ取りとか面倒だし
ソフトの大まかな機能の盛り込みが終われば最適解も見えてこよう
なので
>>131 >>134 などであってるしそれ以上の答えの出しようがない
つか、そもそもMementパターンとはなんだw 新手のデザインパターンかw
おいおいさすがにそれは.... 厚顔無恥ってすばらしい才能だな。 もちろん嫌味だが
コード書けないデザパタ厨のうざさは異常。
Mementoだって言いたいんだろ
ダメだこりゃ
タイポかよw
死を思…いや面倒だからもう死ね
昔は他人のレスにケチ付けるやつはそれなりの代案も用意してたもんだが、 今はケチつけるだけの批評家様が住み着いちまったみたいだな
だって隔離スレだもの
自前で作成したスレッドってそのまま放置でよいのでしょうか? 例) var thread = new Thread(()=>{ 処理 }){{IsBackground = true}; thread.Start(); のような場合threadはメインスレッドからなにか解放のようなものが 必要なのでしょうか?
TaskかThreadPool使え…
>>157 たとえばその処理が一日一回しか処理されない(複数のスレッドがあることがない)
場合でもスレッドプールを使用したほうがよいのでしょうか?
>>157 ちなみにTaskは.NET2.0なので使用できませんorz
放置でおk
>>160-161 ふむふむ、なるほど!となると自分の処理はファイル処理(ファイル圧縮)を行っているので
今回はThreadを使用したほうがよさそうですね。
処理が軽いときはThreadPoolがよいのかぁ〜〜!ということはサーバー系(TCP/IPでリクエストを
返したりする)の小さい単位の処理はThreadPoolがよさげですね♪
勉強になりました^-^ありがとうございますm(_ _)m
1日1回とか頻度は、ともかく、実行継続時間とかによるのかな。 例えば、数秒そこらで終わるが裏スレッドでやらせたいものにThreadを作成するのは、 コストが掛かる、ThreadPoolを使えば、作成済みのスレッドを使い回すなどして効率良くなる。 ただスレッドプールは、スレッドの数に限りがあるし、スレッドタイマーなどあらゆるもので共有される。 なので比較的、短時間で終わる処理。UIは、止めたくないが勝手に裏で走らせたい系の処理とかに使うと良いと思う。 逆に起動時に1度だけ作成してそのあとずっと裏スレッドとして稼働するようなものは、 Threadクラスを使ってスレッドを作成してスレッドプール占領しないほうが良い。 ちなみにどちらも無理に止めたりせずに放置しておけば、おk。 下手に止めたりすると、それこそ変なことになりかねん。
昔のプールは20しかなかったが今は10倍だから気にするような話でもないがなー
165 :
デフォルトの名無しさん :2012/05/15(火) 20:11:38.72
PLINQで並列処理を楽に実装しよう、と思っている。 ・同時実行数に限界を持たせたい(WithDegreeOfParallelismにより実現済み) ・キャンセルを実装したい(WithCancellationにより実現済み) はできたんだが、 ・オブジェクトごとに優先順位を持たせたい ・リストに次々追加されるオブジェクトを、追加される度に 優先順位を再評価して、高いものからどんどん処理したい という2点の実現方法が不明。 PLINQじゃできないのであれば、何か簡便な方法はないもんだろうか。 なきゃないでTask、Threadでゴリゴリ書く予定だが、正直面倒なんだ。
>>161-162 長時間って、それこそ数分とか、あるいはプログラム存命中ずっと居座るような処理のことよ<Threadを使う場面。
ファイル圧縮くらいならまだTaskでいいかも。
>>165 優先度付けたいならTaskScheduler実装するしかないんじゃないかな
PriorityTaskSchedulerで検索したらサンプル実装公開してた人がいたが中身までは見てない
補足
>>168 で同時実行数分だけコンシューマスレッド(タスク)を走らせておく
BlockingCollectionだからキューが空になったら追加されるまで勝手にブロックしてくれる
170 :
デフォルトの名無しさん :2012/05/15(火) 23:19:28.92
>>167 やっぱそうだよねえ、と思ったり。
なかなかスッキリさっぱり!とは行かないんで四苦八苦している。
>>168 結局、追加時に発生するInvalidOperationException捉まえて・・・
てやらないかん気がしていたが、何これ熱い。
BlockingCollectionかー。これ使えばいけるような気が・・・
優先度も随時変化する可能性があるからなあ。
Lookup的に優先度にぶら下がるQueue、って構造は使えないんだよなあ。
優先度が随時変化しない、ってことになればこの方法で行けそうなので、
トライしてみる。懇切丁寧にどうもありがとう!
171 :
デフォルトの名無しさん :2012/05/15(火) 23:32:32.00
ちなみに今やってる実装の概略 BindingList<T> list; ManualResetEvent waitHandler = new ManualResetEvent();; IEnumerable<T> GetItems() { while (true) { waitHandler.WaitOne(); waitHandler.Reset(); try { foreach(var item in list.Where(item.Done == false)) { // foreach じゃなくて、実際はGetEnumeratorしてCurrent, MoveNextをtry catchでくるんでる。 // if (priorityChanged) { waitHandler.Set(); break; } // list内の項目の優先度が変わった場合、priorityChangedを立てる処理が余所にある。 item.Done = true; yield return item; } } catch (InvalidOperationException) { waitHandler.Set(); } } } void Worker() { while(true) { GetItems() .AsParallel() .ForAll(t => t.Process()); //Process は時間のかかる処理 } } 概ね良好なんだが、たまにlistへの追加と処理が食い違って、1個2個処理し損なってるわ・・・
列挙中に別のスレッドから要素追加するのはまずいだろ 元々スレッドセーフでない上に、仮にシングルスレッドでも列挙中の変更は未定義動作だぞ
マルチスレッドの一番のややこしい部分だな。 列挙中の要素の追加と削除に関しては。
.NET1.1の頃は列挙子が逝ったらInvalidOperationExceptionをスローすると明記してるコレクションが多かったが .NET2.0以降は軒並み未定義なんだよな たまたま動いてようと、その動作に期待してキャッチするのは間違いだ
175 :
デフォルトの名無しさん :2012/05/16(水) 01:57:34.70
そうなのか・・・InvalidOperationExceptionキャッチすれば、 と思ったけど、実際は未定義とは・・・やっぱりBlockingなりなんなり、 きちんとした手法を使わないとダメなのね(´・ω・`) 出直してくる
100年がんばれ
参照型の配列を構築して即デフォルトコンストラクタで全要素初期化する〜みたいな スマートな書き方って何か無いですか 配列をnewしてから個々の要素をnewするパターンに疲れてきた、、
まあテンプレート使えば解決するのはわかってるんだけども Foo[] array = new Foo[n]; の代わりが Foo[] array = GenArray<Foo>(n); とかになるといかにもダサいし それを10万回ぐら書いた後で言語組み込みかクラスライブラリにそれっぽいものが定義されてるのを知ったりしたら 自殺すると思う
Foo[] array = Enumerable.Repeat(null, n).Select(_ => new Foo()).ToArray(); 無理矢理だけど
>>178 そんなんで自殺するほど潔癖症じゃちょっと大き目のアプリなんて作れまい
staticジェネリックメソッドでも作れば
public static T[] Fill<T>(this T[] array) where T : new() { for (int i = 0; i < array.Length; ++i) array[i] = new T(); return array; } Hoge[] array = new Hoge[n].Fill(); まあ一発ネタだな
183 :
デフォルトの名無しさん :2012/05/19(土) 02:53:08.51
スマート、とかダサい、とか言われてもな。配列って代物が既にダサいと思っちゃう。 ましてやそれを参照型で初期化したい、なんて処理そのものが既にどう書こうがダサい。 まあ、やむを得ない事情があるんだろうが。
>>183 結構多用する処理じゃね?
ダサいってのは現代的でないってことではなく手数が多いって話だと思う。
185 :
178 :2012/05/19(土) 03:23:18.76
>>183 キイッ初期化がダサいとか聞き捨てならねー
メモリの初期値が定まらねばプログラムの振る舞いが定まらない
よって、すべからくプログラマは息をするが如く自然かつ確実に初期化するべし
>178のGenArray<T>()はそういった重要で自然に行われるべき処理なのにタイピング量が多すぐるからダサい
というわけで個人的には>182でおk [[解決]]dクス
なお、参照型がダサいというのも問題発言炸裂だ
参照型+GCの組み合わせこそ、気分と目的次第で関数型言語にも命令型言語にも化けられて
スレッド安全性とパフォーマンスの追求を両立できる、今日におけるソフトウェア工学の最高到達点なわけだが
配列型がダサイとは…>183は自然数に代わる順序数でも創造したというのか、
186 :
デフォルトの名無しさん :2012/05/19(土) 03:38:41.24
【ダサいの語源・由来】 「田舎」を「だしゃ」と読み、形容詞化した「だしゃい」もしくは「だしゃ臭い」が転じて、 「ダサい」になったとする説が有力とされるが、 ・方言で「だしゃー」と言うことはあっても、「田舎」を「だしゃ」と読む例が見当たらない。 ・「ダサい」が使われ始めた1970年代には「間抜け」などの意味で使われていた。 ため、不自然とも考えられている。 ただし、「間抜け」や「格好悪い」といった意味で罵る際、「田舎」を持ち出すことはある 「だ埼玉(ださいたま)」が略され「ダサい」になったとする 「ださいたま」の説は、タモリが埼玉県民をからかい、洒落で言ったため広まったものである。
>>185 ピリオド打てば出てくるものにタイピング量とか関係あるのか?無駄に長いのは読みにくいが基本的にわかればいいだろ
188 :
デフォルトの名無しさん :2012/05/19(土) 05:21:40.16
>>185 そうじゃねえよ。
参照型を配列にぶっ込むこと自体がダサイっていってんだ。
189 :
デフォルトの名無しさん :2012/05/19(土) 05:22:46.92
確かに配列なんて特殊な状況じゃない限り使わんな
190 :
デフォルトの名無しさん :2012/05/19(土) 05:56:28.70
List使えってことだろw
>>185 >メモリの初期値が定まらねばプログラムの振る舞いが定まらない
この考え方は素晴らしいね
素晴らしいから博物館にしまっておこうね
配列要素の初期値はdefault(T)って決まってるだろうが this.get[int]時にnullをnew T()に置き換えるIList<T>実装じゃダメなのか
193 :
デフォルトの名無しさん :2012/05/19(土) 08:04:58.21
この程度のことでIListの実装は割に合わないよ
つかさ、C#って時点でダサくね?
>>192 そういう凝ったやり方は作っている途中で破綻することが多くないか?
ダサくてもよくあるあたりまえの方法が一番信頼性高いような気がする
IList<T>実装ってそんなに敷居が高いか? 5分ぐらいで終わるだろ
普通にList<T>使えばいいんじゃねの?
ここはCollection<T>だろ
199 :
デフォルトの名無しさん :2012/05/19(土) 11:45:30.04
アホすw
>>188 おまえ配列とListの違いわかってないだろ?
201 :
デフォルトの名無しさん :2012/05/19(土) 12:16:17.49
w
えっ 配列とListって同じじゃないの?
203 :
デフォルトの名無しさん :2012/05/19(土) 12:22:31.48
えっ
参照型配列の要素を最初に初期化するなんてそんなに頻繁に出てくるか? Hoge Items[MAX_SIZE]; こんなCやFortranみたいなコーディングしてるんじゃね
俺だったらRangeやってSelectでnewしてToListするな。 こんな事で拡張メソッドなんて使いたくないし、forで初期化なんてのも書きたくないし 後から見た時に一目で初期化してるんだと分からないと嫌。
配列じゃなくてList(笑) 固定長のコレクションにList(笑)
Listの内部で使ってるのは、配列だけど、List = 配列ではないだろw
固定長のコレクション(笑) CやFortranで>204みたいな確保の仕方するのは、メモリの制約やただ動的確保が面倒だからがほとんどで 本当の意味で上限決める必要があるケースなんてそんなに多くないだろ
209 :
デフォルトの名無しさん :2012/05/19(土) 12:42:43.13
もう触れるなよ
配列にList使う奴って なんでカプセル化が存在するかも分かってないんだろうな
もしかして、クラスの外に配列そのまま見せて、配列なら追加できないからカプセル化完璧とか思っちゃってるの? 配列にしろListにしろ勝手に変更されたくないならコピーするかReadOnlyCollectionに包んで返さないと意味ないからw
間をとってCollection<T>で
間でもなんでねぇよw 外部から追加や削除を抑制する意味でToArray()して返すのは、よくやる。
実際出てくるコレクションなんて初期化が終わればほとんどReadOnly C#ではパフォーマンス上も記述上も配列が一番早くて見やすくて良いのだけども for文で初期化するみたいな素っ頓狂な手法に頼っていたのでReadOnlyに出来なかった 全員がこの書き方をマスターすればいいだけの話 var array = Enumerable.Range(0, count).Select(i => new Hoge()).ToArray(); これが全員出来れば配列はredonlyに出来る
赤専用に出来ると。
防御的コピーをやるときに一要素ずつデフォルトコンストラクタで初期化したりしないだろ LINQ使うんだったら単にReadOnlyCollectionに入れてIEnumerableとして返せばすむ話だし
IEnumerableはありえないでしょ数も分からなきゃインデクサのアクセスも出来ない ReadOnlyCollection<T>なんてものをソースコード中に散りばめるよりは 配列生で出して「書き換えるなよ」という暗黙の圧力に期待したほうがいい
カプセル化を持ち出しといてそれw
カプセル化なんてなかったんや
VS2010 のC++で書いたソースのをC#に変換することはどうやってするのですか?
無理 手で書き換える
ソースコード生成は自動化するもんじゃねえんだよ
DAOぐらい自動生成させてくだはい
よかろう
おれはよく自動化してたなぁ。定型ばかりなんだからコンピュータに作らせて当然。 今は自分でMAKE書かないのと同じ。
ゆとり キタ━━━━━━(゚∀゚)━━━━━━ !! 今でも、MAKEはガンガン書くよ
意味もなく煽るのはやめよう(提案)
etkのmake自動生成できるなら切実に欲しいけど
229 :
デフォルトの名無しさん :2012/05/19(土) 20:43:56.34
今でもMAKEをゴシゴシしてる自分に疑問を持たない時点でPG向きじゃない。 いかに楽するか、を考えられない業務系SE()は「プログラミング()」とかすぐ言うから糞なんだ
ゆとり キタ━━━━━━(゚∀゚)━━━━━━ !!
時代も世代も関係ないな。 プログラミングに限らず猿仕事に過剰に意味を見出す奴っているけど、 まあはっきり言えば自己陶酔タイプの馬鹿なんだよね。
ゆとり キタ━━━━━━(゚∀゚)━━━━━━ !!
自動化できるものは自動化しとけばいいけど、理解して使えよって話なんだろ? 昔から言われてるじゃんそんな事
何でも自動化できるなら既にお前はクビだという話だよ 冗談でもなんでもなくな
まぁ俺たちが目指してる場所は正にそこだな
誰もなんでもとか言ってないわけだが…
なんの話や
落ち着け 素数をListに入れて列挙するのだ
まず無限に存在する素数を格納できるListの用意をお願い致します
RiemannR(2^31)≒10^8だからintならイケる BigIntegerとかは知らん
素数を格納したら負けだと思ってる
まあ、intに収まるような素数なんてお呼びじゃないけどな
某生みてたらC#のintとかlongがCPU依存とか言ってる人がいるwww なんのための.netなんだとw
なんのための.netなんです?
C#と.netは関係なくね?
C#のint,longは.NET FrameworkのInt32 Int64って決まってるんじゃないの? VM自体は問わないのかね
某生って何?
>>246 .NETのInt32とは決まってない。CLIのInt32とも決まってない。
C#言語仕様の中で規定されてるBCLのInt32と決まっている。
形式的に一応C#には専用の標準ライブラリがあることになってるの。そのスーパーセットがCLIのBCL。
VSの構成マネージャにプラットホームがx86と指定されてるんだけど、これってなんの意味があるの? いらなくネ?
OleDbがx64だと落ちた記憶がある
C++とかCとかで作られたDLLとかCOMとあれこれするとなると、 x86依存とかx64依存とかになってしまうので一応、必要だろ。
プラットホームにx86を決め打つなら、x86ネイティブをを吐けよ
ネイティブ吐いてもライブラリはMSILのままだぞ あ、インストール時にコンパイルされてるんだっけ
まあ僕はいつもAnyCPUで作ってますけど
正直、x86以外のプラットホームで.Netが使われているなんて皆無に近い そんな状況で、中間吐くなんて愚の骨頂 素直にIA32捌けや
設定できるプラットフォームターゲットはx86/x64/Itaniumで、x64はシェア2割程度だけど皆無なんですね
それ聞いてAnyCPUじゃなくしたらなんかまともに動かなくなったから諦めたわ
ま、確かにJITコンパイルをやめてネイティブ吐くようにすればもっと高速で効率の良い コードを吐けるようになるのは間違いないが、それを敢えてしないのはC/C++のような 言語との差別化が主な要因じゃないか? ネイティブ吐いた時点でC/C++に即座に食われて終わると思う
D言語が良い例だよね ネイティブ吐くしGCも内蔵してるけど現状どうかと言うと見てもらえば一目瞭然だろ?
ネイティブコードはセキュリティ上危険だからだわな 型安全じゃないコードは実行できないようにしないとデータと機械語が分離できない
.NETのほうがよっぽど危険では? .NETのせいで、情報工学の基礎理論すら知らない奴がソフトウェアをかけるようになってしまった そのようなソフトウェアのほうがよっぼど危なっかしくて使えない
今日日ゴミプロセスが自爆してもOS巻き込んで落ちたりしないからどうでもいいです
アンマネージコード使ってたりしたら知らんがOS巻き込む前に .NETによって強制終了されるだろw
>>262 unsafe使ってあったらどうなのよ?
unsafeなんて非推奨だしデフォじゃ使えないようになってる。
>>266 C#じゃポインタ使っても実行はできないんじゃないの
>>263 昔からVB使いがいくらでも存在してただろ
なんすかそのVB使いってのは? アキラ使い、とかジェフリー使いとかと一緒の類?
面白いと思って書いたのかそのレスは
面白かったですか?
スタンド使いの類だな
ブビッ
VBが馬鹿にされたので混ぜっ返そうとしたんだな
間をとってDelphiを使おう
間ってDelphiは、コンパイルも、実行バイナリもVC#とは比べものにならないほど高速だぞ
いやいやさいきょうはDげんごでしょう
279 :
デフォルトの名無しさん :2012/05/21(月) 00:23:54.78
ListBox の全選択を一要素ずつ SetSelected する形で実装するともの凄く遅いです 高速に全選択する事はできませんか?
C#の下位互換性のありがたさと先見性の高さを再評価するための言語のことですね
BeginUpdate/EndUpdateすればある程度は 65535個以内ならWndProcとかSendMessageでLB_SETITEMRANGE使えば一瞬で選択できるが SelectedItemsとSelectedIndicesが使い物にならなくなる
確かにある程度良くなりました Selected〜 が正しい値にならないのは困りますので、 これで良しとする事にします ありがとうございました
.NET使ってるなら、SendMessageなんてNGだろ? win32apiを使用するなら、おとなしくVC++SDK/MFCを使えよ
WndProcとか普通にあるのに何を言うか Swingみたいなのと違ってWinFormsはWinAPIと不可分なんだよ
ListBoxの中身のコントロールがどの位の数になると「ものすごく遅い」と感じるの? 試してみたけど10000個ほどじゃ全然平気な速度だと思ったけど もっと多いの?
全然足りない 実用性はともかく100万件は表示できないと、とか平気で言うバカな設計者に合わせて考えてちょうだい
表示すべきデータは、ビューモデルにでも保持させておいて要求に応じて ビューが取り出して必要なレコードのみ表示とかじゃないの? ListBoxだかに100万件も詰め込もうなんて発想がそもそも間違ってる
100万件だと単純にエンティティだけでOutOfMemoryの可能性が結構ある
バカに間違ってるなんて言っても仕方がありませんので
100万件表示とか定番ネタすぎてつまらん
100万件からスクロールして探すつもりかw
100万件データがあるなんてことは、よくあることだろうけど、 検索・条件フィルタ機能付けて50件ずつ表示するとかだと思う。
100万件・・・・手元のVS10、Win7、Corei5、Mem8Gで測定してみた 1万件にした 入れるコントロールはCheckBox Stopwatchクラスを使用 BeginUpdate/EndUpdateあり : 6375ms なし : 9414ms なるほどこれが100万件なら単純計算で約10分/約15.6分かかるな
294 :
デフォルトの名無しさん :2012/05/21(月) 19:38:58.17
普通にDB側も調整したくなるからな
>>279 は8800項目くらいです
仮想環境上で動かしてますが、
全選択に約5秒かかってました
BeginUpdate/EndUpdate入れると約半分に
煽りの定番ネタ …なんて言ってると、たまにスゲー10年戦死がいるからな
具体的にWPFのListViewは実用上何件ぐらいまでいけんの? セレロン+オンボだと200件ぐらい?
c#かJavaしかやってなくても10年戦士がいる時代なんだけど。 いつも暴れているのは、 1980年代の8bit時代から戦ってた団塊Jrの30年戦士でしょう。
ListView自体は仮想化無効にしなきゃ100万件でもサクサク Model側がメモリを食いつぶさなければ
300 :
デフォルトの名無しさん :2012/05/21(月) 20:43:13.01
不毛な・・・
おれはハゲてない。
MFCのlistviewから見たらどんがめだけどなw
PC買い換えろ
305 :
デフォルトの名無しさん :2012/05/21(月) 22:45:43.54
ListView捨ててDataGridViewでいいんじゃない?
DataGridViewなんて使ったら余計ハゲるぞ
フォームをShowDialog()で表示して、そのフォームからさらに別のフォームを ShowDialog()で呼び出したあと、フォームを閉じると1番目に表示したフォームまで 閉じてしまいます。これってどうすれば2番目に表示したフォームだけ閉じることが できるのでしょうか?
エスパーすると二番目のShowDialog()を書いた位置が悪い。 違うボタン追加してそこで表示させてみな。
大穴でボタンにDialogResultが設定されてるとか
312 :
308 :2012/05/22(火) 18:48:57.24
OKボタンを配置し、そのイベントハンドラに FormのDialogResult = DialogResult.OKを 入れてフォームを閉じているのですが、使い方 が違うのでしょうか?
313 :
デフォルトの名無しさん :2012/05/22(火) 19:04:23.04
あるポートを使用中かどうか調べたいんですがどなたか方法ご存じの方ご教授ください。
>>312 ボタンのプロパティでDialogResultが指定されてると押しただけで閉じる
フォームのCancelButtonはこれが自動設定されるんでコピーしてほかのボタンを作ると酷いって話
そういう挙動が嫌でデザイナーは、基本的に配置とデザインのみで考えて そういった機能面は、Loadイベント拾うなりコンストラクタに手書きするようになった…
逆にそういう挙動をしてくれないのならButtonのDialogResultが用意されてる 意味があんまりないような気がするんだけど.... Buttonをクリックしてからさらに1アクション必用なダイアログを想定してる? それこそ糞UIだと思うけど
世の中には「職場・学校以外で全くPCに触らない」という人種がいて、 そういう層は得てしてキャプションを見る前にボタンを押すからワンクッション入れるべきなんだよ まあ確認メッセージも読まずにOK押すんだけど
そういう人が普通だろ おまいらみたいなヲタの方が少ない
しかし、世の中には、日本語すら読まずにわからないという奴らが居るからな。 PC苦手とかそういう次元の話じゃなくて… 「文章が変更されています。保存しますか?」みたいなメッセージすら読まない奴とかw
320 :
デフォルトの名無しさん :2012/05/22(火) 21:19:07.90
それで「はい」押したら「PCがおかしくなった」とか言ってくるんだよな
でも「今後このダイアログを表示しない」にチェックを付けるのは忘れないんだよ
322 :
312 :2012/05/22(火) 21:27:27.35
実際には 呼び出し側 BtnShowDialog.Click += (sender,args) => { using (var form = new CustomTemplateView(templateClone)) { if (form.ShowDialog() == DialogResult.OK) { Conf.CustomTemplates = templateClone; } } } 呼ばれた側 BtnOk.Click += (sender,args) => this..DialogResult = DialogResult.OK; ですが、このコードだと問題なのでしょうか?一部のコードで申し訳ありません。。
えっと、だから問題とかじゃなくてそういう仕様なんですよって今説明があったとおもうんですけど...
324 :
デフォルトの名無しさん :2012/05/22(火) 21:35:47.47
thisが何を指してるのかも分からないくせに、 ラムダ式でイベント書こうとかするから・・・ 初心者は初心者らしくデザイナ使っておけば良いんだよ
ラムダは結構遅いから、あまり使わないほうがいいぞ
またきたか…速度厨が…。
>>324 thisが何を指しているのかなんて
>>322 からじゃ読み取れないだろ
なんで勝手にキレてんの?
ラムダはテストが煩雑でバグが放置されたままになるから、あまり使わないほうがいいぞ
>>322 もうなにやってるか分かんないのでお手上げです。
331 :
デフォルトの名無しさん :2012/05/22(火) 22:09:23.51
ラムダ式でテストが煩雑になるってよく分からん
ラムダ式そのものの責任じゃなくて使ったやつがちゃんとデバッグしないという問題だろw 包丁使って怪我したら包丁が悪いと言うのと同じだな
>>331 分からんのは仕事したことない引きこもりだからだろう。
>>332 のテスト仕様書買いてみな。
>>332 世の中とはそのようなものですよ
USAなら電子レンジに猫をいれても勝てます。
自称SEがよく書くテスト仕様書。 テスト仕様書:ラムダ式が正しく動作すること。
あおりぬきで聞きたいんだが、本当に仕事でC#なんて使ってます? .netで書かれたソフトを使ったことが無い。
で、正常系テスト一回やって合格と。 もし不具合が出たら仕様は問題ありません。 テスターが手を抜いたのですと多重派遣PGを一人クビにして終了。
>>336 どことは言わんけどT、D、H自動車で使われてるのは見たぞ
まだ提案する立場にないのか。早く出世しろとしか。
というか業務云々な話ならマ板にでもいけよw ここは、ム板だ。
343 :
デフォルトの名無しさん :2012/05/22(火) 23:11:08.71
お前らのテストの仕方が気になるわ ラムダ式で困るってどういうことなの?
まじでラムダ式のテスト仕様書けないのか? そんなレベルでラムダ使っちゃダメだろ。
>>346 テスト仕様書:プログラムが正しく動作すること。
それが通るなら、これでいいだろw
349 :
デフォルトの名無しさん :2012/05/22(火) 23:22:49.53
ラムダ式のテスト仕様書w
テスト仕様書を書くのに ラムダ式かどうかが関係すると考えてる奴の頭が心配だよ
351 :
デフォルトの名無しさん :2012/05/22(火) 23:24:59.02
知らんけど関数型言語のテストフレームワークみたいなのが必要そうだなw
テスト仕様書は書けないけど、テストしました!!! いるよな、こういう馬鹿PG。
テスト仕様書は書かないけど、テストしました!!! これがベスト
354 :
デフォルトの名無しさん :2012/05/22(火) 23:28:11.78
まあお前の職場が馬鹿揃いなのは仕方ない
明らかに仕様書書いたことない奴が暴れている。
356 :
デフォルトの名無しさん :2012/05/22(火) 23:30:54.05
マ
板名すら読めない奴のほうが心配だがな
359 :
デフォルトの名無しさん :2012/05/22(火) 23:35:11.52
なにこの無意味な争いw
テストなのに内部実装の話をする時点でダメだろ フローチャートを机上でチェックする時代は終わったんだよ
ラムダは遅いし、どういうテストしたかと聞いても答えない奴ばかりだし、 ラムダ自体いらない子だろ。
フローチャートの仕様書は70年代までだろw
しかし、
>>322 のテスト仕様書すら書けないとか
まじこのスレの住人レベル低いな。
しかも内部実装とか馬鹿言ってる奴までいる。
既にテストしてバグが出てんだから、さっさと
>>322 のコード修正しろよ。
テストしましたが原因が分かりませんじゃ、 テストの意味ないがな。
コードの問題より、こんなスレで質問しちゃったのが問題かもしれんなw
自演はこれぐらいにしとくか。
>>366 仕様を満してないことがわかるから意味はあるだろ
これはラムダのバグだな。 他にバグになるようなコードがない。
ラムダ使うならboost使ったほうがよくね? パフォーマンス悪すぎだろ C#のラムダw
スレタイの言語名すら読めないのか?
373 :
デフォルトの名無しさん :2012/05/22(火) 23:54:01.94
初心者はふらっとに行けよ
これはラムダが原因だね。 ラムダなしで書いたら動いたよ。
375 :
デフォルトの名無しさん :2012/05/22(火) 23:56:06.48
アホですね
いいえラムダです
アホだな。 使うか・使わないかの二極でしか考えられてないアホばかりだ。
ムダを取り除いて ラだけ使う感じで
ラムダで書いてる人 → 動かない ラムダで書かない人 → 動いた バグの原因はラムダ。現にテスト仕様書書かないからこうなる。 ほんとラムダ厨はアホだ。
>>377 だからちゃんとテスト仕様書書けと言ってるのに逃げてるのはおまえだろ。
それテスト仕様書関係ないぞ
仕様書とか騒いでる奴らは、板の名前が読めないのか? ム板にでもいけよ。
> ラムダで書かない人 → 動いた ここから > テスト仕様書書かないからこうなる。 を帰結する人の頭の配線どーなってんの?
いや、まじで.netのラムダは遅すぎ boostのラムダ使ってみろよ、本当に速い
>>381 テスト仕様書かいてあれば、
>>322 ラムダの行はテスト合格するので、他が原因となる。
この程度も分からないということは不勉強としか。
基本情報処理試験レベルね。
>>385 C++11のlambda式も忘れないであげてください
>>387 私はboostの美的な実装に惚れてるんでboostを推します。
boostとかC#スレで言ってる奴は、 C++スレに帰れよ?
391 :
デフォルトの名無しさん :2012/05/23(水) 00:19:53.57
今日はアホの子がboost推ししてんのか
UI操作のイベントハンドルで λの速度がー とか言ってる奴のセンスの無さは異常
>>392 UI操作だろうが、なんだろうが、遅いほうがいいってことってありましたっけ?
一番センスがないのは、こんなみえみえの煽りネタにまんまと乗っかる奴だけどね。 しかもここ最近ほぼ毎日やってるのに。 個人的には煽る奴よりそれに乗っかる学習能力ゼロの馬鹿の方にこそ殺意を持つよ。
そうだね、開発が遅くなるのは良くないことだね
λとλ以外の書き方での速度差 <<
>>394 のクリック速度のブレ幅
398 :
デフォルトの名無しさん :2012/05/23(水) 00:33:33.68
殺意w
じゃあおれは自治厨づらした
>>395 に殺意を持つよ
400 :
デフォルトの名無しさん :2012/05/23(水) 00:35:05.68
ラムダ式って理解できない奴はできないからなー
ラムダ式がJITコンパイルされた時の逆アセンブル見た人いる?遅い理由は そこを見れば分かるんでしょ?関数オブジェクト的な物に展開されるだけなら 遅いはずはないんだけどなあ
それよりメモリポインタを通した間接コールがすごく多い印象 ライブラリをDLLリンクする時はこれが一番簡単で確実な実装方法だから そうしてるんだろうけど
UI操作でラムダが遅いとかいってる奴の操作方法を知りたい。 きっと視覚できないような超スピードでキーボードとかマウスとか操っているんだろうなww
バーストリンク!
>>404 ここで話してもいいのかい?スタティックリンクしたC/C++のネイティブイメージだ
C/C++もライブラリをDLLにするとメモリポインタを多用しているし、実行速度が
かなり落ちる
408 :
デフォルトの名無しさん :2012/05/23(水) 00:40:07.19
このアホな流れを見てると安心するわ
MFCやVCLやQtを使わずに、.NETを使う理由がわからない
410 :
デフォルトの名無しさん :2012/05/23(水) 00:55:52.03
409がこのスレにいる理由がわからない
>>409 開発が格段に楽だからに決まってるだろ
デバッグもしやすいし変なエラーで落ちにくい
そりゃカリカリにマシンの性能を引き出そうとしたら他の選択肢もあるだろうけどさ
>>409 Cでプログラミングするには人生は短すぎる
>>413 MFCやVCLやQtとCになんの因果関係があるの???
ラムダってperlやboostと同じ匂いがするよね。オナニーみたいな
ムラダって難しいよね^^ どうやってテストするんですかと聞いても誰も答えてくれないし、 たぶん使ってる人も何も分かってないと思うわ
楽だろう
ラムダで発狂してるバカが居るけど 次にasync/awaitが入ったら狂って死んでしまわないか心配
そうでなくてもRXのコードとか見ただけで発狂して死んでしまいそうだなw
c#捨てるしかないな。 これからはJavaの時代。
Java ww 匿名関数入れるだけにどんだけ時間かかってんだよw
そうか、匿名関数とかデリゲートとかが無いJava厨の嫉妬だったw
デフォルト引数入れるのに何年もかけたくせにw
Javaでそれらが使えることすら知らない技術音痴なんだから 黙ってればいいのに
デフォルト引数は存在を忘れそうになるぐらい使ってないな。 そもそもCOMとの相互運用のために追加したようなもんだし
>>426 あれは副作用も強いからなぁ。
public const な定数と同程度に危険。
>>427 Androidで使いたいから教えてよ
ただのファンクタだったらぶん殴るからね
AnadroidのJavaVM(Dalvik)が遅いって言ったら AndroidのJavaはGoogleが勝手に実装した物で、あれはJavaじゃないとキレられた事がある。 詳しく聞いたら、Oracleに金払ってないからJavaじゃないって理屈だった。 そういうわけだから、あれはJavaじゃないらしい。
誰が切れたの? まあ、Javaは元々そういうライセンス。 Oracle(旧SUN)の審査通さないといけない。 まあ、Dalvikが遅い理由は「Javaじゃない」というよりは、Oracleの協力得られなくてスクラッチで作り直しでこなれてないからってのはある。
433 :
デフォルトの名無しさん :2012/05/23(水) 07:58:43.96
J#呼んだ?
Javaがどうなろうと知ったこっちゃないわ。お前らまとめてスレ違い。
んじゃちょっと質問 たとえばWinFormのクリックイベントがあって、その中身を 実装するにはどういう風にするのがベターなんだろ? ケースバイケースと言われるかもしれないけどアンケートと 思って教えてちょ。ちなみにデザイナの自動実装はなしで考えて。 仕様:処理の引数は使用しない Case1 Button.Click += Excute; ※ private void Excute(objact sender, args) ※ ただし、sender,argsはメソッド内で使用しない Case2 Button.Click += (seder,args) => Excute() ; ※ private void Excute(); Case3 Button.Click += (sender,args) => { 処理 } その他
メモリポインタって何? 俺用語?
>>435 button1.Click += new System.EventHandler(Excute);
もな
>>437 Button.Click += Excute;
それは、コンパイル結果として、これと変わらない。
>>438 書き方の問題なんだから、区別すべきだ。
1はない。2と3を使い分け
どう考えても1優先で、クロージャ絡みだけラムダ式にするのが行儀がよい
Button.Click += Excute; このやり方なら Button.Click -= Excute; とすることでイベントを解除できる。 Clickイベント程度なら対象のコントロールが死んだときに勝手に解放されるが 他のクラスや静的イベントに対してラムダ式でイベントを関連付けると、 フォームが死んだあともイベント参照が残ってしまうので、フォームが破棄される前に 参照を解除してやる必要がある。
x86のアセンブラも知らんのか( ・`ω・´)キリッ
中身ががっつりとしたロジックならメソッドにして分離すればいいし ぱっとかけるならラムダのほうがわかりやすい
445 :
デフォルトの名無しさん :2012/05/23(水) 15:00:31.30
普通に自動でいいわ
でもイベントくっつけるところで見やすくなっても仕方ないような気がする
>>442 全然意味がわからん
どういうケースで参照解除が必要になるわけ?
>>436 基本用語すら理解できないならまずは初心者スレへ。
メモリポインタw
よほど無知を晒したのが悔しかったのか。 MSのドキュメントにも普通に使われてるのに。 とにかく初心者スレへ。
スタティックイベントはキッチリremoveしないとね
>>447 静的イベントに関してはMSも「ちゃんと解除するように」っていってるよ
>>450 へーMS様のドキュメントにも普通に使われてるのー。
でもGoogle様で2,450件しかないのはどうよ
2,450件もある。
でもDLL呼び出しに使われるのってセレクタを使ったコールゲートで実現されてるんじゃなかったか メモリポインタのように見えるけど実は違うんだよな
だから、メモリポインタって何ですか?
そこは"an unmanaged memory pointer"で一区切りw 恥ずかしい馬鹿だな
Is this ^^ The YUTORI ^^ ?
目盛りポン太って名前のタヌキかとオモタ
ゆとりこえー。英語のドキュメントは読めませんって言うはずだ。
でなんでメモリーポインタの話になったんだ?
顔真っ赤にして明日までスレ閉じるパターンや
ポインタを知らないゆとりが暴れてるらしい。 まじ初心者スレに池よ。
メモリポインタの意味が分からないだけと思ったら、 ポインタがなんとなく分かったところで、 「メモリポインタ」という言葉が出てきて発狂したってことか。 これは恥ずかしいw
467 :
デフォルトの名無しさん :2012/05/23(水) 21:18:30.93
なんでポインタの話してるん?
愛のメモリー
ポインタのことメモリポインタとか言っちゃう人ってw
470 :
デフォルトの名無しさん :2012/05/23(水) 21:26:37.50
ポインタとは何かという相談があったからだろう?
>>436 >>457 ただこれはないはwww アホすぎw
>俺用語?
>>469 それで普通に通じるのに噛み付いてる奴はただのアホだろう。
技術系の文書読んでないゆとりだと思う。
>>469 マウスポインタと区別したのかもしれない。
どこの技術文書にメモリポインタなんて用語が出てくるんですかww
>>470-471 馬鹿か。
メモリポインタなる用語が登場するまともな文章を一つでも引用してみろ。
475 :
デフォルトの名無しさん :2012/05/23(水) 21:32:00.24
メモリポインタって何?w
昨日は、ラムダがどうたらに始まりテスト仕様書が云々で 今日は、メモリポインタか。
477 :
デフォルトの名無しさん :2012/05/23(水) 21:34:22.83
アホが沸くのに定評のあるスレ
メモリポインタの何が気に食わないん? メモリのポインタってそのままやん。
ひっこみつかなくなってんだろ
テストでメモリポインタと書いて、×にされたのだろう。 ただの逆恨みだな。
>メモリのポインタ >メモリのポインタ >メモリのポインタ >メモリのポインタ >メモリのポインタ なんだよそれ?www
何この…何?
こんなん頭でもプログラミングできるのがC#の良いところだね
アンマネージ メモリ ポインタだろw アンマネージメモリのポインタ、っていうのを適当にカタカナにしただけ 申し訳程度にスペースが入ってるのが面白いw
>>482 ボキュはお馬鹿ちゃんでちゅ、まで読んだ。
だからアセンブラを必修にしないとダメなんだ。 昔の情報処理試験は必須だったのに。
>>482 アンマネージメモリ
ポインタ
分解するとこうなるからな?
.NETが管理していないメモリ領域に対するポインタという意味だ。
間違っても
アンマネージ
メモリポインタ
じゃないからな?w
489 :
デフォルトの名無しさん :2012/05/23(水) 21:51:40.13
>>488 ポインタはメモリを指すものなんだが・・・
釣られた?
492 :
デフォルトの名無しさん :2012/05/23(水) 21:58:11.37
「メモリポインタ」で通じないのは、一人だけ。
おまえのことだよ。
>>490
ポインタって何だと思う?
この糞みたいな流れって
>>407 から始まってるのか
C#の話じゃねえから余所でやれ
495 :
デフォルトの名無しさん :2012/05/23(水) 22:01:59.87
兄「雑誌とってくれ」 妹「そこにあるよ」 兄「どこにあるかじゃなくて…」
昨日ドスパラいってポインタ買って来たよ
MSのドキュメントにもWikipediaにも普通に使われており、ドスパラにも売ってました。 ========= これにて一件落着 =========
結局MSはフォームのもっさり感を解消することなく、切り捨てたか・・・
フォームは、ジェネリック対応にでもして欲しかった…
ラムダの追加は失敗・・・
きびきび動作すれば、普及してデスクトップアプリでC++を凌げたかもしれないのにもったいないな
ラムダの話は、蒸し返すなよw また変なのが沸くからな。使いたい人は、使えばいいし 使いたくない奴は、使わなければいいだけの話。
>>493 >A memory pointer (or just pointer) is a primitive,
>メモリ・ポインター(あるいは単なるポインター)は原始人です、(エキサイト翻訳)
答えは原始人です。
呼んでねぇよ。
呼んでないから帰れ
>>500 BindingSourceを諦めて自分でIListSourceを作るとデータバインド関係は型付けできるよ
----------ここから自演禁止。
えー
511 :
デフォルトの名無しさん :2012/05/23(水) 23:08:48.29
メモリポインターって何ですか?
スレ違い
>>506 そうっすか〜?
呼ばれたような気がして・・・
ゆとりうぜー
結局メモリポインタとは何だったのけ
ゆとりポインタの別名だろ
胸の大きなメアリーねーちゃんのことが訛って伝わったんじゃね?
すみませんわけがわからないです。
普通、プログラミングの世界でポインタと言えば通じるのに
意図するところは理解できるが、経験の浅い学生か妄想で語ってる人だろう。
論理的な概念として、メモリーへではないポインタがあるから、 区別する必要がある文面ではそう書くこともあるだろ。
いつもの釣りだろ。相手するなよ。
もう90レスも消費して相手してるのに負け惜しみもいいとこw
525 :
デフォルトの名無しさん :2012/05/24(木) 10:32:01.05
ポインタはCにおける参照の一種なんだけどね サランラップとかウォークマンみたいなもん
ひょっとして、C#って話すネタがないほど未来がないんですか? なんか、200レスほど、非生産的な争いでスレが埋め尽くされているんだが。
馴れ合いだよ プログラミングのストレス発散の場になってる マ板に行けと言われそうだが
メアリボインダー ってことか
前はあっちが隔離スレだったのに
荒らしが来てるほうが隔離スレになるのだよ
532 :
デフォルトの名無しさん :2012/05/24(木) 13:15:33.71
>>522 ウルトラセブンのウルトラ警備隊に納品するプログラム仕様書なら
区別はもっともだな
結局メアリボインダーって何なのけ?
535 :
デフォルトの名無しさん :2012/05/24(木) 16:05:32.77
拡張メソッドが楽し過ぎるんだが、お前らの最高のメソッドを晒してくれ
System.Linq.Enumerable.Select System.Linq.Enumerable.ToList
Dictionary.GetCache(name, () => new Item()); これだな Dictionaryにあればそれを取り出し なければ作ってDictionaryに登録する
現在アプリケーションが参照しているdllを列挙するにはどうすればいいでしょうか?
>Dictionary.GetCache(name, () => new Item()); これはひどい。
あるアセンブリ(dll/exe)が参照してるアセンブリの名前一覧は、 そのアセンブリのAssemblyオブジェクトのGetReferencedAssembliesメソッドを使えば取得できる。 間接参照まで取りに行くのは面倒。ロードしないといけないし。 ロード済みアセンブリの一覧ならAppDomain.CurrentDomain.GetAssembliesで。
541 :
デフォルトの名無しさん :2012/05/24(木) 16:43:03.58
拡張メソッドくらい使いこなせよアホが
拡張メゾットも使えない馬鹿がいるようなだな。
拡張メソッドってOOの否定だよな。
ただのシンタクスシュガー
シンタッスクソルト
547 :
デフォルトの名無しさん :2012/05/24(木) 16:58:55.31
>>544 内部のプライベートフィールドを参照している訳じゃないから
呼び出し方が便利なスタティックメソッドでしかないだろ
548 :
デフォルトの名無しさん :2012/05/24(木) 16:59:34.63
ヘジのオナニーだしな。
550 :
デフォルトの名無しさん :2012/05/24(木) 17:07:40.40
拡張メソッドを積極的に使うとわりとテストし易い作りになる
memory pointer 約 124,000 件 (0.09 秒)
public static void OnEvent<EventArgsT>( this EventHandler<EventArgsT> self , object sender , EventArgsT e ) where EventArgsT : EventArgs { if( self == null ) return; self( sender , e ); } EventHandler<T>方のイベントの発火でわざわざnullチェックしなくてよくなる。
これはひどい。
555 :
デフォルトの名無しさん :2012/05/24(木) 18:24:01.84
構造体と拡張メソッドの親和性は異常
拡張メソッドは.以外の演算子にした方が良かったかもしれんね まあICollectionが付いてるとEnumerable.Countが使えない糞言語よりゃはるかにマシだが
ネストするとカッコまみれになる通常のメソッドがそもそもおかしかった 可読性もへったくれもあったものではない
>>556 拡張メソッドとインスタンスメソッドの区別が付かなくなるのは、
ちょっと困りものではあるな。
559 :
デフォルトの名無しさん :2012/05/24(木) 19:37:17.18
同じように使えるのが売りなのに区別がつかないと困られても困っちゃうなー
Syntax shit!!
目grepで実装箇所探して修正する簡単なお仕事が難しくなるだろ
なんでも1行で書けるおれすげー
昔の1行野郎と同じ臭いがする。
ヘルスバーグがネイティブコンパイルを検討するとおっしゃっていますが、 いつになるんでしょうかね? ネイティブコンパイルできるようになったら、winのデスクトップアプリは VC++を蹴落とせるかも?
566 :
デフォルトの名無しさん :2012/05/24(木) 21:27:37.48
>>565 問題はWinFormsまたはWpfだよ
既にネイティブで動いてるようなもんでしょ。 あとは自分の最初の決定は間違いだったと認める勇気。
彼が認めなくとも、世間一般はそう思ってるw
>>552 539じゃないけど名前が気に入らない
ConcurrentDictionaryに同じのあるけどGetOrAddだ
そんなこといったらGetOrAddAndGetになるし・・・
ネーミングについては、別の話だろ?
float f = 0.1f; float s = 0f; for(int i = 0;i <10;i++) s += f; なぜ、f は10になるんでしょうか?
エスパー伊藤きてー
>>575 偉そうに振舞う前によく見直した方がいいと思うよ
おまえは程なく恥ずかしくなる
なにこの恥ずかしい馬鹿w
578 :
572 :2012/05/25(金) 01:06:56.72
あ?初心者だからと言って舐めてんじゃねーぞゴルァ
香ばしいのが沸いたか。 安定剤増やしておきますねっ( ´∀`)つθ 次の方、どうぞー
この流れワロス
意地悪してないで教えてやったらどうだ 572の「fが」10になるような言語処理系は存在しねえってwwwww 少なくともC#ではならん
なぜsは10にならないんでしょうか なら答える気になる
10じゃねえや1だわ
む、コレに良く似た質問を24時間ほど前にJavaのスレで見た気がする。
585 :
デフォルトの名無しさん :2012/05/25(金) 04:45:26.81
586 :
デフォルトの名無しさん :2012/05/25(金) 04:47:00.44
おおかた出力するときに間違えてるんだろうなあ。
587 :
デフォルトの名無しさん :2012/05/25(金) 06:21:01.55
>>583 >なぜ、f は10になるんでしょうか?
>なぜ、f は
>fは
fがなんで1になるんだよw
相変わらずこのスレの回答者はレベルが低いな。
590 :
デフォルトの名無しさん :2012/05/25(金) 07:32:51.87
おれが回答者ならスパっと答えてやるのに。 それに比べておまえらときたら
592 :
デフォルトの名無しさん :2012/05/25(金) 07:52:32.76
>>591 今日から君がエスパー君だ。
頼んだよっ。
>>572 は元ネタがありそうな気がする
2ヶ所間違えるという高等テクニックのように見せかけた単なるアホ
最近の自演荒らしは凝ってるねぇ
荒らしというよりは、ただのバカだと思う。 マチガイに気付いたが認められずに顔真っ赤にして怒り出すタイプの人
598 :
デフォルトの名無しさん :2012/05/25(金) 12:24:03.04
質問とレスポンスの間に流れる空気が高度すぎてアスペルガーなオレにはサッパリだぜ
メモリポインタは俺用語?なんていったもんだから、早くスレを流したいのだろう。
メモリポインタという用語は8086アセンブラの本に使われていたよ
つまりおっさん用語ということか
602 :
デフォルトの名無しさん :2012/05/25(金) 19:11:24.13
>>600 もし、そのメモリポインタがスタックポインタに対してIXとかIYを呼ぶ名称なら
C#では何の意味もない言葉だな
C#レベルの高級言語じゃ、スタックの位置を意識することはあり得んからね
で、86アセンブラでのメモリポインタって具体的に何?
掘り返すな。放っておけよ。
ここの人たちって頭いいからか知らないけど、 無駄に相手の状況を深読みして上から目線で断言するの多いね そんなじゃ職場でしょっちゅうかどがたつと思うけどちゃんとお仕事できてますか?お父さんはそれが心配
>>604 どんだけ深読みして上から目線なんだよw
もう全員馬鹿ってことでいいよ。 俺も含めてな。
いやおまえだけだろ、メモリポインタに癇癪を起こしてるのはw PGならふつうにみな通じる。
いや、俺はメモリポインタなんかに興味はないな。 それにポインタのことだろw普通にわかるわw
メモリポインタが理解できない奴は 参照型と値型の区別もできないだろうな。
int型とlong型も理解できないよな。
参照型とか値方とか細かいことを気にしてるヤツはだいたい仕事が出来ない
おれもそう思う。やっぱperlだよな。
>>604 カトラーみたいな技術者のほうがプロジェクトはうまくいくんだよ。
自称SEだらけ日本ではそういうのは邪魔な存在だから
おまえみたいな意見を言う奴多いけど。
>>606 だから、とっくに既出だけどそれは英語の文章において、pointerだけではメモリー上のアドレスを
ポイントするポインタのことだと特定できない場合にだけそういう言い回しをするんだよ。
そういう特殊な文脈でない場合は、英語においてすらmemory pointerなんていうくどい表現はしない。
まして日本語の「ポインタ」は英語の"pointer"よりずっと意味が狭いから、
ことさら「メモリポインタ」なんて言い方はしない。
英語とかプログラミングとかいう以前に日本語の読解力の問題だろw
>>615 ねらーはくどくどそんな長文書かない。おれ長文?www
昨日見た夢なんだけど、ずっと共変と反変について考え続けてすっげー楽しかった 途中でラーメンの天下一品の話題も挿入されてて最高の夢だったわ
619 :
デフォルトの名無しさん :2012/05/25(金) 23:39:54.18
挿入とかすっげー雄臭い
挿入は反変性なの。あなたの型は入らないわ!
もうやめよう・・・ メモリポインタの話はもう・・・
メモリポインタがどうしたって?
掘り返すな。 ぬるぽだったんだよ。そういうことにしとけw
624 :
デフォルトの名無しさん :2012/05/26(土) 01:25:56.05
Microsoft Visual C# 2010 で Professional を試すじゃん 3日ほど遊んで延長120日ほど三日坊主するじゃん 期限切れたから、アンインストールしてExpress入れなおすんだけれど ダブルクリックで開きたいのにExpressが開かない。Professional使用期限が切れとたな。 どこかにExpressで開く設定なんてものありますか?
ファイルの関連付けじゃねえの プログラムで開く→いつもこれを使うにチェック じゃねえの
本当にネイティブ吐くようになるのかい?
メモリポインタが通じないってどんだけ馬鹿なんだよww
628 :
デフォルトの名無しさん :2012/05/26(土) 06:35:02.92
>>627 そんな言葉は存在しないのでは。
ただの「ポインタ」でじゅうぶんだと思うんだけど?
それとも、ポインタとメモリポインタとで意味が違うとか。
630 :
デフォルトの名無しさん :2012/05/26(土) 07:29:07.16
ポインタとメモリポインタが意味違うってwwww どんだけ馬鹿なんだこいつwwwwww
いい加減 using メモリ; と先頭に書くか、 メモリ.ポインタ とでもすべき
633 :
デフォルトの名無しさん :2012/05/26(土) 07:40:05.02
634 :
632 :2012/05/26(土) 07:43:56.11
>>630 「ポインタ」という言葉がすでに存在するのに「メモリポインタ」という言葉を別に作った理由は?
C言語のポインタの定義がメモリのポインタ。 だからメモリポインタのことをポインタと言ってるだけ。 ポインタの意味すら知らない馬鹿はほんと話題に入ってくるなよ。
638 :
デフォルトの名無しさん :2012/05/26(土) 07:55:25.30
>>637 何を言いたいのかわからんが、
「ポインタ」という言葉の定義が明らかなのだから「メモリポインタ」という言葉の意味が類推されて当然、
という主張なのだとすれば
>637はプログラマとしては未来に生きてんな
>>639 言葉そのままの意味なのになにを類推するんだwwww
言語障害か?
(>640は全く帰納と演繹の区別もつかないヴァカなんだな…)
「CSharp Language Specification.doc」には「memory pointer」なんて語は使われてない 「memory of these pointers」って表現は1箇所ある 分かったら二度とC#スレ荒らすなよ
メモリポインタが通じないのはこの言語障害の一人だけだろ? スルーしろよ。
Cの話はスレ違い
c#はcの子分。
都合のいいときばかりCを持ち出しやがるw
>>644 「メモリポインタ」の定義が明らかで、その定義に当てはまるものを指すのに
一貫して「メモリポインタ」が使われるなら問題無い
しかし、名詞の連接ABの意味を名詞A, Bそれぞれの定義から読み手に類推させるのは
曖昧さの元だから技術系文書では避けた方が良い
(当スレが技術文書かどうかは議論の余地があるが、少なくとも名詞の語感に解釈が依存して良い文芸スレでは無い
649 :
デフォルトの名無しさん :2012/05/26(土) 08:48:11.33
ここはC#スレですぅ〜
おっと、ついつい初心者板と勘違いしそうになる
651 :
デフォルトの名無しさん :2012/05/26(土) 08:50:51.85
少なくともスレを250レス近く引っ張るような話題ではない
652 :
デフォルトの名無しさん :2012/05/26(土) 08:57:44.65
メモリポインタみたいな基本用語知らないからって暴れすぎ。
通じないこともないから基本用語だと思い込む>652イタス
654 :
デフォルトの名無しさん :2012/05/26(土) 09:02:02.68
655 :
デフォルトの名無しさん :2012/05/26(土) 09:04:12.74
ダメダこりゃ。言語障害だな。
>>654 名詞の形容詞的用法は解釈が文法でなく組み合わせの慣習で決まる側面があり曖昧なわけだが
>>648 のような、やたらと難解な言葉を使いまわすが良く読むと全く的を射ていない
書き方をする奴はQだろうな
658 :
デフォルトの名無しさん :2012/05/26(土) 09:16:42.37
>>656 メモリポインタに複数の解釈があるなら全部言ってみろよ。
Qは頭悪いんだからあまりいじめてやんなよww ファビョって遁走するぞ まあそれが面白いというなら横から見てるよww
なぜなら、ここが隔離スレだから
>>658 論点がずれとるなあ
漏れや>658がメモリポインタと言う言葉を(メモリ製のポインタ、という解釈ではナンセンス等の理由で)
一意に解釈できると確信したところで、そんなのは曖昧さの不在証明にはならないわけだが
>>661 論点ズレてるのはこのスレでおまえ一人。
メモリポインタで通じるし、曖昧さもない。一人で暴れてるおまえ以外はな。
Qって何だ?オバQか?
>>661 ねえ君なんで日本語の使い方がおかしいの?
もう少し簡潔に書けないの?
それともわざと難しい用語を使うと相手が迷ってしまうとでも思ってるのかなあ?
665 :
デフォルトの名無しさん :2012/05/26(土) 09:41:27.53
>662は匿名掲示板において >論点ズレてるのはこのスレでおまえ一人。 みたいな無根拠な断定を行う狂人なので以後スルーの方向で
オバQって何だ?ぐぐってみたらずいぶん昔のアニメみたいだけど 今の人にそんな話しても通じないよオッサン
と、おっさんが書いていた
もういいから メモリポインタ≒ポインタ みたいに思っておけよw
と、老害が書いていた
ついに知能障害を始めたか 新しい詭弁の特徴のガイドライン ●強弁【議論を回避する質問 <オウム返し>編】 この論法を使用するさいには、守るべきルールがあります。 1.質問の内容は、論点に沿っていなければならない。 2.相手の質問が論点に沿った内容の場合、こちらも答えなければならない。 このルールを守らなかったとき、この論法は議論のテクニックではなく、議論を回避する テクニックになります。そうなれば正しい結論は出せませんので、議論の相手も、(少な くとも論理的に思考できる)聴衆も納得しません。 前は「知能障害を起こす」とされていた詭弁だね
と、知的が書いていた
だめだこりゃ┐(´д`)┌ヤレヤレ
もう終わるの?まだ続けろよ
と、知的が書いていた
>メモリポインタ ひょっとしたら、メモリが集うポインタ、とか、メモリがよく利用するポインタ、という意味かもしれんぞ
確か「メモリポインタ」が初出した本には CALL [DWORD PTR] のような所で使われていて、メモリ内に置かれたデータをアドレスとして CALLするような場合それを「メモリポインタ」と呼んでいたような記憶がある その本の執筆者が独自に作った言葉かもしれないけどそれにしては何回も 書かれていたような
なんでこんな事を書くかというとC#のJITコンパイラが吐き出すバイナリには この CALL [アドレス] がすごく多いからだ まあDLLのCALLに使っているわけで特権レベルの移行を伴うコールゲートなんだけど
680 :
デフォルトの名無しさん :2012/05/26(土) 09:58:49.46
とわけの分からないことを
普通にアセンブラのインデックスレジスタの機能をC言語でボインタと言っただけ。 メモリのアドレスをポイントする機能なのでメモリポインタで通じない馬鹿はいない。
>>680 お前DLLがどのような仕組みで呼び出されているか知らないだろ
自分の無教養さを棚に上げて無知を晒すの恥ずかしくないか?
ポインタをメモリポインタと表記している日本人の書いた参考書を持ってきたら流れが変わるかもしれない
>>684 元からメモリポインタという表記は問題ないという流れだが?
>>685 お前一人が「ない」事にしている流れなんだけど自覚ないみたいだな
>>688 は匿名掲示板において
>お前一人が「ない」事にしている流れなんだ
みたいな無根拠な断定を行う狂人なので以後スルーの方向で
よく読め
>>684 は「問題ない」という流れと書いている
でもここに来て急に分が悪くなったのでメモリポインタを認める方向に
180度転換しただけかもしれんけどな
>>682 ようわからんが、メモリにロードされたDLLは再配置などされないから
JITならロード後にCALL [アドレス]というコードを吐くこともありえるんジャマイカ
よくもまあポインタごときにここまでレスを伸ばせるものだなw
>>693 伸ばすつもりはないんだが強烈なアホが一匹いるもんで
アホに触るのもまたアホ。そうではありませんかな?
メモリポインタ、ポインタメモリ、ポインタメモリポインタ等は同じなんですか?
基本的にポインタ使わない言語のスレでいつまでやるんだ 続きをやりたいならよそでやれよ
>>695 お前●持ってないから必死で書き込みして今まで拒否られてたろ
哀れww
ウンコ持ち
>>697 よく流れを嫁
DLLImportとMarshalを使うと嫌でもポインタについて意識しなきゃならねーんだよ
701 :
デフォルトの名無しさん :2012/05/26(土) 10:48:13.75
基本的に使わないけどなw
c#でもポインタ使えるのにスレチ扱いしてる奴はなんなんだろうか。
>>701 基本的に使う奴もいるんだよ
お前が世界の中心だと思うな
>>702 最近unsafeも知らない奴が増えてきたな
704 :
デフォルトの名無しさん :2012/05/26(土) 10:51:27.04
unsafeなんて知らなくていいよ・・・
SendInputも使えない言語で何言ってやがる
706 :
デフォルトの名無しさん :2012/05/26(土) 10:54:26.39
アホくさ
ネイティブで書かれたDLLとリンクして使うような使い方をしない奴は知らなくていいけどな いろんな使い方があるんだよ
708 :
デフォルトの名無しさん :2012/05/26(土) 10:59:34.67
メモリポインタがどしたー?
レーザポインタとの違いが分かりません。 レーザポインタは任意のオブジェクトをさすことが出来ます。万能のような気がします。
俺の彼女を指し示してください。
711 :
デフォルトの名無しさん :2012/05/26(土) 11:11:14.90
メモリポインタ厨がまだいてワラタ
趣味でプログラミングをしてる奴らって、どの程度のものまで作れるの? 3DCADレベルまで作れる人も多いのか? それとも、下手の横好き? Formにボタンはって、ハロワ程度?
jpegのデコードが遅くて悩んでるレベル
つまり下手の横好きということ?
716 :
デフォルトの名無しさん :2012/05/26(土) 12:00:26.42
俺は前後左右が好き
趣味でプログラミングなんてとても、言葉には出せないなw どんだけ、ヲタなんだよって視線が痛々しすぎる 嘘でもスノボなんていっとけ
おまえは、こんなスレで何を言ってるんだw
C#でunsafeが使える→unsafeで使えるのはpointer。これが正式名称 Marshallのドキュメントにmemory pointerって書いてある→個別のクラスの話なんてどうでもいいです Cの話→死ね
自称プログラマーは屁理屈だけ一人前で肝心のプログラムには何一つ答えられないレベルでFA
しかし、Cで作られたDLLで定義されてるのはCのメモリポインタ。 c#で呼ぶ場合は適切にマーシャリングする必要あり。 an unmanaged memory pointer の登場。
C#スレでP/Invokeの話題はNGってことも知らんのか
アナンマニジドメムリポインタ 玄人はこう発音するんだよな
メモリポインタ 今年の流行語大賞の最有力候補ですね
今年はメモポンの擬人化が流行りそう
メモリポインタでNGするといいと思うの
c#で高速化はするな、ポインタを使うなという話かと思ったら、 メモリポインタを知らなくて暴れてただけでござる。
729 :
デフォルトの名無しさん :2012/05/26(土) 12:48:04.89
メモリポインタって何?
C#でusafeやポインタ使っても別に速くならないことも知らん奴がいるのか
731 :
デフォルトの名無しさん :2012/05/26(土) 12:49:40.59
高速化はアホの条件だからw
そんなことないで。めっちゃはよーなるで。
733 :
デフォルトの名無しさん :2012/05/26(土) 12:56:56.03
ほなさいなら
C#の速度で不満な用途なんてもはやないだろ
737 :
デフォルトの名無しさん :2012/05/26(土) 15:03:40.28
unsafe使って早くなる例うp
Marshal.StructurePtrとかPtrToStructureとかをunsafeで置き換えたら爆速 AllocHGlobalとかやるよりはよっぽど安全だわ
アンマネージリソースに直接アクセスしてる時点でC#高速化の話題としては的外れ
>>714 P/Invokeでlibjpeg-turbo使えよ
turboだぞturbo
高速化、暗号化、スマート
以前Marshal.StructureToPtrとunsafeで速度比較したら10倍も違わなかった。 普通は他の処理も入ってくるから誤差の範囲内に埋もれてしまいそう。
10倍の速度の差が誤差に隠れるのか!?
倍数は相対であって絶対値じゃないですからね
StructureToPtrのコストが問題になるような細かい処理はマネージドで書けよ
速度云々じゃなくて、unsafeが嫌でAllocHGlobal+StructureToPtrって本末転倒だと思うぞw
>>743 10万回繰り返して100ミリ秒ぐらい差があったんだっけか。
差が出るように繰り返しやってもこの程度。
実際に使う時はまとめて確保するから、もっと早く完了する。
よっぽど特殊な用途じゃなければ誤差じゃね?
>>747 このスレには、たとえUIに関しても
1ミリ秒の差であーだこーだ言い出す輩が住み着いているのですよ。
どう考えても「本」はunsafeで使えない部分にあると思うぞ C#の一般論としてね
メモリアロケートは唯一ネイティブよりドットネットのほうが速い処理 アンマネージ呼び出そうなんて素人の発想
unsafeが使えない環境でPtrToStructureなんか使えねえよ 目糞鼻糞
実際、unsafeとか使うところあるか?
アンマネージメソッドが、アンマネージヒープ上の構造体へのポインタをメンバに持った構造体を返すときに そのメンバの構造体にアクセスしたい場合とか
こっちのタイミングでアンマネージヒープを読み書きしたかったら、ポインタ使わないと仕方ない PtrToStructureでは、構造体のメンバ一つだけにアクセスするってことができない 正確には、メモリのオフセットを計算すればできるが、面倒なだけで実質unsafeとやってること変わらん
いやパフォーマンス面はよく調べてないが System.Runtime.InteropServices.FieldOffsetAttributeを使えば一応unsafeを一切使わずに アンマネージコードとの間で構造体や共用体をやりとりできる マーシャラがいつコピーするのか(あるいはしないのか)は知らんが、多分 [Out]や[In](これらも上記名前空間の属性)をうまく指定すればコピーは起きないん ジャマイカ、
>>740 P/Invokeググってあきらめモードになるレベル
ここの奴らって結局WEBで見つけれなかったら、できないってやつがおおいなw
>>755 関数呼び出しやPtrToStructure/StructureToPtrの時にコピーが行われるんだよ
FieldOffset付けたマネージ構造体を通して直接、アンマネージヒープ上の構造体のフィールドを触るってのは
unsafeを使わないとできない(構造体を丸ごと読み書きする必要がある)
>>757 自分がそうでないとまず出てこないセリフだよね
>>757 的外れもいいところ
俺は見つけられてもできないんだよ馬鹿
>>757 Reflectorでパクるから問題ありませんよ(キリッ
762 :
デフォルトの名無しさん :2012/05/26(土) 17:52:12.20
msdn嫁
>>763 おまえらちょっとは自分で、考えるってことできないの?
おまえら、パンツ脱がしてもらわないとオナニーもできないのか?
P/Invoke定義の作成なんてひたすら定数を切るだけだよ 知性なんて全く関係しない
libjpeg-turboわくわくですの
WPF-turbo
memory poin-turbo
senzuri-tutbo
壊れたオルゴールage
で、誰かP/Invokeでrot13暗号をDLLで解く場合とC#unsafeで書いた場合のベンチマークしたん でも確か.NETってMSによってベンチマーク結果を公表する事は禁じられてるんだよな プログラムだけ公表して各自測定してその結果は秘密にしておいてもらうしかない
SuppressUnmanagedCodeSecurity
SHA1ManagedとSHA1CryptoServiceProviderあたりを比べてみればいい 歴然も歴然
起動時の遅さどうにかなりませんか?
>>774 ならん。
だから逆に他アプリが遅くなるようにするか、
起動を予期して先回りするかって方に頭を使うんだ
起動はあれ使えば早くなるんだろ? あれ。名前忘れたけどあれ
>>779 キチガイ
キタ━━━━━━(゚∀゚)━━━━━━ !!
>>780 計測結果と計測に使用したソースコードを含めて公開すれば、
大丈夫なのかな?
>>781 C#使ってる時点でおまえらアホなんだから
ツールもアホでも使えるように出来てる
確かに馬鹿でもチョンでも使えるように出来てるのがC#
>>750 それって書き方によって逆転できる。.netのほうが早いなんて素人の発想。
メモリポインタの話はもう済んだのか
メアリボインダ
テストが終わったあとにunsafeにするだけで、 高速化できるからお手軽だよな。
起動の遅さはどうにもならん
起動はアレ使えば早くなるだろ
以下ループ
意味がわかってないだろ、アレの
以下ループ
以上ループ
アレって何だよ
アレはアレに決まってるだろ
アレって何だよ
例のものを頼む…
まぁ、アレを使うと、起動後が遅くなるがなw アレがわからない奴は、アレをヤフれ
あれってngen.exeか ライブラリの読み込み時間は変わらないぞ
ファイルを開くダイアログにプレビューをつけたいんだけど、どうするの?
自力でそれらしく実装する。
なんだアレ使えないのかよ じゃあアレの存在意義なんだよ
散々ループしてるネタだけど、インストール時にスタートアップにこっそりショートカットを 入れておけば起動の遅さの問題は一応かなりクリアできる。 個人的にはユーザーを馬鹿にしてる手法で嫌だなと思うけど、 でもアドビみたいな大手も使ってる手法でもあるんだよね。
アドビが嫌われる理由だよな。 ほとんどPDFやFlushなんて使わねーのにやたらにアップデートして再起動しろとか。
やっぱり、そんなインチキ臭いことやらなきゃ駄目か・・・
ユーザ側から見たら、.NETってどんなメリットがあるの? あえて言うなら、ソースが見れる?
ユーザから見たら言語なんてどーでもいい
その手のスタートアッププログラムは、ショートカットから削除、 サービスなら無効化するのは、常識。 そもそも.NETの起動が遅いのって確かXPぐらいで Vista以降ならOSと一緒に.NETの起動まで終わってるんじゃないか?
>>810 言語について、言及はしていませんが?
大丈夫ですか?
Vista以降みたいにHDDガリガリ裏でリコンパイルされたらかなわんな。
>>817 こいつ、キチガイ?
言語なんてどこにも書いてなくて、自分が勝手に持ち出してきて・・・
>>818 おばかな質問して引っ込みがつかなくなったんだな
本質をつかれて質問者が顏赤くして発狂中
以下ループ
以上ループ
WPFで作ったら実行するOS側になんか制約ってありますか?
遅いってことに、神経質だな スレの伸びが速いw 遅いことに疑問を挟む余地は無いんだがな
遅くたっていいじゃない
VSのエディタみたいなアウトラインって作れる?
作れる
作れるか作れないかっていうのは無意味だぞ ユーザーの入力が拾えて、描画機能がひと通りあるんだからつくろうと思えばそりゃ何でも作れるわな 簡単な方法はない
>>827 はおまえらが作れるか?って尋ねてるんじゃね?
>>828 あなたは作れますか?
作れるなら、作り方をおしえて
あんなもの、作れる奴なんて日本には皆無じゃね
特に難しいもんじゃないでしょ とっても時間と手間がかかるだけ
> VSのエディタみたいなアウトライン 何いってるかわかりません
最近自分が何を書いているのかすら分かっていないキチガイ増えすぎ
>>837 初心者スレ池と言われてたのにまだこのスレにいるのか。
VSのエディタみたいなアウトラインって俺用語?ww
843 :
デフォルトの名無しさん :2012/05/27(日) 01:37:36.88
844 :
デフォルトの名無しさん :2012/05/27(日) 01:38:39.68
検索もしないで俺用語認定とか
まさか #region これのことを言ってるのか? #endregion
root権限を奪取したいのですが、どうすればいいですか?
847 :
デフォルトの名無しさん :2012/05/27(日) 02:04:01.09
?
848 :
デフォルトの名無しさん :2012/05/27(日) 02:12:15.81
849 :
デフォルトの名無しさん :2012/05/27(日) 02:28:37.40
デザイナー ローダーはルート コンポーネントを指定しませんでしたが、その理由を提示しませんでした。 ってどういう意味ですかね
850 :
デフォルトの名無しさん :2012/05/27(日) 02:29:54.50
>その理由を提示しませんでした。 しっかりしろww
851 :
デフォルトの名無しさん :2012/05/27(日) 03:07:20.91
VS自身がわかんねーってんのに俺らにわかるわけねーだろ ところで、IPアドレスの取得方法ってある?
あるよ。DNSに問い合わせると教えてくれる。
853 :
デフォルトの名無しさん :2012/05/27(日) 03:47:18.69
じゃあ俺はIPアドレスを入力するコントロールについて聞こうかな C++ではあったと思うんだが・・・ やっぱ自作するしかないか?
SysIPAddress32やmsctls_netaddressなんかを使えばいい まあテキストボックスで事足りると思うけど
855 :
デフォルトの名無しさん :2012/05/27(日) 06:30:25.11
>>849 自作コンポーネントじゃね?
コンテナの指定無しでコンポーネントを初期化してるような自作コンポーネントがあると、
たまにデザイナがその状態に陥る。
Designer.cs開いて、原因となってるコンポーネントを削除してからもう一度追加し直すと直る場合もある。
すいません、 ソース内でテキストに書いたソースを別途取り込んで 内部でコンパイルかけて実行するって仕組み たしかあったような気がしたんですけど 検索しても出てこないんです。 どなたか知りませんか?
オワコンCodeDOMのことか どっちかというと開発ツールを作るのに使うAPIで、実行時には何かと使いづらいよ ILGeneratorやExpression Treeで頑張ってLCGするか、IronPythonみたいなLCGに対応したやつを使った方がいい
>>858 いえ、これじゃないです。
ソース内でも読み込んだテキストでもいいからC#のコードを指定位置に挿入したうえで
内部的にコンパイルして実行してくれるって仕組みのやつです
T4?
0.1秒ごとで処理したいんだけどどうすればいいんだ?
>>861 コンピュータでは0.1を誤差無く表現することは不可能なので、
0.1秒ごとに処理も不可能です。
それが言いたくてあんな質問して、自演して答えたんだね。 あー、よく知ってるね えらいえらい。
コンピュータは0.1を誤差なく表現することは可能だが、 1秒ごとに誤差なく処理することは不可能だが?
世の中には有効数字って概念がない人々もいるんだなあ
それは全く関係ない。
>>864 0.1をどうやって表現するの?
データ長は何ビットでも構わないから、教えてよ
decimal d = 0.1m; じゃないの
>>867 馬鹿は文字列で表現すれば?w
コンピュータはどんなデータ構造でも定義して使ってもいいんだよ。
だから人間の定義しだい。
>>862 は馬鹿だから定義できないだけ。
しかし、下らないネタが続くな.... 同じネタでももうすこし知的な話はできんものか。
>>866 そもそも「誤差なく」なんて精度はあり得ないということ
ただの荒らしを放置できないで文句たれてるお前らも同じだぞ。
コンピュータの基礎からやり直したほうがよさそうだな・・・ こんな奴ら、カプセル化、ポリモーフィズム、継承がなんたら、なんて のたまわってるのか・・・ お得意の、動物から派生させてw
コンピュータの中では誤差はないんだというのも信用出来ないよな トンネル効果とか放射線によるメモリ書き換えとかで誤差が生じる可能性があるはず
>>874 おまえ頭の後ろ触ってみろ。パイプが繋がってるはず。
おまえがリアルだと思ってることはすべてコンピュータが作り出した幻想。
>>875 お前、頭の後ろを手で触れるのか!
俺はどうやってもその辺りには触れないんだ。
手をやると何か引っかかるんだ、何も無いはずなのに…
877 :
デフォルトの名無しさん :2012/05/27(日) 13:37:35.03
>>867 大体C#の時間は1Tickが最小単位だから 0.1秒は100万Tickで普通に表記できるだろw
原子時計でも誤差があるというのに!!
>>877 これって相当恥ずかしいことを書いていることがわからないんだろうな
浮動少数というものがどういうものか、ヤフれ
少数=浮動小数という固定観念に縛られた奴が一人いるな。
そもそも数字の誤差なんかよりタイマーの誤差の方がでかいから ずっとスピンウェイト状態ならそれは大丈夫だけど、実行から出力までの間隔が一定になるとは限らん
882 :
デフォルトの名無しさん :2012/05/27(日) 13:53:49.57
>>879 だからC#じゃ時間は整数表記なんだぜ
0.1secじゃなくて100万Tick(long)だ
鬱陶しいからマジレスしとくけど、タイマーっていうのはソフトウェア的には(HW的にはPLLなんてのもあるが) 基準クロックをn分周して作るしかないんだから、時間を浮動小数で表現されても困るだろw 例えば基準クロックが1MHz(1uS)なら、0.1秒はその1E5倍っていう形で表現するんだよ
だから定期的にリブートしないといけないWindowsはダメなんだよ。
定期的にリブートって9xか
886 :
デフォルトの名無しさん :2012/05/27(日) 14:01:18.33
メモリポインタ君の次は0.1秒君って人材豊富すぎだろw
ラムダ式テスト仕様書もメモリポインタも0.1秒も全部愉快犯
おまえらなんの話してんの? こんなスクリプト紛いの高級言語で・・・
メモリポインタとポインタメモリの違いがわかりません
>>883 ってことは、0.1秒単位のタイマーは正確に動作するんだな
レイテンシも競合もなんもなければね
WindowsはリアルタイムOSじゃないと何度言ったら・・・
言葉でなく心で理解しないと何度言っても駄目
リアルタイムOSってどのくらいリアルタイムなの?
0.1秒間隔で動作した、なら使っていい
タイマーが呼ばれた思ったならッ その時スデに割り込みは終わってるんだッ
900 :
デフォルトの名無しさん :2012/05/27(日) 15:18:40.20
バカばっか
↑ お前も含めてなw
902 :
デフォルトの名無しさん :2012/05/27(日) 15:59:21.38
バカばっか
↑駄洒落です
カワバンガ
↑忍者です
906 :
デフォルトの名無しさん :2012/05/27(日) 17:12:56.11
v4.0.30319.1で Console.WriteLine( "abc".Substring(1,1) ); Console.WriteLine( "012345678".Length ); Console.WriteLine( "012345678".Substring(6,6)); //← これで出るエラーの原因をおしえてくるれ
Javaじゃないから 2番目は長さ
原因ってエラーメッセージ見た? 分かりやすく書いてあるはずだけど。 二つめの引数はLength。1文字取りたいんだろ? なら1。
909 :
デフォルトの名無しさん :2012/05/27(日) 17:20:25.59
さんきゅ ちゃんとマニュアル読むわ もうめんどくせーよ
SubStringってイマイチ使い辛いよね。 始点終点がそれぞれIndex Lengthで表現出来るから どの組み合わせでも使えるようにして欲しい。 Linqだとこんな感じ? 3文字目から4文字 .Skip(2).Take(4) 3文字目から5文字目 .Tke(4).Skip(2) 末尾から、、、は多分面倒臭い あり得ないなw
911 :
デフォルトの名無しさん :2012/05/27(日) 17:56:47.27
hey hey hey 時には作れよ拡張メソッド
君センス良いいなー 惚れそうwww
だが断る!
教えてくだされ。
別フォルダのアプリを起動したいのですが、なんでアセンブリが見つからないのでしょうか
ApplicationBaseを呼び出し元に設定すれば読み込めるのですが、
ApplicationBaseは呼び出し先のパスにして、
追加で自アセンブリをロードさせたいです。
http://ideone.com/6ESRM
今日すごい事を発見したぞ! このスレに書いてあるメモリポインタを試してみたんだよ そしたらC#の速度が10倍ほどになった こいつあすげえ
916 :
デフォルトの名無しさん :2012/05/27(日) 22:11:33.75
C++/CLIに引数を渡そうと思うのですが、ポインタの操作方法がよくわかりません。 char*[]型にstring[]のポインタを代入したいです。 よろしくお願いします。
throw new MultiPostException(">> 916");
918 :
916 :2012/05/27(日) 22:20:39.15
throw new anchorDestinationWrongException("
>>917 ");
throw new MailFormNullException("
>>918 ");
catch(MailFormNullException)
{
Console.Output("ageるなカス");
}
C#だとMarshalを使っても
http://msdn.microsoft.com/ja-jp/library/z6cfh6e6 (VS.80).aspx
アンマネージ配列は、COM スタイルのセーフ配列か、または固定長または可変長の
C スタイル配列です。セーフ配列は、関連付けられている配列データの型、ランク、
および上下限を共に伝達する自己記述型の配列です。C スタイルの配列は、下限が
0 で固定され、型が指定されている 1 次元の配列です。マーシャリング サービスは
両方の配列型を制限付きでサポートします。
だからstringの配列をchar *[]にするのはやりにくいなあ
呼び出し先で変換してもらうしかない
921 :
デフォルトの名無しさん :2012/05/27(日) 23:10:25.73
キリンを増やすべきだ
しかし…賛否あるだろうがローマ字の変数名使うぐらいなら C#だと変数名とかだと、いっそのこと、日本語変数名で良い気もする。 変にローマ字と英単語が混ざってるよりわかりやすいと思う。 しかし、問題は、インテリセンスの恩恵が下がってしまう上にかっこわるい。 やはり辞書引いてでも、英語使った方が良いだろうけど。
プロジェクト内で使ってる用語の英和対訳表作って保守するくらいの気合ないと、日本語変数名の方が有効な気がしてる。 まあ、それでもインテリセンスの恩恵下がるのがかなり痛いけど。
日本独自の概念とか専門用語とか 英語に出来ないのもあるしな よくわからん英単語とか使われたら可読性もへったくれもないし
そんな大仰な話じゃなくて IlleagalArgumentやらInvalidStateやらが既にあるんだから WrongXxxだろっていう
O + Null に違和感感じよーぜっていう
MailFormもおかしい
今のところ、日本語はenum位でしか使わないかな
>>920 試してないから合ってるかわからないが
var strs = new[] { "a", "bc" };
var buf = new StringBuilder();
var indices = new List<int>(strs.Length);
foreach (var s in strs) { indices.Add(buf.Length); buf.Append(s).Append('\0'); }
var sbuf = buf.ToString();
fixed (char* pbase = sbuf) {
char*[] ptrs = new char*[strs.Length];
for (int i = 0; i < strs.Length; i++) ptrs[i] = pbase + indices[i];
fixed (char** pp = ptrs) { アンマネージ関数(pp); }
}
これは酷いw
みんな高度なことしてるな このスレレベルだと 年収高いのか?
どうだろうね。 年収が高い人は設計能力がある人。 規模の大きかったり複雑だったりするプログラムが書ける人。 個人的主観だけど、2chのこの板に多い、わりとトリビアルな知識や比較的新しい技術に対して フットワークが軽い人は、実はこの設計能力が弱いタイプなんじゃないかと思う。
>>930 ああそうかStringBuilderを使う手があったか
string str = ""; foreach( string path in paths ) { str += path + '\0'; } str += '\0'; IntPtr p = Marshal.StringToCoTaskMemUni( str );// またはAnsi Unmanaged( p ); Marshal.FreeCoTaskMem( p ); で動いた気がするが 初心者のおいらのことだから信用しないほうがいい
自分の拙い経験から コードはまずstaticクラスから読み込まれるんだと思い そこに配列の要素数を置いて その他各々のクラスで配列宣言の際に静的メンバ・変数を使うようにしてました でも今まではそれでうまく行ってたのに VisualC++、WebDeveloper辺りをインスコしたからか さっき同じプロジェクトをビルドしたらアプリ起動で例外発生するようになりました 原因はstaticのメンバがまだ読み込まれてないせい ならばということでそれをProgramに置いたら一応は解決したんですが やはりProgramには色々物置きたくないんで 外から実行順序いじるようなことって出来ないですか?
そんなことは、不可能。 C#のクラス・構造体、すなわち型は、その型が初めて使われるときに まず、その型のstaticメンバーが初期化される。 private static bool a; みたいに書いてるのが実行される。 次にstaticコンストラクタ static 型名(){ } が実行される。 そしてインスタンスメンバーの初期化、通常のコンストラクタの実行の流れになる。
>>914 そもそも自分自身はドメイン中立にロードされるから明示的にロードする意味は無いはず
見つからないのはWindowsFormsApplication1じゃなくてそれが参照してる何かじゃない?
938 :
デフォルトの名無しさん :2012/05/28(月) 12:27:22.47
記憶 全ての変数を別の変数群に一括代入 再現 記憶関数の右辺と左辺入れ替えて逆代入 A'からAに戻る 人生全体をwhileで括り if elseでA'が起こったらそれ以降の処理と A以前の処理をすっ飛ばす
音楽聴きながら上半身ノリノリで踊りながら仕事してたら事務のねーちゃんに見られちまった
>>938 string State = "A";が
"AB"になって"ABC"になっても
"A"にした瞬間にすべて巻き戻ってると言える
何も実装する必要はない
もし
class World{
string State;
DateTime Date;
}
とするなら
Stateが更新されるたびにメメントパターンを使うしかない
ありがとう、 兄が自衛官だけど ナマポで1千万円ゲットしながらの 食物連鎖の一番下の人♪ ナマポうめぇwwww 400万円ハワイ豪華旅行うめぇwww はいさようならー!ブロックー! |\|\/\_ < \ /⌒⌒⌒⌒\ 川川川川川川彡彡彡/ / /川川川 / / ̄ ̄ヽ ヽ _ハハィ/L_ / ヽ 川川川川川彡彡彡 川川川  ̄/ _ ノ ヽ / \ | /)ノ)人(ヾ(ヽ | 川川川┏━━━━┓ ┏━━━━┓川川 V_ \ | / ノノ从从从ヘ ヽ .| / ⌒ ⌒ ヽ| 川川━┫ <●> ┣━┫ <●> ┣川川 L・ノ レヘ ノ |イ ― ― ヽ | ( | ・ ・ | ) 川川 ┗━━━━┛ ┗━━━━┛|||川 / ∵∴ | | 彡| ( ゜)/ ( ゜) |ミ .| ‥ | 彡彡川 || | L_つ `ー イ N (6.| | |6) | ┬┬┬ | 彡川 / _ _ \ | / 匸> ) |N Y| ヽノ |イ ヽ  ̄ ̄ ノ ヽ ヽ / ヽ | / / _/V |ハ ヽ・皿 ノ ハ| /二⊃ー イ └-| トェェェェェェェェイ |__/ \_/VV \ \  ̄ ̄ / | 二⊃__ノ \ 彡彡ヽ ヽェェェェェェェ/ /ミ /| / ヽ (V) _>ー-イ _(V) / ソ | | 彡彡ヽ /ミミミミ ||/ || (⊂) |∧><∧| (つ) (__/ | | 彡ト、 イミミ ブラックマヨネーズ 吉田 キングコング 梶原 次長課長 河本 オリエンタルラジオ 藤森
マルチプラットホームって思うほど、必要ないよな そのため、払う代償として、非ネイティブってのはあまりにも大きすぎ 基本的にマルチプラットホームで使用されるような、案件なんて おいそれと、飲む会社などほとんど無いぞ
業務システムなんてマルチプラットホーム性もネイティブのレスポンスも要求されないようなものが大半です
安く早くとしか言わないよね
>>945 それは間違い
業務で使用されるアプリケーションは極めて、高いレスポンスが要求される
CAD、出図、資材、マーシャリングシステムなんてのは、ほぼ丸一日、大勢の人に使用されるから
もっさり感なんて出そうものなら、「なんとなく、このソフト遅いよね」みたいなことを
ちょっとアーパーなOLにも指摘される
左様ですCAR
そういったものをでnetを使用すること自体間違っている .netは基本、ちょっとしたツール、DR等の検討する際のプロトタイプでしか 普通は使わないぞ
そうだね間違ってるね
「業務システム」から「業務で使われるアプリケーション」って話を逸らしてる時点で…
そうね逸らしてるわね
話を逸らしてるってか混同してんだろ
せやな混同しとるわな
955 :
デフォルトの名無しさん :2012/05/31(木) 20:00:05.98
もういい加減スレ違いの話題をしないようにできないの?ガキばっかなのここは?
目の前に現実があるのに改めて聞かないと分からないのか?
メモリポインタとかに比べれば.NETの話ってだけマシ
糞と小便くらべてマシとか相当価値観狂ってますね
959 :
デフォルトの名無しさん :2012/05/31(木) 20:06:29.21
次スレどうする?
なんか荒れそうだし少し待つに1票
メモリポインタの話は実に有意義だったじゃないか
待ったところで立ったらその場から荒れる。
遊戯の間違いだろ
あれのどこらへんが有意義なのかw 煽りあってただけだろw
965 :
デフォルトの名無しさん :2012/05/31(木) 20:24:38.23
ふしぎ有意義
超1流のプログラマに趣味がプログラミングって人いないな〜
俺はダイビングが趣味ですしホントそう思いますね
まぁ、そりゃそうだろ プロのボーカリストが趣味カラオケとか、F1パイロットが趣味ドライブなんてのが いないのと同じだよ 趣味がプログラミングなんて口に出す奴は、大抵は下手の横好きw
ヘルズバーグの趣味はプログラミングやろ
「大抵は」を脳内で削除しないでください
972 :
デフォルトの名無しさん :2012/05/31(木) 23:48:08.47
バカばっか
F1ドライバーは子供のころからレースばっかやってるような金持ちのアホがなる職種ですよ プロになってからも趣味とするかはともかく、興味のない分野で簡単に大成できるほど甘くはない
ライフワークって便利な言葉がある
AIはカラオケって言ってたよ。
【韓国BBS】メキシコのアステカ文明を生みだしたのは韓民族!?
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0529&f=national_0529_038.shtml 韓国のコミュニティサイト「ガセンイドットコム」の掲示板に「韓民族が南米アステカ文明を建設」
とのスレッドが立てられたところ、さまざまな意見が寄せられた。
スレ主は、スペイン語専攻言語学者のソン・ソンテ教授は、言語文化を比較分析した
結果、朝鮮半島にあった扶余(ふよ)や渤海(ぼっかい)などの国が滅亡した2度の時期に、
国を失った韓民族が北に移住し、ベーリング海を渡ってメキシコに移り住んだという研究結果を
発表したと紹介。
特にこれまで、15世紀に繁栄したアステカ文明を生みだした人々がどこからきたのか
については謎とされていた。ソン・ソンテ教授の遊民アステカ文明建設説は、1200年前
に韓民族が米大陸に移住したという説で、アジア・モンゴロイドの移住が1万年前だけで
なく、それ以降も続いていたという点を強調している。
また、アステカ文明と朝鮮文明の初期との類似性も指摘した。
ネトウヨの荒らしはいつまで続くのだろうか。
フランス新大臣は韓国人、.Netの作者も韓国系、こりゃこりゃ。
>>977 せっかくのスレが台なしだお
次スレは、相談室じゃなくて、雑談室とすべき。
980 :
デフォルトの名無しさん :2012/06/01(金) 09:53:25.35
雑談する大義名分を与えてどうするんだ
981 :
デフォルトの名無しさん :2012/06/01(金) 10:00:46.80
うめ
うまんねー
C#は遅い、死滅寸前 これで即埋まるだろw
メモリポインタって書いた方がいいんじゃね
これを荒らしの自演、もしくは荒らしに餌やるバカという。
あんなアップルのオナニー言語を使うなんて 仕事だとしたらかわいそうで涙が出る
やっぱり、.netはもっさりしてんな インタプリタじゃしかたないか
インタプリタじゃないよ スクリプトだよ
なんと「らき☆すた」と国土交通省のコラボが実現!
「らき☆すた」の泉こなた、柊かがみ、柊つかさの3人を起用した、
国土交通省関東地方整備局荒川上流河川事務所の新聞広報が埼玉新聞社により展開されるになった。
埼玉が舞台の「らき☆すた」の3人が荒川の広報のイメージキャラクターを務めるもので、
とかく堅いイメージのある国の新聞広報にゆるさを持たせ、親しみを持って読んだ人に
防災や河川の利用について少しでも理解を深めてもらえればとの思いから、今回のコラボが実現したそうだ。
新聞広報は埼玉新聞と読売新聞埼玉県版に3回にわたって掲載。
泉こなた、柊かがみ、柊つかさの1人ずつをイメージキャラクターとして起用する。
第1回は6月23日付の新聞に掲載され、2回目以降の掲載については、荒川上流河川事務所の公式サイトで告知される。
http://www.ota-suke.jp/news/72200 http://blog-imgs-44.fc2.com/6/k/a/6kaori9/kaori32419.jpg
おもちゃの間違いじゃないですか?
モーリス・グリーンがはええんだ!
javaより10倍速いのに 愚かな子だね
996 :
デフォルトの名無しさん :2012/06/01(金) 19:35:20.52
Objective-Cは糞みたいに長い識別子が吹き飛んで、ライブラリがもうちょっと高水準になって、他のIDEで開発できれば悪くない言語だよ
C++からは、俄然遅いのに 愚かな子だね
上
999ならC#は死滅
とどのつまり、C#はおこちゃま用のインタプリタ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。