htmlエンコードて
htmlデコードはしなくていいんですか
チョット質問です。foreach使うときに、パフォーマンス及び 可読性の両方の観点から良い方を教えてください。 Ex1) List<string> testList = GetTestList(); foreach(var str in testList) { 処理 } Ex2) foreach(var str in GetTestList()) { 処理 } Ex2の方が可読性が上がると思うのですが、 パフォーマンスが下がるのか、、変わらないのか・・・ それとも変数に入れる作業がない分早いのか・・・ よろしくお願いします。
変わらん
正確にはGetTestList()実装依存 LINQの解説してるとこの片っ端から嫁
List<>で受けてるんだからそんな大層なもんじゃないっしょ
List<T>でそのまま受けられるってことはGetTestListの戻り値の型はList<T>だから 全く完全に等価だよ
上の書き方だと、testListをどっかで使うのかと思う 修正するときに上の方が気を使う パフォーマンスは、理論上はメモリもCPUも変数1個分だけ上が悪い気がするが まあ、誤差の範囲だろうけど
ildasmで調べてみると、testListの領域は取られてるが使ってないね。 最適化で同じになる。
testListのスコープが無駄に広すぎる 描き方はいただけない
スコープか、なるほど。
>>7 じゃないけど、参考になる。
デバッグ用に一旦変数に入れてから使うやり方をしてたけど、
後々のことを考えるとこっちの方がいいのかな。
GetTestListの実装しだいだろうけど 他スレッドがGetTestList触ったときの挙動の違いとかもあるかな?
コーディングルール次第かなあ。 2の書き方が許されてるなら2でいいんじゃない?
引数paramがdataを持っているか否かの真偽値を返すメソッドの命名で悩んでます bool ValidateParamHasData(Param param); bool CheckParamHasData(Param param); bool HasParamData(Param param); validateもcheckもわかりづらいから使うなとよく言われてるけど 一番下のじゃちんぷんかんぷんだしどうすればいいでしょうか
大抵はデータを持ってる結果HogeするからCanHoge
bool IsValid(Param param);
ごめんなさい、「Hogeする」の部分が「ParamがDataの場合の処理をする」としか言い様がない場合はどうすればいいでしょうか
22 :
18 :2013/10/10(木) 14:54:48.82
ちなみにDataにはData1, Data2, Data3の3種類があってそれぞれを判別するメソッドを分ける予定です
なので
>>20 のお答えもちょっと無理そうです
なんかややこしくて申し訳ないです
そのDataとやらはクラス名なのか値なのかはっきりしろ 具体的にはisなのかequalなのか
24 :
18 :2013/10/10(木) 16:07:03.66
クラス名です
「ParamがDataを持っている場合」なので使うとしたらHasかContainsかなと
>>21 では「ParamがDataの場合の処理をする」と書きましたが
「ParamがDataを持っている場合の処理をする」の誤りです
ならHasDataでいいだろもう
DataAvailable
>>18 っていうか、何そのstaticおじさんみたいな手続き指向脳。
何でParamの状態をParam以外の奴に尋ねるんだよw
全力で許した
29 :
18 :2013/10/10(木) 20:58:47.53
初心者すぎて申し訳ないです Paramの拡張メソッドにHasDataを追加すれば良かった話ですね・・・
なぜ拡張メソッド 普通にParamにプロパティ作れよ そのプロパティの名前で悩むなら、どっかに名前どうするか相談するスレがなかったっけ
ParamはDLLで定義されてるんで直接いじれないんですよ・・・
staticってそんなに駄目なの? MVVMでコードビハインド駄目って理屈と同じ気がする・・・
OOP教条主義者の妄言だから気にしなくていいよ Paramを引数にする処理が複数存在した場合、全部プロパティで検証するのかって考えたらアホらしさが分かるはず
34 :
デフォルトの名無しさん :2013/10/11(金) 08:24:34.82
staticおじさんはグローバル変数ほしさにstatic乱用しちゃうような人のことだから、このケースで使うのは誤り
void Method( IEnumerable<Foo> e ){} というメソッドがあって、別のIEnumerable<Bar>からSelectして渡したいと思いました。 Method( bars.Select( (b) => new Foo( b, ... ) ); でもFooのコンストラクタが例外を出す可能性があって、tryでくくりたいんです。 それで考えたのが Method( bars.SelectMany<Bar, Foo>( (b) => { try { return new Foo[]{ new Foo( b, ... ) }; } catch { reuturn Enumerable.Empty<Foor>(); } } ); ですが、ちょっと不細工だとおもうんですけど 空を返せるSelectってないもんですか 皆さんならどう書きますか
> 空を返せるSelectってないもんですか 拡張メソッド書けば?
37 :
デフォルトの名無しさん :2013/10/11(金) 11:12:07.85
C#が世にでて10年以上経ってるみたいだけど 商用アプリでは相変わらず使われていない CADや高機能なペイント、ドロー系ツールでは お金を頂くようなソフトを作ることは出来ないのでしょうか?
Visual Studioのようなホスティング型のはあるようだよ。 やっぱりGUIのパフォーマンスに難があって、 ハイブリッドになるようだね。
Catalystは.Netだったよ
できません、って答えてほしそうね
無論できないよ
>>37 君は次に、C#はソースが丸見えとか言い出すぞ
無論スケスケやねん
XBOXはXNAで出来るしVitaはmonoベースだしPS3/PS4もUnityで開発出来るようになったし 画像処理が苦手だったらゲーム機なんかに採用されないよね
>>43 っあ、そうなんですか?
それじゃ、シェアウェアの作者は使わないはずですね
今時シェアウェアとか存在してんの?
業務用なんかだと殆どが.netだけどライセンス周りだけNativeっての結構ある
昔はLOHの制限とかあったから極端にメモリを食う用途で.NETを使うのは厳しかった
そんな巨大なバッファを使い捨てにするのが間違ってるだろ 時々呼び出して使う処理だとしても、本体と同一のAppDomainで動かさなきゃいい話 LOH問題の有無にかかわらず、そんないかにも落ちそうな処理は隔離したいわ
副作用おじさん
54 :
710 :2013/10/12(土) 01:15:43.82
>>48 まあ最近組み込み Java 案件も珍しくないとはいえ、うちでは見たことないなぁ。
業務系の受託とか、自社製品の設定機能とか保守機能とかにはよく使ってるが。
55 :
48 :2013/10/12(土) 01:24:14.50
.NET Miocro Frameworkはインターフェース誌2012年8月号でも 付録ARM基盤への対応記事が掲載されていたけど、 USBホストとかソケットとかを標準で持ってるし、 PCと基盤をUSBで繋いでVisualStudioからデバッグ出来るしで、 かなり便利そうだった。
今後は更新なしと聞いた気が。
.net compactより優遇されてる印象 >> Micro
SilverlightくらいのものをMFみたいにオープンソースで公開してくれればいいのにな そしたらCFの分野もカバーできるしスマホもC#一色になるのに
プークスクスw
>>59 物流製造の業務用モバイルは世界中でWindowsCE/Mobileの独占状態なのにねえ……
結局P/Invokeだらけで「これって.netか?」みたいになってるわw
いやWindows Embedded 8も出てるでしょ もともとOSとセットだからあんまりCFとは言わなくなったけど、 ちゃんとCFの最新版が入ってるよ
.NETはもう十分浸透したから、最近のMSは.NETを特別扱いするのをやめて Windowsなら当然使えるものとして単なるAPIの一つと位置付けてる
65 :
710 :2013/10/12(土) 19:41:45.76
>>55 これは俺も知らなかったわ。
こんどハード屋さんに聞いてみよ。
>>64 .NETはもう十分浸透した????????????
だからCompactもMicroもとっくにディスコンでしょ。
>>63 それはCompactじゃない。
Embeddedシリーズは基本的にPC用OSと同じだから当然.NETもフルの.NET。
そこはかとなく70の匂い
72 :
デフォルトの名無しさん :2013/10/12(土) 23:21:28.61
>>68 最新CFは3.9って微妙なバージョン番号なのね
引っ込み付かなくなったアホが暴れる流れ
>>68 一応まだ細々と続いてるのか。
実質的には死んでると思うけど。
>>69 こんなトリビアなネタが話題になるってどんな客先だよw
>>72 ○まだCLR4系になってないから4は付けられない
○遅れてるイメージを持たせないためになるべく大きな数字にした
○次は4系に移行するよというメッセージも含めた
こんなところだろう
TPLとかDLRがCFに必要なのかねえ
いやCLR4ってVMの仕様が変わってる上にBCLにも大幅に手が入ってる TPLとかDLRとかはライブラリがあればCLR2でも動くよ
78 :
デフォルトの名無しさん :2013/10/13(日) 00:44:45.21
いい加減ビヘイビアの自動生成実装してほしい BlendなしでもサクサクMVVM作れないとWPFの意味ないんだけど
ビヘイビアとMVVMってあまり関係がないと思うのですが
propaより複雑なスニペットを用意しろと?
82 :
48 :2013/10/13(日) 08:52:42.41
ルーピーか
Windows Formsってどうなっちゃったの? 結局WINDOWSのGUIは何で作るのが主流なの?
C#と言うかプログラミング自体初心者なんですが 1つ質問させてください あるクラスを配列で利用してるとします そのクラスのメソッド内で自身の配列のインデックスを求めることは可能ですか? メソッドの引数としてインデックスと同じ物を渡せば利用できるのはわかりますが あまりスマートではないと思ったので そもそもこのような設計を考える方が間違いですかね?
>>85 例えばWPFには添付プロパティとかあるわけで一概に間違いと否定できないけど、
でもまあほとんどの場合は間違いだと思うけどね
>>85 クラスに「配列でしか使えない」という制限が無いのでそれを前提とした機能を実装するのは良くないかと。
複数の配列から参照される事もあるし素直にArray.IndexOfにすべし。
88 :
85 :2013/10/13(日) 16:37:28.13
やっぱりインデックスの数値が必要な処理は利用する側で実装して クラス内には内包しないようにした方が良いんですね 勉強になりましたありがとうございます
あららら・・・ 何か勘違いさせちゃってるようだけどhw
90 :
85 :2013/10/13(日) 16:53:26.68
ん?何か勘違いしてますか?俺
is演算子の使い道教えて
使い古された感はありますが、伝統的に 今現在でもまずはこれです。 This is a pen.
public overrides bool Equals(object obj) { return obj is T && Equals((T)obj); }
荒井注がとっさに出てくるって絶対50代だろw
96 :
デフォルトの名無しさん :2013/10/13(日) 18:41:14.63
小学生の頃英語わからないからマイケルジャクソンのBADを this is a penだけで歌ってたなー
>>92 俺のときは this is a pencil. by 40代
両方だろ
XAMLでCommand記述したら自動的にVMにCommand追加してバインドしてくれるようになった?
それは本末転倒だろww 何のためにVMで抽象化してるのか考えろ 必要ないと思うなら普通にイベントハンドラ使え
unsafeコードで配列アクセスはポインタのインクリメント/デクリメントを極力使って TPLでパラレル化をしたら ともにTVTestでテレビ見ながら、 Q9550で1000x1000の逆行列で2.54秒ぐらい 10000x10000の逆行列で2822秒ってとこ。 これってPure Cだとどれぐらいで実行できまつか?
>TVTestでテレビ見ながら とかわけ分からん条件ついてるし(´・ω・`)しらんがなとしか
TVTestとかPT3とか使ってるのは大概アニオタ アニオタは自分理論で攻めてくるから注意な こちらに大人の対応が求められる
みんな Build Insider とか行くの?
106 :
デフォルトの名無しさん :2013/10/21(月) 23:14:44.23
質問させてください。 やりたいことは、Windowsphone8で日本語(SJIS)のWebサイトを読み出したい。 Windowsphone8ではGetEncoding("Shift-JIS")が使えません。 www.atmarkit.co.jp/ait/articles/1301/17/news074.html ここのサンプルを使おうとしましたが、byte配列で渡す必要があります。 WebclientのDownloadDataメソッドもWP8では使えず Stringからbyte配列への変換も、GetEncoding("Shift-JIS")が 使えず行き詰まってしまいました。 なにか良い方法ないでしょうか?
C++なんて使えなかった頃はオープンソースのSJIS用Encodingを入れてたことを思えば
C++が使えなかった頃にそんなオープンソースのが手に入ったのかな
GetEncoding(932)じゃ駄目? というかShift-JISじゃなくてShift_JISだぞ
111 :
デフォルトの名無しさん :2013/10/21(月) 23:58:08.12
こういうところ手抜きだよな
WPFの放置っぷりも酷いからな、マジでModernといいWPFといいM$何がしたいのかわからない VSだけはマメに更新しやがるのに、いい加減WPF数あるバグなおせよ
We bet on Mobileなんて言っちゃってるからなぁ Mobileは鳴かず飛ばず、Desktopからも信頼を失うことにならないか
115 :
デフォルトの名無しさん :2013/10/22(火) 10:31:09.36
DataSet<T>というジェネリッククラスがあります。 このクラスから派生した DataSet<Member> が DataSet<T> をインスタンス化したものであることを確認するために members.GetType() == typeof(DataSet<>) とやったけどうまくいきません 本当はどう書くべき何でしょうか
WPFは、ActiveXめいて来た感じだね 方向性はこれで良いと思うが、直感的に使い方が分らないのが非常に良くない 総合的に考えて、結局旧来フォームベースで作ってしまう
>>115 意味が良くわからない、もう少し丁寧に何がしたいのか何が問題なのかを
#members.GetType().GetGenericTypeDefinition() == typeof(DataSet<>)
#という事なのか?な?
>>115 派生型で型引数の数が同じで同じ型名とかなんの嫌がらせだ。
class DerivedDataSet<T> : DataSet<T> { ... }
であるとして、
DerivedDataSet<Hoge>はDataSet<T>から派生したんじゃなくてDataSet<Hoge>から派生したもの。
これはDerivedDataSet<Hoge>のインスタンスをDataSet<int>にキャストできないことから明らか。
つまり、DerivedDataSet<Hoge>はDataSet<T>自体とは直接の関係がない。
ジェネリックなら素直に型制約じゃ駄目なの?
って、派生じゃなくて構築された型のことだったのか…?
C++と違って微妙に不便な型制約、もうちょっと注意深く作って欲しかったり・・・ 最近ちょっと微妙な出来の悪さにイライラw
コンパイル時解決じゃない以上今ぐらいが限界だと思うが enum, delegate辺りの型制約は欲しいけど
制約は、決め打ち制約ではなくて簡単なスクリプト書かせてくれればそれでいいんだけどね C++だとコンパイルタイムメタプログラミングでどんな制約でもできてしまうけど、コードが直感的でない
123 :
115 :2013/10/22(火) 11:32:42.61
>>117 これでした
ようはいくつかあるプロパティの中から DataSet<T> であるプロパティを全てリストアップしたいのです
これが意外と難しい
System.Reflection.PropertyInfo[] tmp = typeof(調べたい型).GetProperties().Where((item) => item.PropertyType.GetGenericTypeDefinition() == typeof(DataSet<>)).ToArray(); 自分のやり方だと、こんな感じですかね
GetGenericTypeDefinitionはIsGenericTypeがfalseだと例外発生するって書いてあるぞ
Dictionary<string, List<string>> dic; // いくつかの要素が入ってるとする var results = new List<string>(); foreach(var value in dic.Values) results.InsertRange(results.Count, value); Dictionaryの値を一つのList<string>にまとめる処理なんですが LINQとか使って一行で書けたりしませんか?
var results = dic.Values.SelectMany(x => x); もしくは var results = from x in dic.Values from y in x select y; もしList<T>にしたければresult.ToList()すればよい
WPFの話の続きだけど、いまC#(.NET)で、Windows アプリケーションを作るとしたら、 WindowsForm と WPF のどちらがいいの? 仕事(納品する)とかではないので、ざっくりコメントをいただければとうれしいです。
ざっくりもなにもForms以外ありえない
扱える土方が多い技術を使え
手段の探索に時間をかけるなんて無駄
WPFは手続き型脳には無理
自分でどっちにするか決めれない脳な時点で無理
ふわっ とか もこっ とか しゅいん! みたいなのが欲しいときはWPF それ以外は全部WinFormでいいよ
GDIですごく描画重いのWPFにしたら直る?
倍率ドン!更に倍!ってな感じに余計重くなる
独自に描画してて重いなら多分爆速になる 普通に使ってて重いなら多分余計重くなる
わからなくて普通
どう考えても独自に描画してるほうが爆速。
いやいや WPFのシェーダ使ったエフェクトとかHWアクセラレーションなしじゃとんでもなく遅くなるよ
どうやって描画するかによるだろ。どんだけ馬鹿なんだよ
>>138 独自描画のコードがスパゲッティってことだろ
純正です 重たいユーザーコントロールをフォームにはっつけたらサイズ変更の時にすごく重いです
WPFに移行できるってことはそのユーザーコントロールもお前が作ってるんだな? なら作りが悪いんだろ
描画の問題じゃない可能性も高い データグリッドっぽい自作コントロールで、UIの仮想化を忘れてるとかな
WPFなんて論外。
そうだ 時代はストアアプリ
xboxのストアは成功したと言えるがWindows8は成功しないだろうな。
ストアが成功するためには決済が紐ついてないとだめだよな 普通のPCはまずそれがない デスクトップの先がないからってジタバタし過ぎて死期を早めたんじゃないか
List<T>.Contains()が遅くて困ってる。 集合Aに対してxが存在するかどうか判断する最速の方法教えて。
集合Aが集合という以上の情報を持っていないなら線形探索する以外どうにもならん Dictionary<TKey,TValue>併用とかでどうにかするとか リストじゃなくてツリーで良いならSortedDictionary<TKey, TValue>使うとか
あとTが構造体でEqualsオーバーライドしてないとか
ありがとうございます。試してみます。
あとは設計の問題だったりすることも…… 例えば描画のタイミングで毎回リストを探索しちゃってるとか
>>153 はIEquatable<T>実装の方がいいね
Javaだと、 List: インターフェース、 ArrayList : List の実装クラスの一つ、 List のスーパーインターフェースとして Iterator があるけど、 C# だと、以下が対応するような感じという理解であってますか? ArrayList → C# での List (具象クラス) List → IList (インターフェース) Iterator → IEnumerable (インターフェース) C# の場合、IEnumerable は Linq で使える extention method とかも定義されているので、 Java の Iterator とは若干違いますが・・・
まあ大体合ってる 拡張メソッドは基本的に記法だけの問題だからIEnumerable自体の機能ではない
160 :
デフォルトの名無しさん :2013/10/25(金) 17:13:47.40
object型でもらった引数を元のT型(いくつかの定義されている中の1つ)に戻すにはどうすればいいですか
キャストする以外に何かあるのか?
162 :
デフォルトの名無しさん :2013/10/25(金) 17:17:56.00
補足です。 GetType()によるTypeはわかっています。objectをこのType型に昇格?させたいのですが、どうすればいいですか
キャストって書いてあるのになんで無視するかな
って同時だっただけか
165 :
デフォルトの名無しさん :2013/10/25(金) 17:26:56.58
object obj = 何か Type type = obj.GetType(); list.Add ((*1)obj); (*1)ここに入れる式を教えて下さい。ここはobject型ではなく元の型が必要です
いくつか用意されているなら、かたっばしからasでキャストかな
167 :
デフォルトの名無しさん :2013/10/25(金) 17:35:22.94
list.Add ((*2)(*1)obj); もう少し正確に書くとライブラリによって定義された(*2)の型変換が発動するために、 (*1)は元の型にもどさなければいけません。 型は(自分以外の人間が作るので)実行時にしかわかりません。 だから動的にGetType()の結果と同じ型に昇格させるにはどうすればいいですか
>>165 listでコレクションの型が確定してる、またはobjectなわけで、元の型っているの?
listは何なんだよということだわな
>>167 Addにオーバーロードがあるのかな?
ケース分けしてケース毎にキャスト
if (t = typeof(TypeA)) list.Add ((TypeA)obj);
else if (t == typeof(TypeB)) list.Add ((TypeB)obj);
else if (t == typeof(TypeC)) list.Add ((TypeC)obj);
>>157 >List → IList (インターフェース)
いえ違います
左辺がJAVAなんだろ
173 :
デフォルトの名無しさん :2013/10/25(金) 18:04:01.39
dynamic型にキャストしたら実行時に適切な型に解決してくれました。 list.Add ((*2)(*1)obj); ↓ list.Add ((dynamic)obj); ありがとうございました。
listはTとか型引数ないのか void Hage<T>( object obj ) { ... list.Add( (T)obj ); } みたいなかんじでよぉ
オーバーロードがあるから無理 オーバーロードはコンパイル時に解決する必要があるけど ジェネリックの特殊化が起きるのは実行時だからな
?
dynamicにもインテリセンスあっていいのに object型の予測変換ぐらい入れとけよ
いやdynamicだと派生クラスでGetTypeとかオーバーロードされてたらそっちが呼ばれる 間違った候補を表示する可能性があるからダメ
>>175 じゃあジェネリックの型パラメータ制約は実行時にチェックされるのか?
C#のGenericはJIT時だな
>>179 そうだよ
ジェネリックは一切言語に依存しない
制約は当然C#コンパイラがチェックするけどそれはただのMSの親切で コンパイル後にも制約の情報は残ってて最終的にJITがチェックする
VSの99%は愛でできてるからな。
J言語とはちゃうねん
J++っていつの間にかC#になってたんだな
J++はヘルスバーグがMSに来て最初の仕事だった J++にはdelegateがあるんだよね
PGになったのが30過ぎてからだから毎日すごいプレッシャーだわ・・・ でも好きな仕事だから楽しいんだけどね、おまえらももっと楽しめよ
dynamic型はある意味便利だけどリファクタツールが使えなくなってメチャメチャ不便になるというもろ刃の剣 独立した構文中でのみ有効で良かったような気がする、ぶちまけてしまっては残念言語になってしまう という訳でみんなdynamicの使用は控えようよ><
dynamicが必要な状況ってそうそうないだろ
静的型付き言語のメリットがなくなっちゃうよね 事実VS使ってるのにXAML書くのがJS書くのと変わらないくらいしんどいし
191 :
48 :2013/10/26(土) 09:15:59.34
>>186 ヘルスバーグの筋のよさにはどうしても惹かれてしまう
ヘルスバーグなんて有益なアプリケーションは何一つかいてないじゃんw 言語の仕様を決めてるだけw
優れた性能のテレビを作った人に 「お前 世に名を残す番組一つも出してないな」 と言ってるようなもの
でもテレビ作ったやつなんて誰も興味ないし覚えてない 良い番組は記憶に残るし監督の名前も広まる
194は論理的思考のできないバカ 例えて言うならプログラミング言語の優劣の議論でいきなり 一般利用者にはソフトの名前しか記憶に残らない と言い出すひ等しい
既にヘジたんの名前は十分に売れていると思うのは俺の気のせい?
売れてない WindowsでC#やって2ちゃんねるに入り浸っている人以外
実質C#やvb.netで作成された優秀なアプリケーションはないしな ガベコレうぜーし
>>197 つturbo pascal
つdelphi
屁痔がデルファイに携わったとしても デルファイはC#と違って 信者の多くは屁痔を知らないだろう
ゲーム専用ですし 主舞台とはいいつつも有名なパッケージ製品がないのは何故でしょう 一つ二つあってもいいですよね Javaにはありますよ
任天堂の倒し方w
>>201 C#の主舞台がゲーム?
ゲームではC+++DirectXの一人勝ちだろ
>>204 情報が古いよオッサンw
業界から消えた方が世のため人のためじゃね
>>201 C#の主舞台は中小企業なのでパッケージ製品をカスタムするよりスクラッチした方がいいのです
マ板でやれ
C#は、Delphiの後継と言ってよいの? あと TypeScript ってMSが作ったと聞いていますが、これもヘルスバーグ氏が作ったの?
どっからDelphiが来たんだよ。ggrks
212 :
210 :2013/10/26(土) 14:27:28.75
Turbo PascalやDelphiつくったヘルスバーグ氏がC#も作ったって事で、 別にC#はDelphiの後継というわけではないって事か。
>>212 漢字はよく似ているけれどもね、まあJavaとも似ているが
C#で作られたゲームを挙げてみろよw
Unityで作られたゲームの最低でも1/10以上はC#だろ
>>210 Delphiのメソッドポインタや手続きポインタがdelegateの原型
WP7.5用ストアでも覗けばいいんじゃね?
稀によく
>>214 みたいな奴いるがほとんどの場合単なる無能だよな
ゲームじゃないけど、誰でも知ってる一部上場企業のパッケージをいくつか C# でやったことはあるな。
C#を使う理由がわからん
馬鹿乙
Brainfuckとc#どれが一番楽ですか?
自分で考えろ無能
>>223 いちいち聞くようなやつは、全部諦めるのが一番楽
給料日後の週末だから大きい子供がいっぱい
中小零細は25日払いじゃないところも多いんだけどね
大きいとは大きい会社のということですか
>>228 身体ばっかり大きくて脳みそがないってことだろ。
つまりおまえのことだwww
>>210 なんだったか、delphiのライブラリの独特な仕様の一部が
そのまま.NET Frameworkにも入っている、ってのがあった気がする
何の機能の部分だったかさっぱり思い出せないんだけど
今見たらtypescriptってC#みたいになってるな
>>210 TypeScriptはヘルスバーグだよ
ヘジたん love!
ObserverパターンをRx使わなくてもいいように、もっと簡単にしてほしい
いやObserverパターンってC#のイベントそのものだぞ Observerパターンを言語に取り込んだのがイベントだ Rxは(GoFでいう)Observerパターンとは全く異なるもの
仮面ライダー?
ObserverパターンでいうところのObserverをDSL使ってプル型っぽく書けるようにしたのがRxだけど あれをObserverパターンだと言うとGoF信者が発狂する
EventArgs e = await button.Click; ができればRxは完全に用済みなわけだけど、できないんだっけ? 自分で作るのは簡単にできそうだな
>>235 え?そうなの?
GoFのデザパタのひとつだとは知ってたんだけど、C#のイベントがObserverで実装されてたんだ・・・
なんかみんな詳しいね、俺の現場にもみんなのような師匠が居ればレベルアップできるんだけどな・・・
MVPの弟子になればいいじゃん たぶん糞面白くもないWPFのレクチャーされるだろうが
技術はみんな持ってる 待遇に見合わないから出し惜しみしたり、競争の優位性保つために隠したり そんなもんだよ こいつら技術ねえなあって思っても何だかんだ仕事は進むだろ? 技術ガチなかったら進まないから
>>239 俺も学生の頃にネットの凄い人たちを見ていて、
会社でプロでやっている人たちはこんなに凄いんだ、付いて行けるかなと心配してたんだが、、、
入った会社のソースを見て、余りのレベルの低さに衝撃&目眩。。。
でも、転職先で偶然MVPな人と一緒に仕事をする事になって、かなり勉強させて貰った。
だから技術はあるんだよ でも教えたくなる後輩とそうでない後輩はいる
いや、高い技術を見せてないだけだったら分かるんだが、 凄まじいネストの嵐、何千行にもなる関数、どこに飛んでるののgoto文、 switch,caseラベルに直値で10進と16進の混在とか、 せめて入門書レベルでいいから普通に書こうよ。
そしてテストしてないんですよねwww
やっぱ年上って教え辛いんですかね? 業界入ったの遅いから年齢だけはどうしようもないんですよね 好きな仕事なんでやる気はありまくりなんだけど
>>244 嫌がらせだろ
かなり嫌われてるんだな、
>>247 いや俺が入る前から有る主力製品のソースを読む機会が有って見てみたんだ。
技術不足でまともに進まないからデスマとかIT土方って言葉があるんだと思うぞ
普段使えない同僚が社外で個人作のフリーソフトの出来が良くて不思議だった
レベル高い人って共通して書くスピードが半端じゃなくて仕事が速いってみんな言いますね そんな人見た事ないですけど・・・
>>251 うちに1人すごい人がいるけど、突出しているのはその人くらいですね
100人に1人もいないんじゃないでしょうかね
スピードと言うより、無駄や手戻りがなく思考時間が短くて効率がいいんでしょうね
バグも少ないですよ
ある程度詳しい設計書が出来てる現場にヘルプで入るとノータイムでコードだけ打ってる感じになる
出来る新人がいるけど出世されたらむかつくからエクセルばっかり書かせてる
>>218 >稀によく
「稀」なのか「よく」なのかはっきりせい!
バースト誤りみたいなもんだろ
新参乙
>>249 それは仕様策定側、要件定義側の問題では?
>>255 統計学的に偏りがひどいということだろう。
職場、外ではそんなアホなことを言う奴はまずないのに、2chだと普通にいるとか。
統計学的() さすが70。いうことが違う
マ板でやれってんだろキチガイども
放置しとけよ おたくもキチガイに言葉が通じると思ってるのかい
外では稀にしかニートを見かけないのになぜかこのスレにはよくいるとか。
画像を100個ほど読み込むにあたって, image[0]=Properties.Resources.image0; image[1]=Properties.Resources.image1; image[2]=Properties.Resources.image2; というふうにして読み込んでいます. これを, for(i=0;i<100;i++){ image[i]=Properties.Resources.image+i.ToStrung(); } という感じにしたいのですが,これではうまく動きませんでした. どうか助けてください.
Resources.Designer.csのコードを開いてみな
>>266 今日の半日分と次の1週間分のモヤモヤが解決しました!
268 :
デフォルトの名無しさん :2013/10/27(日) 23:33:29.54
>>267 じゃあ次は漏れのムラムラをかいsy・・・
おっと仕事しすぎた。もう寝るお。
269 :
デフォルトの名無しさん :2013/10/27(日) 23:37:49.31
とんでもないところで質問してしまったのか・・・ ともあれ,ありがとうございました。。
キモイんだよ馬鹿親父どもが
List<T>.Contains()が遅くて困ってたけど、最適化が終わったので報告。 統計とると基本、falseになる場合が99%だったのでほとんど全探索してた模様。 あとループ末端でList<>Count()はかなりキツイ。あと、Stack<>も遅いことが判明。 Time0=00:01:14.9643356 Time1=00:00:11.8496268 hash化 Time2=00:00:02.1716764 Stack<>排除 自前実装 処理のアルゴリズムはそのままで結構速くなりました。
SQL Server使わずにDictionary使う人いるんですが、理由を聞くとKey Valueはテキストだから速い!と言っていました。
連想配列って良くわからないんだけどそんなに速いの?
>>272 のHash化もDictionaryってことだよね?
SQL Serverとの比較で言うならDictionaryじゃなくてKey-value storeじゃないか あと.NETのString::GetHashCodeは結果をキャッシュしないからあまり性能が良くない
>>274 Dictionary側では当然キャッシュしてるからほとんど影響ないよ
要素がいくつあろうがGetHashCodeは一回だ
>>272 IEnumerable<T>.Count()はコレクションがIConnection<T>を実装してる場合は
実際に要素を数えずICollection<T>.Countプロパティを使うので
List<T>.Count()は定数時間だよ
あとハッシュ使う以外にもList<T>.BinarySearchを使う方法もある
追加削除はどうしてもハッシュより遅くなるけど検索だけならこれでも十分
for (int i = 0; i < list.Count(); i++) for (int i = 0, listcnt = list.Count(); i < listcnt; i++) この差が半端ない。パフォーマンス分析してCount()がトップ3に出てくるなら要チェック。
いやCountプロパティの方使えよ
for内で要素数変えないならforの外に出せよ
使っても倍以上の差が開く。
もうちょっと実りのある話が欲しくないか
それは難しい相談だな。
なんでよw
そもそもforeach使えよ
いまはforの話をしてるんです
IEnumerable<T>.Count()の実装って
var collection = source as ICollection<T>;
if (collection == null) return collection.Count;
else { int n = 0; foreach(var x in source) n++; return n; }
だったはずだから型チェックとプロパティ呼び出しだけの差だね
そんなことで倍以上ってちょっと現実的な状況とは思えないね
普通はループの中の処理のほうが圧倒的に重いし、
検索ならそんな小手先の工夫じゃなくて
>>272 で自分自身が言ってるように
アルゴリズムを工夫するべき
1命令と2命令は2倍の差って言いたいんだと思ってたけど違うのか
その差を軽視してる人は数値計算したことない人だろう。 実際、パフォーマンス分析走らせれば、Genericsがらみだらけなんだから、 便利さ優先で速度後回しのライブラリだよ。ボトルネックになって当然。
いや、君スレタイ見てるかな
数値計算したことがあれば、細かいこと気にするのは最後ににほんの一部分だけでいい ということは身をもって理解してるはずだが
292 :
デフォルトの名無しさん :2013/10/28(月) 18:29:19.48
コンテキスト(Context)の省略形がいつも悩むのですが、いい3-4文字の省略形ないですか ctx = 変 cntx = おかしい cntext = なげーよ
C#自体のオーバーヘッド気にしない時点でナンセンスな話だろ
Fortran.net使え。
よく見かけるのはcontかな
数値計算するときは結果を出すとための計算式が全て。それを改善したら1万倍とか速くなる プログラムでの改善なんてごくわずかだろ
しかし電子計算機には電子計算機に適した計算式があるのだから仕方がない。 基本and、or、notなんだから。
もうFPGAでもやってろや
元の形を残せないなら、最初の数文字を使うことが多いから、con とか。 でも、7 文字くらいだったらそのままでいいんじゃないかと。分かりやすいし。
>>292 たった7文字を略そうと思う発想そのものが変だとは思わないんだ
思ってたら聞かないだろ間抜け
WCF初めて知った・・・恥ずかしい・・・/// そしてググるとかずきのサイト・・・彼、若いのにほんとすごいよね 尾上のサイトより何倍も役にたってる WCFのここは抑えとけってあったらアドバイスお願いします
もう時代が二回りしてるな
まだVS2008使ってるというのにMSはどこまで先へ行ってしまったのか。 なぜか追いかける気がしない。先で転んでそうだから。
いまだにVS2008使ってるか ただのアホだろ
vsは2012か2008の2択だろjk
2010だよ Win8なんざ使う気ねぇ
タッチパネル使わないのに2012で開発してるやつはキチガイ 2008は新しい技術についていけなかった老害キチガイ 2010は天才
compact framework案件が多いんだよファック
311 :
デフォルトの名無しさん :2013/10/29(火) 16:41:10.87
おまいらってキーボードやマウスは会社が用意したやつ使ってる? それとも自分で持ってきたやつ使ってる?
>>311 自社内なら会社の
出向でノートPCあてがわれたらキーボードだけ持ってく(許可おりれば)
>>312 さんくす
やっぱり自分の使いやすいキーボードの方がいいよね
>>313 使いやすい云々ってよりストロークが異様に浅いやつで打ってると
指おかしくなってくる
>>314 まじか
俺は滑らすように打つタイプだから浅い方がいいな
asyncとawaitの為だけに2012買ったのぜ・・・
.NET 5.0の新機能楽しみにしています
>>318 と.NET4.0の機能もまともに使えていない輩が申しております。
キーボードよりリファレンス持ち込み制限がキツイ 高級言語はライブラリでかいし覚えられん
>>320 うるさいところはスマホも持ち込めないしキツいよねえ
Java の SortedLinkedHashMap の C# 版みたいなクラスはありますか? C# のDictionary に、追加した順を保持してほしいです。 MSDNを見たところ、そういったクラスはなさそうなのですが・・・・
標準にはない
>>322 Javaにそんな名前のクラスはないが
順番保持のDictionaryならKeyedCollectionが使えるかも
326 :
デフォルトの名無しさん :2013/10/29(火) 23:41:09.36
Windowsアプリケーションを作成しています。 ソフトのアップデートに伴って、 タスクバー上のアイコン画像も変更したのですが 特定の端末上で実行すると、どうしても旧画像(***.ico)が使用されている様です。 例) A端末 → 新しい画像に切り替わっている B端末 → 旧画像のままでタスクバー上に表示されてしまう。 備考: PCを再起動してもB端末上では旧画像のままタスクバーにアイコンが表示されています。 どうすれば正常にB端末でもアイコンを切り替える事が出来ますでしょうか? ※切り替わらないのは、タスクバー上のアイコンのみです。
>>326 複数の画像を含むアイコンを使ってるのではない?
そのうち1種類しか変更してないとか
328 :
デフォルトの名無しさん :2013/10/30(水) 00:33:33.40
>>327 いいえ。新しく作成した***.ico ファイルを指定してビルドをしています。
アイコンキャッシュ 削除でぐぐれ
あれもアイコンキャッシュを使ってるのか なるほど
| ̄``''- 、 | `゙''ー- 、 ________ | ,. -‐ ''´ ̄ ̄`ヽ、_ / |, - '´ ̄ `ヽ、 / / `ヽ、ヽ / _/ ヽヽ/ / / / / / / ヽハ く / /! | 〃 _/__ l| | | | | | | ||ヽ \l// / | /|'´ ∧ || | |ー、|| | | l | ヽ /ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ / | ||ヽ { ,r===、 \| _!V |// // .! | | || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘ | ハ|| || | """ ┌---┐ ` / // | V !ヽ ト! ヽ、 | ! / //| / ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | / ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/ |(/(/(/(/(/(/(/(/(/(/│|| |\ 〃 r'´ ̄ヽ. | | ト / \ /  ̄`ア | | | ⌒/ 入 〉  ̄二) 知ってるが | | | / // ヽ 〈! ,. -' | | ヽ∠-----', '´ ', | \| | .お前の態度が | |<二Z二 ̄ / ', | | | _r'---| [ ``ヽ、 ', | | | 気に入らない >-、__ [ ヽ ! \.| l. ヽ、 [ ヽ | ヽ| \ r' ヽ、 |
そういうデカいAAは答えが出る前に貼るものよ
ツボをはずしたAAほど間抜けなものはないな
AA探しに1時間以上かかったんだろう
335 :
デフォルトの名無しさん :2013/10/30(水) 12:27:32.10
フォントにMeiryo UIを使ってgraphics.DrawStringするときStringFormatにLineAlignment.Farを設定すると j や y の下が切れるんですが、他の環境でも同じですか? Windows7です。
あれ? StringFormat.GenericDefaultから始めると下が切れない。。 だけどこんどはEllipsisCharacterにしてるせいで点々で省略されてしまう…… 下が切れるのはStringFormat.GenericTypographicから始めたときでした。 同じオプションにしてるはずなのに描画の挙動が違うなんてヒドイ
それだけじゃ追試しようもないな
すんません単独コードでやってみたら再現しませんでした…… とりあえずMSのTextFormatFlags/StringFormat Utilityだと切れてるんですが
StringFormatFlags.NoClipをはずしてしまっていました…… ごめんなさーい
.NET MVCでの開発をしようとしてるのですが、 WebGrid と jqGrid どちらがいいのでしょうか
俺がWeb嫌いな理由はC/Sの、今なら分散システムの通信ロジックが広くて難しいってことなんだよな 景気悪いからトレーニング兼ねた現場もなかなか無いし、パートだけ書いててもぜんぜん理解できない
必要になったときに覚えりゃええねん
>>341 概ねどんな技術にも言えることだが、まずはビルトインのもので作ってみて足りなかったら外部に頼る
最初っからショートカットしようとするのは結局一番遠回り
つまりまずはWebGridで作ってみな
>>344 言えてる
アセンブラとは言わないがCぐらいは義務教育で必修にしないと日本のITは終わる
>>345 さすがにそれは遡りすぎだw
まあ車輪の再発明を恐れる気持ちは良く分かるが、それはそれでいい経験なんだけどねえ
好奇心に勝る才能はない
俺はエロゲの画像データ解析でC言語を覚えた。 エロは技術革新をもたらす。
349 :
デフォルトの名無しさん :2013/10/31(木) 18:55:48.56
俺はエロ動画を見たいからPCを買ってプログラマデビューをした。
エロ画像管理は素人なりに結構勉強になった
だから業界に野郎が多いのか
俺は教えてちゃんを繰り返すうちに彼氏ができた。
周り半分女だわ
裏山死刑といいたいが顔による
355 :
デフォルトの名無しさん :2013/10/31(木) 22:01:55.37
開発現場にいる女って マンコがついてるだけのデブス
万個ついてれば十分
1000人以上いて、95%が男だなあ
俺の周り美人ばっかりだ。ごめんな
360 :
デフォルトの名無しさん :2013/11/01(金) 00:18:59.32
まあ女性のほうが能力平均は高いな。 男は能力に差がありすぎる
割と可愛い地味目の女が多いな 特に協力会社に女が多い 比較的楽な職場だから根性無さそうなのが回されるんだろう
壁紙がクラウディア窓辺とかなんだろ
365 :
デフォルトの名無しさん :2013/11/01(金) 20:30:52.46
なにそれマイクロソフト関連?
クラウディアさんみたいな人と結婚したいよね
クラウザーさん?
残念、今出しょう子でした
初歩的な質問でもうしわけないのだけど、エンディアンに詳しい人いたら教えてください。 以下のようなコードがあった場合 byte[] BYTE_ARRAY = new byte[sizeof(uint) * 8]; fixed(byte* byteArray = &BYTE_ARRAY[0]) { uint* p = (uint*)byteArray; for(int i=0; i<8-1; i++) *(p) ^= *(p + 1) } Console.WriteLine(BitConverter.ToString(BYTE_ARRAY)); C#でも、ビックエンディアンとリトルエンディアン関係なく、同じデータが出力されるという認識でOKでしょうか? ビックエンディアン向けも対応せざる得ないんだけど、テスト環境が揃わないのでテストできない・・・。 詳しい方教えてください。
C#でデータ作って保存して取り出すならエンディアン関係なしに同じ どっか別のが保存したのを1バイト単位で取り出して処理するって話ならエンディアンは考えないとダメ ってか配列やエンディアンがどんなものかイメージでしか分かってないだろ それを先に勉強しとけ
>>369 だとforの中がたまたまエンディアンと無関係な計算だから結果は同じになるはずだけど
一般的には同じにならないよ
>>370 ありがとう。
問題ないとは思ってたけど安心した。
>>371 取りあえずはバイト配列の高速処理のためにuint*なりでまとめて処理してって感じです。
C#が他の型のポインタにキャストの時によけいなことしてないと分かれば一安心です。
ちなみに外部入力やらエンディアン依存の数字配列(計算に使う)なんかは環境にそろえてバイトスワップ処理やっとります。
これはトラブルパターンだな
インディアン嘘つかない←嘘だよな?
>>369 > ビックエンディアン向けも対応せざる得ない
仕事で MONO とか使ってるの?
rawデータ加工です
EXIFならMかIかみてエンディアン意識しないと動かないぞ
もういいですよ そのうちエンディアンネスの違いで天が落ちてくる心配までしてやる気か?
簡易的なメーラーを作りたいのですが、パスワードを復号化するための秘密鍵の 保存方法で迷っています。 ■実現したいこと thunderbirdのような一般的なメーラーのように パスワードは初回入力のみで、次回からパスワード入力無しでメールを取得 (POP3)したい。
>>380 ・復号に必要な情報をクラウドに置く
・オペレーティングシステムの暗号サービス機能を利用する
それは盗まれても構わない(PCにアクセスされたらパスワード流出は覚悟)ってスタンスが普通。 chromeなんてパスワード平文保存だよw
それじゃ要件が足らない 秘密鍵の保存にあたってどういうセキュリティ実現したいか がコアな問題だろ お前はどういう風に秘密鍵を保存したいんだ
■実装方法と欠点 手段1.共通鍵暗号方式でパスワードを暗号化し、暗号化されたパスワードを%appdata%などに保存しておく。 暗号化に使用した秘密鍵は・・・どこに保存? 暗号化されたパスワードなら流出しても復号化できなければ意味が無いので適当に置いといてもいいのかなとは思いますが 秘密鍵もセットで流出するとダメなので、どうやって永続化すればいいのかわかりません。
よく考えろ HDDのどこに保存しようがHDDダンプして外部送信されたら HDDのどこにも安全なところなどないのだということを
>>384 パスワードは流出したら困るから暗号化
暗号化するのに使ったキーは流出したら困るから暗号化
キーを暗号化するのに使ったキーは流出したら困るから暗号化
以下ループ
windowsだったら暗号化APIにPC依存で暗号化して保存してくれる処理があったと思う これも単に暗号化してくれるだけだから安全じゃないが
流出する時なんて既に悪性のプログラムが何かもぐりこんでるわけだから無駄
1度に書ける文字数と、連続投稿規制がきつい・・・ 手段2.公開鍵暗号方式によって公開鍵と秘密鍵を生成し、鍵2種はキーコンテナーに保存しておく msdn.microsoft.com/ja-jp/library/tswxhw92(v=vs.110).aspx キーコンテナーを使用する場合、コンテナ名(上記ソースではMyKeyContainer)がわかれば取得できてしまうため .NET Reflectorなどを使用して調べられたら終わり。
安全に保存する方法はないよ。毎回手入力させたって安全にはできない。諦めな
あと〜POP3の方がセキュリティがザルなんで 俺が流出によって攻撃したいと考えているなら POP3のパケットの方を狙うわ
皆さんたくさんのレスをありがとう。 ぶっちゃけると、パスワードが流出した場合に 私が作成したプログラムのセキュリティが他のソフトと比べて甘すぎるからダメだった ってことになるのが嫌だったんです。 ※しかし毎回手動入力は必須
>POP3の方がセキュリティがザル いまどきTLSで暗号化してないバカがいるとは思わなかった
>>393 ●CNとか大きなプロバイダーのメール未だに平POP多いよ
根本的にやる気ないんだろう
俺が課金してるHPは素のFTPのみだなw
>>393 今時過剰にセキュリティーを気にする方が馬鹿っぽいと思うけど
レジストリにでも保管してろよ
>>392 ?しかし毎回手動入力は必須
○しかし毎回自動入力は必須
レジストリ案いいですね。
ありがとう。
今時レジストリなんか使うなカス
画像リソースとかをユーザーに共有させる機構をアプリに組み込んだけど、 GoogleドライブのアカウントIDを埋め込む必要があって、一応暗号化してソースに直書した Reflectorで見ればどうせ一発だから呪いの言葉も添えといたわ
いい加減逆コンパイラ消えないかなー でも他人の書いたコードはみたいなー
402 :
デフォルトの名無しさん :2013/11/02(土) 19:26:05.35
>>401 まず舌をおもいっきり噛め
話しはそれからだ
それってGoogleの利用規定とかに触れないのかな
405 :
デフォルトの名無しさん :2013/11/02(土) 19:32:51.65
MSの設計方針としてはどうなんだろうね サポートで金稼げってことかな Javaの有料販売アプリってあったっけ
406 :
デフォルトの名無しさん :2013/11/02(土) 20:47:43.12
>>378 横から質問なんですが、Exifから画像方向を取得しようとして
System.Drawing.Imaging.PropertyItem をBitmap.PropertyItemsプロパティからから取得してみたんです。
id 0x112 (Orientation)のValueを取得すると、バイト並びは
0x06, 0x00
となってました。これってリトルエンディアンですよね?
バイナリエディタでTIFFヘッダーをみてみるとMM(ビッグエンディアン)なんですが
どうなってるんでしょうか。。
ヘッダのエンディアンに関係なく値が格納されてるファイルが存在するのか、
.netがヘッダを見てValueをBitConverterで簡単に取得できるようにリトルエンディアンにしてくれているのか?
それはexif読むライブラリ使ってるようなもんだからエンディアン関係なし ただしその手ので取り出したバイトデータからメーカーノート読むんだったらエンディアン関係あり
PropertyItem取ってくるときにライブラリが変換してる
411 :
デフォルトの名無しさん :2013/11/02(土) 22:00:34.91
>>410 ブラウザのマリオって10年ぐらい前からあって今更感しか感じないけど
Canvas使って二次方程式レベルの物理演算してるだけ 技術的ハードルもアイデアも存在しない単純作業だな
414 :
デフォルトの名無しさん :2013/11/02(土) 22:22:36.95
↑ ぐぐって Canvas を調べたんですね。よくできました。
自分がググったからこそできる反応
バカってゆーほーがバカだ、の世界ですね。わかりますん。
おまえほどの馬鹿はいねーよ
418 :
デフォルトの名無しさん :2013/11/03(日) 00:43:20.19
馬鹿と罵っていいのは小学生まででしょ。 大人になってからそういう罵り方するのは何かを間違っちゃってるんでしょ。 治るといいよね。
visual studioのデータテーブルアダプタのような自動生成のデータアクセスオブジェクトは業務で使いますか? それともSqlConnectionなどのクラスを使い手書きしますか?
ケースバイケース
堅いシステムだと型付きDataSetが主流かなあ Entity Frameworkもちらほら見かけるようになったけど DataReaderを生で使うのはもうほとんど見ないが、更新系SQLではDbCommandじゃないとダメなことが結構ある
未だにDataSet使わなきゃいけない現場があるのか…
未だにVB6の案件時折見るぞ それにくらべたらDataSetなんて超モダンだろ
ハイカラですなあ
超モダン
MS-Cの仕事すらいまだにあるからな
パンチカードとかの時代の案件の保守とか一度やってみたい
その辺は真空管関連の電子工作が必要だろうな
初歩のラジオはいい雑誌だった。ふぅ
vs2010のC#でMFCみたいなカッコイイUI (リボン?)って作れないんですか?
>>430 マイクロソフトの非公式サイトのリボンライブラリを使用
リボンほど世界から嫌われたUIはない。
そもそもリボンとMetroが激しくマッチしないからな M$のムカツクところがAppleと違ってデザインを統一しないってところなんだよな 8.1ですらデスクトップのスタートボタンとその隣のIEとExplorerのアイコンが激しく違和感ありまくりだし Metroをそのままデスクトップにまでもってくればよかったのに M$様が提唱してるWPFなら粗結合でUIだけ変更できるんじゃないんですか?
マカーがMSに入ってからおかしくなった。
パソコンの内パーソナルな部分は全部スマフォに持っていかれて 今のパソコンの使われ方はワークステーションだからな Metroとか脇見せずワークステーションOSとして実装すればいいのに
分からないなら黙っててください。ウザイだけです。
OS を 一本化して 開発費を 抑えたいんです!
自演くせーのがあるな
指定したディレクトリから
そこに存在するファイルを表示させて
更に指定したディレクトリの下にフォルダがあったら
そのフォルダの中のファイルも表示させる
ツリー表示みたいにさせたいんです。
それで、指定したディレクトリにはAフォルダがある。
そしてAフォルダの中にはBフォルダとCフォルダがある。
BとCが同じ場所にあるように見せたいんですけど
知恵を貸してください。
ソースはこちら
http://ideone.com/fUVXqo
リストボックスじゃなくてツリービュー使えばいい
リストボックスで完成させたいんです。
見せたいのは分かったけど質問がなんなのか書いてありません。 知恵を貸せ、じゃない。 どの点に知恵を提供すればいいんだね。
じゃオーナードローするか -+-A +-B みたいに文字付けてツリーにしろよ でもそんなんじゃヤダって言うんだろ?氏ね
ほんと何を質問したいのかさっぱりだな
>>445 自分の書いたソースだと
フォルダが同じ場所でもどんどん右の方に寄っていきます。
同じ場所の場合は右に寄らないようにしたいのです。
ツリービュー使いたくない理由が不明
右に寄せる処理のところに同じ階層の時は寄せる処理はしないようにifでかけば?
>>450 同じ階層だと判定する処理を教えてください。
以降ノータッチでお願い
しねえよw
昔、ツリーなかった頃LISTBOXでツリー作ったっけな リカーシブコールと、階層の深さ情報も持ち回したかな
language: C# created: 1 hour ago visibility: public なんで1時間経ってから貼ったの?
CMD でTREE > c:\tree.txt
>>442 仕事時間空いたので暇つぶしに・・・おれ優しいだろ。
このメソッドを追加して、
private void FolderUnderDisp(string folder,int level)
{
listBox1.Items.Add(new string(' ', level * 5) + System.IO.Path.GetFileName(folder) + "[フォルダ]");
level++;
foreach (string SubFolder in System.IO.Directory.GetDirectories(folder, "*", System.IO.SearchOption.TopDirectoryOnly))
{
FolderUnderDisp(SubFolder, level);
}
foreach (string FilePath in System.IO.Directory.GetFiles(folder, "*", System.IO.SearchOption.TopDirectoryOnly))
{
listBox1.Items.Add(new string(' ', level*5) + System.IO.Path.GetFileName(FilePath) + "[ファイル]");
}
}
元のソースの
//指定ディレクトリの中のサブディレクトリを格納
コメント行から
FileName(file1, folder);
の行までを全部削除して代わりに
FolderUnderDisp(textBox1.Text, 0);
を追加で幸せになれるよ。
他のメンバ変数とFileName()ってメソッドも要らないから削除ね。
クラスをロックしないでメンバにアクセスすると例外を出すようなクラスって作れますか?
無理 複数の同期オブジェクトでlockされたらどうすんの?
class Hoge { readonly object sync = new object(); public IDisposable LockThis() { syncでMonitor.EnterしてDisposeでMonitor.Exitするオブジェクトを返す } public void Do() { LockThisが呼ばれてからDisposeされてない間はthrow 処理 } } 強いて言うならこんなんかなぁ
匿名掲示板に意味不明な暗号命令を書き込んでる奴がいます。 冤罪事件だと思います。
冤罪だと判明してるなら別にええやん
ワロタw
struct A{...}; //(1) [DllImport("a.dll")] static extern Func(ref A a); //(2) [DllImport("a.dll", EntryPoint="Func")] static extern FuncNull(int a = 0); (1)でFuncに構造体のポインタを渡せますが nullを渡す方法が分からないので (2)のような宣言も用意しています。 ・unsafeを使わない ・余計なメモリの確保や構造体全コピーのようなオーバーヘッドを発生させない ・(2)のような冗長な宣言なし ・もちろん構造体のポインタも渡せる 上記を満たすような記述はありませんか?
何で構造体じゃなくてクラスを使わないの?
unsafeでも使ってろ
>>469 でFA
ただしクラスの場合は
StructLayout属性を明示しないといけない
StructLayoutっていう名前と、サンプルコードに構造体使ってるところばっかりだから 意外と盲点だった
クラスを渡せるとは知りませんでした。 vtableを除いた部分のポインタを渡す方法を教えてください。
はあ?何言ってんのお前
>>473 StructLayoutつければ構造体と同じように扱ってOK
vtableとかそんなことは考えなくていい
というか構造体も仮想じゃないmethod tableは持ってんじゃないの?
詳しい人教えて
classでもstructでもP/Invokeの時はマーシャリングが発生する 必要に応じて変換やコピーが発生している vtableはコピーされない
なるほど、vtableは除かれるんですね。 ありがとうございました。
いや残りますよ場合によってですが
struct A{...}; //(1) [StructLayout(LayoutKind.Sequential)] class Wrap<T>{ public T a; } //(2) [StructLayout(LayoutKind.Explicit)] class Wrap<T>{ [FieldOffset(0)] public T a; } [DllImport("a.dll")] static extern Func(ref A a); →[DllImport("a.dll")] static extern Func(Wrap<A> awrap); に変更 (1)では動作しませんでした。 (2)ではこのクラスメンバを呼び出す周辺のコードまでデバッガで追えなくなってしまいました。 例外も発生せず、スルーのようです。 Aはランタイム定義、FuncはWin32apiなので変更できません。 どのように書けば、先頭に構造体を配置したクラスのポインタを渡せますか?
なんでジェネリック型にしようとか考えちゃってんの? しかも構造体がランタイム定義って情報は後出しじゃん。ったくもう…… struct A{...}; [StructLayout( LayoutKind.Sequential )] class C { public A a; } [DllImport("a.dll")] static extern Func( C c ); でいけるだろハゲ
481 :
480 :2013/11/12(火) 09:23:23.74
これじゃ意味ないなハゲ [StructLayout( LayoutKind.Sequential )] class C { ... (ここに構造体Aのフィールドを正しい順番で定義) } つかここまでする意味ってなんなの やっぱパフォーマンスの要求がシビアなんですか?
c#って遅い。Javaにしか勝てないなんて。
はいはい シャバい煽りは間に合ってます
>>482 みたいな低能が書いたらどんな言語/処理でも糞遅い
むしろc#が速いと思ってる奴はよほどの低脳。c#は言語としてとても遅い部類に入る。 勝てるのはそうだな。Javaぐらいか。
はい次の方ー
言語というかライブラリだと思ってる
C#が遅いケースNo.1 ・・・ DEBUGビルドのexeをそのまま使っている この場合GUIが絡まない普通のコードで約3倍遅くなる
C#は早い LLを使ったことあるならわかる
やはり速度は C++ + AVX が最強ですな。
ベクトル処理ならGPGPU最強じゃね それより.NETのSIMD対応ってどの方向良くと思う? ベクトルデータ型を設けるか 自動ベクタル化の方向で行くか
速度がクリティカルな処理なら CとasmのハイブリッドでWinGを使うのが一番速い WinGならビデオメモリーに直接アクセス出来るんだぞ
>>492 は遅いのしか作れないタイプ
WinG/C/asm使えば速いとかどんだけ馬鹿なんだよ
>493はペンティアムのU, Vパイプを使ったコードが書けないタイプ(w
昭和のままお脳が止まっている人がおる
UVパイプわろた。20年前から進化止まってそう
今年の3月でPentium登場から20年だったんだな DOSの頃はVRAMに直接描画してたけど今は触ることねーなぁ
マ 板 で や れ
それはそうと遥か昔にDirectX由来の行列関数群がSIMD対応してるとかいう噂あったんだがデマか
>>480 これでいけました。
ジェネリックがいけなかったのかもしれません。
ありがとうございました。
マ板君キタ━(゚∀゚)━!
>>500 いや、それでもちろんいけるだろうけど……
503 :
デフォルトの名無しさん :2013/11/12(火) 17:57:44.89
webbrowserで他のフレームにアクセス出来ないんだが UnauthorizedAccessExceptionが出る HRESULT:0x80070005(E_ACCESSDENIED)
スレチだから。 せめて知らない人にわかるように説明口調でお願い
ってのはCPUの話ね
C#は遅いだろ、暗号化と通信とかやったらC++の1/10程度しか速度出なかったぞ
みんなお前の十倍早いコードがかけるから大丈夫
俺達は1+1=2じゃねえ、1+1=200だ! 10倍だぞ10倍!
例えば8bitや7bit文字前提の処理をunicodeのC#でやったら いたるところでコード変換が必要になるから、 そんなものかもな。 極端な例でよければ逆にC#のコレクションがC++/STLより速い例も あげることができるよ。
お呼びじゃないよ
あのテンプレートとかSTLとかがC++が遅いとか言われるようになった 元凶だとおもうわ あんなモノはマスターベーションの役にしかたたないだろう
もちろんそういう分野もあるけど、一般的に速度を求める時代じゃないからな 今時速度連呼してるのは時代遅れか池沼だけだろ
まず低スペ改善しろってことだな でもモバイルではやはり速度はほしいのでC#はお呼びでない事実w
C#でC++のdllを使ったら速くなるの?
お前らLL使ったことないのな
C++のテンプレートは速いけど、c#のGenericsは遅い。
Genericsは型毎にネイティブコードを生成するので Genericsを使用しない場合と同程度には速い。 そう思っていた時期が私にもありました。
いまどきSTLなどという化石を使っている人がいるとは
複素数型すらまともに実装できないGenericsのくせに態度がでかいな。
Boxingが不要なだけ速いだろ Objectから取り出す操作がどれだけ重いか
>>522 つ System.Numerics.Complex
>>524 精度固定ならGenericsはおろかテンプレートもいらねーよ。
ソースの暗号する方法ある? 難読化はできるけど やっぱ、商用するならC++じゃないといかんのか
暗号化を何だと思ってるの? 仮に暗号化できても実行するときに復号化するんだったら読めるじゃんw
難読化+暗号化のソフトはいちおーあるな
ソースの話をしてるんであってexeの話じゃねーよ。
>>526 アタッシェケースでソースコードのフォルダーを暗号化するのがいいよ
アメリカかどっかにネイティブにしちゃう商用パッケージなかったっけ?
ソースは普通テキストファイルなんだから テキストファイルが暗号化できればなんでも良いんじゃないの
暗号化zipでも使っとけよwww
>>531 たしか実行ファイルにライブラリ一式詰め込むんでファイルサイズが巨大化するんじゃなかったっけw
なんだディスアセンブル防止の話ではないのか
プログラム内のstring="あああああ"を隠したいとかそんなんじゃないの
>>536 それだけなら丸見えだから、
>>526 のC++じゃ〜が意味不明(C#難読化ソフトのオプションで暗号化してくれるのはある)
違うとは思うが
>>526 =
>>529 だとしたら相当な池沼だろうなwww
string まりこ様; int あっちゃん,ともちん; bool さぁや; を、隠したいのかもしれん
それは単純な難読化で隠れる
ローカル変数なら残らないんじゃね?
お前ら、あまり気にしてないのな 自分で解析したら、ただコメントが削除されただけの ほぼそのままソースが入ってて驚いたわ
async/awaitを使った非同期メソッドにしたらILSpyで全く見えなくてわろた 設定ミスってるのかもしれんが
string スケベなタイトルのDVD; int 抜いた回数; bool お気に入り;
気にする必要があったら気にするし 気にする必要がなければ気にしない 脳内で条件文が使えないのがバカ
気にする必要がある場合の話をしてるってことに気づけないのが真のバカ
思い込みと曲解は救えない
バカは自分が馬鹿だということが理解できない
自分が馬鹿だと知った人は、自分より馬鹿の奴を馬鹿にして安心する。
549 :
541 :2013/11/14(木) 16:58:36.02
必要があるとかじゃなくて… お前ら露出狂なの?
>>507 配列アクセスをunsafeコードでポインタで書き換えても?
配列のままだと添え字チェックが毎回はいるんでそら遅いはず。
あとTPLをこまめに使って並列化を心がければ10倍も違うことはありえない
C/C++だとTPLほど並列化のコストを低減できない
unsafeはでかい配列を一気に処理するならかなり速くなるが、 小さい配列が大量にあってそれを処理すると逆に遅くなる。fixedが想像以上に重い。
大量にて、暗号処理やら信号処理などの場合、関数内部の一番外側のループに入る時点ですべての配列が決定するだろ。 そこで処理する配列をすべてfixed宣言するだけで、そんなに重くなるとは思えないんだが、 ループ内部で配列宣言してそいつをその都度fixedしてるんじゃないのか?
いちいち煽りの相手して暇なのか?
その10倍違うとかいうコードを見せてもらわんとわからんが、 encryptとか通信って書いてるぐらいだからもともとHWでやってもおかしくない処理だと思うんだが、 fixed宣言することがボトルネックになるほどの大量の小さい配列を使う場面なんて想像できないんだが。 通信フレームのユーザデータを何らかのアルゴリズムに従ってencryptするだけだろ?
>>553 現実問題としてC#にするとどれぐらい速度低下するかは皆気になるところだろ。
せいぜい許容できるのは、1/2から1/3ぐらいで、1/10となると大問題だろ。
safe/unsafeうんぬん以前にBitmap.SetPixel/GetPixelが 遅すぎるんでないかと思うようになりました。
こんな話何回繰り返せば気が済むんだ? C++やJava,VB6等と比較したベンチマーク結果がどっかにあったろう
遅すぎるも何も使ってる人はZeroです。Nothingです。Emptyなのです。
SetPixel/GetPixelなんて遅くて当然だろ
LockBitsでSetPixel/GetPixel相当の関数を自作したら、 それほど遅くならなかった。(対応フォーマットはいくつかに絞ったけど) MSがわざと遅くしているとしか思えない。
具体性のかけらもない検証不可能な放言にどれほど価値があるんだか ブログに書けチンカスども
速さに関する議論は、数字ださなきゃ無意味だってのが、過去に学んだ経験だわ。
何度も同じ話を繰り返す池沼はホント死ね
70みたいな池沼しかいないスレに期待するなよ
まじレスするとLINQは糞遅い。
最初からパフォーマンスの要件あるならC++一択でしょ。
>>566 C++でもSetpixelみたいなの使ってたら糞遅い
言語以外の部分が重要
お前らみたいなアホが書いてれば、言語の貴賎と無関係に使い物にならんよ 安心しときな
急にあっちこっちのスレが荒れだしたな。マルチスレッド君が戻ってきたのか?
C#perの食いつきのよさと余裕のなさは異常 普段どういう境遇にあるのか偲ばれる
どう考えても おまえの病んだ精神の方がやばいだろ
ほらね 辛抱足らんわ
そうですね
暗いと不平を言うよりも すんであかりをつけましょう うざいとレスを返すより すすんで透明あぼーんしよう
どうでもいいけど、「C#per」ってどう読むんだろう CSharperなら、まあ解る でもシャープを記号にするならC#erだよなというか
C#パーなんじゃね?
未だにjpgすらまともに読めなくて Susieプラグイン使う必要があるとは・・・ てか外人はSusie使わないで何使っているのか気になる
libjpegに決まってんだろ Susie() 島国ライブラリがw
jpeg読めないの?
読めるよ。「まともに」の内容にもよるけど
Microsoft.Office.Interop.Excel 以外にエクセルを扱えるM$公式ライブラリて有りますか? 上のライブラリはCOM参照を解放するのが面倒すぎます
System.IO.Packaging
| ̄``''- 、 | `゙''ー- 、 ________ | ,. -‐ ''´ ̄ ̄`ヽ、_ / |, - '´ ̄ `ヽ、 / / `ヽ、ヽ / _/ ヽヽ/ / / / / / / ヽハ く / /! | 〃 _/__ l| | | | | | | ||ヽ \l// / | /|'´ ∧ || | |ー、|| | | l | ヽ /ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ / | ||ヽ { ,r===、 \| _!V |// // .! | | || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘ | ハ|| || | """ ┌---┐ ` / // | V !ヽ ト! ヽ、 | ! / //| / ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | / ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/ |(/(/(/(/(/(/(/(/(/(/│|| |\ 〃 r'´ ̄ヽ. | | ト / \ /  ̄`ア | | | ⌒/ 入 〉  ̄二) 知ってるが | | | / // ヽ 〈! ,. -' | | ヽ∠-----', '´ ', | \| | .お前の態度が | |<二Z二 ̄ / ', | | | _r'---| [ ``ヽ、 ', | | | 気に入らない >-、__ [ ヽ ! \.| l. ヽ、 [ ヽ | ヽ| \ r' ヽ、 |
586 :
デフォルトの名無しさん :2013/11/24(日) 18:46:04.26
MDIでMenuStripのマージが起きないようにする方法教えてくれ
知ってるがお前の態度が気に入らない
>>586 試してないけどFormのMainMenuStripに指定しなきゃマージされないんじゃない?
589 :
デフォルトの名無しさん :2013/11/24(日) 20:30:01.20
590 :
デフォルトの名無しさん :2013/11/24(日) 20:40:28.85
.net2.0 ぶりにVisual Studio & C#を触ることになったのだけど、DB周りが浦島太郎状態でわけわかめ Windows Form 上のコントロール群にバインドするデータソースって何使うのが標準ですか?
>>589 教えてやったがお前の態度が気に入らない
なんだこのキチガイ。
未だにDataSet使ってる
594 :
デフォルトの名無しさん :2013/11/24(日) 20:53:13.94
安易にバインドするなよ レイヤをきっちり切り分けないと後で泣を見るぞ .NETが過去の遺物になって載せ替え作業が発生した時に楽になるように作れ
普通はバインドした方が疎結合に近づくと思うが…
597 :
デフォルトの名無しさん :2013/11/24(日) 21:20:32.04
DB周りもそうだけど、そもそもWindows FormsじゃなくてWPFがスタンダードなの?
WPFがスタンダードとは言えないが WinFormsは未来が無さそう
>>596 ねーよ
フレームワークに依存しすぎ
どんな言語にも一週間残業なしで移植可能と確信できる設計で作れ
なんで.NETの置き換えなのに.NETよりバインディングがしょぼいって想定なの
WinFormsはVB6ぐらいの根強さがある。 しかしWPFはWindowsMEぐらいの根強さしか感じられない。
602 :
デフォルトの名無しさん :2013/11/24(日) 21:27:38.09
WPFはともかくSilverLightは死んだよね。
>VB6ぐらいの根強さ あの根強さはとっとと捨てて欲しいわw
20倍カビキラーにも耐えるよ
Silverlight、良い技術だったんだがなあ 「SilverlightでWin/Macのマルチプラットフォームを実現出来ます」 → 「iPad登場」 の流れが痛恨だった、タイミング悪過ぎ
606 :
デフォルトの名無しさん :2013/11/24(日) 21:30:45.18
DBから読み込んだレコードのカラムを一個づつUIに移すコードを手で書くなんて ありえん過ぎ得ると思うんだけど、最近は違うの?
>>600 しょぼい、しょぼくないじゃあないんだよ
置き換えが簡単かそうでないかだ
VB6で懲りただろ
置き換えが困難なら客から一杯ふんだくれるじゃないですか
正直、WPFのItemsControl系のUIなんてそんなに出番があるわけじゃないし、 だったらDataBindingもDataTemplateも要らないわけで、もその時点でWPFの 存在意義って小さいんだよね。 フローレイアウトなんてWindows Formでもそれなりに出来るし。
位置固定のほうが客が喜ぶんだよね。
いやいや今時固定ウィンドウはないよさすがに。 Windows Formは1.x時代からAnchor等の設定でそれなりにフローレイアウトに対応してたし、 2.0でコンテナが増えて強化もされた。
XAMLによるデザイナとPGの分業なんて幻想でしか無いしな まあMVVMは結構好きだけど
全部コード書いちゃいなよ!
>>612 俺は本当にそこが一番悲しいというか残念というか、国内のPG・SEってデザインやUIにこだわりや情熱持ってる奴一人もない
なんか海外で人気のあるデザインテンプレートをパクってくるだけ、模倣するのも理解して消化する必要あるからセンスないと無理なんだよ
ほんっと日本ってデザイナーの地位低いよね、Appleで流れ変わるかと思ったけど日本はかわらんね
そんなもの持った奴をMSが入社させたからメトロUIができたわけだが。
需要があれば対応するよ 業務システムのGUIが美しくて格好良くてもだれも嬉しくないからね
デザイン厨は使いやすさなんて眼中にないからな。
>>616 それは嘘だな、事実は業務システムでまともなデザインやUIが実装された物がない。だろw
フォントをこれでもかと大きくしておくと。トップの反応がいい。大抵老眼だからな。
620 :
デフォルトの名無しさん :2013/11/24(日) 22:31:08.64
>>614 デザイナーの地位が低いのかデザイナーのスキルが低いのか…
楽天なんか見てると後者のような気がする
PropertyDescripterって何のために存在するんですか?
インスタンスがどんなプロパティを持っているかの定義 同じような役割のPropertyInfoはCLR型の定義だから変更不能だけど、 PropertyDescriptorは自由にカスタマイズできる 例としてDataTableとかPropertyGridで使われてる
タスクマネージャみたいにリアルタイムにグラフが左に流れていくようするには どうやるんですか? winformでやろうとしています。
>>624 タイマ使ってクライアント領域を定期的に無効化してやるだけ
わかりました
>>620 楽天は、日本人によりたくさん買い物させるスタイルなんだよ
実験では、印象が悪いけれども、より多く買い物をするという結果が
日本と海外の差は、楽天以外でも、新聞の折り込みチラシを見るとよくわかる
デザインに金を使ってる→高い というイメージは正しいから。 べつに海外だって同じだよ
日本人は実態がないものに金を払わない傾向にあるからな デザインはもちろんパソコンのソフトなんかも無料無料とうるさい
630 :
デフォルトの名無しさん :2013/11/25(月) 09:25:54.55
>>590 WinFormsなら今でもやっぱり dataset + tableadapter じゃね?
同時実行制御のクソ面倒なSQLも自動生成してくれるし。
項目のバインディングもそうだけどそういうのはEFじゃむりっぽくね?
対象がASP.NET MVCとかならEFの方が将来性ある技術なんだろうけど。
俺もまだDataSet + TableAdapterなんだけどさ、 EFって同時実行制御とかやってくれないの? ってっきり、EF内部で生成されるSQLに含まれるかと思ってたよ。
EFは複数レコード一気更新すらねえことに唖然とするぞ LINQ to SQLですらあるというのに EFの利点なんぞ一発スキーマ更新くらいしかねえわ
EFは基本的にORMだから、長所も欠点もORMと同じで EF独自の機能としてはアドホッククエリ用にLINQが活用できる程度かな だから大域処理はストアドまかせになるし、 排他は楽観的排他が基本。
634 :
デフォルトの名無しさん :2013/11/25(月) 14:04:34.71
スキャフォールディングとかCode Firstとか一通り試してみて 「おぉ! すげえ!」 とは思ったけど、実際に使うかと聞かれたらNOだな。
>>633 にも関わらずストアドまともに扱えるようになったのがごく最近なのがEFの笑いどころ
ま、個人のおもちゃですわ
regasm.exeでアセンブリをレジストリに登録するときって アセンブリ内の静的コンストラクタが呼ばれるもんなの? Process.GetCurrentProcess().ProcessName をログに残すとRegAsmってあるんだけど…… 気持ちい悪いし想定してないからプロセス名で弾くべきだよね?
637 :
636 :2013/11/25(月) 14:37:00.59
ComRegisterFunctionでマークしたメソッドがあると静的コンストラクタが呼ばれるのかな?
アセンブリロードして型情報を調べるだろうからありえる話だね。
639 :
その@ :2013/11/25(月) 17:11:17.49
C#でDataGridView上のチェックボックスのあるセルにおいて、セルがクリックされた場合でも チェックボックスのオン・オフを切り替える処理を以下の通り記述しています。 しかし、セルをクリックした時には何も反応が無く 別のセルにフォーカスを移動させて初めて、クリックしたセルのチェックボックスのオン・オフが 切り替わるという不思議な現象が起こっています。 どこに問題があるのでしょうか?
640 :
その2 :2013/11/25(月) 17:51:04.59
private void dgv_test_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { int i_row = e.RowIndex; int i_col = e.ColumnIndex; DataGridViewCheckBoxColumn col; col = new DataGridViewCheckBoxColumn(); col.FalseValue = 0; col.TrueValue = 1;
>>639 まったく事情はわからんが、よくあるのは再描画されてないってことじゃね?
設定変えたあとですぐ再描画を要求してみんさいや。
DataSetとか気持ち悪いから使わない OleDbがあれば十分だしこれが1番柔軟で将来性もある
2年前にSQLServerから廃止された奴がなんだって
たぶんODBCじゃね
645 :
その3 :2013/11/25(月) 18:29:03.99
if (Convert.ToBoolean(dgv_test[i_col, i_row].Value) == true) { dgv_test[i_col, i_row].Value = col.FalseValue; } else if (Convert.ToBoolean(dgv_test[i_col, i_row].Value) == false) { dgv_test[i_col, i_row].Value = col.TrueValue; } dgv_test.Refresh(); }
DataSetとかいうゴミを使うと将来苦労するよ
EFってまだまだなんだね でもMVC4だとテンプレにデフォでEFだよね
649 :
デフォルトの名無しさん :2013/11/25(月) 19:43:08.95
>>647 Datsetなしでどうやってフォームのコントロールにバインドするん?
普通に出来るだろ
ちょっと何言ってるか分からない
BindingList<T>の立場は…
こんばんは VisualStudio2008でC#の開発しています。 デバッグ中にブレイクポイントで止まった際に、黄色矢印の左側に緑のポチが出ます。 これはなんでしょうか? また、同様のタイミングで前後のコードが薄い緑(青?)で塗りつぶされることがあります。 これもなんなのでしょうか・・・。 スレッドタイマでグルグル処理を回してるとこなので、関連があるかと思うのですが、 詳細がわかりません・・・。
>>655 imgur.com/QCuAvQP
忍者修行中でリンク貼れませんでした
こんな感じです・・。
>>657 代理ありがとうございます。たすかります!
だいたいフォームにいきなりバインドって発想が気が狂ってる レイヤー分割の基本すら出来てない
661 :
デフォルトの名無しさん :2013/11/26(火) 09:12:06.06
RADってそういうもんだろ
663 :
デフォルトの名無しさん :2013/11/26(火) 10:40:25.40
.netのDataGridViewって巨大なdatasetのオンデマンドな読み込みもやってくれないのね…。 リレーション張って親子関係にしたdatatableも自動的に必要なだけの子を読んでくれるわけじゃないし。 10年以上前のDelphiで当たり前にやってくれてたことをいちいちコード書かなきゃいけない失望感。 うへえ。
ざまあみろとしかいえねえw
なんか昔に比べると一つ一つの機能の完成度が低いよな 開発環境にしろ、ライブラリにしろ
巨大データをそのままGridって手抜き以外の何物でもない
667 :
デフォルトの名無しさん :2013/11/26(火) 20:08:46.64
だよな、SQLを自動生成なんて手抜き以外の何物でもないよな
LINQが誰も使わなくなったように、 大量のデータをそのままバインディングする馬鹿もいなくなった。
669 :
デフォルトの名無しさん :2013/11/26(火) 20:21:09.18
DataReader最強ってこった
PHPやらRailsやらで十分ってことかいな
うぬぼれんなC++最強
>671がC++使えないのは明らかだな
673 :
デフォルトの名無しさん :2013/11/26(火) 20:40:09.67
いや、C++最強だろ もう誰も倒せない
真面目に、C/C++ に替わる言語って出てくるのかな。
マジレスするとC#。
>>675 Dに期待してたけど、2.0で迷走してるしな
そしてここはC#スレだ
678 :
デフォルトの名無しさん :2013/11/26(火) 21:26:54.33
>>660 さんざんMSの提灯記事で
「1行もコードを書かないでDBアプリが作れる!」
とか煽ってたよね
>>675 マジレスするとない
用途によってはC/C++よりもこっちがいい、あっちがいいってのはあるがその言語で完全に置き換えることはできない
実際.NET+Webは成長してるしクライアントに拘る奴は新しいのを求めてない
Qtの時代や
>>668 そりゃLINQは経営者でもないんだから、LINQが誰も使えないのは当たり前だ
そうか死ねよ軟弱者
>>684 そうでもないじゃん?
Silverlightは死んだ、WPFは死ぬ
WinFormsもしくはASP.NET MVC + Javascriptで作れって答え出てるし。
,, _ / ` 、 / (_ノL_) ヽ / ´・ ・` l かつてのマイクロソフトの技術とその未来は死んだんだ (l し l) いくら呼んでも帰っては来ないんだ . l __ l もうあの時間は終わって、君も人生と向き合う時なんだ > 、 _ ィ /  ̄ ヽ / | iヽ |\| |/| | ||/\/\/\/| |
IDisposableはアンマネージリソースの開放に使用するとのことですが、 処理終了時に実行させたい処理がある際に使用するのは邪道なんでしょうか。
>>688 具体的には?
いつ呼び度されるかわからないからあんまり良くない場合もある
>>688 よほど本来の使用目的から外れてなにやってるかわからなくならない限り
Disposeはいろいろやってかまわないと思う。
その点ファイナライザは制限が厳しい。
自身が直接抱えているアンマネージドリソース以外をいじったらダメ。
自身が包含している他のクラスのアンマネージドリソースの片付けもご法度。
Windows FormsなどのDispose(bool)パターンがそれだね
>>689 finallyで処理する内容をDisposeにやらせたい感じです。
このfinallyの内容は複数個所で同じ事を行っています。
Disposeで処理させる場合はusingを使用しています。
広義のリソースということでIDisposableを使ってもいいんじゃね? ちょっとしたフラグ管理みたいなクラスで using構文が便利だからIDisposableにしたときがあった
>>689 いつ呼び出されるかわからないのはファイナライザによるときじゃね?
仕様としてデストラクタがあるのに使い物にならないのは完全に言語の設計バグ。
うん。バグだね。 ご満足いただけたかな?
すまん、誤爆した。
usingなしだとファイナライザ実行まで呼び出されなくなるから、 書き忘れたりして最悪遅れてもなんとかなるものならいいとおもう
Disposeを放置しているとFinalizerが勝手に呼び出してくれると 思い込んでた時期が私にもありました
馬鹿っぽい。 思い込むも糞も、そういう実装じゃなきゃFinalizerの意味がない件
言語の欠陥なんだから仕方がない。
その辺強制できないのがC#のクソたる所以
お前ら的に文句ない実装ってどんなんなの
参照がなくなったら即finalizerの実行。メモリ回収はGCに任せる。
WPFの案件に途中参戦して思うのは、どの案件もMVVMで始めて途中からコードビハインドになってて如何にWPF(MVVM)がそびえ立つ糞かよくわかる VMなくてVとMだけになっちゃってる、業務システムとはいえ壊滅的な糞デザインと糞UIでセンスの欠片もないのにWPF(笑 WinFormsじゃあかん理由どこにあんのん?使い慣れた道具ならもっと早く簡単にクオリティ高く作れるのに(´・ω・`)
それは隣のクソスレで言ってきてくれ …隣の隣だったかな
ideone.com/mYKF8Q このコードをasyncを使って書き換えたのですが思ったように動作しないので質問させてください こちらが書き換えたものです ideone.com/D7t3vp デバッグすると7行目のawait tcpClient.ConnectAsync(host, port);以降の処理が行われずフリーズしてしまいます どこがまずいのでしょうか?忍法帳修行中でリンク貼れませんでした
componentクラスを継承しないなら自前で、 System.GC.SuppressFinalize(this)しなくちゃいかんということだろ Dispose(bool)の仕組みを理解してない人も多そうだ
メインスレッドでブロックしてるからWM_TIMERが回ってきませんっての思い出した
こんばんは。 C#及びマルチスレッドの処理の素人です。 知恵を貸してください。 スレッドタイマーで500msごとに繰り返し呼ばれる処理Aがあります。 Aの処理時間が500ms以上かかることがあります。 その場合に、 次のA呼び出しを待たせる、または呼ばない方法はあるでしょうか? lockでいけるかとおもったのですが、同じスレッドだと待たせられないとのことで 困っております。
タイマーに何のクラス使ってんの 3種類くらいあるけど
System.Threading.TimerCallback System.Threading.Timer で、繰り返し呼んでいます。
最初からスレッドタイマーって書いてるのにねw
>>709 普通にlockでいけるはず
だめだこりゃ
>>712 返信ありがとうございます。
ということは、lockを使いつつ
処理処理がタイマー間隔より長いという状況を減らしていけば大丈夫なのかな・・・
(元々ほぼない予定ですが、気になりはじめてしまいまして・・)
フォームのボタンをボタンクリックイベント内にlockで囲んだとしても
連打で、ボタンクリックイベント発生させたらlockの効果はないと読み、
それと同様のパターンかと思ったのですが。。。
組み込みシングルスレッドばっかりやっていたので、
かなり戸惑っております。。。
volatile bool で処理中フラグでも持っときゃいんじゃねの カッコつけたいならSemaphoreでも使え
MSDNとStackoverflowで読めば大抵解決するだろうに・・・ こいつPGに向いてないわ
イベント系教えてやれと思ったが、再入やらかしてハマるのが目に見えるからか
>>714 500ms間隔に必要性がないのなら、処理開始時にタイマー止めて処理が終わって再開するのが吉
ある静的クラスのデータを複数のクラスで共有したい ある静的クラスと似たような実装(データは別)が複数あるので基底クラスを作って継承したいけど 静的クラスは継承できない 普通のクラスで作ると利用する複数のクラスすべて参照を渡さなければいけない こういう場合どうするのがベスト?
包含とかstatic factoryとか
普通にシングルトンパターンでしょ
データは別にしたいのでシングルトンよりFactoryの方が良さそうです ありがとうございました
709,714です。 色々と教えて頂きありがとうございます。 スレッドタイマで定期的に呼ばれるスレッドにlockが効くことを確認できました。 しかしlockのみではスタックオーバーフローの危険があるため、 volatileのフラグで管理することとします。 lockはlockで別のスレッドとの排他管理に使用することとします。 ありがとうございました。
組み込みシングルスレッドでも、タイマー割り込みルーチン処理中は 普通割り込み禁止にするじゃん?
制限ゾーンからP/Invokeを呼び出す.NET3.5向けのアセンブリなのですが、 .NET4.0でコンパイルして呼び出すと次のエラーが出ます。 System.InvalidOperationException: Security Transparent メソッドでは CAS Assertを実行できません どこを直したらよいか教えてください。 using System; using System.Security; using System.Reflection; using System.Security.Permissions; using System.Runtime.InteropServices; [assembly: AssemblyVersion("1.0.0.0")] [assembly:AllowPartiallyTrustedCallers] namespace Test1s { public static class Util { static public int TickCount { [SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)] get { return GetTickCount(); } } [DllImport("Kernel32.dll", EntryPoint = "GetTickCount"),SuppressUnmanagedCodeSecurity] static extern int GetTickCount(); } }
>>718 それじゃインターバルが狂うだろう。
何いってんだ
日本語が読めないのかな
しかし、AsyncとRxってほんと偉大やな BGWorkerとか二度と触りたくないわ、3.5とかの案件は二次以下で絶対受けない
RxはもっぱらTasks.Taskをサポートしていない.NET3.5向けになっちまったな
>>726 2行追加でいけました。ありがと〜。
[assembly: SecurityRules(SecurityRuleSet.Level2)]
[assembly:AllowPartiallyTrustedCallers]
[SecuritySafeCritical]
public static class Util {
最近レベル低いなりに今まで理解できなかったことや使い方がわからなかったことがわかってきてまたプログラミングが楽しくなってきた。 なんかある日突然ずっと理解できなかったことがスッと理解できたりするんだけどこれはなんなんだろう
そういう段階はまだまたま素人 何もかもめんどくさい やり方はわかるがだるいから金で下請けにやらせよう そうなって始めて一人前
と、自分で下請けに出したこともない奴が言っています
相談です。 別アプリケーションのコンボボックスの値をc#を使って変更したいと考えています。 たとえば、エクセル2013でファイルを保存するときに、デフォルトではファイルの種類が「EXCELブック」になっていますが、 コンボボックスを開くと「EXCELマクロ有効ブック」や「EXCEL 97-2003ブック」などたくさんの選択肢が出てきます。 この選択を、プログラムで操作したいのです。 コンボボックスのウィンドウハンドルの取得まではできていますが(ただし、選択肢ごとにさらに子ウィンドウハンドルがあるとしたら、 それは取得できていません)、選びたい選択肢を選ぶ方法がわかりません。 検索すると、C++やVBでSendMessageやPostMessageを使った例はいくつかでてきますが、転用しようとしてもうまくいかず・・・ よろしくお願いします。
うまくいかず言われても、結局それしかないわけで しかってわけでもないけど C++とかでのが見つかってるなら適当にキーワード拾ってC#と並べて検索すればいい
C++やVBはいじったことがないので、なんとなくこうだろうという推測ぐらいしかできないのです。 つまり、C++やVBのSendMessageやPostMessageと、C#のそれと機能が一緒なのかもわからないですし、 文法が一緒なのかもわからないですし、ゆえに転用した時の私の記述が間違っているのか、それともそもそも C#にはそういう機能がないのかも判別できないのです。 キーワードはいろいろと変えて検索してみてはいるのですが、そもそもこういうことをやりたい人があまりいないようで 似たようなことをやっている人すらほとんど出てきません
エクセルならスクリプト組めよ
いえ、実際に操作したいのはエクセルではないです。 エクセルは、わかりやすいかと思って例で出しただけですが、誤解させたようですいません。
JAVAとかWPFだとただの壁紙だからコンボボックスのハンドルとか取得できないよね dll注入するしかないのか
具体的にどんなコードを試して駄目だったとかあれば答えやすいが
JavaはしらんがWPFならUIオートメーションでいけなくはない
>>735 答えわかってるじゃん
コンボボックスのハンドルを何らかのアルゴリズムで検索して
セレクションを変えてよっていうメッセージを送るだけ
画像認識でやる
別プログラムのコンボボックスを選択するには
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200605/06050011.txt 続:別プログラムのコンボボックスを選択するには
http://homepage1.nifty.com/MADIA/vb/vb_bbs/200605/200605_06050012.html このサイトを参考にして作っています。
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private const int CB_SELECTSTRING = 0x14D;
private const int WM_COMMAND = 0x111;
private const int CBN_SELCHANGE = 0x10000;
SendMessage(hWnd2, CB_SELECTSTRING, -1, "コンボボックスの文字列");
PostMessage(hWnd, WM_COMMAND, CBN_SELCHANGE, hWnd2);
※hWnd, hWnd2はコンボボックスのウィンドウハンドルと、コンボボックスのリストの1つ目?の子ウィンドウハンドル?です。
コンボボックスのリストの1つ1つにウィンドウハンドルがあるのかわかりませんが、ウィンドウエクスプローラのウィンドウファインダで
取得したコンボボックスのプロパティを見るとそんな感じで書いてあったので、とりあえず流用しています。
なお、ウィンドウハンドルの取得自体は問題なくいっています(テキストボックスのウィンドウハンドルを取得して、文字列を送信する
プログラムは問題なく動いているので)
>>743 >コンボボックスのハンドルを何らかのアルゴリズムで検索して
コンボボックスのハンドルは検索できていますが、コンボボックスのリスト1つ1つにもハンドルがあるのですか?
そこまでは検索できていません
>セレクションを変えてよっていうメッセージを送るだけ
セレクションを変えてよっていうメッセージを送る方法がわからないのです。
なんかコードが死んでいますねorz [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool SetForegroundWindow(IntPtr hWnd); private const int CB_SELECTSTRING = 0x14D; private const int WM_COMMAND = 0x111; private const int CBN_SELCHANGE = 0x10000; SendMessage(hWnd2, CB_SELECTSTRING, -1, "コンボボックスの文字列"); PostMessage(hWnd, WM_COMMAND, CBN_SELCHANGE, hWnd2);
スレチになるけど、アプリケーション名とやりたいことを具体的に書いたほうが早いと思うけどな そもそも外部プログラムから操作することがベストとも思えんし
アプリも何も、HWNDが取れるタイプならメッセージ送るだけだろ
そのメッセージの送り方がわからないって言ってるんだから、やさしく教えてあげればいいのに。 ちなみに俺はわからんw
答えは
>>745 のリンク先に書いてある。
が、VBだから理解できないんだよな?
C++はともかく、VBは簡単だから覚えろよ。
C#を習得済みなら1日でできるだろ。
そうすりゃ、世界中のVBによるコードがお前の力になる。
文字列の内容は同じだけど参照が違うstringオブジェクトを作りたいのだが無理か?
>>727 世の中、インターバルが狂っても問題が起こらない場合がほとんどだから
タイマー処理中はタイマー止めるのが普通
TaskCompletionSourceで作成したTask1を待つときに SemaphoreSlim.WaitAsync(int milliSec)的な待ち方はできないでしょうか。 async void aaa(){ Task<bool> task2 = task1.....?; if(await task2){ //task正常終了 }else{ //taskが指定ミリ秒内に終わらなかった場合 } }
タイミング狂ったら問題が起こるような処理を普通のタイマーでやってるほうが非常識
うんそれって発想がVBerだよね。 やっぱり非常識な人は違う。 普通は(厳密でないにしろ)一定間隔で実行したいからタイマーを使うのであって、 逆を言えばそうでない用途にタイマーを使うのはイレギュラーだと考える。
>>755 Task<bool> task2 = Task.Run(() => task1.Wait(timeout));
でいいんじゃねえの?
760 :
デフォルトの名無しさん :2013/11/29(金) 22:54:39.81
>>758 自己紹介乙
自分で書いてる内容読み返しておかしいと思わんのかw
いつもの基地外だろ
>>760 なるほど、自分が馬鹿だから理解できないとは思わないんだ。
馬鹿は幸せでいいね。
例えば、一定間隔で何らかの通信でデータを取って来て、そのデータを使って画面を更新する、
なんてのは割とありがちなタイマーの使い方だと思う。
目標の更新レートは10回/秒程度とする。
こういう時に
>>754 みたいな安易な発想で作っちゃうと、通信部分、あるいは画面の描画に掛かる時間に依存して
画面の更新レートが10回/秒になったり6回/秒になったりする、いかにも素人臭い
VBerチックなソフトが出来上がる。
763 :
デフォルトの名無しさん :2013/11/29(金) 23:44:51.09
>>762 Timerの分解能も分かってないバカw
朱に交われば赤くなる。 という諺がある。 荒らしの挑発に乗って、元々書くつもりのなかった心無いレスをしていないだろうか? このスレに限らないが、最近、 わざとおかしな発言をし、それに反論した者を罵倒する輩が出現しているので 皆、気を付けてほしい。
>>766 ワロタ。バカなのはおまえだけだって気づけよ。だいたい毎秒10回欲しい処理で(どんなかにもよるが)通信するなってwww
キチガイ荒らしがいるからね。
マルチスレッドだけじゃなくてタイマーすら使えなかったのね
>>757 つか、タイミングがシビアな処理だとGCが何時来るか分からんC#は使わないよな
C#でタイミングを気にする人はそうそう居ないね
間隔精度が必要な場合windowsの時点で駄目
そりゃ8086時代に10msを保証できたμITRONと比較した場合で、 今どきのCPUなら初音ミクレベルのソフトも立派に動いているよね ま、思いっきり力技だがw
OSがリアルタイムに波形制御してると思ってんのか
>>774 ウインドウズのリアルタイムが問題視されていた頃は、プロ用DTMは全部MACだったろ
所謂リアルタイムOSでもやっていないことが出来ないと批判するのはどうかしているわ
Rxは面白いんだけど・・・結局俺も使わなくなったな。 Rxが使える! と思っ事は何度かあったが、結局より良い選択肢が見つかって採用に至らなかった。
thisってどういう時に使うの? 使ったほうがわかりやすいの?
ローカル変数exとフィールドexした場合 exではローカル変数、this.exではフィールドが指定できる
自分を関数に渡したいときとか SetTargetForm(this); みたいな
>>778 baseとは明示的に区別したい時とか
thisがデフォルトだから指定しないと困る場面は無いね
プロジェクトのコーディング規約に従えばいいよ
MSは省略を認めない方針だと思う
thisはインテリセンスが効く
継承元のクラスのメンバーを呼び出す場合はthis使うことが多いかな。 具体的にはFormの中でForm自身のWidthとかTextとか といったプロパティをいじるとき。 自クラス内のメンバーの場合は冗長のような気がする。
それは知らなんだ。
イテレータパターンなんかでもあるね
>>786 そういう用途でbaseを使うほうが異常じゃない?
overrideされてたら当然そちらを使うケースなんだから、
バグの元だろ。
だよな。 baseはオーバーライドされてても基底クラスのメンバを呼び出したい時のみ使うべき。
継承元のクラスのメンバーってのは基底クラスのメンバのことじゃないのか
>>790 これが正しいだろ
override呼ばれてる方呼びたいなら継承元のなんて書くなよ
VBのMyClassをみるんだ! 細かいことなどどうでも良くなるぞ
この拡大解釈の才能は能力バトル物のライターに匹敵する
また基地外が来たぞ〜
overrideされている可能性があるのが継承元だろ 基底クラスとは言ってない
>具体的にはFormの中でForm自身のWidthとかTextとか
にゃ〜
IEnumerator<UNKO> aa( Func<UNKO, bool> chinko ) { なんか数えて、どっかでchinkoの判定通る度に yield return unko; } ってメソッドがあって、aaを使うけど、予めchinkoの処理をある程度やってくれる、Enumrator<UNKO>返すメソッド作る時ってどうすればいいんですか? IEnumerator<UNKO >bb(int x){ yield return aa( (unko ) => { xとunkoの関係をみて return bool型 } } ってすればいいかと思ったらそうでもなかったんです。 ネタじゃありません(一般的な型名とかよく分からなかったです)。よろしくお願いします。
意味が分からん… IEnumerator<Hoge> bb(int x) { return aa(_ => _.Id == x); } でいいんじゃねえの?
また暗号化か。片山君なの?
すみません、IEnumerableと勘違いしてました。 とても長くハマってしまいました。ご迷惑おかけしました
804 :
755 :2013/12/03(火) 12:39:18.46
>>759 返事が遅くなってすいません
それだとスレッドプールスレッドを1つ占有すると思うのですが、
そういう使い方をしてしまっていいものなんでしょうか?
もしかしたらSemaphoreSlim.WaitAsyncとか
await taskもスレッドプールで待機しているのですか?
知らんがな
WaitAsyncの戻り値がTaskの時点で察しろ
807 :
デフォルトの名無しさん :2013/12/03(火) 20:43:40.86
808 :
807 :2013/12/03(火) 21:00:05.69
-1を指定するより明示的に最大数を指定した方が タスクの数は増えますね よくわからん・・・
CPUのスレッド数とか見てるんじゃねえの
TaskSchedulerクラスの実装読めば分かるが、一定時間ごとに増えていくタイプ
811 :
807 :2013/12/03(火) 21:53:29.93
>>810 ありがとうございます。
読んでみます。
DynamicJsonというライブラリを使っているのですが、 var json = DynamicJson.Parse(read.ReadToEnd()); var data = json.test_data; こんなコードを書くと2行目の代入で 型 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' の初回例外が Microsoft.CSharp.dll で発生しました と怒られてしまいます。 test_dataはJson中に存在していて、データの値が正しく入っています。 どう書けば例外が出なくなるのでしょうか?
例外メッセージを見る。たぶん「データの値が正しく入っています」が正しくない
そのjsonの型はなにで、test_dataってメンバ持ってるのかね? DynamicJsonってライブラリは知らんが、名前からしてDynamicで宣言して使うものじゃないのか?
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read); dynamic json = DynamicJson.Parse(fs); if(json.IsDefined("option")){ foreach(KeyValuePair<string, dynamic> i in json.option) { .... } } ウチはこんな感じで使えてるが。
>>756 処理に500ms以上要する場合もあるけど、
処理してるうちに全処理が時間内に収まる保証あって、
多重割り込みにしたいのかな?
そうでもなけりゃ割り込み間隔を長くするか、
処理中に入った割り込みを忘れ去るしかないと思うけど。
割り込みハンドラに入った瞬間に割り込disableにするしかないんじゃないの?
754は割り込みが何かわからないと思う
>>815 さんの書き方に習って書き直しました。
dynamic json = DynamicJson.Parse(@"{""result"":1,""data"":""データ""}");
foreach (KeyValuePair<string, dynamic> item in json)
{
System.Console.WriteLine(item);
}
と書きなおしたのですが、ログでは
型 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' の初回例外が Microsoft.CSharp.dll で発生しました
型 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' の初回例外が Microsoft.CSharp.dll で発生しました
[result, 1]
[data, データ]
と、foreach中のjsonへのアクセスで例外が出てしまいました。
result:1をresult:"答え"などにしても結果は変わりません。
var objectJson = DynamicJson.Parse(@"{""result"":""1"",""data"":sampledata}"); foreach (KeyValuePair<string, dynamic> item in objectJson) { Console.WriteLine(item.Key + ":" + item.Value); }
ダメでした。 ちゃんと動いているのでlog欄から例外を外すことにします。 ありがとうございました。
821 :
デフォルトの名無しさん :2013/12/06(金) 15:05:20.75
IEnumerable<T> が会った場合、すべてのTにたいしてそのメンバー関数を呼ぶにはどう書くのが一番簡単ですか
foreach (var item in enumerable) item.Hoge();
テトリスを作成しているのですが、一列揃うと消えるプログラムでわからない箇所があるので、質問します。 int DeleteLine() { for (int j = 0; j < height; ++j) { bool delete = true; for (int i = 0; i < width; ++i) if (screen[i, j] == 0) delete = false; int delCount = 0; if (delete) for (int k = j; k >= 1; --k) for (int i = 0; i < width; ++i) { screen[i, k] = screen[i, k - 1]; delCount++; } return delCount; } } この関数をブロックが下に動けなくなったときに呼び出すようにしているのですが、 エラーをはいてしまいます。int DeleteLineではなく、voidにして、return 分を消せば、 うまく起動するのですが、一列揃ったときのスコアを計算したいので、return で消した列を記録しておきたいです。 こういった場合どのようにするのが良いでしょうか?教えて頂ければ幸いです。
823には無理
825 :
821 :2013/12/06(金) 16:31:37.99
>>822 は考えたのですがもう少しエレガントに書けないでしょうか
var nodes = 何とか
foreach(var node in nodes){
node.CallMethod();
}
を、
Array.Foreach(nodes, x => x.CallMethod);
みたいに書きたいのですが、これは現在の使用では書けません
これに変わるえれがんとなかきかたをおねがいします
拡張メソッド書けば良いけど、822で十分にエレガントだと思うな
ForEach()ってList<T> にはあるけどなんでIEnumerable<T>には作らなかったんだろうな
まずエレガントを定義してくれよ 再帰を定義するように頼む
文字列を扱うクラスはすべてtoString()を実装することって仕様書に書いてあったんだけどマジっすか? 文字列は全てStringBuilderで扱うことって仕様書に書いてんすけどこれもマジっすか?
仕様書かいた奴に聞け
とりあえずJavaのスレじゃないからな
>>827 ・C#は同じことをするのに複数のやり方がないようにというコンセプトの言語だから
・foreachは副作用なので関数型記述と混ぜると分かりにくくて汚いから
ToStringでなくtoStringなあたりが CLRへの冒涜に違いない
Foreachとforeachはまったく別物だということか
foreach(var _ in s) _.hoge(); s.ForEach(_ => _.hoge()); 4文字のために実行効率を犠牲にしたい人はどうぞ
デリゲートってようするにReflectionなんでしょ?
全然違う
変数が_なだけなのに別言語に見える
foreach (var $_ in @_){ Console.WriteLine($_); }
>C#は同じことをするのに複数のやり方がないようにというコンセプト delegate周り等の泥縄ぶりからとてもそうは思えませんが
C++やRubyやScalaみたいなガチでフリーダムな言語を触ったことがあればとてもそんなことは言えない C#と同様のコンセプトのPythonにだって同程度の自由はあるぞ
基本的に冗長を強制する割りに他所から持ってきた簡潔な記法を後付けするとか中途半端なだけやろ
C#の場合、比較対象のJavaが言語的にもライブラリ的にも非常にお堅い設計なので
ぶっちゃけやりたいことが簡単にできるのが一番いいんだよ、10年の間何人のも人間が入れ替わりでメンテするなんてレアケースだろ Javaみたいに糞みたいな理想で糞縛り言語作ったらあんなゴミになりましたってなるだけだ だから今もC++がデファクトスタンダードなんだろうが
> 10年の間何人のも人間が入れ替わりでメンテするなんてレアケース 昔の汎用機使ってるトコなんか今でもそんな事やってんじゃないの?COBOL辺りで そういう昔の拡張性皆無の言語の方がよっぽど同じ事するのに複数のやり方が出来ない 様になってると思うがねぇ
>>845 Javascriptの現状見てから言え。何でも過ぎたるは及ばざるが如しだわ。
あんな糞言語どうでもいいわ、死ぬ寸前のところだったのにGoogleの奴が余計なことしやがって LLなんて大嫌いだわ
いかにも金曜夜の空気だ
850 :
デフォルトの名無しさん :2013/12/06(金) 22:38:09.38
JavaScriptに対するTypeScriptのように C++ソースを吐く言語があればよいということだな
>>847 Javascriptの問題はブラウザのベンダーが引き起こしてる問題だろ
Perlのように言語そのものの仕様が崩壊してるわけではない
>>851 バカ? AltJSのことを言ってんだよ。
なんでこう真実はいつも一つみたいな流れになるのかねえww
バーローw
人間の脳がそう出来てるから 殆どの人間は価値観や目的によって善悪が異なる事を現実に何度も目にしてても自分の 考えこそが絶対的に正しいという幻想を持ち続けて生きてる そりゃ無駄な争いは無くなりませんて
せやかて工藤
857 :
デフォルトの名無しさん :2013/12/06(金) 23:35:48.08
JAVAは開発環境が重くないか? イクリプス?日食だぜ 日本を喰らうってか JAVAは使いにくい。C#ははるかに簡単でいいよな。
他と比べるならともかくJavaとC#に大した差はないだろ ラムダ式もJava8に取り込まれたし機能面ライブラリ面でも差がない
C# + Visual Studio に敵うものはなし
Java8は来年春リリースだっけ? 内緒だけどC#は8年前からラムダ計算できるんだよ
だよな 最強すぎる
>>860 (C#の大きな利点であった)ラムダ式もJava8に取り込まれたし、って意味だ
昔ほどC#が先行してるってわけではなくなった
むしろC#, Javaともに関数型言語や動的言語に押されて肩身の狭い思いしてる
あ?C#は動的言語でもあり関数型の考えも取り入れてるだろうが
>>863 dynamicのことか?
あれを動的言語と言い張るのは無理があるず
ラムダ式は別にどうでもいいや。 VisualStudio+C#がサクサクでインテリセンスが使いやすい。 JAVAは開発ツールが糞重くてイライラするっす。
Javaって値型もないしジェネリックも型消去とかいう奴なんでしょ? その2点だけでも実用上かなり痛い欠点だと思うけど
値型が必要になるほどパフォーマンスが重要ならC++使うからなぁ
Javaって今型推論あるの? あとプロパティ
プロパティはただの糖分更衣だしあってもなくても問題ないな
糖分更衣て
素で吹いたw 糖衣構文 ↓ 糖分更衣 生々しい覚え違いクソワロタwww
素でわからなかった
30年近くプログラミングしてるが、糖衣構文なんて単語初めて知ったわ
30年ってヘタするとおじいちゃんじゃね?
俺後一周で還暦じゃあ
長生きしていろんなテクノロジーの進歩に心を躍らせたいね
ふつうは構文糖衣って言うけどね
googleヒット数1780ワロタ
構文糖 糖衣構文
シンタックスシュガー
>>869 延々Getter&Setterを書きたいか?
>>881 それpublicフィールドにするのと何が違うのw
>>882 問題ない日本語訳があるのにカタカナ語使うのはダサいよ
ルー大柴みたい
一瞬糖衣更衣って読んでしまった
886 :
デフォルトの名無しさん :2013/12/07(土) 01:19:41.14
俺はいちいち糖衣でくるまない。 全部public 何が悪い
>>883 インテリセンスの記号がプロパティの方がかっこいいでしょ?
>857 >JAVAは開発環境が重くないか? >イクリプス?日食だぜ >日本を喰らうってか 何を言っているんだ。 ちゃんとIBMの期待通りSun Microsystemsは 没落した。 Sun(日)が欠けたと言うより勝手に沈んだだけだが。
JAVAって書く奴ってなんか頭悪いよね
プロパティとフィールドでは挙動が違うから、フィールドを公開するとあとでプロパティに変更するときに呼び出し側の修正がいる場合がでてくる
そんなのref/outとミュータブルな値型ぐらいでしょ
>>823 int delCount = 0; は、DeleteLineが始まってすぐに定義して、
return delCount; は DeleteLineの一番最後、
つまり、jのforループの外じゃないと駄目なんじゃないの?
なおロジックはチェックしてないのであしからず
>>884 ルー語は有益だよ
君みたいなバカにはわからないだろうけど
日本人ならみんなが身につけるよう推奨されてもいいぐらいに便利だ
普通シンタックスシュガーだよなw
シンタックスシュガーだな っつーか専門用語って日本語だったり英語だったりすると覚えられないから 申し訳ないけど相手がどっちで覚えてるかを無視して英語に統一してる 開発者同士で会話が糞ダルいのって言葉の壁で意思疎通できないときだったりする
googleヒット数3300
>>896 お前みたいに片方の言語しか使えない人がいると意思疎通できないことが多いな。
プロなら両方知ってるのは当然だし「ぼく英語しか覚えてないから英語でよろしく」なんて通用するのは2chくらいだろう。
>>896 英語/日本語関係ないよ。意思疎通が下手なだけ
「シンタックスシュガー」なんて誰も知らないような単語じゃなく「読みやすい/書きやすいソースを書きましょ」って
言った方が遥かに"伝わる"
意思疎通が〜とかアスペが〜とか言ってる奴ほど仕様書書かない、書けないんだよな。
大事なのは言葉の意味を聞かれたときにちゃんと説明できることだよ 糖衣構文にしろシンタックスシュガーにしろ知らない人にはどっちで聞いても意味がわからないしな
プロパティがシンタックスシュガーとか言ってる奴は メソッドもクラスも全てアセンブラのシンタックスシュガーでいいんだな?
そうそう。SEは決まってみなそういうよな。 本来それを説明するのがSEの仕事なのになぜかPGに説明をさせようとする。 仕事してくれ。
言葉の意味を説明するのはseでpgはそんな必要は無いそうです。 pgの単金は3000円/時間ぐらいでいいよね
海外で1000円だな 3000円とか高杉
仕様も決めない、コードも書かない、テストもしないんだから、 顧客のご機嫌ぐらい取れよ、自称SEさん。
907 :
デフォルトの名無しさん :2013/12/07(土) 12:36:55.44
>>883 ・値の変更にブレークポイントが設定できる
・読み取り専用や演算結果を設定できる
まあそこは構造体でええやろ、ってとこでも
馬鹿の一つ覚え(もしくは規約)で
クラス使ってるのも多いけど
じゃあビットで なんつって
buy toy
911 :
デフォルトの名無しさん :2013/12/07(土) 13:36:57.74
>>896 昔得意げにライナックスって言ってるやつがいたわ
スヌーピーにでてくるLinusはライナスだろ
>>899 お前シンタックスシュガーの意味分かってないじゃんw 馬鹿かw
アスペわろたw
日本語・英語の違いによるポリシーでなく他人にわかるように説明しろ と言う人と そのレスのシンタックスシュガーの用語の使い方が違う と主張する人の話が噛み合っていない。 どちらも同じレスを連投するだけ
マジでPGってこんなんばっかだよな、まともに双方向でコミニュケーションとれるやつが少な過ぎる 合意形成や相互理解に努める気がない会話とか不毛でナンセンスだから俺は放棄するね
言いたことだけ言って会話しない、できない人って多いよな で、急にキレ出したりするしw
コーディングルール〜三項演算子はできるだけ使わないようにしましょう こんな場合にちょっとでも使うとブチ切れる奴いるよな。なんつーか。馬鹿すぎて相手にならないw
>>916 いるいる
まず人間として恐ろしく低次元のやつが平気でいる
マ板に帰れ
マ板君キタ━━━━(゚∀゚)━━━━!!
とりあえず仕様書に全て書いてあるから仕様書とソース読めば作れます!と言い張るやつぶん殴りたい そのゴミみたいなドキュメントじゃわかんねーんだよ!途中から入ってなんの説明も無しに論理名だけじゃイミフなんだよ 質問すれば仕様書読みました?って・・・舐めてんの?死ぬの? マジで普通に会話したいだけなのに、俺がキティみたいな目で見られるのもう疲れたよ
それこそマ板でやれよw
syntax error! プログラミング言語で指示して下さい
日本語でお願いします
10 しね。 run Ok ■
928 :
デフォルトの名無しさん :2013/12/07(土) 17:24:37.21
実行中のプログラムで作られたインスタンスが保存されているメモリーのアドレスを、外部アプリで取得するにはどうしたらいいでしょうか? 確認したい時点で、インスタンスがあるかどうか、またインスタンスの数は不明な状態で、インスタンスの数も同時に取得したいです。
一番簡単なのはMicrosoft Support Professionals Toolkit for Windowsでダンプしてそのダンプ結果解析
Inside OLE読め
読んだところで意味ねーよ
928はソースのないプログラムの中を見たいと言ってるのかな〜
OLEってポインターの上位アドレスが単なるセレクターだった16bit時代に マーシャリングとかあって先進的だなぁと思ってた。 参照カウンターとかVテーブルの考え方もこれで知ったよ
comは思い通りに使えるし作れるが未だに理解はしてない。あれまともに理解できる奴なんていないだろ
俺は.NETではCOMコンポーネントをまだ満足に作れないよ 凝った事してない自作クラスならなんとかなるが 遅延バインディングとかいつもハマりまくる
>>937 みたいな奴が作ったcomを誰が利用したいと思うのかしらん
いや複雑な技術ってそういうものだから。 .NETだってCLRの細部の仕様まで理解してるC#プログラマってどれだけいるよ
Jeffrey Richter
一人だけか
ヘジたんは?
Jeffrey Richter さんってナポレオン本の人?
C++なんて言語仕様全部理解して使ってる奴なんて日本で100人もいないだろw
仕事でも趣味でも使わないが仕様は把握してるよ
言語厨ってやつか
COMはOLEオートメーションは何とかなるがUIがからむとしんどいな
知ったか学生か
なによりまず本やドキュメントが少ないのが困る 古いから絶版になってたりするしさ 電子書籍で格安で再販してくれたら助かるんだが
以前C#でCOMサーバー作ったら、それをC#のRCWから呼べなくてガックリきた。
952 :
デフォルトの名無しさん :2013/12/08(日) 14:35:11.50
COMスレッドには人いなかったのにここにはいっぱいいるなw COMの交換則とか反射則とかが理解できなかった
COM理解できるってスーパープログラマーだろ 早くGoogleかMicrosoftに転職した方がいいぞ
COMに関しては、世界はなあなあで回ってると思う とりあえずCOMインターフェイスを使う側としてはなんとかなっちゃうし
アパートメントとかメモリモデルがややこしすぎる
んでスーパープログラマーさん達はどこにお勤めで? 外資の名だたるソフトウェアメーカーでバリバリ活躍してらっしゃるんですよね?
それはスーパープログラマーのいるとこで聞けよ 一人で誤解しているようだがこんなところにそんな人間はおらぬ
958 :
デフォルトの名無しさん :2013/12/08(日) 18:09:08.91
COMってまだ使われてるのか? アドオンとかはCOMっぽいけどな。 なんとなく 別にみたわけじゃないけど
使わされてる みんなもう使いたくないけど まるで末期ガンのようにWindowsに病巣を行き渡らせて摘出もできない
WinRTもCOMなんでしょ確か。
>>959 みたいな話は昔からよく聞くけど、これが本当ならMSもこの期に及んで
新規で使ったりしないと思うんだけど。
WinRTってそれこそCOMの呪縛から逃れるために作ったんじゃなかったのか
winmdか、一応次世代COMということになってるね
WindowsからCOMを除いたらデバドラしか残らないってぐらいCOMの塊だぞ
MSがOfficeで稼ぐのを諦めない限りずっと残るんじゃないの
ないと2chビューアが動かない。
officeはいい加減vba捨ててpowershellに切り替えればいいのに
ビジネスで使われてるvba資産は想像以上に膨大なので絶対に切り捨てられない。
切り捨てまで行かなくてもpowershellと併用は可能だろう
スタートメニューボタンは犠牲になったのだ
VBA切り捨てなくてもいいけどC#スクリプトにするべき OFFICEもシェルもバッチもDOSもC#スクリプトで
OfficeはIronPythonでいいじゃん もうVBのコード見たくないよ
コピペマン参上!まで読んだ。
愚かな考えってかオーバーライド知らんだけに見えるな プログラミング自体なんて勃興したばっかなのに 聖書のごとく唯一の真実として語られても困るがね
日本語でおk
排便メソッドw
978 :
デフォルトの名無しさん :2013/12/10(火) 08:34:27.14
FlowLayoutPanel 別スレッドから触るなら同期しないとダメよ
beginとなんかを control.addの前後に挟めばいいですか?
そんなレベルでマルチスレッド使ってるの?
わろた
>別スレッドから触るなら同期しないとダメよ この意味すらわからないならあきらめろん
984 :
978 :2013/12/10(火) 12:27:05.76
>>983 すいません、あまり意味が分からなくて…
同時にアクセスされたらロックさせて待たせるみたいな機能をを実装したSingletonクラスを作り、
FlowLayoutPanelへのアクセスを全てそのSingletonクラスに実装したDeligateメソッド経由で行えばいいのでしょうか?
986 :
デフォルトの名無しさん :2013/12/10(火) 17:20:14.72
TcpClientででかいデータを一発でやりとりすんのってどうやってやるんですか?
何GB?
同期ってロックと違うの? 同じメモリ上のリソース使ってるんじゃないの?
別スレッドからUIいじれない。同期するしない、エラーが起きる可能性があるとかじゃなくて落ちる。
990 :
デフォルトの名無しさん :2013/12/10(火) 19:51:46.06
じゃあ別スレッドからメインスレッドにUIいじってくれってスタックしとけばいいんじゃないの
それでもいい
素人だねえ 低レベルなレイヤ知らないとこうなる
(また変なの来たよ・・・)
まずLinuxから始めるべき
996 :
デフォルトの名無しさん :2013/12/10(火) 21:09:31.54
Win32でプログラムしててPostMessageで自分のキューにボタン押したとか メッセージ飛ばして処理を先送りしたいことってあるじゃないですか。 あれをC#でやりたくてググったらPostMessageはBeginInvokeだよ みたいな事がかかれてるんだけどいまだに本当にそうなのか?って疑問なんだが。
なんで疑問なの?
単純に、使い込んでないからあやふやなだけなんだけど。 イメージとしてはPostMessageってキューに積むことだけど BeginInvokeってキューに積むことなの?
Control.BeginInvokeはアプリケーションループで順次実行 デリゲートのBeginInvokeはスレッドプールを使って並列で動く
1000 :
デフォルトの名無しさん :2013/12/10(火) 21:23:40.53
とどめだ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。