トップページ⇒tech
1001コメント312KB

C#, C♯, C#相談室 Part85

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しぃ♯2014/10/03(金) 10:12:32.92ID:Os/KN2bD
前スレ
C#, C♯, C#相談室 Part84
http://peace.2ch.net/test/read.cgi/tech/1405167285/

Visual Studio 2013 Express 他
http://www.visualstudio.com/downloads/

■コードを貼る場合は↓を。
http://ideone.com/
0002デフォルトの名無しさん2014/10/03(金) 10:18:46.57ID:OynHM83k
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0003デフォルトの名無しさん2014/10/03(金) 15:33:50.83ID:tHhdIR5n
前スレ>>971
ありがとうございます。解決しました。バージョンはOracle.DataAccess 4.121.1.0です。
要点:最初のデータINSする際に、適当な文字列をCLOB列に入れる
詰まってた点:最初のデータINSの際に、CLOB列には何も値を入れていなかった(列指定すらしてなかった)

CREATE TABLE TEST (
ID NUMBER,
NAGAI CLOB,
CONSTRAINT PK_TEST PRIMARY KEY(ID));

OracleConnection con = new OracleConnection();
con.ConnectionString = "User Id=test;Password=test;Data Source=test";
con.Open();

//第一段階(CLOBに適当な値入れる。今回の場合OO4OっぽくEMPTYという文字列)
OracleCommand myCmd = new OracleCommand("insert into test(id,nagai) values (1,'EMPTY')", con);
myCmd.ExecuteNonQuery();

//第二段階(CLOBに本当の値入れる)
char[] charArray = "ほんまに長い文章".ToCharArray();
OracleCommand cmd =new OracleCommand("select * from test", con);
OracleDataReader rs = cmd.ExecuteReader();
rs.Read();
OracleTransaction txn = con.BeginTransaction();
Oracle.DataAccess.Types.OracleClob tclob = rs.GetOracleClobForUpdate (colno);
tclob.Erase();//←最初に入れたEMPTYという文字列を消す。
tclob.Write(charArray, 0, charArray.Length );
txn.Commit();

あー、ビール飲みたい
0004デフォルトの名無しさん2014/10/03(金) 15:35:48.80ID:tHhdIR5n
>>3
訂正
× Oracle.DataAccess.Types.OracleClob tclob = rs.GetOracleClobForUpdate (colno);
○ Oracle.DataAccess.Types.OracleClob tclob = rs.GetOracleClobForUpdate (1);
0005デフォルトの名無しさん2014/10/03(金) 16:27:20.58ID:mBfaO4vR
プラットフォームの差を吸収してくれる2Dグラフィックスのライブラリありますか?
Windows FormsやWPF, Xamarin.iOSあたりを一本化したいのですが。
0006デフォルトの名無しさん2014/10/03(金) 18:21:10.66ID:Q8By6zWS
神様いますか?

と同レベルの質問
0007デフォルトの名無しさん2014/10/03(金) 19:13:19.99ID:ut+iyPLY
主にビットマップの扱いの違いを吸収してくれるライブラリがあればと思った次第です。
0008デフォルトの名無しさん2014/10/03(金) 20:52:07.06ID:B6mxhxuk
Haxe
0009デフォルトの名無しさん2014/10/03(金) 23:59:30.58ID:LB9f4Ap9
表示周りは統一する必要はないと思うが、
画像処理向けの下地となるライブラリが欲しいのは確か。

JPEGなどの読み書きすらバラバラとかキチガイレベルだし。

無いの?
0010デフォルトの名無しさん2014/10/04(土) 04:21:56.69ID:01MBjTk2
そのライブラリを使うと全ての機器で同じアプリケーションが動かせるの?
0011デフォルトの名無しさん2014/10/04(土) 04:43:27.33ID:a6phxVfb
10=論理的思考のできないバカ
0012デフォルトの名無しさん2014/10/04(土) 07:37:03.56ID:OzKmGexA
フレームワークとOSの一本化は難しいなあ。
つかそれC#スレで訊くことだろうか。
0013デフォルトの名無しさん2014/10/04(土) 09:21:55.97ID:6oHImsSC
アルゴリズム自体はOSに依存しないだろ
0014デフォルトの名無しさん2014/10/04(土) 09:28:23.28ID:6oHImsSC
>>12
JavaでいうImage I/Oに相当するものが無い以上、議論の余地はある。
入出力に近い部分は低レベルなAPIで仕方ないが、高レベルなAPIは共通化すべきなのは確か。
0015デフォルトの名無しさん2014/10/04(土) 09:32:36.24ID:4UBXx0Nb
別にPresentationCoreとSystem.Drawingでブリッジ出来るんだから好きな方を使えばいいよ
0016デフォルトの名無しさん2014/10/04(土) 09:49:52.86ID:sHWShTLn
画像処理だとプレーナーで扱えないと不便だよ。
C#で画像処理やるのかって話になるだろうけど。
0017デフォルトの名無しさん2014/10/04(土) 10:38:04.90ID:xAGR2U+S
>>15
標準のは出力周りと加工周りが混ざってるのがおかしいだろって話じゃないの?
0018デフォルトの名無しさん2014/10/04(土) 10:49:36.60ID:7UQ2MZz9
PCLで一から作れはいいじゃない
0019デフォルトの名無しさん2014/10/05(日) 03:52:05.05ID:bqkZ4fJc
PLCで一から作ると聞いてやってきました
0020デフォルトの名無しさん2014/10/05(日) 09:00:45.97ID:kaivkZ8S
GitHubでいいか
俺は空ソリューション作るくらいなら手伝うぞ!
0021デフォルトの名無しさん2014/10/05(日) 16:41:20.12ID:1+6ntIpv
プログラミング初心者で、C#の本買おうと思うんだけど、何がいい?
0022デフォルトの名無しさん2014/10/05(日) 16:46:06.40ID:FZuSwsnO
独習
0023デフォルトの名無しさん2014/10/05(日) 18:39:40.16ID:tk01L/GA
Amazonで☆1つの本で逆修行
0024デフォルトの名無しさん2014/10/06(月) 08:31:28.43ID:NYLrISWF
System.Random xxx = new System.Random(999);
 :
if( xxx.NextDouble() <= 0.5f )

などの形で固定乱数を使っています。
この固定乱数の内容は、
環境などによって変化しますか?

たとえば、同じソースコードでも
Win でビルドしたときと Mac でビルドしたとき、
あるいは
PC で実行したときとスマホで実行したときなどです。

固定乱数は固定乱数でも、
環境によって違う乱数で固定されることはありますか?
0025デフォルトの名無しさん2014/10/06(月) 08:36:20.28ID:SYX2V8U/
変わったらブチ切れだな
0026デフォルトの名無しさん2014/10/06(月) 08:37:45.28ID:SYX2V8U/
と思ったら浮動小数点数か
そもそもdoubleは厳密には同じにならないじゃね?
0027デフォルトの名無しさん2014/10/06(月) 08:50:55.21ID:KTd/o5Fp
doubleのフォーマットはIEEEの規格で決まっているんだから
機種が違っても普通は同じですね
0028デフォルトの名無しさん2014/10/06(月) 09:02:42.55ID:nQ4CdO6G
それは言語仕様の4.1.6を読んだ上で物申してるんだろうな?
0029デフォルトの名無しさん2014/10/06(月) 09:05:41.34ID:sbNBYsWu
擬似乱数に何を使うかは仕様で決まってないから、実装によって変わる可能性はあるな。
0030デフォルトの名無しさん2014/10/06(月) 11:25:52.74ID:0OD+10Fi
だよねえ。
固定的な物が必要なら、自分で乱数表を持てばいいんじゃね。
0031デフォルトの名無しさん2014/10/06(月) 12:00:10.37ID:5KfGZOw2
>>7-20
https://github.com/Team2ch/PortableImageLibrary
0032デフォルトの名無しさん2014/10/06(月) 23:26:37.22ID:vQA3BsBk
inno setup で、インストーラーを作りたい。
VisualStudio上で一つのDLLを参照して使っています。
ビルドすると、exe と同じフォルダにdll ができます。
inno setup では、ウイザードでexeは指定する箇所はありますが、
dll はどこで指定するのでしょうか?
0033デフォルトの名無しさん2014/10/06(月) 23:34:28.42ID:lB3svTyz
ここはC#スレです
0034デフォルトの名無しさん2014/10/06(月) 23:43:27.49ID:43njZPAT
なぜそれをここで聞こうと思ったのか知りたい
0035デフォルトの名無しさん2014/10/07(火) 04:56:31.47ID:NkVjNy6B
馬鹿だから
0036デフォルトの名無しさん2014/10/08(水) 03:40:41.74ID:tXs+8tjH
ちょっと教えて(`・ω・´)

C#でUSBデバイスをコントロールとかデバイス情報をえる方法ってどうやんのか

簡単におせーて!
0037デフォルトの名無しさん2014/10/08(水) 04:01:53.68ID:nI8zrZND
>>36
特殊なもの以外は大体汎用の窓口があるのでそれを利用するしかない
http://www.softech.co.jp/mm_120307_pc.htm

後はC++でかかないといけないかC++で書かれたライブラリを
C#から扱うかマネージドでラッパーされてるものを探すか
そんな感じ
0038デフォルトの名無しさん2014/10/08(水) 04:19:35.18ID:tXs+8tjH
>>37

サンキューベリーマッチョ!

試してみる!(`・ω・´)
0039デフォルトの名無しさん2014/10/08(水) 04:22:23.99ID:5RtDOSJM
24です、ありがとうございました。
0040デフォルトの名無しさん2014/10/08(水) 10:33:45.22ID:LsfDzFmD
>>36
[C#]でUSBメモリのシリアル番号を取得して、ドングルにする方法
ttp://ar4pro.exblog.jp/13172377

こんなのとか?
0041382014/10/08(水) 11:56:05.06ID:tXs+8tjH
どうやらC#の文法をもっとよく勉強しないといけないらしい・・・(; ・`д・´)



ちょっと文法勉強してくる(`・ω・´)
0042デフォルトの名無しさん2014/10/08(水) 12:02:30.86ID:P6WfsOfK
USBと言えばこれだけど
概出かな
https://github.com/adamcaudill/Psychson
0043デフォルトの名無しさん2014/10/08(水) 13:41:14.43ID:XHiy9Jjo
WinUSBってハードが対応してなきゃ使えないでしょ。

どんなデバイスでも各種ディスクリプタを取得するところまではできるけど、
当たり前だけどデバドラやハードの仕様はそれぞれ違うから、統一的な方法で制御なんか
できないよ。
0044デフォルトの名無しさん2014/10/08(水) 16:39:28.41ID:d9B7YCJY
>>36
http://sourceforge.net/p/libusbdotnet/code/HEAD/tree/trunk/stage/
0045デフォルトの名無しさん2014/10/08(水) 16:54:33.66ID:/lZDlxPZ
>>43の通り

USBデバイスがどのドライバで動いているのか確認

WinUSB
CyUSB
だとC#のサンプル、開発ツールが公開されてる

C++で良ければ、UsbViewのソースが参考になる

USBCompleteを読むべし
0046デフォルトの名無しさん2014/10/08(水) 20:04:40.58ID:O6I7K392
>>43
> 当たり前だけどデバドラやハードの仕様はそれぞれ違うから、

それを(ある程度)お手軽に作るためのもんだろ?
ここム板だよ、来るところ間違えてね?
0047デフォルトの名無しさん2014/10/08(水) 20:35:29.81ID:TQCvcs6p
>>46
馬鹿だろお前。
0048デフォルトの名無しさん2014/10/08(水) 21:39:24.23ID:DyoQ1dDy
>>47
そうでもないだろう
0049デフォルトの名無しさん2014/10/08(水) 21:40:02.31ID:sQh1pVwt
>>47
馬鹿としか書けない奴が来る板じゃないぞ w
0050デフォルトの名無しさん2014/10/08(水) 21:52:33.63ID:suC3haGx
馬鹿ニダ無理
0051デフォルトの名無しさん2014/10/09(木) 04:20:32.11ID:r/VaY0zM
USBを操作する参考になるわかりやすいサイトがほとんどない・・・( ;∀;)

これってDllImportとかつかったほうがいいの?(´・ω・`)
0052デフォルトの名無しさん2014/10/09(木) 04:22:59.15ID:r/VaY0zM
>>45

デバイスはPICの内部USB使おうと思ってるんだけど、その前にパソコン側での

USB情報の取得とかをC#上でやりたいんだよね(`・ω・´)
0053デフォルトの名無しさん2014/10/09(木) 09:35:01.57ID:IFg54I5e
自分でやるべきことと他人にやってもらおうとしてることの比率が激しく間違っている
0054デフォルトの名無しさん2014/10/09(木) 10:06:47.51ID:o6BPJM3A
>>52
デバイスの操作をC#でやろうと思うなら、マーシャリングの知識が必須だぞ
ソースコードはPInvokeの嵐になる
0055デフォルトの名無しさん2014/10/09(木) 10:56:15.83ID:ApsucoJu
>>52
無粋かもしれんけど、USBをシリアル通信じゃダメなんかね?
FT232ならググれば色々出てくるし
http://www.geocities.jp/zattouka/GarageHouse/micon/linkPC/FT232R.htm
0056デフォルトの名無しさん2014/10/09(木) 11:12:33.64ID:IFg54I5e
自分のPCで使うだけなら とりあえず WinUSBでやってみればいいじゃまいか
それで拾えないデバイスがあればまた考える
0057デフォルトの名無しさん2014/10/09(木) 20:48:46.91ID:r/VaY0zM
>>54

ソースコードを後から読むとが読みにくくなって、修正が・・・・・・・

C#の初心者でも簡単にできるという利点がなくなるジャマイカ!(`・ω・´)



ということで、とりあえずWinUSBからやってみることにする(`・ω・´)
0058デフォルトの名無しさん2014/10/10(金) 03:08:47.59ID:Cr73tVZN
>C#の初心者でも簡単にできるという利点がなくなる

おつむの弱い低脳は去れ
0059デフォルトの名無しさん2014/10/10(金) 16:01:33.74ID:VZ3kgnID
VB.netのネット周りのコードをc#に変換して利用しようとしてるんですが
一部でエラーがでてうまくいきません

変換元
Dim dictionary As Dictionary(Of String, Object) = DirectCast(serializer.Deserialize(Of Hashtable)(input).Item("response"), Dictionary(Of String, Object))

変換後
Dictionary<string, object> dictionary = (Dictionary<string, object>)(serializer.Deserialize<Hashtable>(input)).Item("response");

変換後のほうはItemのところが無いよとエラーが何もできない状態です。
どうすればいいのでしょうか?

エラーコードはこれです
エラー 5 'System.Collections.Hashtable' に 'Item' の定義が含まれておらず、型 'System.Collections.Hashtable' の
最初の引数を受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。
0060デフォルトの名無しさん2014/10/10(金) 16:10:50.90ID:Et9M36jG
Item引数付きプロパティはC#ではインデクサで扱う
hoge.Item("A") -> hoge["A"]
0061デフォルトの名無しさん2014/10/10(金) 16:49:11.03ID:KCO91E8u
>>59
カッコの対応がおかしくないか?
.Item()をキャストするんだろ
キャストしたもののItemを取るんじゃないだろ
0062デフォルトの名無しさん2014/10/10(金) 16:53:44.75ID:VZ3kgnID
>>60
それもダメでした

>>61
括弧は私がつけてみましたがそれでもダメでした
最初はこれでエラーがでて
(Dictionary<string, object>)serializer.Deserialize<Hashtable>(input).Item("response");
こうして
(Dictionary<string, object>)(serializer.Deserialize<Hashtable>(input)).Item("response");

((Dictionary<string, object>)serializer.Deserialize<Hashtable>(input)).Item("response");

これも試しましたがItemがやはり無いんですよね・・・


VB.netなんてキライだ!
こんな甘いのが通るなんて信じられない
0063デフォルトの名無しさん2014/10/10(金) 16:59:24.87ID:SL7c9laH
>>62
なんで>>60がインデクサって単語使ってこう直すんだと例まで出しているのに無視するの?
0064デフォルトの名無しさん2014/10/10(金) 17:00:25.66ID:Et9M36jG
駄目でしたエラーが出たじゃなくてエラーの内容を書いて

ていうか行を分けて書けばどこが問題か分からないか?
Hashtable table = serializer.Deserialize<Hashtable>(input);
object item = table["response"];
Dictionary<string, object> dictionary = (Dictionary<string, object>)item;
0065デフォルトの名無しさん2014/10/10(金) 17:11:11.95ID:KCO91E8u
>>62
それ全部カッコの対応がまちがってる
そのうえでItemがないのは>>60

甘いとか何とかいう問題じゃないけど
カッコの対応わからんのはお前の頭が悪いとしかいえん
0066デフォルトの名無しさん2014/10/10(金) 17:13:05.99ID:VZ3kgnID
>>63
すみません
この辺やったことない上に何が成功なのかイメージがわかなかったので・・・

>>64
エラーは>>59の最後に・・・
0067デフォルトの名無しさん2014/10/10(金) 17:13:27.36ID:KCO91E8u
ああ、一番上は合ってるか
0068デフォルトの名無しさん2014/10/10(金) 17:17:16.06ID:VZ3kgnID
ちなみに
NG
Dictionary<string, object> dictionary = (Dictionary<string, object>)(serializer.Deserialize<Hashtable>(input).Item["response"];

でした
VB.net特有のDirectCastの動きがよくわからないので・・・・
0069デフォルトの名無しさん2014/10/10(金) 17:27:48.18ID:KCO91E8u
>>68
>>60を理解してる?
Itemがないってエラー出てるんだろ
DirectCastどうこうの話じゃないぞ

あとそれ、もはや右と左のカッコ数すらあってないんだが、何かのギャグか?
0070デフォルトの名無しさん2014/10/10(金) 17:30:06.05ID:LABD+nd+
分かるように説明してないお前らが悪いは
インデクサとか言われても何のことか分からんだろう

まあ>>64の見て分かんないんじゃ絶望的だが
0071デフォルトの名無しさん2014/10/10(金) 17:31:08.45ID:Et9M36jG
60でこう翻訳しろって書いたんだけどね
64といいなぜかことごとくスルーされるなぁ
0072デフォルトの名無しさん2014/10/10(金) 17:52:39.76ID:KCO91E8u
>>70
デフォルトプロパティならともかく、インデクサは普通にC#の用語なんで
0073デフォルトの名無しさん2014/10/10(金) 18:21:49.54ID:5QLR3uTU
インデクサはVB.NETでも普通に使いますけどね
0074デフォルトの名無しさん2014/10/10(金) 19:00:21.24ID:Rmsm9w7e
C#->VB.netの変換だとあまり考えなくていいけどその逆は
いろいろ悩むこと多いな
普段使わないだけに変換の仕事回ってきたときはぶち切れそうだった
0075デフォルトの名無しさん2014/10/10(金) 19:48:39.02ID:T0LFFi4l
金額次第
0076デフォルトの名無しさん2014/10/10(金) 20:28:23.68ID:KCO91E8u
>>73
使うのは使うけど、用語の問題だな
VBではインデクサって用語はない

>>74
逆じゃね
C#からVB.NETだと、Unsafe周りとかどうしてもできない事もあるぞ
VBからC#への変換で困るのは、たんにVB.Netの知識が足りんだけだろ
0077デフォルトの名無しさん2014/10/10(金) 21:08:04.13ID:fTgvT3uI
VBのインデクサ(デフォルトプロパティ)ってdic.Item("key")でもdic("key")でもいけるからな
後者知ってれば悩むことないのに…
0078デフォルトの名無しさん2014/10/10(金) 21:30:56.03ID:KCO91E8u
もともと以前のVBではデフォルトプロパティとインデクサは別物だったんだが
VB.NETになってデフォルトプロパティはインデクサにするって事になったからな
互換性に配慮した結果なんだろうけど、デフォルトプロパティ廃止してインデクサ実装のほうが良かった気も
0079デフォルトの名無しさん2014/10/10(金) 21:34:42.57ID:Hckiacqa
そもそもなんでvb.netなんて作ったんだろ
C#で十分VB6あたりのポトペタを継承してるし言語仕様も十分だと思うんだよな
END IFとかIDEが補完してくれるとしても見てるだけでうんざりするわ

変数宣言するにしてもAsとか書かないといけないし
0080デフォルトの名無しさん2014/10/10(金) 21:57:42.24ID:uY0m6Sy0
移行にツールが使えるからな
0081デフォルトの名無しさん2014/10/10(金) 23:04:57.64ID:cGiw//Qi
>>79
ちょっと英語かじったぐらいの奴だと、アルファベットで書いてある内容を読みたいなら、辞書片手になんとか読もうとはするだろ?
でも、ヘブライ語とかだったら、はなっから無理ってなると思う。
取っ掛かりのために見た目って、結構重要なんだよ。
0082デフォルトの名無しさん2014/10/11(土) 07:02:01.94ID:eXd+8ng9
vb.netなかったら、今でもvb6で開発してそうで怖いうちだわ・・・
0083デフォルトの名無しさん2014/10/11(土) 11:22:13.72ID:vaox7Njv
いまから、monoの入門書買いに行くんだけど、monoもc#だからここでいい?
0084デフォルトの名無しさん2014/10/11(土) 11:23:54.45ID:qGYvKsgJ
>>83
http://peace.2ch.net/test/read.cgi/tech/1329023778/
0085デフォルトの名無しさん2014/10/11(土) 11:38:22.10ID:nMlC9xnx
別にいいけど無頓着にMono固有の質問をしたら何を言われても知らんよ
0086デフォルトの名無しさん2014/10/11(土) 12:11:23.12ID:qigD0Vrf
monoの入門書売ってなかった( ;´Д`)
てか、あるにはあったがandroid向けしかなかった、書泉で
0087デフォルトの名無しさん2014/10/12(日) 14:16:15.12ID:fouZ38nR
インターフェースってなんでデフォルトの実装書かせてくれないんだろう。
そうすればミックスインとか楽にできそうなのに。
0088デフォルトの名無しさん2014/10/12(日) 14:42:22.18ID:E/kBFbk0
インターフェースはそんなものじゃねえと言っちまえばそれまでだが
多重継承を禁止したから、そんな機能付いていたらインターフェースを一つしか使えなくなっちまう
0089デフォルトの名無しさん2014/10/12(日) 14:49:04.51ID:y1Z3+JnY
実装付きのインターフェイスなら、それはクラスと同じじゃん。
0090デフォルトの名無しさん2014/10/12(日) 15:05:26.43ID:fouZ38nR
インターフェースは実装を強制されるけど、
実装してなかったらデフォルトを実行でええやん。

実行しなくなかったら今まで通り
NotImplementedExceptionを実装すればいいだけだし。

デフォルトっていうか、IDEでデフォルト実装を書き映すか、
NotImplementedExceptionのどっちか自動実装するように選ばせてくれたらいいのに。
0091デフォルトの名無しさん2014/10/12(日) 15:12:27.08ID:lBV8smRv
abstract classにするかinterfaceに対するAdapterクラス用意しとくかって感じじゃね?
0092デフォルトの名無しさん2014/10/12(日) 15:13:23.50ID:J8Zsrtwf
実装付きな抽象クラスでいいよな
0093デフォルトの名無しさん2014/10/12(日) 15:25:36.89ID:fouZ38nR
実装付きな抽象クラスはミックスできねーだろ
0094デフォルトの名無しさん2014/10/12(日) 15:41:43.20ID:E/kBFbk0
多重継承が出来るC++にすれば?
0095デフォルトの名無しさん2014/10/12(日) 15:43:51.37ID:sBs95EDt
必要なインターフェースを継承してデフォルト実装をしたベースのクラスを作って
本番のクラスでそのベースのクラスをを継承するとか
そういう方面で運用回避することになるんじゃね
0096デフォルトの名無しさん2014/10/12(日) 15:50:07.45ID:E/kBFbk0
ミックスするなら抽象クラスを階層的に継承するって方法しかないな
0097デフォルトの名無しさん2014/10/12(日) 16:00:32.58ID:gGAaa5/Q
設計思想の話はConnectで聞いてこい
いつから作者の気持ちを答えるスレになったんだ
0098デフォルトの名無しさん2014/10/12(日) 16:05:00.23ID:AYBxX2xn
命令口調くんって安定してアホだな
0099デフォルトの名無しさん2014/10/12(日) 19:33:47.65ID:eD8Tq+eD
だまれ小僧
0100デフォルトの名無しさん2014/10/12(日) 20:36:22.25ID:Z8ok/lvr
>>98
0101デフォルトの名無しさん2014/10/13(月) 07:52:26.06ID:pO4UCVlM
つまらない話延々とされるよりはいい。
そういうのは相談室じゃなく喫煙所でやってておくんなまし。
0102デフォルトの名無しさん2014/10/13(月) 10:56:24.48ID:7i+sJhXA
>>101
喫煙所レベルのレス乙
0103デフォルトの名無しさん2014/10/13(月) 17:54:23.93ID:u5iAxuZi
C#4.0でデバッグ用に行数を出力する方法を思いつきました。応急処置なので出力フォーマットは綺麗ではなく余分な字が混ざります (s:line)

定義
public static string lineNumber(Exception e) { string ret = e.ToString(); int x = 10; ret =ret.Substring(ret.Length - x, x); return ret; }


呼び出し例
try { throw new Exception(""); }catch (Exception e) { Console.WriteLine("lineNumber: \""+lineNumber(e)+"\""); }

出力例
lineNumber: "s:line 366"
.
0104デフォルトの名無しさん2014/10/13(月) 18:23:00.60ID:TEwcKFwB
…自分で同名の属性定義すれば4.0ターゲットでもCaller Info使えるよ?
http://ideone.com/tqBMEZ
0105デフォルトの名無しさん2014/10/13(月) 18:25:31.11ID:B0PQ1nbZ
>>103
取りあえずpdbファイル配置してStackTraceクラス使えばいい
Console.WriteLine(new System.Diagnostics.StackTrace(e, true).GetFrame(0).GetFileLineNumber());
0106デフォルトの名無しさん2014/10/13(月) 20:27:49.79ID:ZmfF80tJ
ミックスインならインターフェイスの拡張メソッド使ってやればいいよめんどいけど
0107デフォルトの名無しさん2014/10/15(水) 18:15:07.77ID:v6NXSltG
構造体に触るとNullReferenceExceptionが出るんだけど、そんなことありえる?
IInputObject を実装してるツールバーですが

public override int UIActivateIO( bool fActivate, ref MSG Msg )
{
 try
 {
  Debug.WriteLine( "UIActivateIO" );       // ←ここまで出力されてて
  Debug.WriteLine( "UIActivateIO, " + Msg );   // ←ここで例外がでてるっぽい
  Debug.WriteLine( "UIActivateIO, " + Msg.message );
 }
 catch( Exception ex )
 {
  MessageBox.Show( ex.ToString() );
 }
 return S_OK; 
}

MSGは構造体であることは間違いありませんが……
0108デフォルトの名無しさん2014/10/15(水) 18:17:05.36ID:v6NXSltG
UIActivateIOはMsgにNULLを渡してくることがあるみたいですが、
そういうときってマーシャラーが良きにはからってくれるんですよね?
触った瞬間に例外って不思議……
0109デフォルトの名無しさん2014/10/15(水) 18:20:03.39ID:5vlaZL8F
ぬるぽ
0110デフォルトの名無しさん2014/10/15(水) 18:27:46.85ID:v6NXSltG
あー、ぬるぽがNullReferenceExceptionになって出てくるってことですか……

public override unsafe int UIActivateIO( bool fActivate, MSG* msg )

にしてmsg == nullを見たらtrueで、
次の行のmsg->messageでNullReferenceExceptionが出ました

つまりマーシャラーはなんにもしてくれないってことですか。
しかもこの例外、tryでくくらなければ何事もなかったかのように進行するんですが、そんなもんでしょうか……
0111デフォルトの名無しさん2014/10/15(水) 18:29:41.66ID:v6NXSltG
マーシャラーは、unsafeじゃない場合は例外を出さないって仕事をしてるのかな?
0112デフォルトの名無しさん2014/10/15(水) 18:33:15.52ID:7Xuob5qI
COM相互運用の場合、マネージ例外はHRESULTに変換される
0113デフォルトの名無しさん2014/10/16(木) 05:38:04.32ID:1m8Z67kI
なるほどー
勝手にE_FAILかなんかを返してくれてたんですね
気をつけないと例外に気が付きませんね
0114デフォルトの名無しさん2014/10/16(木) 11:56:12.24ID:raQDujC+
どんまい
0115デフォルトの名無しさん2014/10/17(金) 19:13:54.44ID:tdrA20h4
USBデバイス組んでビジュアルスタジオでソフトくんだんだけどソフトでデバイスを
開けないのはなぜなんだぜ?

デバイス USB\VID_5555&amp;PID_5555\5&amp;2e433612&amp;0&amp;1 が構成されました。

ドライバー名: input.inf
クラス GUID: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}

ってデバイスマネージャーのデバイスのイベント欄にでるんだけど
ソフトの方にかいたGUIDとこのGUIDちがうんやけど・・・・

なにがいけないんや?(´・ω・`)
0116デフォルトの名無しさん2014/10/17(金) 19:38:56.38ID:Y7Yin1PJ
その辺はデバイスドライバー周りで聞いたほうがいいんじゃね?
0117デフォルトの名無しさん2014/10/17(金) 20:01:05.98ID:tdrA20h4
>>116


どうやら、コネクタの接触不良やったみたい・・・・

コネクタ買い替えて接触不良にならないようにする(´・ω・`)
0118デフォルトの名無しさん2014/10/17(金) 20:05:53.27ID:d8lyAQix
こんなざっくりした質問をする人にはたぶん手に負えないと思うよ。
何だよその質問w
0119デフォルトの名無しさん2014/10/17(金) 20:11:51.59ID:tdrA20h4
USBメモリーデータ救出作業で数万円も稼げるんか?

コネクタの接触不良なおしてるだけやん(´・ω・`)
0120デフォルトの名無しさん2014/10/17(金) 20:13:16.82ID:tdrA20h4
>>118

デバイスデータ書き換えて、USBポート給電でプログラム走らせたら

接触が不安定なのがわかったから
01211202014/10/17(金) 20:15:38.86ID:tdrA20h4
>>120は誤送信です!ごめんちゃい(´・ω・`)

>>118

ざっくりの方がわかりやすいやん!

でも、デバイスデータ書き換えて、USBポート給電でプログラム走らせたら

接触が不安定なのがわかったからいいや!

みんなあんがとね (´・ω・`)
0122デフォルトの名無しさん2014/10/17(金) 21:11:03.32ID:AylyWx1J
(´・ω・`) ← いちいちこれ付けないとレスできないの?大変だね
0123デフォルトの名無しさん2014/10/18(土) 06:29:11.14ID:+tyzGHur
ごめんね(´・ω・`)
0124デフォルトの名無しさん2014/10/18(土) 10:27:00.05ID:kwitOlXo
語尾に常に(´・ω・`)をつけるのは女の可能性が高い
大抵、女子力()アピールしたい三十路過ぎの行き遅れおばさん
男だとしたら自分に自信が無く常に周囲の顔色をうかがい続けるションベン臭いキョロ充タイプ
0125デフォルトの名無しさん2014/10/18(土) 13:02:03.31ID:edoMpshD
なんか「犯人 は10代から30代もしくは40代から50代」ってコピペを思い出したw
馬鹿丸出しだなw
0126デフォルトの名無しさん2014/10/19(日) 17:50:50.69ID:cglJUddB
おんな?は?
なに馬鹿なこと言ってんだ
らん豚でググれ

【DMM/角川】艦隊これくしょん〜艦これ〜 4673隻目
http://wc2014.2ch.net/test/read.cgi/gameswf/1413698357/
0127デフォルトの名無しさん2014/10/19(日) 17:53:14.82ID:cglJUddB
それにしても最近は豚がコード書くんだw
0128デフォルトの名無しさん2014/10/19(日) 18:23:49.19ID:OT6uOxYP
まさからん豚と末尾豚の違い判らずに豚語る奴が居るとは思わなかった(´・ω・`)
0129デフォルトの名無しさん2014/10/19(日) 20:59:15.66ID:f5Hg7b2l
らんらんにむずかしいこといっちゃだめだよっ
0130デフォルトの名無しさん2014/10/19(日) 21:12:38.00ID:5ACru3TV
らんらんらららんらんらん♪
0131デフォルトの名無しさん2014/10/21(火) 19:51:40.13ID:nRqYdV97
JavaScriptSerializerでUnicode文字が含まれるJSONをデコードしようとすると
「無効なJSONプリミティブです」とエラーが出て困っています。
どうすればいいでしょうか?

[json]
{"test":"OK"} ←これなら動作する
{"test":"\uXXXX"} ←Unicode文字があると失敗する

JavaScriptSerializer serialize = new JavaScriptSerializer();
Dictionary<string, object> dec = serialize.Deserialize<Dictionary<string, object>>(json);
0132デフォルトの名無しさん2014/10/21(火) 20:01:00.46ID:k0FyyQJJ
再現しない
0133デフォルトの名無しさん2014/10/21(火) 20:28:45.52ID:nRqYdV97
>>132
説明不足で申し訳ないですが、Webサーバーから取得したjsonです。
string変数にjsonを収めてやると成功します。

string json = @"{""test"":""\uXXXX""}"; ←これは動作する

byte[] response = webclient.UploadValues(url, "POST", nameValueCollection);
//{"test":"\uXXXX"}
string json = Encoding.UTF8.getString(response); ←Webサーバーから取得したjsonは失敗する
0134デフォルトの名無しさん2014/10/21(火) 20:31:59.72ID:vnniTma4
まずは本当に全く同じ文字列なのか確認しろ
0135デフォルトの名無しさん2014/10/21(火) 20:39:25.59ID:nRqYdV97
>>134
確認してます
0136デフォルトの名無しさん2014/10/21(火) 20:41:55.96ID:GzwA6HkO
じゃあ電磁波だろ
電磁波のせいだ by パナウェーブ
0137デフォルトの名無しさん2014/10/21(火) 20:49:05.62ID:k0FyyQJJ
ToCharArray()とかして一文字ずつ確認してみ
0138デフォルトの名無しさん2014/10/21(火) 20:51:14.65ID:juiPvSaq
WebClient.EncodingってデフォルトでUTF-8だっけ?
0139デフォルトの名無しさん2014/10/21(火) 20:57:22.68ID:vnniTma4
文字列は同一だと仰ってるのでエンコーディングはあってるんでしょ多分
0140デフォルトの名無しさん2014/10/21(火) 21:02:04.73ID:S84tBIG3
ウニコードもあれば糞ジスもあるでよ
サーバーサイドは何でエンコードしてるか確認しないと
0141デフォルトの名無しさん2014/10/21(火) 21:04:55.05ID:nRqYdV97
みなさんありがとうございます
もう一度確認してみます
今度は念のために文字列ではなくbyte自体を確認します
0142デフォルトの名無しさん2014/10/21(火) 21:30:45.96ID:Ix6BPpHl
BOMがオチな予感
0143デフォルトの名無しさん2014/10/21(火) 21:49:32.91ID:nRqYdV97
>>142
解決しました、ありがとうございました!
0144デフォルトの名無しさん2014/10/21(火) 22:39:19.56ID:k4gzPwrC
あるある。
気をつけてもうっかり忘れることあるわ。
0145デフォルトの名無しさん2014/10/23(木) 22:23:30.20ID:bXmcwrMX
WPFアプリでメニューバーを含めないクライアント領域の設定方法がわからんす…
0146デフォルトの名無しさん2014/10/23(木) 22:35:40.82ID:D7+29tId
クライアント領域の設定って何
0147デフォルトの名無しさん2014/10/23(木) 22:39:44.29ID:bXmcwrMX
ウィンドウの枠の内側のサイズです
0148デフォルトの名無しさん2014/10/23(木) 22:43:50.79ID:QG1detMF
この辺のお話かな?
http://stackoverflow.com/questions/955592/how-to-get-a-wpf-windows-clientsize
最近やってないので忘れたわ
0149デフォルトの名無しさん2014/10/23(木) 23:05:52.89ID:bXmcwrMX
>>148
デザイナー機能つかってやりたかったけど、csファイルで設定するほうが簡単そうですね
XMALはわけがわからぬん…
0150デフォルトの名無しさん2014/10/23(木) 23:09:34.90ID:QG1detMF
blenderだっけ?
あれにコードはかせないときついね
0151デフォルトの名無しさん2014/10/23(木) 23:09:49.37ID:FH9hEd2N
>>145
Window.SizeToContent プロパティをWidthAndHeight にして、
Contentのサイズを指定するのじゃダメだろうか。
0152デフォルトの名無しさん2014/10/23(木) 23:09:51.45ID:C4v8lo2C
?
Windowの属性のハイトとウィズじゃなくて?
0153デフォルトの名無しさん2014/10/23(木) 23:12:04.99ID:QG1detMF
本当の意味で欲しかったのはXAML上の記述のようね
0154デフォルトの名無しさん2014/10/23(木) 23:20:02.10ID:QG1detMF
http://msdn.microsoft.com/ja-jp/library/system.windows.window.sizetocontent%28v=vs.110%29.aspx
これか

WPFの考え方だとコードで設定する>>148は微妙なんだよな
0155デフォルトの名無しさん2014/10/23(木) 23:26:23.59ID:FH9hEd2N
>>152
クライアント領域の設定(サイズ?)って話だったからね。
そのプロパティーを設定すると、WindowのWidthとHeightはContextに合わせて自動調整される。

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
Title="MainWindow" SizeToContent="WidthAndHeight">
<Grid Width="320" Height="480">

</Grid>
</Window>
0156デフォルトの名無しさん2014/10/23(木) 23:50:21.29ID:bXmcwrMX
>>151,154,155
SizeToContentを設定してグリッドのマージンをメニューバーの高さ分にすれば良い感じになりました
皆さんありがとうございまふ
0157デフォルトの名無しさん2014/10/25(土) 01:41:10.70ID:f7MnoS85
1GBまではいかないけど512MBくらいの連続した配列を確保する場合は
どうすれば安全でしょうか?
0158デフォルトの名無しさん2014/10/25(土) 01:48:30.68ID:vC010Lko
メモリを積む
0159デフォルトの名無しさん2014/10/25(土) 02:45:58.33ID:XSFnzYSQ
ListBoxっていうコントロールと、ListBoxItemっていうクラスあるけど、
ListBoxのメソッドに引数や返り値がListBoxItem型になってるものってないよね。
今までずっとListBoxItemのインスタンスがListBox内に保持されてると思ってたけどこれって勘違い?
0160デフォルトの名無しさん2014/10/25(土) 02:51:49.62ID:f7MnoS85
>>159
内部の管理はおそらくデザイナーでItemsを見た際の表示で判断できる
ListBoxは単なるtextboxにデータを入力するだけで1行がデータとして
扱われるみたい
同じようにItemsにぶら下げるものでもTreeViewとかTabControlは
もっと複雑なアイテム設定画面がでるはず
0161デフォルトの名無しさん2014/10/25(土) 02:56:31.30ID:f7MnoS85
textboxですらLinesなんて行単位でデータ取れる項目あるしなあ
0162デフォルトの名無しさん2014/10/25(土) 04:03:00.79ID:cS+u7+F2
>>159
WinFormのListBoxの話だよね?
ListBoxItemはWPFで使うやつでWinFormのではないよ。
0163デフォルトの名無しさん2014/10/25(土) 07:07:21.25ID:XSFnzYSQ
>>162
やっぱそうなのか
紛らわしいぜ
0164デフォルトの名無しさん2014/10/25(土) 16:55:44.07ID:MApg/T1q
WebFormsかと思った
0165デフォルトの名無しさん2014/10/26(日) 11:40:45.12ID:/KwGuGmK
Window.SizeToContentをWidthAndHeightに設定して、GridをRowDefinitionで区切る
それぞれのRowに入ってるコントロールの高さの合計が560越えたあたりからWindowが縦に伸びてくれなくなるんですが、原因がわからず困っています
0166デフォルトの名無しさん2014/10/26(日) 11:43:10.24ID:VH9bGiOv
WinFormかWPFかSilverLightかwin8ストアアプリか
書いてね
0167デフォルトの名無しさん2014/10/26(日) 11:50:13.35ID:K/wsM4G0
こんにちわ
CookieCollectionから特定のCookieの値を取り出したいのですが
簡潔にやるにはどうしたらいいですか?

今は、forして探し出してます。
for (int i = 0; i < cc.Count; i++) {
if (cc[i].Name == "aaa") {
// 処理
}
}
※お目当てのCookieは必ずあるとは限りません

ご教授お願いします
0168デフォルトの名無しさん2014/10/26(日) 11:58:11.73ID:ItwVb1e7
それで十分だと思うけど
var cookie = cc.Cast<Cookie>().FirstOrDefault(_ => _.Name = "aaa");
if (cookie != null) ...
0169デフォルトの名無しさん2014/10/26(日) 12:00:01.83ID:/KwGuGmK
>>166
すいませんWPFアプリです

2行にくぎった場合、たとえば

1行目のコントロールが Height="20"
2行目のコントロールが Height="600"

だとウィンドウの縦幅が足りず下のコントロールが見切れるんですが

1行目のコントロールが Height="400"
2行目のコントロールが Height="400"

だとちゃんと縦幅が伸びています
0170デフォルトの名無しさん2014/10/26(日) 12:07:19.66ID:K/wsM4G0
>>168
ありがとうございます!!
0171デフォルトの名無しさん2014/10/26(日) 12:18:37.32ID:K/wsM4G0
あ、_.Name = "aaa"); は _.Name == "aaa"); でいいんですよね
多分できました
さらりとこういうことが出来る人って尊敬します
自分ももっと勉強してそうなれるように頑張ります
ありがとうございました
0172デフォルトの名無しさん2014/10/26(日) 12:21:02.23ID:dD7odrFE
さらりマン
0173デフォルトの名無しさん2014/10/26(日) 12:53:20.45ID:ItwVb1e7
>>169
再現しない
あと多分関係ないけどモニタサイズの影響はない?
0174デフォルトの名無しさん2014/10/26(日) 13:13:02.89ID:VH9bGiOv
>>169
親コントロールは何に突っ込んでるの?
細かい設定とかわからないとどうしようもない気がする
0175デフォルトの名無しさん2014/10/26(日) 13:26:55.46ID:/KwGuGmK
>>173
モニタは1280x800のノートPCにフルHDのディスプレイをつないでいます

>>174
下のコードのとおりになっています

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
Title="MainWindow" SizeToContent="WidthAndHeight">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Button Content="Button" Height="400" Name="button1" Padding="0" />
<Button Content="Button" Grid.Row="1" Height="300" Name="button2" Padding="0" />
</Grid>
</Window>

この場合は正常に表示されるんですが、Heightの値をそれぞれ、20と680にするとおかしくなります
ただ、どちらの場合もウィンドウの枠をドラッグしてサイズ変更すると表示がおかしくなるので、なにか根本的にやりかたが間違ってるんでしょうか
0176デフォルトの名無しさん2014/10/26(日) 13:41:18.23ID:ItwVb1e7
コンテンツの高さに合わせたいならRowDefinitionのHeightはAutoに
0177デフォルトの名無しさん2014/10/26(日) 14:09:28.81ID:/KwGuGmK
>>176
うまくいきました。どうもありがとうございます
デフォルトの*はAutoとはまったく別物だったんですね…
0178デフォルトの名無しさん2014/10/26(日) 15:39:08.46ID:fRlrw4LS
>>177
✳︎は残り全部みたいな意味だったと思うよ
トータルの値が決まってるときの
0179デフォルトの名無しさん2014/10/26(日) 17:49:45.56ID:VH9bGiOv
2chでいきなり*でてくると例のAAに見えて仕方ない
0180デフォルトの名無しさん2014/10/26(日) 18:40:38.08ID:6etXXtmY
VMMV/Livetで設定ダイアログのようなカスタムダイアログを造りたいのですが
どうすればいいですか?
Livetの前のバージョンにはサンプルがついててそこにヒントがあったらしいですが、
今は入手不可能みたいです
0181デフォルトの名無しさん2014/10/26(日) 18:56:02.42ID:Y7S0smtt
)*(
0182デフォルトの名無しさん2014/10/26(日) 22:47:00.07ID:lxKWFC07
>>157
メモリマップトファイルを使う
0183デフォルトの名無しさん2014/10/29(水) 21:13:36.01ID:NSjEUVr/
( ´ ω ` )ノシ
0184デフォルトの名無しさん2014/10/30(木) 11:07:53.20ID:Z3UjrckP
ダイアログなんて自分で作りたいようにやればいいやん
てかlivet以前にWPF勉強すれば自ずと分かる
0185デフォルトの名無しさん2014/10/30(木) 11:56:01.20ID:CVdtM/nI
フレームワークの思想に1から10まで付き合って混乱してる奴が
今もっとも哀れみを感じる連中
0186デフォルトの名無しさん2014/10/30(木) 21:03:30.45ID:s755qrYf
キー入力の優先順序に関する質問です。
あるウィンドウにPropertyGridと、ショートカットにDeleteキーを使用するメニュー項目を持ったMenuStripを配置します。
この状態でPropertyGridのプロパティの値を編集するときDeleteキーを押すとショートカットの方が優先され文字の削除ができません。
これを文字の削除の方を優先するようにしたいのですがどのようにすればよいでしょうか?
0187デフォルトの名無しさん2014/10/30(木) 22:20:54.84ID:P+CVnAvq
フォーカスをチェック
0188デフォルトの名無しさん2014/10/31(金) 01:46:46.07ID:f+ZXvii7
>>186
そんなショートカットキーを設定するのがそもそも愚かとしか言いようがない。
なぜ修飾キーを足すとか別のキーを割り当てるとかしないのか。
0189デフォルトの名無しさん2014/10/31(金) 03:18:17.30ID:agwiKe6z
>>186
多分だけど、
フォームのProcessCmdKeyをオーバーライドして、
PropertyGridにフォーカスがあればbaseを呼ばずにtrueを返せばいい。
0190デフォルトの名無しさん2014/10/31(金) 11:14:58.19ID:qTMOYFAa
private static T FindVisualChild<T>(DependencyObject parent) where T : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(parent, i);
if (child != null && child is T)
return (T)child;
else
{
T childOfChild = FindVisualChild<T>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}

このwhere T : DepenedencyObjectの記述がデバッグしても理解できないんだけど、この書き方ってコンストラクタオーバーロードだよね?
なぜメソッドだと再帰になるの?誰かバカでも理解できるようにわかりやすく説明お願いしゃっす
0191デフォルトの名無しさん2014/10/31(金) 11:22:48.94ID:Si2KSChC
whereは型制約 TがDependencyObjectかその派生クラスでなければならないことを宣言する
01921862014/10/31(金) 13:04:34.97ID:o3qRFhjR
>>189
期待通りの実装にできました。
役に立つご意見をありがとうございます。
0193デフォルトの名無しさん2014/10/31(金) 13:08:37.26ID:Wm9hAmj7
馬鹿な奴だ
0194デフォルトの名無しさん2014/11/01(土) 06:55:35.95ID:SV8kvD46
>>192
うむ、礼には及ばん。
0195デフォルトの名無しさん2014/11/01(土) 13:00:19.82ID:SnQWUbHh
なぜか、Windows XP上で.Net Frameworkで作成したプログラムが
動かなくなりました。

何が原因として考えられますか?

.Net Frameworkが破損していたりするのでしょうか?
0196デフォルトの名無しさん2014/11/01(土) 13:02:56.26ID:xXuLrO2X
Frameworkのバージョンの問題じゃね?
0197デフォルトの名無しさん2014/11/01(土) 13:05:52.32ID:RHUU0+gA
>>195が日本語も満足に話せないバカだから
0198デフォルトの名無しさん2014/11/01(土) 13:07:26.77ID:4cNV6UiJ
メッセージを貼るとかイベントビューア見るとかコンソール出力を確認するとかログファイルを探すとかそういう知能は無いわけ?
0199デフォルトの名無しさん2014/11/01(土) 13:10:04.84ID:SnQWUbHh
>>196
それが全く同じモジュールでつい最近まで動いていたんです。


>>198
どこでエラーが出ているかも謎なんですよね。
0200デフォルトの名無しさん2014/11/01(土) 13:12:57.47ID:A0QzCMJu
>>199が日本語でコミュニケーションをとる知能もないバカだから
0201デフォルトの名無しさん2014/11/01(土) 13:13:09.14ID:NjA3Gv8K
そこまで来ると「動かなくなった」と言うのも怪しいレベル
0202デフォルトの名無しさん2014/11/01(土) 13:27:38.20ID:xXuLrO2X
Frameworkのバージョン関係ないなら自分で確認しろとしかいえんわ
0203デフォルトの名無しさん2014/11/01(土) 13:30:48.17ID:+C7i5UUl
せめて
こういう操作をしたらこうなるはずがこうなっている
ぐらいは書かんとどうにもならん
0204デフォルトの名無しさん2014/11/01(土) 14:41:32.39ID:w0Vw1Jlx
エスパーはつらいな
0205デフォルトの名無しさん2014/11/01(土) 15:18:12.23ID:TiVXtbJJ
ここで聞くくらいなんだから自分で作ったプログラムなんだろ。
「動かなくなった」環境下でステップ実行してみれば済む話じゃないか。
0206デフォルトの名無しさん2014/11/01(土) 17:49:03.95ID:bVrmggLn
xpに入っているノートンがそのアプリを
ブロックしているんとちゃうか?
0207デフォルトの名無しさん2014/11/01(土) 18:19:30.63ID:Kg6cjkc/
VisualStudio 2013 .NET Framework 4.5 で、C#で書かれたソフトを作りました。
作成したソフトの不正解析を防ぐために難読化なるものをしたいと思ってます。
フリーで期限の制限がないものを教えてください。

色々と探してみましたが、フリーでは使用の期限制限(あるいは作成したソフトに期限制限)がかかるもの、
完全フリーも見つけましたが.NET Framework 4.0までしか対応しておらず困ってます。

この作成したソフトは個人で作成したフリーソフトなので
難読化ソフトに高い代金を払うことができません。

どなたか良いソフトをご存知の方教えてください。
0208デフォルトの名無しさん2014/11/01(土) 18:24:25.92ID:52Qqkh+Z
.Net 4.5はXPサポートしてないだろ。
0209デフォルトの名無しさん2014/11/01(土) 18:26:04.42ID:52Qqkh+Z
ごめん、勘違い。
違う人だった。
0210デフォルトの名無しさん2014/11/01(土) 18:30:43.51ID:51/pFcv2
Visual Studio出ターゲットフレームワークバージョンを4にすりゃいいんじゃね
0211デフォルトの名無しさん2014/11/01(土) 18:45:42.63ID:Kg6cjkc/
>>210
そうしてみます
0212デフォルトの名無しさん2014/11/01(土) 18:58:43.72ID:bVrmggLn
一個人の作ったアプリを解析して
流用する奴なんておるか?
自分で同じようなのを作る方が
手っ取り早いんとちゃうか?
0213デフォルトの名無しさん2014/11/01(土) 19:00:10.99ID:65g/gkj6
難読化するとスタックトレース読めなくなってバグ対応苦労しそう
0214デフォルトの名無しさん2014/11/01(土) 19:13:10.41ID:TiVXtbJJ
いや、流用目的じゃなくて、暇つぶしで見聞を広める的な目的で他人のコードを読むヤツならいる。
自信のない人が(利害以前の問題で)読まれるのを恥ずかしいと思うのも分かりはする。
コードって書く人の人となりがもろに出るしね。
0215デフォルトの名無しさん2014/11/01(土) 20:25:33.95ID:3DXFgjgD
>>207
ググったらこんなのがあった。
ConfuserEx
ttp://yck1509.github.io/ConfuserEx/
0216デフォルトの名無しさん2014/11/01(土) 20:28:10.41ID:3DXFgjgD
もしシェアウェアも候補に入るようならここも参考に。
List of obfuscators for .NET
ttp://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET
0217デフォルトの名無しさん2014/11/01(土) 20:34:25.11ID:65g/gkj6
難読化ってあくまでソースが読みにくいだけで再利用は防げないよね
そのへんちゃんと検討してるのか心配
つか多分してないんだろうなと思ってる
0218デフォルトの名無しさん2014/11/01(土) 20:52:08.34ID:eRe8awTN
聞かれたことにだけ答えとけ
0219デフォルトの名無しさん2014/11/01(土) 21:29:10.01ID:R8grbRHL
フリーソフトならソースごと公開しちゃった方がいいんじゃ…
0220デフォルトの名無しさん2014/11/01(土) 21:43:10.30ID:w0Vw1Jlx
まぁ中覗かれるのは嫌だよね
変態がばれてしまう
0221デフォルトの名無しさん2014/11/01(土) 21:45:52.28ID:Kg6cjkc/
>>215-216
ありがとうございます!
0222デフォルトの名無しさん2014/11/01(土) 21:49:17.81ID:MCGuq/lT
ライセンス無視のコピペも隠せる
0223デフォルトの名無しさん2014/11/01(土) 21:50:07.52ID:yfMW+WpF
つーか、自意識過剰でしょ
0224デフォルトの名無しさん2014/11/01(土) 21:52:54.65ID:xXuLrO2X
まあほとんど隠せないけどねw
ちょっとハードエンコの取っ掛かり欲しくて某エンコードソフトを
解析したけどあっさり中身見れたよ
まあ難読化されてるのでめんどくさいけど
.netはまあ・・・あきらめるしかない
0225デフォルトの名無しさん2014/11/01(土) 22:23:20.63ID:65g/gkj6
>>224
Pure.Netなエンコソフトなんかあるのか
ハンドブレーク?ちがうよね
0226デフォルトの名無しさん2014/11/01(土) 22:26:11.01ID:xXuLrO2X
中身をひっぱりだしただけでまだその先までは見てないけど
.netからインテルやAMDの動画関連のAPI呼んでる感じだったね
0227デフォルトの名無しさん2014/11/01(土) 22:40:24.65ID:3F0N/7oP
>>207
お前の糞ソフトなんて解析する位なら自分で作るわ。
アホ。
0228デフォルトの名無しさん2014/11/01(土) 22:48:48.53ID:65g/gkj6
>>226
すげぇな
おれには無縁なC#だわ
0229デフォルトの名無しさん2014/11/01(土) 22:57:05.77ID:2tosKQm+
>>228
というかc#でエンコードやデコードするわけじゃなくて
単に指定された動画ファイルを頭から読み込んでその情報を
ハードエンコに使うAPIに流し込めばエンコされたデータがでてくるからね

win32apiを使うようなものよ
実際importしていじってるだけぽかったし
0230デフォルトの名無しさん2014/11/02(日) 00:45:32.83ID:oSJ90NgM
>>195

WINDOWS XPを再インストール(リカバリ)する方法
〜VAIO SONY VGN-Gシリーズ〜

http://know-how-tree.com/archives/1027
0231 ◆QZaw55cn4c 2014/11/02(日) 09:18:48.38ID:vxEoPS2x
>>220
うんうん
0232デフォルトの名無しさん2014/11/03(月) 19:55:38.23ID:+c1Nn/Eh
C# Advent Calendar 2014 - Qiita
https://qiita.com/advent-calendar/2014/csharp

もうこの季節。
0233デフォルトの名無しさん2014/11/04(火) 21:40:01.12ID:LnPvcigh
Windows API と ネットワーク※に詳しい方をフリーランスPGとして
都内で探しています。


※ネットワークエンジニアをもっている方歓迎
0234デフォルトの名無しさん2014/11/04(火) 21:56:35.48ID:mHUGgK/V
スレ間違ってます
0235デフォルトの名無しさん2014/11/05(水) 17:42:50.30ID:g0p9TSXp
配列アクセス時の範囲チェックoffにする方法はある? 糞遅すぎ。
0236デフォルトの名無しさん2014/11/05(水) 17:56:40.76ID:RlZYfNIA
unsafe
0237デフォルトの名無しさん2014/11/05(水) 18:04:07.17ID:vb+KtnkD
for(int i=0;i<array.Length;i++)
の形なら境界チェックなくなるよ
0238デフォルトの名無しさん2014/11/05(水) 18:20:03.32ID:W6TUyXUu
foreachを使うと
要素アクセスするたびの範囲チェックはなくなるかもしれん
0239デフォルトの名無しさん2014/11/05(水) 19:43:53.23ID:g0p9TSXp
シミュレーションのプログラムで配列を舐める用途ではなく、
複数の配列をダイレクトにアクセスしていくのでちょっと無理。
unsafeも部分的には速くなったけど、複数関数、配列またがると
unsafe突入コストが多きすぎてなかなか速くならない。ちょっとお手上げ。
0240デフォルトの名無しさん 転載ダメ©2ch.net2014/11/05(水) 19:46:43.83ID:RbNq+W2F
複数関数w
ひとつにまとめればいいだろw
0241デフォルトの名無しさん2014/11/05(水) 19:50:10.20ID:YOtSCrO6
原因は本当に境界チェックなんだろうか?
0242デフォルトの名無しさん2014/11/05(水) 19:57:06.42ID:vb+KtnkD
unsafe突入コスト……? fixedのコストじゃなくて?
0243デフォルトの名無しさん 転載ダメ©2ch.net2014/11/05(水) 20:41:40.49ID:RbNq+W2F
ボトルネックを調べるのが一番難しいよな
高速化自体は簡単
0244デフォルトの名無しさん2014/11/05(水) 20:51:00.74ID:W6TUyXUu
unsafeだとほぼメモリアドレスへの直接アクセスになるはずだし
unsafeで速度が足りないとなるとそこがボトルネックであることが疑わしくなるが
0245デフォルトの名無しさん2014/11/05(水) 20:55:59.53ID:VpAgj/Ts
取り合えず処理の一番外側でfixedしてポインタ取って、後の内部処理は全てポインタ経由でやればいいんじゃないか
0246デフォルトの名無しさん2014/11/05(水) 20:56:50.08ID:L6XaHMSG
配列やクラスを頻繁にアロケートするとGCで手間取ることもある
同じ領域を再利用すると高速化できる場合がある
0247デフォルトの名無しさん2014/11/05(水) 21:07:25.12ID:lUzon9H0
まずはRyuJITでも使ってみたら
0248デフォルトの名無しさん2014/11/06(木) 05:14:51.02ID:k5CGu2RI
ngenしろよ
0249デフォルトの名無しさん2014/11/06(木) 10:35:58.00ID:yWwtn8Qu
>>245
まともに動的に配列確保できないじゃねーか。
それで済む用途なんて画像処理とか極僅かだろう。
0250デフォルトの名無しさん2014/11/06(木) 12:46:06.23ID:0FNPA2ms
多分プログラムが悪い。
0251デフォルトの名無しさん 転載ダメ©2ch.net2014/11/06(木) 12:57:03.53ID:mU3NVKgt
fixedとstackallocを勘違いしてるんじゃないかという気がする
0252デフォルトの名無しさん2014/11/06(木) 13:08:22.46ID:MZI0k+jm
そこまでシビアならC++を検討するべきだよな
0253デフォルトの名無しさん2014/11/06(木) 14:14:07.03ID:tUz33uDk
C++/CLIもあるよ!
0254デフォルトの名無しさん2014/11/06(木) 14:55:14.84ID:i9PeqnZd
忌まわしい名前
0255デフォルトの名無しさん 転載ダメ©2ch.net2014/11/06(木) 14:57:55.34ID:mU3NVKgt
Intel C Compilerで書いてP/Invokeが正解?
0256デフォルトの名無しさん2014/11/06(木) 16:50:08.72ID:wRpXszPE
C#は開発速度とメンテのし易さを考えて採用するもの
実行速度が重要ならC/C++を採用すべき

それでも実行速度が遅いとき
特定ユーザー向けなら、高速のCPUを投入する
不特定多数なら、アルゴリズムの改善を行う

unsafeどうたらは、アプローチとして正しくないとおも
0257デフォルトの名無しさん2014/11/06(木) 16:58:07.35ID:6I9gYxLI
exe.configを出力したくないんですが、可能でしょうか
数行のXMLが書いてあるだけのファイルです、なんとかexe内に取り込んでしまいたいのですが…。
0258デフォルトの名無しさん2014/11/06(木) 17:02:05.83ID:0qVlggyZ
再コンパイルなしで値を反映させる必要がないなら、
そもそもconfigなんかにせず適当にconstな値を持ったclass書けばいいじゃん?
0259デフォルトの名無しさん2014/11/06(木) 17:03:27.73ID:6I9gYxLI
configに設定をもたせているわけではありません
configにかいてあるのは.netのバージョンだけです
無駄なのでこれを出力したくないのです
0260デフォルトの名無しさん2014/11/06(木) 17:05:05.00ID:aOSGOIwN
単に消せば? 消しても動くだろ。
0261デフォルトの名無しさん2014/11/06(木) 17:10:44.24ID:6I9gYxLI
動くけど起動するとまた生成されてしまうんです
0262デフォルトの名無しさん2014/11/06(木) 17:12:52.85ID:nsu6e9Lq
普通は作らない
その辺にかかわる何かを触ったんだろ

中身なしのXMLが出るって
0263デフォルトの名無しさん2014/11/06(木) 17:25:01.72ID:6I9gYxLI
あれ?そうなんですか?
新規プロジェクトそのままコンパイルしても生成されるんですが…
0264デフォルトの名無しさん2014/11/06(木) 17:27:27.21ID:nsu6e9Lq
コンパイルの段階の話か
ソリューションのクリーンすりゃ消えるでしょ
コンパイル時はあきらめろ

使ってなければ別になくても問題ない
0265デフォルトの名無しさん2014/11/06(木) 17:28:04.42ID:0qVlggyZ
App.configをプロジェクトから消せば
0266デフォルトの名無しさん2014/11/06(木) 17:28:20.67ID:CHag8G5G
作ったプログラムが出力してるんじゃなくて、開発環境が出力してるんだろ
0267デフォルトの名無しさん2014/11/06(木) 17:34:48.33ID:6I9gYxLI
App.configでしたか
解決しました。ありがとうございます。
0268デフォルトの名無しさん2014/11/06(木) 20:08:07.50ID:vs4JBJNx
コンパイル時に作られたからって気になるもんなのか・・・
configなくても起動するんだし気にする必要もない
0269デフォルトの名無しさん2014/11/06(木) 20:51:02.56ID:l7BoKM6Z
ビルドイベント使う手もある
消す意味は感じないが
0270デフォルトの名無しさん2014/11/06(木) 21:15:44.48ID:5eQY/H4s
(1)UIスレッドでWin32 APIのLoadLibrary関数でDLLをロードする
(2)Threadクラスで作成したスレッドで(1)のロード済みDLLを使用する

この処理って何か問題ありますか?
(2)ではGetProcAddress関数で関数のアドレス取ってMarshalクラスでManageに変換して使用してます。
0271デフォルトの名無しさん2014/11/06(木) 21:30:01.37ID:0qVlggyZ
問題ないよ
0272デフォルトの名無しさん2014/11/06(木) 21:54:03.01ID:5eQY/H4s
ありがとうございます。
他人が使ったDLLを使っているのですが、(2)でDLLの関数を実行に失敗してしまい困ってたんです。

(1)でUIスレッドではなくThreadクラスで生成したスレッドで実行したり、(2)をUIスレッドで実行すると上手く動作します。
こちらの呼び方が悪いのではないかと色々と調べてみたのですが成果は出ず・・・。
DLLの製作者の方に問い合わせてみます。
0273デフォルトの名無しさん2014/11/07(金) 00:17:35.13ID:XkqmKxV8
UIスレッドで実行すると上手く動作するなら、そちらの呼び方が悪いのだと思いますよ。
0274デフォルトの名無しさん2014/11/07(金) 00:25:23.66ID:0d3Kb3AY
スレッドとタスクって違うん?
0275デフォルトの名無しさん2014/11/07(金) 01:08:07.84ID:avFQbBp0
スレッド上で行われる一塊の手続きがタスク、みたいな
0276デフォルトの名無しさん2014/11/07(金) 04:04:15.70ID:53HEKntL
>>273
うーん・・・やっぱり呼び方変えて成功するケースがあるなら呼び出し側なんですかね・・・。

また少し調べてまだ試していないんですが、ApartmentStateって影響しますか?
今はUIスレッドはSTA、Threadクラスで生成したスレッドはMTAで動作してます。
DLLがCOMオブジェクトを使用しているかどうかで変わる?
0277デフォルトの名無しさん2014/11/07(金) 07:17:29.42ID:Yufm+zrM
>DLLがCOMオブジェクトを使用しているかどうかで

致命的です
>>276の理解レベルでは無理なので諦めましょう
0278デフォルトの名無しさん2014/11/07(金) 07:57:58.16ID:u+2F0oww
CoCreateInstance を呼んだスレッドからしか使えない
0279デフォルトの名無しさん2014/11/07(金) 09:33:27.68ID:ecQLjDHF
昔はタスクって言葉しか無かったが、複数のプログラムの同時実行=マルチタスクと再定義されたんで
そのタスクの中のものをスレッドにしたんじゃないかな?
昔やったITRONのタスクってものは、Windowsで言うスレッドそのものだったし
0280デフォルトの名無しさん2014/11/07(金) 10:09:41.48ID:nUR92w6F
Task
Switching
System
0281デフォルトの名無しさん2014/11/07(金) 14:22:31.79ID:tCwEoRvN
マルチタスクは複数のプロセスが平行して実行されるイメージ。
マルチスレッドはプロセス内に複数CPUが動いてるイメージ。
スレッドは同じプロセス内なのでメモリなどのリソースは共有している。
0282デフォルトの名無しさん2014/11/07(金) 14:25:30.25ID:tCwEoRvN
そういえばマルチプログラミングという言葉もあったな。
懐かしい。
0283デフォルトの名無しさん2014/11/07(金) 14:38:26.80ID:Ji9punwU
>>280
Time
Sharing
System
0284デフォルトの名無しさん2014/11/07(金) 14:39:52.94ID:Ji9punwU
実際には時間は共有していない
0285デフォルトの名無しさん2014/11/07(金) 16:53:36.46ID:4yd7iQ66
share = 分配する だよ
0286デフォルトの名無しさん2014/11/07(金) 17:27:05.59ID:ZGbVWO01
たぶん今晩は荒れますねーこのスレ
0287デフォルトの名無しさん2014/11/07(金) 21:00:58.33ID:x65iNG5P
>>281
>マルチスレッドはプロセス内に複数CPUが動いてるイメージ。
そんないい加減な概念で理解できるのか?スレッドごとに何が固有で何が共用なのか,はっきりしろよ
0288デフォルトの名無しさん2014/11/07(金) 21:03:57.43ID:GF0g7nAP
Let's share Toppo!
0289デフォルトの名無しさん2014/11/07(金) 21:07:04.50ID:XkqmKxV8
スレッドはコンテキストの最小単位。つまりコンテキストスタック。
0290デフォルトの名無しさん2014/11/07(金) 22:04:59.69ID:0d3Kb3AY
スレッドってバックグラウンドウォーカー使ってやるやつじゃないの?
0291デフォルトの名無しさん2014/11/07(金) 22:11:06.70ID:mIcrXYRq
歩かれても困るよw
0292デフォルトの名無しさん2014/11/07(金) 22:12:22.26ID:0d3Kb3AY
バックグラウンドワーカーか
ごめんなさい
0293デフォルトの名無しさん2014/11/07(金) 22:18:56.19ID:LTQ89XEu
そいやファイバーないよな
まぁ自分じゃスレッドしか使わないんだけどさ
0294デフォルトの名無しさん2014/11/08(土) 00:30:30.10ID:CgJi/Bg6
お前らのレベルが低い事が分かる動画

https://www.youtube.com/watch?v=fEC0FVT8wek#t=20


プログラムだけじゃなくてハードも強い
0295デフォルトの名無しさん2014/11/08(土) 09:25:34.75ID:jG/IUALj
C# に関係ないのに貼っちゃう >>294 のレベルが最低なのはわかった
0296デフォルトの名無しさん2014/11/08(土) 15:24:17.87ID:CgJi/Bg6
質問です。

C#でIEを操作するプログラムを作っています。
以下の様なサイト(HTML)の場合(IDがHTML属性に無い場合)に
どうやれば以下のボタンをクリックする事が出来ますでしょうか?
※WebBrowserコントロールはトラブルが多いので使っていません。

<button type="button"class="hogeclass" style="background-image:url(/file/hoge.gif);">押したらいけない</button>
0297デフォルトの名無しさん2014/11/08(土) 15:28:39.52ID:aQgxSc+J
なんだマルチか
0298デフォルトの名無しさん2014/11/08(土) 15:32:09.43ID:N1yYglan
トラブルが多いので使っていません(キリッ
とか言ってられるレベルじゃないんだよなぁ
0299デフォルトの名無しさん2014/11/08(土) 15:52:56.42ID:Z+UQg/YP
また遠隔ウイルス作成方法の質問か。
0300デフォルトの名無しさん2014/11/08(土) 16:15:11.71ID:fRSSu2pa
ボクのパソコンが乗っ取られるよ・・・
0301デフォルトの名無しさん2014/11/08(土) 16:52:47.84ID:ynvOK8IX
Windows Formsでプログラムを書いているんだけど、どうしてもコードがグチャグチャになっちゃう
例えばボタンをクリックした時に、EDIデータを読み込んだりしたりする処理とか

1つのイベントでやることが多いと、グチャグチャになっちゃうんだよね
どうにかして、綺麗なコード書けないの?
0302デフォルトの名無しさん2014/11/08(土) 16:54:12.52ID:4oiQ7Wm3
的外れな動画でレベル低いと罵りつつ>>296だからなぁ
しかもマルチとか
0303デフォルトの名無しさん2014/11/08(土) 16:58:02.27ID:4oiQ7Wm3
>>301
そのEDIデータとやらを扱うクラス作る
0304デフォルトの名無しさん2014/11/08(土) 16:58:41.66ID:fRSSu2pa
あの子とクラスメイトになりたいなぁ
0305デフォルトの名無しさん2014/11/08(土) 17:09:14.21ID:ynvOK8IX
>>303
確かに、他のクラスに外出ししちゃえばいいね

業務ロジックとかってどうしてるの
画面に入力されたデータを、まるまる他のクラスに渡すのって大変じゃない?
0306デフォルトの名無しさん2014/11/08(土) 17:10:44.08ID:M9kNsdTR
>>305
そのくらい我慢せえや
0307デフォルトの名無しさん2014/11/08(土) 17:11:50.04ID:N1yYglan
そもそも該当するデータを丸ごとクラス化する
画面部品とデータクラスのプロパティをバインドする
0308デフォルトの名無しさん2014/11/08(土) 17:18:49.10ID:aQgxSc+J
コピーするメソッドだけT4で書く
0309デフォルトの名無しさん2014/11/08(土) 17:28:13.35ID:6mAHE7MV
本日の業務は終了しました
0310デフォルトの名無しさん2014/11/08(土) 18:35:46.06ID:QHYr6EI3
>>305
それが嫌ならWPFでMVVMって選択肢もあるよ。
俺自身はMVVMに懐疑的だけど。
0311デフォルトの名無しさん2014/11/08(土) 18:45:35.03ID:Z+UQg/YP
ぐちゃぐちゃでもコメントさえちゃんと書いてりゃVSがカバーしてくれる。
0312デフォルトの名無しさん2014/11/08(土) 19:20:44.28ID:fIkqyeLK
>>305
WindowsFormでもWPFでも、
データバインド使えばいいんじゃない?

それからMVPでもMVCでもPACでもMVVMでもいいけど、
実装レイヤーを分離する設計にすれば、
イベントハンドラーに全てを記載するような、
愚かなことはなくなると思うけど・・・

>>311
それは幻想だと思いますよ!
ぐちゃぐちゃなコードを書くPGがまともなコメント書くとは思えない・・・
0313デフォルトの名無しさん2014/11/08(土) 19:24:24.82ID:M9kNsdTR
バインドする作業もコピーする作業もたいして作業量変わりゃしないだろう
0314デフォルトの名無しさん2014/11/08(土) 19:26:05.99ID:wnAb3mO0
最悪、いじった奴の名前がコメントに書いてあればそれでなんとかなるw
0315デフォルトの名無しさん2014/11/08(土) 19:33:09.93ID:sbGoMvIw
そういうコード書く奴ほど行方知れずになる法則が・・・
0316デフォルトの名無しさん2014/11/08(土) 19:44:10.36ID:4oiQ7Wm3
今時バージョン管理してないところなんて無いよな?
>>314みてちょっとゾッとしたわ
0317デフォルトの名無しさん2014/11/08(土) 20:05:40.91ID:M4XGC/qh
地方の自称開発会社に行くと・・・
0318デフォルトの名無しさん2014/11/08(土) 20:09:53.18ID:dGtCtmeI
別に地方に行かなくてもありますよ、リアルCoding Horror
0319デフォルトの名無しさん2014/11/08(土) 20:28:16.25ID:3fdqyg23
うちのレベルの低さを舐めては困る
0320デフォルトの名無しさん2014/11/08(土) 21:26:48.54ID:Ht5vOo+4
どんなコード書こうが後から別人が手を入れる時は
散々こき下ろされるに決まってるだろう
0321デフォルトの名無しさん2014/11/09(日) 00:23:23.53ID:hx7C5MJa
でもさ、ERPってコメントだらけじゃね?
0322デフォルトの名無しさん2014/11/09(日) 00:42:08.20ID:Df0B5W+b
ソース管理ソフト使ってるのに、修正したコードを全部コメントで残して行く人のコードって読みづらい…必要なケースもあるとは思うんだけどさ…
0323デフォルトの名無しさん2014/11/09(日) 00:46:10.17ID:pppHUIF0
>>322
ログ見れば分かるのにアレ何なんだろうね
律儀に旧コードのコメントアウトと新コードを1行置きに書く人とか・・・
0324デフォルトの名無しさん2014/11/09(日) 02:04:46.50ID:u95vnrYB
素晴らしいPGだ。
0325デフォルトの名無しさん2014/11/09(日) 02:17:29.37ID:vP2N3y7c
>>323
分かんないよな
それやってる人居たら言い分を聞きたい
暫定対応時に元のコード残しとく心理は何となく分かるのでそれ以外のパターンで
0326デフォルトの名無しさん2014/11/09(日) 02:27:03.60ID:nH5ttDX7
動機は分かるでしょ。
たぶん彼は日本人的な「真面目」な人。
別の言い方をすると、形式主義者。

例え結果が出なくても何かをきちんと一生懸命やることには価値があるんだ、
みたいな日本の道徳教育的建前を真に受けて大人になっちゃった、ある意味犠牲者かも。
0327デフォルトの名無しさん2014/11/09(日) 02:43:54.26ID:vP2N3y7c
なるほど、意味を考えちゃったがそんなもの無いって事か
0328デフォルトの名無しさん2014/11/09(日) 02:46:20.43ID:u95vnrYB
意味が分らない人のために勘違いしないようにコードを残しておく。
0329デフォルトの名無しさん2014/11/09(日) 03:02:56.71ID:pLP/Mh4B
ソース管理ソフトが信頼できないんだろ
もしくは使い方が解らないか
0330デフォルトの名無しさん2014/11/09(日) 05:05:57.66ID:O3n9UWkX
むかし取引先の女性の作ったプログラ厶を修正したことがあったが
コメント見て大笑いした事がある
今で言うブログ風に上司や同僚の悪口がてんこ盛りだった
0331デフォルトの名無しさん2014/11/09(日) 06:32:01.26ID:qj7EX+Zt
ソースコードの文脈を理解できないからとりあえず
修正内容を一字一句明確にしとけって考えだろ
0332デフォルトの名無しさん2014/11/09(日) 08:16:58.26ID:0OHZhIbK
>>294
それ何年も前に KINECT スレで見たわ
http://peace.2ch.net/test/read.cgi/tech/1342740114/
http://toro.2ch.net/test/read.cgi/tech/1290795733/

たしかに世界に誇れる技術
二足歩行ロボットにしてマシュマロを食えたら完璧
0333デフォルトの名無しさん2014/11/09(日) 12:53:23.71ID:IVeO+GvI
>>331
大抵は関数ヘッダも無く、処理内容の解析の糸口になるようなコメントも皆無で
コメント文と言えば解析の役に立たない変更履歴コメントだけと言う・・・
そして変更履歴コメントと、意図の分からない謎コードが入り乱れる
後任者を中央線に飛び込ます事にしか役立たないソースが完成する。
0334デフォルトの名無しさん2014/11/09(日) 13:02:36.73ID:RjxQ6mlt
そーろそろマ板でやるといいと思いますよ
0335デフォルトの名無しさん2014/11/09(日) 13:50:30.24ID:UsZA2omI
>>301
そのEDIデータを読み込むプログラムを
Webサーバーアプリケーションとコンソールアプリケーションにも移植する必要が発生したとする。
処理は今後も修正が入るのでコピペは避けたい。
どう作る?
0336デフォルトの名無しさん2014/11/09(日) 13:56:34.26ID:qMMOH0c1
>>322
そういう風にしろと言う上司がいるんだよな
当然その上司は SCM なにそれ状態
あまり老害という言葉は使いたくないけど、これにはそれ以外の言葉が思い付かない
0337デフォルトの名無しさん2014/11/09(日) 13:57:47.95ID:Mip19DDq
SCM何ソレ?うまいの?
0338デフォルトの名無しさん2014/11/09(日) 14:04:39.57ID:VcMedQcJ
>>330
プログラミング言語がソフトウェアの品質に与える影響
http://developers.slashdot.jp/story/14/11/08/081210/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%8C%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E5%93%81%E8%B3%AA%E3%81%AB%E4%B8%8E%E3%81%88%E3
0339デフォルトの名無しさん2014/11/09(日) 14:44:02.90ID:eu53Y8Pf
>>300
だいぶ前に暇つぶしに実行ファイルの中をのぞいてたら
「そんなこと(実行ファイルを覗くこと)してる場合じゃないだろ。ちゃんと結婚して子供も作れよ。いいぞ。」
的なコメント見つけて吹きかけたことがある。w
まあその通りなんだけどな。


このコメント論争的なものの中で、実際に管理的立場に立ってる人ってどのくらいいるんだろ。
いままで挙がってる意見ていつでも誰でも言えて繰り返されてることしかないんだけど、
それらって現場の人間の見方だよね。違った立場からの意見を聞いてみたいかも。
そういう人に聞いても「そういう決まりだから」以外の理由を聞いたことないけども。

履歴管理って便利だけど、開発を丸投げしてる場合に納品物がソースファイルや実行ファイル等だけで
履歴管理ソフトのデータまで含んでないからってのもあったような気がする。
0340デフォルトの名無しさん2014/11/09(日) 14:46:31.69ID:Ncgt9DFn
C#, C♯, C#相談室 Part85
http://peace.2ch.net/test/read.cgi/tech/1412298752/
0341デフォルトの名無しさん2014/11/09(日) 15:07:09.92ID:QwjRsquy
>>323
「後でまとめて消すつもりだけど、とりあえず残しておいた」
特にルール化されているんでなけりゃ、こんなもんだろ。
0342デフォルトの名無しさん2014/11/09(日) 15:13:21.45ID:gWoVcOui
コメントに愚痴とかじゃなくて
そのプログラムの仕様上の問題点とか
将来の修正点の課題とか予想して書いてたら
そんなものは納品には不要だから消せって言われたな
0343デフォルトの名無しさん2014/11/09(日) 15:18:13.36ID:xhDtWh1m
>>341
そういう用途なら、メソッド単位でコピペしてコメント化して、動いたら消すってやるが
件の例は一行ごとに残しているから恒久的に残す予定のようだ
0344デフォルトの名無しさん2014/11/09(日) 15:30:41.62ID:gWoVcOui
diff とかとるとコメント部分まで比較でマッチしてぐちゃぐちゃになる
0345デフォルトの名無しさん2014/11/09(日) 15:58:52.33ID:u95vnrYB
>>342
そういう会社には開発を頼みたくないよ。
仕様変更による影響範囲や制限や問題点とかコメント書いてるコードのほうがよほど信用できる。
0346デフォルトの名無しさん2014/11/09(日) 16:13:53.60ID:QwjRsquy
>>343
逐次修正するなら元のコードは近くに残しておく方が参照しやすいがな。
逆に、一行毎に残してるから恒久的とか、残しておくのが目的じゃないのにメソッドごと
コメント化する理由のほうがわからん。

>>344
そういえば、自分が触ったところがちょうど#if 0でまるっと残されて、マージで衝突も
なかったからしばらく気づかなかった、ってことはあったな。
0347デフォルトの名無しさん2014/11/09(日) 16:23:25.22ID:Ncgt9DFn
どの辺がC#の話なのか説明してくれないか
0348デフォルトの名無しさん2014/11/09(日) 17:07:47.75ID:UtYuRtmD
ここでソースコードのコメントについてレスしている人は、
SOLIDの原則については考慮していないのでしょうか?

少なくともクラスが単一責務と開放・閉鎖の原則を守っていれば、
酷いコメントは残らないと思いますが?
0349デフォルトの名無しさん2014/11/09(日) 17:17:25.94ID:RjxQ6mlt
少なくとも「どこになにがしを書くべきか」は理解できていないと思われるので
C#のソースコードに昨日食った晩飯の感想を書いている可能性も否定できないな
0350デフォルトの名無しさん2014/11/09(日) 17:35:58.12ID:yEIgI+gw
スレッドの趣旨そっちのけの流れだなw

正直何を言い合ってるのかさっぱりわからないけど、
俺の場合、古いバージョンのコードを保存しておく動機は、ほとんどの場合
単なる精神衛生上の問題であって、後で何か問題が発覚して古いコードを参照する
(あるいは書き戻す)なんて確率はほぼゼロだから、こういう事態を想定した作業に
コストを掛け過ぎるのは愚の骨頂としか思えんな。
0351デフォルトの名無しさん2014/11/09(日) 21:29:08.56ID:O3n9UWkX
プライベートの思いつきをメモ替わりにコメントに書く事はよくあるが
大抵消し忘れている
0352デフォルトの名無しさん2014/11/09(日) 21:30:05.97ID:ldAmi3hO
>>351
スレ違いは去れ
0353デフォルトの名無しさん2014/11/10(月) 00:57:33.88ID:h1HLAEur
Nancy使って開発した人いる?
いたら感想ほしい
0354デフォルトの名無しさん2014/11/10(月) 20:26:30.67ID:jRVetSaO
C#初心者なんだけど助けてくれ

a.html → common.cs → b.html → common.cs → c.html → common.cs ・・・
てな感じで、common.csを中心にhtmlの遷移を行いたいんだが、htmlの描写がどうしてもうまくできん

どうやったらhtmlの描写ができる?それと要素への値の設定(input type="text"に値入れるとか。言い方あってるかわからん)も実現したい


一応条件として
・aspxは使用しない
・common.csはIHttpHandlerとIRequiresSessionStateを継承する
って感じで。
どうしても無理なら別の方法考えるけど、まずはこれで実現する方法があるのか教えてほしい。
0355デフォルトの名無しさん2014/11/10(月) 20:33:49.37ID:9Gol7YAe
http://msdn.microsoft.com/ja-jp/library/2te2y1x6(v=vs.110).aspx

これは?
0356デフォルトの名無しさん2014/11/10(月) 20:43:46.32ID:3jDtp2eg
>>354
ashxでビングれ
0357デフォルトの名無しさん2014/11/10(月) 20:54:18.11ID:78wnapM0
ASP.NET MVCでルート設定を工夫するのが正解だと思う
0358デフォルトの名無しさん2014/11/10(月) 21:02:56.70ID:KWt8wkdd
普通にPHP+Cakeでやればいいじゃん。
0359デフォルトの名無しさん2014/11/10(月) 23:03:38.70ID:cxaE+SpD
俺も知りたいなぁ。
ちょっと使った分には、構成が単純だし楽そうな印象を受けた。
メインの開発がasp.net 3.5なんで、本格使用は先だけど。
0360デフォルトの名無しさん2014/11/10(月) 23:04:41.69ID:cxaE+SpD
あ、>359は>353へのレスね
03613542014/11/11(火) 01:03:47.34ID:VBUGZjHm
ID変わった>>354だけど、いろいろ教えてくれてありがとう
結局まだ解決には至ってないんだけど、もう少し頑張ってみるよ
0362デフォルトの名無しさん2014/11/11(火) 22:35:04.85ID:bl7AWQ1A
ASP.NET 3.5って何が3.5なんだ?
IISのアプリケーションプールは2.0でコンパイラも2.0だし
web.configを魔改造して3.5のコンパイラとライブラリを使えるようにした
無保証で動作させてる状態のこと?
0363デフォルトの名無しさん2014/11/11(火) 23:21:06.90ID:B0xtxUCs
>>362
http://blogs.msdn.com/b/dd_jpn/archive/2007/11/13/6172535.aspx
http://codezine.jp/article/detail/2269
0364デフォルトの名無しさん2014/11/11(火) 23:39:03.04ID:qGZpHogv
大・中・小・・・etc

と複数段階のカテゴリをプログラムから自由に作れる様な
システムを考えています。

この場合、どの様なテーブル設計をすれば良いでしょうか?


大カテゴリ:2ch
中カテゴリ:
 独身 
 既婚
 どっちでもない
小カテゴリ
 ・・・{略}


※小カテゴリの下にも自由にカテゴリを作る事の出来る様な設計にしたいです。
0365デフォルトの名無しさん2014/11/12(水) 00:09:10.06ID:rPKsbxea
各カテゴリーが親カテゴリーを持つようにすれば階層の深さに制限は無い。
ループに注意な。
0366デフォルトの名無しさん2014/11/12(水) 00:12:44.41ID:UQWyoGkH
>>364
C#関係ある?

親カテゴリを持つのが多いが
データのメンテやSELECT一発でとるのがめんどいから
予備をみて10個ぐらい横持ちにしたマスタとか
データをもつほうが現実的かも
0367デフォルトの名無しさん2014/11/12(水) 00:36:12.86ID:ajUryUal
カラムは、id, cat_name, parent_id で決まりだな。
0368デフォルトの名無しさん2014/11/12(水) 01:17:54.31ID:U8HDqwIT
>>365 >>366 >>367
サンキュー


親カテゴリを持つ様にすると確かにSQLで抽出が面倒な事になりそうなので
取り敢えず現実的な大・中・小カテゴリで分けられる様に設計する事にします。
0369デフォルトの名無しさん2014/11/12(水) 06:38:31.49ID:ozyu6RFa
親カテゴリの絶対パスを持たせとけばSELECTは楽になる
0370デフォルトの名無しさん2014/11/12(水) 11:26:44.77ID:iMrgtdNC
/2ch/独身/絶望
みたいなパス持たせればLikeで検索できる
0371デフォルトの名無しさん2014/11/12(水) 14:15:52.75ID:2iGlSu/F
>>369 >>370

なるほど。。。でも文字列検索とか遅くない?
0372デフォルトの名無しさん2014/11/12(水) 14:42:43.78ID:cORNeV2W
どんなDBか知らんが、大抵は先頭一致ならインデックス使えるからバカっ速だろ
0373デフォルトの名無しさん2014/11/13(木) 08:44:43.54ID:jzOJh9nX
>>365
具体的なテーブル設計を教えてください。
0374デフォルトの名無しさん2014/11/13(木) 09:02:49.77ID:1hz0svKt
そのすぐ二つ下のレスくらい読めないのか
0375デフォルトの名無しさん2014/11/13(木) 11:26:24.87ID:N/kTZ6FO
理論的には綺麗だけどクエリが再帰的になっちゃうからな
再起構造で作ったとしても後でちょっとしたバッチ処理にかけたりするとき
面倒臭くて一時的に文字列パス持たせましたみたいなアホらしいことになりそう
構造が頻繁に変わらないんなら文字列パスがスマートじゃね
0376デフォルトの名無しさん2014/11/13(木) 11:34:38.70ID:iNnRkBXk
そのすぐ一つ上のレスくらい読めないのか
0377デフォルトの名無しさん2014/11/13(木) 12:57:23.46ID:ei8/1QV3
>>375 >>370

2ch/独身/孤独
2ch/独身/重症
2ch/独身/孤独死
2ch/既婚/ブス嫁
2ch/既婚/ゲス嫁
2ch/既婚/美人
リア充/独身/もてまくり
リア充/独身/やりまくり
リア充/独身/がきたくさん


中カテゴリが「独身」でかつ
大カテゴリが「2ch」or「リア充」 のレコードを取得

といった事をSQLで実装可能ですか?



といった事をSQLで実現出来ますか?
0378デフォルトの名無しさん2014/11/13(木) 13:28:01.93ID:qZui1jGZ
それってカテゴリ分けじゃなくてタグ付けの方が自然じゃ
0379デフォルトの名無しさん2014/11/13(木) 14:23:37.23ID:qYUS6s/z
その例なら普通にLIKE OR LIKEでいけるでしょ
0380デフォルトの名無しさん2014/11/13(木) 14:33:53.39ID:oSj4g1rM
SQLだ面倒だとかC#で再帰が面倒だと言ってるレベルの輩が相手だと
なにをアドバイスしても無駄だとわかった。
0381デフォルトの名無しさん2014/11/13(木) 15:39:17.09ID:KNtS7b0R
>>377
SQLの条件指定は万能ではない。
SQLで可能かどうか知りたいならC#スレでKUSO質問してないで
規格ISO 9075を読め
0382デフォルトの名無しさん2014/11/13(木) 15:47:07.37ID:HnULWsPZ
>>380
再帰的問合せの話じゃねーの?
まさか、再帰でSQL投げるのか?
03833772014/11/13(木) 16:18:31.28ID:mkf4z/pJ
階層を多段階に操作する要件がありまして
何とかして後から手直しのほぼ発生しない様な
完璧な設計を考えています。


誰かスーパーエンジニアの方
アドバイスをお願いします。
0384デフォルトの名無しさん2014/11/13(木) 16:49:09.23ID:XAhJx0Gu
RDBMSのXMLデータベースに突っ込んでXPathでクエリかけろ
0385デフォルトの名無しさん2014/11/13(木) 17:31:43.36ID:IgNFF7zY
>>383
>>365
>>367に階層(深さ)ももっとけ
これ以上はDB板いって聞け
0386デフォルトの名無しさん2014/11/13(木) 20:41:19.60ID:4XxiOWbU
再帰使えるならパス求めるのも難しくないし、なんで >>369 みたいな設計したがるのかよーわからんわ
Excel 脳のままなんだろうか w
0387デフォルトの名無しさん2014/11/13(木) 20:45:24.60ID:nVB+xnK4
GoogleのBigTableは全部絶対パス指定だよね
0388デフォルトの名無しさん2014/11/13(木) 20:54:27.54ID:Bu16QZSX
実行計画とか見ない人なのかな?
0389デフォルトの名無しさん2014/11/13(木) 21:59:40.11ID:8nnx8trq
Visual Studio 2015 Previewを入れたのですが
CTP3で出来てたプライマリコンストラクターが
エラーになるのは俺だけですか?

class X(string name) //エラー
{
 int Test() => 100; //これはOK
}
0390デフォルトの名無しさん2014/11/13(木) 22:05:38.26ID:KMDD16eK
エラーになったって騒ぐ奴の大半はエラーコードとかメッセージを書かないのな
0391デフォルトの名無しさん2014/11/13(木) 22:14:28.57ID:gesqVKyd
お前だけです
0392デフォルトの名無しさん2014/11/13(木) 22:21:46.27ID:BLwT3SO2
エラーコードやメッセージの重要性を理解してるなら自力で解決できるでしょ。
この程度なら。
0393デフォルトの名無しさん2014/11/13(木) 22:29:58.51ID:nVB+xnK4
エラーになる場合はコンパイラのソースコードをいじれば良いだろ
0394デフォルトの名無しさん2014/11/14(金) 06:13:26.11ID:+xHuGHLJ
>>386
パスはむしろWeb系っぽい設計だと思う
0395デフォルトの名無しさん2014/11/14(金) 07:31:05.79ID:hxe36H0/
>>385
> >>367に階層(深さ)ももっとけ

なんでそんな情報を持ちたがるんだ?
バカなの?
0396デフォルトの名無しさん2014/11/14(金) 07:32:32.99ID:jAGOFrlY
質問が馬鹿だからちょうどいいだろ
0397デフォルトの名無しさん2014/11/14(金) 12:13:10.78ID:hNDW2rHJ
>>395
再帰方式だとカテゴリ名で検索してもカテゴリのレベルを区別できないからだろ
絶対パスをLikeで探す方式ならその問題は無いけどね
0398デフォルトの名無しさん2014/11/14(金) 13:35:48.14ID:+9Z/kvkr
型AとBの間に暗黙の型変換があるとして

A a = new B();
B b = new A(); // OK

だけど↓こういうのできないの?

A[] aa = new B[]{};
B[] bb = new A[]{}; // NG

とか

void Method( IList<A> aaa ){};
Method( new List<B>() ); // NG
0399デフォルトの名無しさん2014/11/14(金) 13:41:35.04ID:aP1RfszB
>>389
primary constructorC#6から外れててワロタwwwwwwwwww

ワロタ・・・・・
0400デフォルトの名無しさん2014/11/14(金) 13:44:14.84ID:WmelKXp2
>>398
できない
0401デフォルトの名無しさん2014/11/14(金) 13:48:57.76ID:aP1RfszB
相互に暗黙の型変換とか恐ろしいわ
0402デフォルトの名無しさん2014/11/14(金) 13:50:47.04ID:AzG2qFhq
ゆるくしたけりゃvb.netでもやればいいんじゃね?
C#のよさは型の厳しいところなんだし
0403デフォルトの名無しさん2014/11/14(金) 13:56:12.12ID:rxnPKvOr
>>398
なるほど
0404デフォルトの名無しさん2014/11/14(金) 17:52:00.99ID:DJeb+WGl
>>398
こんなの考える人って何の言語から入ってきてるんだろ
0405デフォルトの名無しさん2014/11/14(金) 18:04:56.27ID:6MnqTsm2
>>404
別におかしくはないだろ

class B : D の関係が有ったとして
配列を参照専用で使う目的なら
B[] out = new D[];
としたいこともあるだろうし、
結果を受け取るために配列を使用するなら
D[] in = new B [];
としたい場合がある。
0406デフォルトの名無しさん2014/11/14(金) 18:06:57.64ID:cYY7mpaQ
誰もis関係の話なんてしてないような
0407デフォルトの名無しさん2014/11/14(金) 18:12:12.68ID:aP1RfszB
>>405
参照専用で使うって何?
Bにしかないメンバを呼んだらどうなるわけ?
意味がわかんねえ
0408デフォルトの名無しさん2014/11/14(金) 18:13:31.22ID:7FLVfRPT
型変換定義するだけのことじゃん
0409デフォルトの名無しさん2014/11/14(金) 18:13:37.95ID:cYY7mpaQ
>>404
順当に考えればdack typingな言語だろ

ここから先、共変反変と型変換の区別がついてないレスが乱れ飛ぶぜ
子供は気をつけろ
0410デフォルトの名無しさん2014/11/14(金) 18:14:10.71ID:+9Z/kvkr
えーと
byte[]なデータがありまして
それを扱う上で、全然配列自体としてノータッチで
他のマネージド/非マネージドAPIに渡す/から返る という使い方しかしないので
byte[]であることを隠蔽してみたいかななんて次第で。
それに別名をつけられないかなぁと思いました。
0411デフォルトの名無しさん2014/11/14(金) 18:17:29.57ID:aP1RfszB
>>410
長文で解説してもらって申し訳ないけど
ひとかけらも意味がわからない
0412デフォルトの名無しさん2014/11/14(金) 18:18:04.63ID:cYY7mpaQ
>>410
externしてる関数に渡してる型を変えたらいいんじゃないの
可能なら、だけど
0413デフォルトの名無しさん2014/11/14(金) 18:18:46.43ID:+9Z/kvkr
>>411
実質4行ですけど(^^;)
0414デフォルトの名無しさん2014/11/14(金) 18:21:03.62ID:+9Z/kvkr
あ、5行か
0415デフォルトの名無しさん2014/11/14(金) 18:21:50.69ID:aP1RfszB
>>413
「暗黙の型変換」っていうのは
インスタンスを作成してはゴリゴリ代入していくような力技の型変換処理を
コンパイラが勝手にぶちこんでくるっていうことだっていうのは分かってる?
0416デフォルトの名無しさん2014/11/14(金) 18:25:23.63ID:7FLVfRPT
>>415
いや、暗黙の型変換は、明示的な型変換でないだけ。
コンパイラが勝手になんか処理やるって意味じゃない。

C#は定義できるじゃない。 適当なクラスに、 byte[]との型変換演算子定義するだけ
0417デフォルトの名無しさん2014/11/14(金) 18:28:54.77ID:gJ6bbHjy
あれはキャスト演算を省略できるってだけじゃないの?>implicit cast
0418デフォルトの名無しさん2014/11/14(金) 18:31:09.62ID:aP1RfszB
>>416
型変換処理自体は自分で書くわけだけど
違う型の変数に代入しようとしたら知らんうちに型変換処理が起動してゴリゴリ型変換が行われるのが
暗黙の型変換やん

まあたしかになんかクラスを作ってbyte[]をプライベートメンバに持って
byte[]に型変換しようとした時には中身が出てくるっていう実装にはできるわね
気持ち悪いけど
0419デフォルトの名無しさん2014/11/14(金) 18:33:32.24ID:7FLVfRPT
よくわかんないけど、そういうのをご希望なんじゃないの?
0420デフォルトの名無しさん2014/11/14(金) 18:37:31.03ID:gJ6bbHjy
A[] aa = new B[] { };
B[] bb = new A[]{}; // NG
B[] bb = new A[] { }.Cast<B>().ToArray(); // OK
0421デフォルトの名無しさん2014/11/14(金) 18:41:29.20ID:aP1RfszB
>>398だと
A[]からB[]に型変換したいっていう話だったから
そんなのまずコストがやばそうだし
byte[]から何の配列に型変換すると>>410が解決するのか意味不明だからな

byte[]をラップするクラスに暗黙に変換したいっていうならまあ意味はわかるな
0422デフォルトの名無しさん2014/11/14(金) 18:58:07.87ID:+9Z/kvkr
すみません言葉が足りなくて

byte[]をHogeにラップしてbyte[]へのimplictな変換を実装したとしても
IList<byte[]> なシグネチャなメソッドに IList<Hoge> を使えないなぁという話でした。
0423デフォルトの名無しさん2014/11/14(金) 19:02:50.59ID:aP1RfszB
やっぱいみわかんねえな
0424デフォルトの名無しさん2014/11/14(金) 19:15:48.54ID:Cq+F2Q+D
それは反変共変が云々かんぬん
だれか説明してやって
0425デフォルトの名無しさん2014/11/14(金) 19:16:18.44ID:nxGHcalD
嫌です
0426デフォルトの名無しさん2014/11/14(金) 20:18:28.86ID:mJJdiWvV
変態的な使い方するなよ、変態。
0427デフォルトの名無しさん2014/11/14(金) 21:25:00.74ID:+9Z/kvkr
ぐへへ
0428デフォルトの名無しさん2014/11/15(土) 00:15:05.37ID:JztHbHM2
階層化で一番良い方法は結局なんなのよ?
0429デフォルトの名無しさん2014/11/15(土) 00:19:06.28ID:EiFM0Zwi
DBなら >>367 で十分。
0430デフォルトの名無しさん2014/11/15(土) 00:28:07.31ID:JztHbHM2
>>429 >>367
ありがとうございます!
それでDB設計します!
0431デフォルトの名無しさん2014/11/15(土) 00:53:17.31ID:QA+2GZXj
>>397
なにを言いたいのかさっぱりわからんが、絶対パスも階層の深さも SQL 書けば作れるだろ
そんな情報を持つ意味は普通はない
0432デフォルトの名無しさん2014/11/15(土) 01:59:46.96ID:OgEItdJa
>>431
正規化絶対主義なら要らないけどな
俺は再帰SQLのパフォーマンスとかリソース使用量とか懐疑的なんでな
つかDB板いけと
0433デフォルトの名無しさん2014/11/15(土) 04:33:14.00ID:L1YjzjuF
なんか最近やたらマ板行けだの何処行けだのと言い出す奴おるねえ
0434デフォルトの名無しさん2014/11/15(土) 05:50:23.18ID:QA+2GZXj
>>432
> 俺は再帰SQLのパフォーマンスとかリソース使用量とか懐疑的なんでな

老害乙
0435デフォルトの名無しさん2014/11/15(土) 07:03:28.31ID:QYEam8kn
ORMで使えない妙なSQLに固執する方が…
0436デフォルトの名無しさん2014/11/15(土) 08:22:47.12ID:RjoXFzVe
検索のために持たせているものを
作り出すことは可能だなんて言い出すあたり
>>431は「RBDMSのテーブルにインデックスなど不要」って考えの人かな
0437デフォルトの名無しさん2014/11/15(土) 12:37:35.04ID:KvmYAgyz
>>436
しなくていい苦労して、どや? ってバカみたい w
0438デフォルトの名無しさん2014/11/15(土) 12:47:52.43ID:L1YjzjuF
ジャップにありがち
0439デフォルトの名無しさん2014/11/15(土) 14:10:17.49ID:0xqO6m3E
ヤンキーのレス?
0440デフォルトの名無しさん2014/11/15(土) 14:52:32.84ID:hIWmb4Rf
極端な考えだけど
「俺は悪くない、{会社|組織|お前ら}が原因だ」
って話が、[[[スレの趣旨を無視して]]](ここ重要)長々と続くようになったら
マ板誘導でいいと思っている
0441デフォルトの名無しさん2014/11/15(土) 15:00:28.90ID:gttMTlAQ
じゃあテメエをまっさきに誘導しろよ馬鹿。
0442デフォルトの名無しさん2014/11/16(日) 07:39:05.77ID:qLOsHMjV
>>441=論理的思考のできない馬鹿
0443デフォルトの名無しさん2014/11/16(日) 07:45:56.06ID:ARcUbCRW
お互いに馬鹿馬鹿言い合ってそれで気分が晴れるのか?小学生かよ
0444デフォルトの名無しさん2014/11/16(日) 08:40:08.66ID:MAyHQAUs
このスレは他と比べてレベルの高い人が集まってると思ってました
くだらない低レベルな煽りあいはやめてください
0445デフォルトの名無しさん2014/11/16(日) 09:44:43.16ID:CXE/Z8t2
│↑
└┘
0446デフォルトの名無しさん2014/11/16(日) 10:48:38.56ID:vxT+UTz0
そんなことよりC#の話しようぜ!
0447デフォルトの名無しさん2014/11/16(日) 11:24:05.45ID:R05ll4b0
お断りだ
0448デフォルトの名無しさん2014/11/16(日) 12:43:39.07ID:XxSX201F
ラムダ式がAction,Funcデリゲートに自動変換されないのは
嫌がらせですか?

var f = (double v) => { return v.ToString(); }; // エラー
0449デフォルトの名無しさん2014/11/16(日) 12:53:53.14ID:tO6WCZz9
delegateがAction、Funcだけじゃないから
0450デフォルトの名無しさん2014/11/16(日) 13:03:03.42ID:R05ll4b0
どこの言語から来るとこういうこと考えるの?
0451デフォルトの名無しさん2014/11/16(日) 13:58:12.01ID:ARcUbCRW
ActionとかFuncって別に特別なデリゲートってわけじゃないしね
あると便利だから最低限これだけ定義しておきますね、って感じだし
0452デフォルトの名無しさん2014/11/16(日) 21:11:26.50ID:/gjxNyIJ
今C#を設計し直したら名前付きのデリゲート型は無くなって
TypeScriptの var f : (double) => string みたいに引数と戻り値の型のセットを型として扱うようになるだろうけどね
元々デリゲートなんてイベントハンドラに使うくらいしか想定されてなかったから
0453デフォルトの名無しさん2014/11/16(日) 21:28:25.65ID:qmyZLHei
デリゲートがなぜデリゲートと呼ばれているのかに異論を唱える説だ
0454デフォルトの名無しさん2014/11/16(日) 21:42:09.81ID:vxT+UTz0
移譲だよ。移譲。
0455デフォルトの名無しさん2014/11/16(日) 23:14:43.68ID:phD7b9hD
ラムダ式をvarに代入できないのが不満なんだけどこの考え方おかしい?
0456デフォルトの名無しさん2014/11/16(日) 23:27:36.36ID:UuQKx0Wk
delegateも名前付けれるので便利っちゃ便利だよ
ただ、同じ引数・戻り値でも互換性が無くなってるのが…

>>455
varは型宣言を省略できるだけのシンタックスシュガーだからしゃーない
それにExpressionもあるし
0457デフォルトの名無しさん2014/11/16(日) 23:39:54.55ID:kuWYhW7B
A「ラムダ式がファーストクラスのオブジェクトでないのが不満
B「シンタックスシュガーだからしゃーない

Bは会話のできないアスペ
0458デフォルトの名無しさん2014/11/16(日) 23:46:53.16ID:lkRhIZkq
ラムダ式は、受け取る変数の側によって何の型になるのか決まる
(デリゲートとして受け取ろうとすればデリゲートになるし、Expression型で受け取れば式木になる)
だから右辺値から型を推測できない以上varでは受け取れない
ってことよね、確か
0459デフォルトの名無しさん2014/11/17(月) 00:09:15.18ID:q31p4NOn
A「ラムダ式がファーストクラスのオブジェクトでないのが不満
B「シンタックスシュガーだからしゃーない
C「受け取る変数の側によって何の型になるのか決まる

BとCは会話のできないアスペ
ひょっとしてファーストクラスの概念が理解できてない?
0460デフォルトの名無しさん2014/11/17(月) 00:25:54.26ID:UmxJwgic
アスペの見本市かよ
閉鎖しろ閉鎖
当局を呼べ
0461デフォルトの名無しさん2014/11/17(月) 00:38:08.84ID:MgWHkgL6
Aが>>455のことならどこにファーストクラスオブジェクトって書いてあるの??

それとも>>455=>>457=>>459で意味を補足してるってこと?
0462デフォルトの名無しさん2014/11/17(月) 00:42:00.61ID:DBvdkj9t
ビジネスクラスだよな
0463デフォルトの名無しさん2014/11/17(月) 00:53:44.79ID:M5Cu5yU1
(ただいまファーストクラスの意味を調査中です)
0464デフォルトの名無しさん2014/11/17(月) 05:25:33.30ID:QYoh9q3/
なんとなく分かるから調べない
0465デフォルトの名無しさん2014/11/17(月) 20:17:58.55ID:TrB9TvSV
ラムダがActionやFuncに自動で割り当てられるようになっても別にいいけど
とりあえず名前付けられなきゃ関数を返す関数とかの型名をいちいち書くのが大変なことになるし
何もなくても引数名で意味を表すためにdelegate定義するよ俺は
0466デフォルトの名無しさん2014/11/17(月) 20:46:37.86ID:/Iul0pzs
ところでActionとFuncはどう違うんだぜ
0467デフォルトの名無しさん2014/11/17(月) 21:02:47.22ID:QYoh9q3/
Action→戻り値なし
Func→戻り値あり
0468デフォルトの名無しさん2014/11/17(月) 21:13:28.89ID:PlOUg50b
そこを分かってないやつがいようとはな
あなどれんな
0469デフォルトの名無しさん2014/11/17(月) 21:15:41.99ID:bgegzkUV
戻りの型を書くのがそこはかとなくダルいので何とかして欲しいです。
Func<string, Task<Response>> f = async (url) => {
 var result = await DownloadAsync(url);
 return DeSerialize(result);
};
0470デフォルトの名無しさん2014/11/17(月) 21:32:08.48ID:SZFANCPm
型推論が効くようにstaticメソッド活用しな、としか
0471デフォルトの名無しさん2014/11/17(月) 22:28:14.47ID:MgWHkgL6
・変数に入れない
・delegateで受け取ってそのまま返すメソッドを作る
・C#使わない
0472デフォルトの名無しさん2014/11/17(月) 22:40:56.09ID:Q3ukAaxs
WM_PAINTをポストしてるのにOnPaintメソッドが呼び出される気配がありません
PostMessage関数は成功してる(戻り値でわかる)のに

普通はWM_PAINT来たら絶対呼ばれますよね?
私がウィンドウハンドル取得するところでミスっているんですかね・・・?
0473デフォルトの名無しさん2014/11/17(月) 22:43:21.80ID:ZkARnQw7
どんなコード書いてるか知らんけどこの辺みてみたら?
http://www.atmarkit.co.jp/fdotnet/csharptips/008bitmap/008bitmap.html

あとはこの辺のサイト使ってコードを晒せる範囲で晒してみるとか
http://ideone.com/
0474デフォルトの名無しさん2014/11/17(月) 22:59:32.04ID:Q3ukAaxs
書き忘れました
PostMessage関数の引数に渡すウィンドウハンドルは
ポストされる側のフォームのコンストラクタの中でControl.Handleメソッドを使って取得したものを使っています
0475デフォルトの名無しさん2014/11/17(月) 23:03:48.09ID:ZkARnQw7
いやコード晒せるなら晒せって
自分では大丈夫と思ってるコードでもポカやらかしてるとかあるから

エスパーじゃないからうごかないんですーで対応できるわけない
0476デフォルトの名無しさん2014/11/17(月) 23:14:35.88ID:/Iul0pzs
>>467
ありがとう( ´ ω ` )ノ
0477デフォルトの名無しさん2014/11/18(火) 00:00:05.49ID:Q3ukAaxs
>>475
大体こんな感じです

Form.cs
http://ideone.com/nUrp6O

Poster.dll
http://ideone.com/d51359

新しく作ったスレッドの中でdllの中の関数を呼び出してます
その関数の中でPostMessageをしているのですがOnPaint反応しません
このソースだとクリックするごとに黒い棒が伸びてくつもりで作りましたが伸びません
0478デフォルトの名無しさん2014/11/18(火) 00:12:13.33ID:bsF1yz9X
やっぱコード見たほうが早かった
こっちのオーバーライドするほうがいいかも
http://blogs.wankuma.com/umebayashi/archive/2007/02/15/62360.aspx
0479デフォルトの名無しさん2014/11/18(火) 00:34:02.54ID:bsF1yz9X
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=37176&KLOG=64
protected override void WndProcでWndProcをオーバーライドして
WM_PAINTなどの再描画のメッセージを拾ってInvalidateなどでOnPaintが発生するような
コードを書けばよかったはず
0480デフォルトの名無しさん2014/11/18(火) 00:38:27.49ID:FwR26ejN
というかWM_PAINTは直接投げるもんじゃなくて
InvalidteRectあたりの関数経由でシステムから投げられるものじゃ
0481デフォルトの名無しさん2014/11/18(火) 00:38:56.76ID:XSjdxmFb
>>478
その手がありましたか
InvalidateだとInvalidate→WM_PAINT→Invalidate・・・の無限ループになってしまったので
WM_PAINTでない独自のメッセージを作ってうまく動くようになりました
いやーありがとうございました

それにしてもWM_PAINTのポストでOnPaintが呼ばれない理由、誰か知ってたら教えてほしい・・・
0482デフォルトの名無しさん2014/11/18(火) 00:44:08.64ID:dTS5KRdo
馬鹿だから更新領域クリアしてないんだろ
0483デフォルトの名無しさん2014/11/18(火) 04:14:46.55ID:0uMRjQkj
メインフォームのpanelに別フォームを埋め込んで表示する方法があったら教えてください。

高機能なドッキングライブラリはいくつかありますが
VisualStudio的にユーザーが手動でレイアウトするというようなものは必要ないので
標準機能で行えるものを知りたいです。

MDIで似たようなことができなくもないですがUIとしては古い感じですし
実際のアプリではpanelだけではなくsplitcontainerやtabcontrolの各タブにフォームを埋め込む形にしたいです。
0484デフォルトの名無しさん2014/11/18(火) 04:25:22.68ID:bsF1yz9X
別フォームのレンダリング先を目的のコンテナを親にすればできそうな感じ
0485デフォルトの名無しさん2014/11/18(火) 04:30:08.02ID:bsF1yz9X
こんなのがあった
http://dobon.net/vb/dotnet/form/formwithinform.html
0486デフォルトの名無しさん2014/11/18(火) 07:49:00.13ID:oobbpTXk
>>467
匿名めそっどというやつ?(´・ω・`)
勘違いしてたらごめん
0487デフォルトの名無しさん2014/11/18(火) 11:21:17.58ID:e1BcnSab
違うよ。単なる定義済みデリゲート型だよ。
昔よく使ったMethodInvokerとかと同じだよ。
たくさん定義してくれたからじゃんじゃん使ってね。

public delegate void Action
public delegate void Action<T>
public delegate void Action<T1, T2>
public delegate void Action<T1, T2, T3>
public delegate void Action<T1, T2, T3, T4>
public delegate void Action<T1, T2, T3, T4, T5>
public delegate void Action<T1, T2, T3, T4, T5, T6>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>
public delegate void Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>

続く。
0488デフォルトの名無しさん2014/11/18(火) 11:21:45.82ID:e1BcnSab
public delegate TResult Func<TResult>
public delegate TResult Func<T, TResult>
public delegate TResult Func<T1, T2, TResult>
public delegate TResult Func<T1, T2, T3, TResult>
public delegate TResult Func<T1, T2, T3, T4, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult>
public delegate TResult Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>
0489デフォルトの名無しさん2014/11/18(火) 11:42:47.16ID:3mWvt4/W
Chartオブジェクトをダブルクリックしたら、そのフォームを閉じるプログラムを作った場合、
アプリケーションのMainメソッドで「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
のエラーが出ます。

private void chart1_DoubleClick(object sender, EventArgs e)
{
this.Close(); // ←エラー「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
}

private void button1_Click(object sender, EventArgs e)
{
this.Close(); // ←ボタンを張ってクリックイベントの場合、エラー起こらず、正常に閉じる。
}

回避方法ご存じの方教えてください!
0490デフォルトの名無しさん2014/11/18(火) 11:53:58.11ID:tluP6G/h
そんなわけないだろーと思ったらあっさり再現できて笑った
this.BeginInvoke(new MethodInvoker(this.Close));
とりあえずこんなんで代用しておけばどうかな
0491デフォルトの名無しさん2014/11/18(火) 12:11:20.67ID:3mWvt4/W
>>490
ありがとうございます!
助かりました。
0492デフォルトの名無しさん2014/11/19(水) 00:23:29.55ID:82EBbrPl
医療プログラマーが超高難易度の免許制に / フリーソフトやオープンソースの無作為配布も全面禁止
http://fox.2ch.net/test/read.cgi/poverty/1416286592/
0493デフォルトの名無しさん2014/11/19(水) 10:56:04.66ID:iBV8dn0c
CSharpCodeProviderと同じ要領でJ#コードを動的にメモリ内にコンパイルして
実行しようとしています。
Microsoft Visual J# 2.0 Redistributable Packageをインストールして、
VJSharpCodeProvider.dllを参照設定しました。

CompileAssenblyFromSourceで
「コンパイラの実行可能ファイルC:\Windows\Microsoft.NET\Framework\v4.0.30319\vjc.exeが見つかりません」
という例外が発生します。

2.0.50727\vjc.exeがインストールされているのは確認しています。

ターゲットフレームワークを4.5にしたまま、CompileAssenblyFromSourceで2.0.50727\vjc.exeを呼び出してもらう方法はないでしょうか。


それとも、もしかしたらJ#4.5ランタイムなんてありますか?

または、VJSharpCodeProviderの呼び出し部分だけ
ターゲットフレームワークを2.0に分離して、
メインの4.5から呼び出すなんて方法はないでしょうか。
0494デフォルトの名無しさん2014/11/19(水) 11:02:05.40ID:G19A4ziz
プロセス分ければ?
0495デフォルトの名無しさん2014/11/19(水) 11:38:47.74ID:iBV8dn0c
すいません、実行と書きましたが、
実際には動的に作った関数に引数を渡して
戻り値を取得したいです。
0496デフォルトの名無しさん2014/11/19(水) 12:06:20.62ID:G19A4ziz
適当にプロセス間通信させればいいだろ

CSharpCodeProviderならコンストラクタとか構成ファイルで変更できるらしいけど
ttp://msdn.microsoft.com/ja-jp/library/bb537926.aspx
ttp://msdn.microsoft.com/ja-jp/library/bb397730.aspx
この辺はどう?
0497デフォルトの名無しさん2014/11/19(水) 13:04:38.45ID:iBV8dn0c
VJSharpCodeProviderには引数をとるコンストラクタがないみたいです。
プライベートメンバでも、コンパイラのパスを格納してそうなものは
見あたりませんでした。

2.0で作ったclassが4.5のobjectに代入できるかは謎なんですが
戻り値はobjectにしたいので、別プロセスにはできなそうです。
0498デフォルトの名無しさん2014/11/19(水) 16:42:05.87ID:iBV8dn0c
JScriptがほぼ同じ構文なので
JScriptCodeProviderで代替しようと思います。。
0499デフォルトの名無しさん2014/11/19(水) 18:52:53.89ID:tAkKxqNr
delphiで作られたアプリとC#で作られたアプリ間でプロセス間通信させたいんですが、どういうテクニックがあるか教えて下さい。
0500デフォルトの名無しさん2014/11/19(水) 18:55:25.53ID:2kRgVtqW
名前つきパイプか
標準入出力
0501デフォルトの名無しさん2014/11/19(水) 19:37:21.65ID:I9gi/U1m
>>499
TCP とか UDP で作れば片っぽが違うマシンに旅立っても繋がりやすさ NO.1
0502デフォルトの名無しさん2014/11/19(水) 19:58:40.16ID:xaPWan9p
WM_GETTEXT WM_COPYDATA
0503デフォルトの名無しさん2014/11/19(水) 20:07:51.26ID:1Bz1Yo0z
メッセージキューって溢れたりしない?大丈夫?
0504デフォルトの名無しさん2014/11/19(水) 20:32:24.80ID:TsL3cNTk
普通にあふれる
今はどうだか知らないが、昔は10kくらいだったような?
0505デフォルトの名無しさん2014/11/19(水) 20:33:31.55ID:TsL3cNTk
あ、この文脈だと送れるデータのバイト数か
10kってのはキュー内のメッセージの数だから関係ない
0506デフォルトの名無しさん2014/11/19(水) 22:10:31.35ID:1Bz1Yo0z
いや気にしてたのはメッセージ件数です
なんか無視して良いんだか悪いんだか微妙な数字だね
0507デフォルトの名無しさん2014/11/19(水) 23:09:22.45ID:vbfXy5kt
10000個オーバーするほどメッセージがたまる可能性があるようなメッセージ送信をウィンドウメッセージでやるのはそもそも無理がある気がしないでもない。
0508デフォルトの名無しさん2014/11/20(木) 19:44:15.07ID:0a5X8QyK
xxx.designer.csの中身に
assembly getmanifestresourcestreamからアイコンファイルを取得して、コンポーネントのimageに設定するコードが記述されてるファイルがあったのですが、どこに設定したらそのようになりますか?
手動で書くと駄目です。
0509デフォルトの名無しさん2014/11/20(木) 19:53:42.68ID:0a5X8QyK
ストリームの取得もとは、作成したクラスのメソッドから取得してます。
imageの取得元に自分で作成したクラスのメソッドを記述してました。
どこに設定したら作成したクラスのメソッドを指定できますか?
0510デフォルトの名無しさん2014/11/20(木) 20:32:12.09ID:xQINjCr8
コンポーネントのimageに設定されているんだから、コンポーネントのimageなんじゃないの?
0511デフォルトの名無しさん2014/11/20(木) 21:04:35.35ID:6BfyKu3m
>>510
desiner.csに
コンポーネントのImageの右辺に初期値に
メソッドの返り値のストリームが指定されてました。
ここは本来は自動生成だからメソッドは記述されないはず。
0512デフォルトの名無しさん2014/11/20(木) 22:14:32.34ID:7Knc66tU
ttp://msdn.microsoft.com/ja-jp/library/system.componentmodel.design.serialization.codedomserializer.aspx
この辺使ってるんじゃね?
そのコンポーネント型あるいはそのプロパティのカスタム属性調べてみたら
0513デフォルトの名無しさん2014/11/20(木) 22:32:33.28ID:6BfyKu3m
>>512
.net のバージョンは1.1です
0514デフォルトの名無しさん2014/11/20(木) 22:36:31.59ID:7Knc66tU
ん? それが何か?
0515デフォルトの名無しさん2014/11/20(木) 22:45:52.74ID:nLzkz9Oy
そんな骨董品まだ使ってる人いるんだ
0516デフォルトの名無しさん2014/11/20(木) 23:13:31.81ID:6BfyKu3m
>>514
すみません。その他のバージョンから1.1が見つかりました。
0517デフォルトの名無しさん2014/11/20(木) 23:19:14.86ID:6BfyKu3m
すみません、ジェネリックは使っているので.net 2.0です。
0518デフォルトの名無しさん2014/11/20(木) 23:25:39.16ID:6BfyKu3m
最新式ですわ
0519デフォルトの名無しさん2014/11/21(金) 08:09:36.43ID:ARrBio5e
ほうでっか
0520デフォルトの名無しさん2014/11/21(金) 20:55:13.26ID:Djp7SnDK
新しく開発用の専用PCを購入予定なんですが(個人用です。会社とかではありません)
C#で色々とやるにはOSは7がいいですか?8.1がいいですか?
0521デフォルトの名無しさん2014/11/21(金) 21:10:31.82ID:sFVhtvyZ
ここは.Netについてもおkでしょうか?
GUIでバイナリを操作するアプリを作りたいんですが、
無料で作る場合、テキストボックスやらリッチテキストで自作しないと無理でしょうか?
会社がお金出してくれるとは思えないので。
0522デフォルトの名無しさん2014/11/21(金) 21:40:30.35ID:9qrGduC/
バイナリエディタっぽいのが作りたいのなら
C# hex editor
とかでググればすぐにわかるから、ソレをそのまま使うなり改良するなりしろ
0523デフォルトの名無しさん2014/11/21(金) 22:35:42.66ID:WXEJ6dTU
この手のコンポーネントはできるだけ他の人が作ったものを再利用するべきだけど
案外まともなものが少なかったりもするジレンマ
0524デフォルトの名無しさん2014/11/21(金) 22:56:00.48ID:sFVhtvyZ
>>522
ありがとう。
ちょっと使ってみます。
ライセンスについてもよく分からないので調べてみます。

使い方はエディタというかハードからバイナリデータを取り出してそれを好きに書き換えて戻す。
みたいなことがやりたいのです。
0525デフォルトの名無しさん2014/11/21(金) 22:57:14.80ID:k/rDFctP
今だとメモリマップドファイルも簡単に作れるから自分で実装しても問題ないかもね
0526デフォルトの名無しさん2014/11/22(土) 00:06:08.47ID:ueGbY8SJ
今からWindows買うのに7はあり得ないだろう
メインサポート終わるから新機能は7には来ない
0527デフォルトの名無しさん2014/11/22(土) 00:08:30.07ID:5z2fCmwl
>>526
8.1買って9に無料アプデするのがよさげじゃね
日本で無料になるかはしらんけど・・・
0528デフォルトの名無しさん2014/11/22(土) 00:09:57.88ID:DchdWh81
何の話だ
0529デフォルトの名無しさん2014/11/22(土) 00:28:29.28ID:4a8GKnNY
>>521
わざわざ自分で作らなくても、
フリーのバイナリエディタを使えば?
0530デフォルトの名無しさん2014/11/22(土) 06:25:54.67ID:82UI3yGT
>>529
スレ違いは去れ
0531デフォルトの名無しさん2014/11/24(月) 04:11:18.84ID:JEtDW/4O
フォームに対して30fpsでDrawImageしてたら使い物にならない遅さだったけど
PictureBox置いたら全然余裕の速さになったw
初歩知らなかったけどそういうものですか?
0532デフォルトの名無しさん2014/11/24(月) 07:03:48.30ID:JoTzvim7
PictureBoxがデフォルトでダブルバッファリングしてるだけじゃないかな
0533デフォルトの名無しさん2014/11/24(月) 09:11:14.39ID:DZ0ISr8h
ダブルバッファって速度に関係するの?
0534デフォルトの名無しさん2014/11/24(月) 09:17:43.24ID:wCkEdUJA
>>531
ダブルバッファとか言ってるアホは置いといて
ウインドウをドラッグして移動してみろ、当然滑らかに動くだろ?
それと同じことをしてるだけだから
0535デフォルトの名無しさん2014/11/24(月) 09:25:28.28ID:SGtUfJ6F
ダブルバッファの効果だな。
0536デフォルトの名無しさん2014/11/24(月) 09:31:12.61ID:Fx9sxyxG
クソ遅いのに30fpsにする意味が分からん
0537デフォルトの名無しさん2014/11/24(月) 11:04:47.56ID:JEtDW/4O
>>534
どういうこと?
フォームでもPictureBoxでも同じってこと?

>>536
30fpsが大前提で作ってたけどそう言われるとこだわる必要もないような気がして来た
ただある程度滑らかには動かしたい
0538デフォルトの名無しさん2014/11/24(月) 12:40:37.20ID:vb0rebZq
ウインドウは昔から重い処理として有名
fpsを気にするレベルなら論外 最優先でウインドウの枚数をカット

理由がないなら 12fpsでも贅沢というもの
0539デフォルトの名無しさん2014/11/24(月) 12:49:32.87ID:wCkEdUJA
決まったアニメーションをさせたいだけならWPF使えばコーディングなしで60FPSで動くよ
0540デフォルトの名無しさん2014/11/24(月) 12:50:20.95ID:SGtUfJ6F
WMPかIE貼れよ。
0541デフォルトの名無しさん2014/11/24(月) 13:57:12.41ID:JEtDW/4O
>>538
サンクス

>>539
がっつりコーディングしたいな
平たく言うとシミュレーションゲーム
画面を使わないバックグラウンドの実装は20年近く現職でやってるから勝手がわかるんだけど
リアルタイムの描画ってのが文化が違い過ぎて理解に戸惑ってるw
0542デフォルトの名無しさん2014/11/24(月) 14:00:07.86ID:SGtUfJ6F
DirectX一択じゃねーか、バカモノ。
0543デフォルトの名無しさん2014/11/24(月) 14:04:13.99ID:JEtDW/4O
いや、2Dのしょぼグラフィックだしそこまでするまでもないはず(と勝手に思い込んでる)
0544デフォルトの名無しさん2014/11/24(月) 14:20:06.68ID:sES7/v6d
>>541
がっつりコーディングしたいと言いつつ、DrawImageを使ってるところに
矛盾を感じるんですが...
0545デフォルトの名無しさん2014/11/26(水) 00:04:35.71ID:D8vidME1
asp.netでセッション管理をstate serverで行っている場合でも、セッションが共有される範囲って仮想ディレクトリ内で間違いないでしょうか?
0546デフォルトの名無しさん2014/11/26(水) 00:35:44.31ID:0Cyde8n4
>>545
?
なんで仮想ディレクトリが出てくんの?
0547デフォルトの名無しさん2014/11/26(水) 03:34:05.48ID:FFJq8ibg
仮想ディレクトリじゃなくてアプリケーション単位だったと思うけど
確証はない
0548デフォルトの名無しさん2014/11/26(水) 08:11:44.91ID:fYFRlquz
セッションの設定はアプリケーション単位でするのに
仮想ディレクトリな筈も無し。
一つのアプリケーション内でディレクトリ接合して
セッションが引き継げなかったらファッキンだぜ
0549デフォルトの名無しさん2014/11/30(日) 23:56:56.28ID:bRX/8r4W
ビルド時に、ビルド出力先に実行ファイルだけではなく、プロジェクトに追加したテキストファイルも一緒に出力する設定方法はありますでしょうか?

たとえば、プロジェクトにAAA.txtというファイルを入れているとします(リソースとしてではありません)。
普通にビルドしたままでは、bin\debugフォルダには実行ファイルだけが出力されますが、
AAA.txtも出るようにしたいです。

よろしくお願いします。
0550デフォルトの名無しさん2014/12/01(月) 00:03:37.55ID:Ngv08w3l
ファイル選択すればプロパティウィンドウで設定できる
0551デフォルトの名無しさん2014/12/02(火) 15:05:25.07ID:/PHM9jBI
新しい場合はコピーとかだったかな、に設定すればいいだけ。
0552デフォルトの名無しさん2014/12/02(火) 22:21:11.69ID:2ZrIs2MN
LinkedList<T>は双方向リストを表現してますよね。
この双方向リストの中に入ってる要素はLinkedListNode<T>になってて
ListだとO(n)かかる処理をO(1)で出来るってことだから
今までListで書いてた部分をLinkedListで書き変えようとしてます。

具体的な処理としては
�@リスト内の特定の要素をいったん削除する
�A削除した�@の要素をリストに戻す
ということをやりたいんですが、
�@の削除のためにRemove(hoge)を実行すると
hogeのPreviousやNextがnullになっちゃってて
戻したいとなっても戻すことができません。
どうしたらいいでしょうか?
ちなみにあらかじめPreviousとNextをコピーしておいて
Removeしたあとに設定しなおしてあげようと思ったら
PreviousもNextも読み込み専用で設定はできないみたいです。
さてどうしたもんか・・・。
0553デフォルトの名無しさん2014/12/02(火) 22:25:53.59ID:e+ByT0s5
双方向リストなんか自分で作れよ
繋いだり切ったりを自分で自由に制御できないとあまり意味のないデータ構造だ
ほとんどの場合は追加削除が少々多かろうがアクセス効率の悪さのインパクトの方が遥かに大きいから
0554デフォルトの名無しさん2014/12/02(火) 23:10:09.67ID:CnPIH9cl
>>552
よく知らんが、リストの癖に挿入できないの?
0555デフォルトの名無しさん2014/12/02(火) 23:15:18.19ID:e+ByT0s5
あとで戻すために、切り離した後でもPreviousやNextを覚えときたいってことだろ?
自分でクラス作ってまとめればいいだけ
LinkedListに固執する必要は無いと思うけどね
0556デフォルトの名無しさん2014/12/02(火) 23:31:06.32ID:2ZrIs2MN
>>553,>>555
やっぱり自作するしかないですかね〜、よし自作しよう!

>>554
元あった場所にO(1)で戻すことができないんですよ
Removeが削除したノードのPreviousやNextを
nullにする意味ってないと思うんですけどね〜。
削除されたあとのリンクを繋ぎ直してくれるだけでいいのに、
余計なことをしてくれちゃうんだからもぅ〜。
0557デフォルトの名無しさん2014/12/02(火) 23:32:41.69ID:3QX8qldK
LinkedList<T>.AddAfter() とは一体
0558デフォルトの名無しさん2014/12/02(火) 23:48:56.67ID:d6SeDk/e
>>556
いやリストから削除したらそのノードの前後はnullになってなきゃおかしいだろ
もぅ〜。じゃねぇよ
一回頭冷やして考えてみろ
どう考えてもnullになっているべきものがnullになっていない方がよくない
そういう変なやり方するの、バグの温床になる未来しか見えないぞ
0559デフォルトの名無しさん2014/12/02(火) 23:51:55.44ID:CnPIH9cl
>>556
> 元あった場所にO(1)で戻すことができないんですよ

リストだよな...
0560デフォルトの名無しさん2014/12/03(水) 00:02:57.45ID:R9vVNGzt
>>558
nullになってなきゃおかしいだろ、とか、どう考えてもnullになっているべきもの、
とか、何一つ理由を説明しないんだなw
今回の件で、nullにせず元々のままにしておくことに価値があることはわかったと思うが、
nullにすることによるメリットと、しないことによるデメリットって何?
リストの方をちゃんと処理してくれれば、要素の参照は余計な処理はしなくていいと思うぞ。

>>559

>リストだよな...
???
0561デフォルトの名無しさん2014/12/03(水) 00:05:03.43ID:aY14n3X0
>>558
激しく同意
0562デフォルトの名無しさん2014/12/03(水) 00:11:27.92ID:1LpQtQp3
これは発狂パターンだね
0563デフォルトの名無しさん2014/12/03(水) 00:12:43.26ID:30/umFES
PreviousやNextはリンクされた隣の要素を指してるんだから、削除してリンクが切れたらnullにならないとおかしい。
削除された時点で隣は無いんだから。
0564デフォルトの名無しさん2014/12/03(水) 00:21:26.54ID:SS589RKW
リンクリストって任意の要素の取得もo(1)なのか?
0565デフォルトの名無しさん2014/12/03(水) 00:21:59.01ID:R9vVNGzt
行儀の良さはこの際おいといて、
削除した要素は、削除したんだからもう不要→不要なものに余計な処理をしないでほしい
削除した要素を今後も利用するから変数に保持しておいた→今後利用するんだから、元の情報を消さないでほしい
百歩ゆずってnullにしたとしても、LinkedListNodeのプロパティがいじれないんだぞ?

俺は双方向リストの機能が欲しいだけなのに、結果として自分で作る羽目になってるこの現状が、
現在の実装の悪さを物語ってるだろ。
0566デフォルトの名無しさん2014/12/03(水) 00:31:39.82ID:6lRqEEU9
よく分からんが、要するにつなぎっぱなしと同じ状態にしたいというのなら、
ノードに有効無効フラグを設けて、それが向こうなら無いものとして扱うとか?
0567デフォルトの名無しさん2014/12/03(水) 00:48:23.61ID:30/umFES
>>552
PreviousとNextをコピーしてあるなら、
LinkedList<T>.AddAfter(LinkedListNode<T>, LinkedListNode<T>) もしくは、
LinkedList<T>.AddBefore(LinkedListNode<T>, LinkedListNode<T>)
でO(1)で戻せるじゃない。

元のPreviousとNextが隣り合ってる保障は無いから、両方保持する必要はないけど。
0568デフォルトの名無しさん2014/12/03(水) 01:37:27.98ID:R9vVNGzt
>>567

最初の要素も当然扱う可能性があるわけで(最初の要素のPreviousはnull)、
そうなるとPreviousとNextを両方コピーしておかないといけないです。
効率化のために色々考えてるのに、消される情報のための対応をわざわざ書くのもあれなので、
やっぱり自分で書くことにします。
0569デフォルトの名無しさん2014/12/03(水) 02:56:14.44ID:XziMqub+
隣のノードも削除されたら元に戻せないってわかってるのかな?

隣のノードが維持されてるって保証があれば大丈夫だが、
そんな限定された条件の為にPreviousとNextを残すのは
バグ防止だけでなく、効率面でも筋が悪い

効率を考えるなら、そんなくだらない事にこだわるんじゃなくて、
もっと広い視野でデータ構造を見直すべき

はっきり言って、お前は無能な働き者にしか見えないぞ
0570デフォルトの名無しさん2014/12/03(水) 07:30:14.85ID:viqlwPrS
今からC#勉強するぐらいならDをおぼえたほうがいいかな?
0571デフォルトの名無しさん2014/12/03(水) 07:37:45.05ID:2MKvb10J
観測できるユーザーがほぼいない言語やって何がどうイイのか分からない
まだC言語の方がマシだ
0572デフォルトの名無しさん2014/12/03(水) 07:43:41.87ID:TyhAry/M
人と違う言語使ってる俺カッコいいがやりたいのならScala,Clojure,Go,TypeScriptあたりにしとけ
0573デフォルトの名無しさん2014/12/03(水) 08:07:41.29ID:+Qer/lfY
COBOLならまだ仕事がある
0574デフォルトの名無しさん2014/12/03(水) 08:15:16.03ID:2MKvb10J
2000年以降に登場した言語でキャズムを越えた言語ってほとんどないの
SwiftはObjective-Cがあまりに糞なので越えると思うが
0575デフォルトの名無しさん2014/12/03(水) 08:51:59.38ID:qlwEVjSU
いまさらC言語でゴネゴネプログラムやりたくねー
0576デフォルトの名無しさん2014/12/03(水) 09:40:29.11ID:fPX0gkXP
>>550-551
ありがとうございました。
0577デフォルトの名無しさん2014/12/03(水) 23:04:57.92ID:zAV2qkhY
これからはデルファイだよ
0578デフォルトの名無しさん2014/12/05(金) 01:57:09.16ID:6HIwH/LL
構造体がインタフェースを実装する目的は?
ボックス化してインタフェースを通じた操作をするってこと?
0579デフォルトの名無しさん2014/12/05(金) 02:13:35.00ID:VFgXqot5
例えばIXmlSerializableなら目的はclassと同じ。
具体的に何インターフェイスのことを言っている?
0580デフォルトの名無しさん2014/12/05(金) 02:28:00.40ID:EnzJRzbZ
>>579
具体的にこれってのはありません。
別の言い方をすると、ボックス化するまでは、
インタフェースを実装した効果は得られないですよね?ってこと。
値型として使っているかぎりは、
単にその構造体としてしか扱いませんよね?

いかん、すっごいアホな質問になってる気がする。
アホすぎるようでしたらスルーしてね。
0581デフォルトの名無しさん2014/12/05(金) 07:11:25.81ID:XJlvxsal
新しいオモチャが沸いたね
0582デフォルトの名無しさん2014/12/05(金) 07:11:30.86ID:f5JIJXMS
>>580
ジェネリックを使って where T : インターフェイス の制約をかければボックス化せずにインターフェイスを通して扱える
0583デフォルトの名無しさん2014/12/05(金) 08:20:43.90ID:xLezLWr8
>>580
暗黙的にインターフェイスを実装してるならば普通にメンバーとして実装してるというだけだから
ボックス化とか無関係

明示的に実装して使用する場合はボックス化されるだろう。
0584デフォルトの名無しさん2014/12/05(金) 08:30:27.09ID:f5JIJXMS
>>583
インターフェイスにキャストしたらボックス化されるぞ
そりゃそのままの型でインターフェイスのメソッドを呼ぶ分にはボックス化は当然無関係だが、
それは>>580の言うとおりインターフェイスの意味がない
ボックス化を回避しつつインターフェイスによる共通化を実現するにはジェネリックしかない
0585デフォルトの名無しさん2014/12/05(金) 08:45:10.31ID:f5JIJXMS
ジェネリックを使う場合、多態ではなくあくまで共通化であることに注意
結局特殊化するときには明示的に型を決めなきゃいけないからね
異なる型を混ぜられないから、インターフェイスにキャストするのに比べると制限はある
0586デフォルトの名無しさん2014/12/05(金) 19:47:54.88ID:T2y+/3cj
>>582
おおおお!まさにそういう答えを望んでました。
型パラメータの制約ってやつですね。
いやーそうか。そんなとこで出てくるのか…。
用途はちゃんとあるもんですねぇ。
0587デフォルトの名無しさん2014/12/05(金) 22:32:37.84ID:umG4WL4p
ジェネリックはBOX化されないって聞いたから使ってみたけど
普通に手動特殊化したほうが何倍も性能が出たわ
0588デフォルトの名無しさん2014/12/06(土) 18:34:02.18ID:T3VPTifq
C#を最近書いているのですがクラスの初期化の仕方がわかりません

1.
自動実装プロパティには初期値を設定する方法はないのでしょうか?
コンストラクタ内で設定するしかないのでしょうか?
例) private int member{ private get; private set; } = 0 ←こんな雰囲気で書きたい

2.
抽象クラスをメンバに持つ場合、初期化はどのようにすればよいのでしょうか?
例)
abstract class Base {}
class Sub1 : public Base {}
class Sub2 : public Base {}
class Sample {
  private Base obj { private get; private set; }
  private Sample()
  {
    obj = new Base(); //←抽象クラスだからインスタンスは作れない
  }
}

どなたか教えていただけませんでしょうか
0589デフォルトの名無しさん2014/12/06(土) 18:41:07.56ID:pXvfqmCt
>抽象クラスをメンバに持つ場合、初期化はどのようにすればよいのでしょうか?

そんなことはテメーで考えろ
というかお前しか決められない
0590デフォルトの名無しさん2014/12/06(土) 18:41:10.91ID:yTh+Y5T7
>>588
1 C#6.0で出来るようになるらしいよ
2 obj = new Sub1()とかでいいんじゃないの
0591デフォルトの名無しさん2014/12/06(土) 18:56:54.39ID:M+SBfIts
nullを入れるか、Baseを空実装したクラスで初期化するヌルオブジェクトパターンにするか
0592デフォルトの名無しさん2014/12/06(土) 18:59:50.13ID:T3VPTifq
>>589-590
そうなるとSampleがSubに依存してしまうのが嫌だったのですが、それしか方法はないのですね
abstract class Base{}
class ConcreatBase : Base {}
class Sub1 : ConcreatBase {}
みたいにして基底クラスを一旦具象クラスにすることにします
ポインタがないのでなんか書きづらい…
0593デフォルトの名無しさん2014/12/06(土) 19:00:38.72ID:T3VPTifq
>>591
ありがとうございます!ヌルオブジェクトパターンで調べてみます!
0594デフォルトの名無しさん2014/12/06(土) 19:11:53.06ID:yTh+Y5T7
>>592
そういうのは普通はコンストラクタで継承クラスを入れるんだよ

class Sample {
  private Base obj { private get; private set; }
  private Sample(Base b)
  {
    obj = b;
  }
}

Sampleを使う側はSubのことを知っているわけだから
0595デフォルトの名無しさん2014/12/06(土) 19:31:17.94ID:T3VPTifq
>>594
もちろんそうするつもりだったのですが、Listを作りたかったのでデフォルトコンストラクタが必要で、
そのデフォルトコンストラクタの作り方に悩んだというのがきっかけでした
0596デフォルトの名無しさん2014/12/06(土) 19:33:39.92ID:zJoahJjf
>Listを作りたかったのでデフォルトコンストラクタが必要
何故?
0597デフォルトの名無しさん2014/12/06(土) 19:34:01.49ID:yTh+Y5T7
>>595
何言ってるのか全然分かんねえ
0598デフォルトの名無しさん2014/12/06(土) 19:37:51.81ID:OfAf7IQ7
方法聞くよりも何がやりたいのかを言った方が的確なレス貰えそうな
0599デフォルトの名無しさん2014/12/06(土) 20:00:19.13ID:T3VPTifq
>>596
すみません、いま手元にPCがないので試せないのですが、C#ではデフォルトコンストラクタがないクラスの空の配列を作れるのでしょうか?

List<MyClass> list; //MyClassのデフォルトコンストラクタがないとこの記述が許されないのでは

>>598
何種類かの表現形式をもつ小さいクラス群をひとまとめに扱うコンテナクラスをListにつめたいです
例えば、氏名、電話番号、性別をもつ個人情報クラスを作りたい
氏名クラスは抽象クラスで、普通の氏名クラス、ミドルネーム付き氏名クラスみたいな具象クラスがある
電話番号や性別も同様
具体的な個人情報クラスはビルダーパターンとかアブストラクトファクトリーパターンで作る
みたいなことがしたかったです
0600デフォルトの名無しさん2014/12/06(土) 20:06:08.80ID:1MG24EwX
なんかもううんざりするんだけどさ

少しは試してみたかい

ideoneとかでもいいけど
0601デフォルトの名無しさん2014/12/06(土) 20:06:09.13ID:bBkhQiuq
List<Enumerable>みたいなstatic型は許されないけどデフォルトコンストラクタは関係ない
0602デフォルトの名無しさん2014/12/06(土) 20:11:25.08ID:1MG24EwX
俺はPCじゃないけど、それでもこのくらい数分だ
http://ideone.com/Zu0kmd

どうかな、俺にはSuccessと表示されているように見えた
気のせいでないといいな
0603デフォルトの名無しさん2014/12/06(土) 20:12:24.73ID:yTh+Y5T7
>>599
Listを作っただけじゃclassのインスタンスは作られないからデフォルトコンストラクタなんていらないよ

たとえばclassで配列を作ったら配列はデフォルト値nullで自動的に初期化される
配列の一つ一つに対してインスタンスをnewして埋めていくことが必要
Listでも同じ
0604デフォルトの名無しさん2014/12/06(土) 20:17:36.09ID:u7G0e/ik
>>588,592
ジェネリクス使えよ

class Sample<TBase> where TBase : Base, new()
{
  private Base obj { get; set; }
  private Sample()
  {
    obj = new TBase();
  }
}
0605デフォルトの名無しさん2014/12/06(土) 20:20:52.79ID:1MG24EwX
本ばっか読んでるとこうなるんだぞー
君たちはこうならないようにハンズオンしようなー
0606デフォルトの名無しさん2014/12/06(土) 20:31:49.17ID:yTh+Y5T7
配列でデフォルトコンストラクタとか
class Sub1 : public Base {}

public継承とかC++の香りが漂ってくるね

C#だとclassは常にポインタ越しにアクセスするからクラスの配列は実際は
MyClass*の配列になってるんだっていえば分かりやすいのかな
0607デフォルトの名無しさん2014/12/06(土) 20:51:15.49ID:O2PZNRYp
C++でも class MyClass { Base obj; } と宣言して vector<MyClass> list; で使おうとしたら
要素のobjにBase以外が入れられないから何も出来なくね?
まあポインタがなくて不便だとか言ってるから参照型を知らないだけなんだろうな
0608デフォルトの名無しさん2014/12/06(土) 22:03:46.32ID:Bm3Y/sq5
>>606
ありがとうございます、その通りでC++コーダーです
とてもわかりやすく納得できました

>>607
C++であれば、そこはBaseではなくてBaseのポインタ(参照)を書くんです
でも>>606を参考に調べてみたらC#のクラスインスタンスは、すべてポインタで実装されてることがわかったので納得できました
0609デフォルトの名無しさん2014/12/06(土) 22:07:01.43ID:7flJVzHj
> C++コーダーです

そう名乗っちゃいけないレベルなのでは?
しったか臭が竜巻のように巻き上がってるぞ
0610デフォルトの名無しさん2014/12/06(土) 22:13:08.19ID:Bm3Y/sq5
>>609
いえ、C++コーダーであることは問題ないと思います

分からないことだらけで、質問をしてる立場上、しったかぶりはしてないつもりですが、
そう思われたのであれば申し訳ありませんでした
0611デフォルトの名無しさん2014/12/06(土) 22:41:38.30ID:OfEINIxl
http://www.microsoft.com/ja-jp/dev/campaign/cdon/default.aspx
何これ
0612デフォルトの名無しさん2014/12/06(土) 22:53:09.81ID:FWmjRtxd
リンクも見当たらずググっても出てこないんだがどうやってそのページ見つけたんだw
0613デフォルトの名無しさん2014/12/06(土) 23:07:42.10ID:s6L9xGNJ
何それw
0614デフォルトの名無しさん2014/12/06(土) 23:48:26.30ID:1MG24EwX
これは興味深いですね
ググったらクックパッドのC丼なるレシピが出てきたけど
0615デフォルトの名無しさん2014/12/06(土) 23:51:37.55ID:1MG24EwX
更新日時・・・昨日の18時
キーワード・・・C#,ゲーム,開発,標準言語,Android,iOS,IoT,Visual Studio,microsoft
0616デフォルトの名無しさん2014/12/06(土) 23:56:07.94ID:bBkhQiuq
ググるとC丼ストラップの画像が出てくる
0617デフォルトの名無しさん2014/12/07(日) 02:31:49.91ID:bIs09skj
string型の文字列に含まれるユニコード表現の\uXXXXというのを文字にデコードする関数はないでしょうか
0618デフォルトの名無しさん2014/12/07(日) 08:11:51.45ID:5ewwReDb
この辺
http://dobon.net/vb/bbs/log3-45/27179.html
正規表現使って変換する必要があるようだ
0619デフォルトの名無しさん2014/12/07(日) 08:19:23.15ID:4p9g0YXS
\のエスケープを解除すりゃいいんじゃんね
0620デフォルトの名無しさん2014/12/07(日) 18:27:23.29ID:o6Pz2B+W
何かのJSON系のライブラリで出来た気がする
0621デフォルトの名無しさん2014/12/07(日) 19:57:14.58ID:G8GDIK9T
よくわからんが
var uc = @"\u0066";
var c = Convert.ToChar(int.Parse(uc.Substring(2, 4), NumberStyles.HexNumber));
じゃダメなの?
0622デフォルトの名無しさん2014/12/07(日) 20:08:43.80ID:X8kltGH8
var decoded = Regex.Replace(encoded, @"\\u(?<code>[0-9A-Fa-f]{4})",
&nbsp; m => ((char)(Convert.ToInt32(m.Groups["code"].Value, 16))).ToString());
まあこんなの
0623デフォルトの名無しさん2014/12/07(日) 23:57:37.75ID:bIs09skj
>>622
mって何ですか?
0624デフォルトの名無しさん2014/12/08(月) 00:26:03.17ID:R649D88+
ラムダ式
0625デフォルトの名無しさん2014/12/08(月) 18:47:03.00ID:2wg/kq2l
のパラメーター名です
0626デフォルトの名無しさん2014/12/08(月) 19:28:57.73ID:hRQ2KHZQ
>>622
>>624-625
やっと理解出来ました
ありがとうございます
0627デフォルトの名無しさん2014/12/09(火) 16:49:11.03ID:AJ/SHv6B
ジェネリック型にキャストするキャスト演算子って定義できないのでしょうか

 public static explicit operator T (Node node) where T : Component {
   return node.GetComponent<T>();
 }

と定義して、

((SomeComponent)node).SomeMethod();

みたいな呼び出し方をしたいのですが・・・
0628デフォルトの名無しさん2014/12/09(火) 17:33:28.06ID:1xcJzOGx
>>627
無理でしょ。
っていうか、キャストにこだわる意味があるように思えないんですが...
node.GetComponent<SomeComponent>().SomeMethod();
って書くだけじゃん。
0629デフォルトの名無しさん2014/12/09(火) 17:44:14.17ID:OycEn040
abstract class NodeComponet : Component
{
 public abstract void SomeMethod();
}

public static explicit operator NodeComponet( Node<T> node )
{
 return node.GetComponent<T>();
}

((NodeComponet)node).SomeMethod();

意味があるのかな?
0630デフォルトの名無しさん2014/12/09(火) 18:16:14.35ID:Uc1Az9NL
意味なんか考えるな
06316272014/12/09(火) 19:13:38.35ID:AJ/SHv6B
>>628
そう書きたくないから聞いてるわけで

((SomeComponent)node).SomeMethod();
node.GetComponent<SomeComponent>().SomeMethod();

長いしダサイしもっと簡潔に書けないかと工夫しています
理想は

 (node as SomeComponent).SomeMethod();

ですが、無理なんですよねー、この辺がC#の限界か。
0632デフォルトの名無しさん2014/12/09(火) 19:20:56.18ID:JUw1fGNB
オレオレ言語仕様の提案はここじゃなくてRoslynにでも言え
0633デフォルトの名無しさん2014/12/09(火) 19:26:13.72ID:56meK9wT
dynamic使えばできるよ
0634デフォルトの名無しさん2014/12/09(火) 19:44:13.33ID:i91PBujD
それをダサいと感じるの感覚はどの言語のものなんだろう?
それともC#でゴルフしようとしてるの?
0635デフォルトの名無しさん2014/12/09(火) 20:39:43.11ID:56meK9wT
.キャストを嫌う人多いしな
最近だと流れるようなインターフェイスとかでメソッドを連鎖するのが流行りだし
0636デフォルトの名無しさん2014/12/09(火) 21:05:19.68ID:GxaISCcb
>>635
変換とキャストの区別があいまいなのはC#の欠点の一つだろうな。

>>627みたいなのは本来キャストじゃなくて変換(あるいは変換ですらない)だから
こんなのをキャストでやるのは気持ち悪いと感じるのが正常な感覚だと思う。

メソッドの戻り値として取得するようにすべきだろう。
0637デフォルトの名無しさん2014/12/09(火) 21:07:57.58ID:XK4+vXui
所有してるだけのものにキャストできたら意味不明になるから可読性が落ちるっていう発送がないんだろうな
0638デフォルトの名無しさん2014/12/10(水) 08:30:04.83ID:tpatv1ak
C++ならtemplateでできるし
C++/CLIならgenericでもできるよ。
C#が構文を用意してないだけ。
0639デフォルトの名無しさん2014/12/10(水) 10:28:11.92ID:aW0nYMTM
型変換演算子みたいなのはあっても良いと思うけどな
下の書き方が出来れば凄いすっきりする

node->SomeComponent.SomeMethod();

みたいな。->演算子の実装はユーザーが行う。
0640デフォルトの名無しさん2014/12/10(水) 11:52:52.83ID:Bt3w6SNQ
implicit operatorマンセー
0641デフォルトの名無しさん2014/12/10(水) 16:44:14.84ID:JsQOTfLL
なんでこの機能ないの?よそはできるじゃんって後から後から文句言われるの好きな人が多いんだね。
0642デフォルトの名無しさん2014/12/10(水) 17:28:58.53ID:OLff/u5a
貧乏な家庭は黙って麦を食え
0643デフォルトの名無しさん2014/12/10(水) 17:48:04.39ID:QRvFRn+d
別にプロパティやら拡張メソッドやら定義してもいいが
node.SomeComponent.SomeMethod()

キャストでやる必要は全くないよな
0644デフォルトの名無しさん2014/12/10(水) 20:52:36.64ID:aW0nYMTM
それじゃジェネックが使えないだろ
ジェネリックプロパティも解決策の1つか
0645デフォルトの名無しさん2014/12/10(水) 21:02:09.15ID:16vmKM48
そんなものはない
0646デフォルトの名無しさん2014/12/10(水) 23:15:16.14ID:Ru9p+ffq
asやisの優先順位を高くした版が欲しいって話題に見える
0647デフォルトの名無しさん2014/12/10(水) 23:16:15.66ID:Ru9p+ffq
あ、isはあってもしょうがないや間違えた
0648デフォルトの名無しさん2014/12/11(木) 22:47:16.12ID:c4SrNXUT
具体的な型にキャストしてるのに
何をジェネリックでやる余地があるのやら
0649デフォルトの名無しさん2014/12/13(土) 01:50:46.98ID:y9otNf+T
ソートの話なんだけど、ちょっとご相談。
例えば以下のようなkey-valueペアがあったとする。
int[] key = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int[] val = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
keyには同じ値が入る可能性があって、valは単なる順番を表してるだけ。
んで、やりたいことは基本的にはkeyを降順でソートすることなんだけど、
もし同じ値があった場合にどちらが先になるかはランダムにしたいわけ。
まず、これをLINQで解決した例を示しとく。
public static IEnumerable<int> OrderingDescending<T>(this IEnumerable<T> self, Random random)
{
IEnumerable<int> order = Enumerable.Range(0, self.Count());
Tuple<int, T>[] merge = new Tuple<int, T>[self.Count()];

for (int i = 0; i < self.Count(); i++)
{
merge[i] = Tuple.Create(Enumerable.ElementAt(order, i), Enumerable.ElementAt(self, i));
}

return merge.OrderByDescending(tuple => tuple.Item2).ThenBy(tuple => random.Next()).Select(tuple => tuple.Item1);
}
【サンプルコード】
Random random = new Random(0);
val = key.OrderingDescending(random).ToArray();
Console.WriteLine(val.ToStringExtension());
random = new Random(1);
val = key.OrderingDescending(random).ToArray();
Console.WriteLine(val.ToStringExtension());
【実行結果】
{ 5 7 4 8 2 9 0 6 3 1 }
{ 5 7 8 4 2 0 9 6 1 3 }
ちなみにソートされたkeyは
{ 9 6 5 5 4 3 3 2 1 1 }
0650デフォルトの名無しさん2014/12/13(土) 02:04:02.56ID:y9otNf+T
んで、じゃーやりたいことは何なのかというと、
これをArray.Sortを使って実現したいんだよね。

普通の降順のソートであれば
public class DescendingComparer : IComparer<int>
{
public int Compare(int x, int y)
{
return -x.CompareTo(y);
}
}
っていうのを定義すれば
【サンプルコード】
DescendingComparer descendingComparer = new DescendingComparer();
//Array.Sort(key, val, descendingComparer);
//Console.WriteLine(key.ToStringExtension());
//Console.WriteLine(val.ToStringExtension());
【実行結果】
{ 9 6 5 5 4 3 3 2 1 1 }
{ 5 7 4 8 2 0 9 6 1 3 }

っていう感じになる。

ここでやっと相談内容!

ランダム性を持たせるためにはどんなComparerを作ればいい?
0651デフォルトの名無しさん2014/12/13(土) 02:19:39.34ID:dyRngJUX
等しいときにランダムに大きいか小さい(か等しい)を返せば良いんじゃ?
0652デフォルトの名無しさん2014/12/13(土) 03:10:36.80ID:y9otNf+T
>>651

そう思って書いた以下のコードなんだが・・・

public class DescendingRandomComparer : IComparer<int>
{
public int Compare(int x, int y)
{
return x == y ? Form1.random.Next(2) * 2 - 1 : -x.CompareTo(y);
}
}

自分のデータでやると落ちるんだよね^^;
ちなみにメッセージは以下

追加情報:IComparer.Compare() メソッドから矛盾する結果が返されたため、
並べ替えできません。値をそれ自体と比較したときに等しい結果にならないか、
またはある値を別の値と繰り返し比較したときに異なる結果が生じます。

同じデータに対してLINQ版は正常に動作するから、
Comparer版はどっかロジックに穴があるはずなんだよね^^;
0653デフォルトの名無しさん2014/12/13(土) 03:57:05.57ID:3ehKG0WS
Form1.random て何?

他の言語ではたいてい、Math.random だよ
0654デフォルトの名無しさん2014/12/13(土) 05:11:59.58ID:Ln23jMW6
Form1にRandom型の静的フィールドrandom作って呼んでんだろ
C#使ったことないなら黙ってろよボケ
0655デフォルトの名無しさん2014/12/13(土) 06:06:30.85ID:jrsNMnhJ
ロジックに穴というかエラーメッセージそのままじゃないの?
最悪ソートが完了しない可能性は?
0656デフォルトの名無しさん2014/12/13(土) 06:11:39.32ID:LmsGKyNP
俺は出来るって思ってるタイプの阿保だな。メッセージよく読め。ソートの実装考えてみ
0657デフォルトの名無しさん2014/12/13(土) 06:12:12.88ID:zlOWmko4
>>649
どうでもいいけどLinq版のコードひどいぞ
何回列挙走らせてるんだよ

var buff = self.ToArray();
var order = Enumerable.Range(0, buff.Length).ToArray();

return buff
.Zip(order, (x, y) => new { Key = x, Value = y })
.OrderByDescending(x => x.Key)
.ThenBy(x => random.Next())
.Select(x => x.Value);
0658デフォルトの名無しさん2014/12/13(土) 06:39:16.69ID:/UEpnQ1u
どうしてもIComparerでやりたければディクショナリでも使って比較結果を一意にしないとダメだろ
0659デフォルトの名無しさん2014/12/13(土) 06:41:43.34ID:4Dj8qcBV
>>652
コードをそのまま手元で動かしてみたが落ちないぞ?

[9, 6, 5, 5, 4, 3, 3, 2, 1, 1]
[5, 7, 8, 4, 2, 9, 0, 6, 1, 3]

なにが違うんだ?
0660デフォルトの名無しさん2014/12/13(土) 06:46:39.61ID:/UEpnQ1u
たまたま動いただけだろ
0661デフォルトの名無しさん2014/12/13(土) 06:54:24.75ID:4Dj8qcBV
>>660
Range() で 10000 回、Range().AsParallel() で 10000 回動かしたけど大丈夫だ
結果も 652 の期待通り、同じ key だとランダムで変わる
違う可能性があるのは自前の ToStringExtension() くらいかなぁ・・・
0662デフォルトの名無しさん2014/12/13(土) 07:11:43.32ID:/UEpnQ1u
>>661
4.5.1なら発生しなくて2.0だと落ちるっぽい
あと同じ引数だと試行回数増やしても例外の発生数が変わらないから結果をキャッシュしているのかも
0663デフォルトの名無しさん2014/12/13(土) 07:15:22.49ID:gLkCckxe
落ちても文句言えないことをしておいて
何が違うんだと質問し出す低脳、
しかも指摘されても質問を続ける馬鹿は死んで欲しい
0664デフォルトの名無しさん2014/12/13(土) 07:54:44.05ID:jrsNMnhJ
>>663
キチガイはすっこんでろ
0665デフォルトの名無しさん2014/12/13(土) 09:15:04.83ID:v1msXK9g
>>652
実行時までこんなチェックしてくれるの? スゲーな JITかも知れんけど
0666デフォルトの名無しさん2014/12/13(土) 09:15:52.27ID:wHnW1l6n
実装方法がおかしい

素直にソートしてから同じ値の範囲を並び替えるか
GroupByでまとめて内部をシャッフルしろ
0667デフォルトの名無しさん2014/12/13(土) 09:22:26.40ID:wHnW1l6n
もう一個あった

事前にTupleとかでランダムな値を付加して、それを比較条件に加える
0668デフォルトの名無しさん2014/12/13(土) 10:33:55.74ID:mHa+tLkb
発想がおかしい。
こういうのは大小比較の基準側でやるんじゃなくて
新たなソートアルゴリズムを定義するんだよ。
class Baka {
 IEnumerable<T> OreSort(this IEnumerable<T> list, IComparable<T> comp);
}
0669デフォルトの名無しさん2014/12/13(土) 11:32:42.84ID:y9otNf+T
寝て起きた。みんな色々考えてくれてありがとう。

>>655
ソートを完了することができなくて落ちてるんでしょう。

>>656
Comparerで対応することができないなら、
「Array.Sortによってランダム性を持たせたソートはできない」
っていうことかな?
それならそれでいいんだけど、ほんとにできない?

>>657

どうでもよくない、コードの最適化は大歓迎だわ。
そもそも今回のLINQ版→Array.Sort版を検討してるのは
自分で作ったLINQ版が遅いからだったんだよね^^;
ちょっとこれからおまえのコードの速度をチェックしてくるわ

逆にいえばArray.Sortにこだわる必要は本来はなくて、
「ランダム性を持たせたソートで一番高速な手法は?」
というのが今回の相談の一般形。
それがLINQであろうとArray.Sortであろうと第3の手法であろうと大歓迎。
0670デフォルトの名無しさん2014/12/13(土) 11:34:31.42ID:y9otNf+T
>>658
どういうこと?
具体的な実装で示してくれる?
keyのGetHashCodeに、ランダム性を持たせるがkeyに対して一意のハッシュ関数を定義するとか?

>>659
自分でも確認したが>>649のデータでは発生しないみたい。
>>660の言うとおりたまたま動いただけ。

>>661
10000回でも発生しなかったんだ。
ちょっと俺も今デバッグ中で、再現できるデータが得られたらまた報告するわ。

>>662
俺の環境でバージョン情報だしたら4.5.50938って書いてあった

>>666-667
一回ソートしてからさらに同一値のものに対して処理をかけるって遅そうじゃない?
GroupByも遅そう。
Tupleでランダムな値の付与も同一値じゃないところにメモリを使うのでちょっと効率的じゃない。

遅そうというのは単に俺の想像でしかないから実際は速いのかもしれない。
既出の手法よりも効率的ならぜひ教えてほしい。

>>668
肝心の中身が無いじゃねーかw
0671デフォルトの名無しさん2014/12/13(土) 11:37:29.69ID:1Rys2+MB
「ランダム性」の意味によるだろう
事前に予測できないが入力が同じなら結果も同じでいいんならIComparerでハッシュ値でも使って比較すればいい
0672デフォルトの名無しさん2014/12/13(土) 11:50:02.96ID:y9otNf+T
>>671
なるほど。

ちょっと要求仕様が明確でなかったみたいなんで補足します。

「ランダム性」はすべてRandomクラスのインスタンスrandom(俺の実装ではForm1に存在)が担っているものとします。

あと、背景についても少し話しておくと、
二人対戦のゲームの思考エンジンを考えてて、
ゲーム木のある深さの局面を評価値でソートするときに、
最善のものを使ってたんじゃ、人間が同じ手を打つと、
コンピュータも必ず同じ手を打って面白くないわけ。
そこで、ランダム性を持たせたいというわけです。
このランダム性はシードを与えることによってユーザーが管理できるものとします。
つまり、シードとして0を与えれば必ず同じ着手系列を打ってくるし、
シードとして1を与えれば必ず同じ着手系列を打ってくるというもの。
ランダム性はboolでオン・オフできるようになってて、
基本はオフにしてあって、この場合には普通の降順ソートを作動させる。
オンにしたときでも、オフの場合に比べて大幅に遅くなるのは問題がある。
ランダム性付与の処理はなるべく最小限に抑えたい。
現状、普通の降順ソートにはArray.Sortを利用している。
>>657からランダム性を抜いたものが速ければそっちに変える。
速さは正義。
0673デフォルトの名無しさん2014/12/13(土) 11:58:25.02ID:LmsGKyNP
Array.Sort の実装は知らんけど、キーの比較が1回で済むとは限らないだろ
それを踏まえて他のレス読み返して。
0674デフォルトの名無しさん2014/12/13(土) 12:06:35.59ID:dyRngJUX
IComparable<T>.CompareTo の注意書きだが
>A.CompareTo(A) は 0 を返す必要があります
なので、少なくとも値型で同じ値のときにランダムな大小結果を返すのは許されないようだ
まさかチェックされるとは思わなかったが
参照型で別インスタンスなら問題ないかもしれんが
>A.CompareTo(B) が 0 以外の値を返す場合、B.CompareTo(A) は反対の符号の値を返す必要があります。
らしいので、完全にランダムってわけにはいかんかもしれん

ソートは基本的には、比較と交換の繰り返しだから、比較で手を入れられないなら
交換するかどうかをランダムにするソートを自作するのが良いんじゃね
ソートの中身なんてアルゴリズムの本とか探せばいくらでもあるだろ
0675デフォルトの名無しさん2014/12/13(土) 12:12:58.46ID:dyRngJUX
つか、Array.Sort ってそもそも安定ソートなのか?
0676名無しさん@そうだ選挙に行こう2014/12/13(土) 12:20:45.27ID:Z72ySSz8
>>675
少なくとも、Array.Sort(someArray) は、不安定としっかり書いてある。
だが、不安定だといかんのか?
0677名無しさん@そうだ選挙に行こう2014/12/13(土) 12:30:01.65ID:dyRngJUX
不安定ソートだと、同値の順番が保証されないと思うんだが
つまり同値の順番が不定なソートって要件ならそれだけで満たしてるなと

同一データに対して、(同値の並び順について)数通りのソートできるようにしたいとかいう
後出しくさい要件はしらんがw
0678名無しさん@そうだ選挙に行こう2014/12/13(土) 12:33:12.77ID:wHnW1l6n
>>670
速度・メモリにこだわるんなら自分でソート実装しろよ >>668が正解
0679名無しさん@そうだ選挙に行こう2014/12/13(土) 12:36:29.06ID:wHnW1l6n
確かにアルゴリズムの教科書通りのクイックソート実装すれば、同値の順序がランダムになってるはず

Array.Sortの実装は知らんが
0680名無しさん@そうだ選挙に行こう2014/12/13(土) 12:56:44.06ID:kuX0EG8Y
ソートしてからキーが同じ奴を適当に入れ換えりゃいいんじゃないのか?
0681名無しさん@そうだ選挙に行こう2014/12/13(土) 12:59:54.77ID:v1msXK9g
何でソートが絡んでくるのか分からんと思っていたが
追加の説明でますます分からなくなったな
0682名無しさん@そうだ選挙に行こう2014/12/13(土) 13:03:12.16ID:y9otNf+T
>>673
俺の中でのArray.Sortの利便性が下がるだけで何も問題ないよ。
LINQさまさまだぜw

>>674
情報thx
Comparerでの対応は不可能ってことか。
ということは>>666の言うように2ステップで
�@普通のソート
�A同じ値のものをシャッフル
という風にするしかないね。
でも�Aの処理でぱっと思いつく
「順番に舐めて前と後をランダムに入れ替え」
だと一般性を失ってしまうね。
つまり、同一の値のものがA,B,Cだったとして
C,A,BとかC,B,Aが生成されなくなってしまう(>>680)。

>>677, >>679, >>681
安定ソートか不安定ソートかはあんまり関係なくて、
最速の普通のソートによって得られた順番と、違う順番のものが欲しい
ということ。
ソートの結果によってコンピュータが打つ手が一意に対応づくんだけど、
普通のソートの結果による着手と強さが変わらない着手を生成するために、
普通のソートの結果とは違うソートの結果が必要なんだ(ちゃんと評価値順に並んでる)。

>>678
まぁ正論なんだが、ちょっと今はパス。
ライブラリを流用したいw
0683名無しさん@そうだ選挙に行こう2014/12/13(土) 13:07:11.64ID:11C65zvi
シャッフルしてからソートすりゃ簡単だろ。
0684名無しさん@そうだ選挙に行こう2014/12/13(土) 13:27:02.02ID:dyRngJUX
>>682
そういう時は、ソートをどうこうするんじゃなくて
評価値の算定を変えればいいんじゃないかね
0685名無しさん@そうだ選挙に行こう2014/12/13(土) 13:47:12.65ID:3mgTh/5d
当たり前でしょそれ
なんか程度低い流れだなおい
0686名無しさん@そうだ選挙に行こう2014/12/13(土) 14:04:44.06ID:uQ37H43s
2分探索やらなんやらの関数が既存であるとしてもバカな俺ソートで一から全部作るということか
0687名無しさん@そうだ選挙に行こう2014/12/13(土) 14:23:31.58ID:aIxuvf1S
Comparer形式じゃなくてKeyFunc形式なら簡単に対応できるのにね
0688名無しさん@そうだ選挙に行こう2014/12/13(土) 14:24:59.03ID:/UEpnQ1u
既製フレームワークをよく理解していない奴ほど全部自作しろとか言い出すもの
0689名無しさん@そうだ選挙に行こう2014/12/13(土) 14:27:02.22ID:aIxuvf1S
とはいえ迂回路がいくらでもあるのに通行止めに突っ込み続けてるのは滑稽なだけだな
やりたいことってソートそのものじゃねえだろ
目的と手段の優先順位がなんか違うよなあ
0690名無しさん@そうだ選挙に行こう2014/12/13(土) 14:29:50.89ID:aIxuvf1S
ちょっと足りないな

×やりたいことってソートそのものじゃねえだろ
○やりたいことってArray.Sortで目的のソートを実行することじゃねえだろ
0691名無しさん@そうだ選挙に行こう2014/12/13(土) 14:47:49.95ID:i/Znjmf4
Array.Sortでもいいけど>>666が最終回答じゃねーの。
全部シャッフル→普通にソート これでは不満なのか?
0692名無しさん@そうだ選挙に行こう2014/12/13(土) 14:48:45.46ID:i/Znjmf4
ああ、>>666はソート後にシャッフルって言ってたのかすまん
0693名無しさん@そうだ選挙に行こう2014/12/13(土) 14:55:52.48ID:y9otNf+T
>>661のためにデバッグで落ちるデータの特定してたんだが、
なかなか大変だった。
めったにおこらないレアケースらしい。
逆にいえば、ほとんどの場合、望んでいる振る舞いをする。

以下が落ちるコード。みんなも確認してみてほしい。

public class DescendingRandomComparer : IComparer<int>
{
public int Compare(int x, int y)
{
return x == y ? Program.random.Next(2) * 2 - 1 : -x.CompareTo(y);
}
}

class Program
{
public static Random random = new Random(1);

static void Main(string[] args)
{
int[] key = { -9, -11, -10, -10, -10, -10, -11, -10, -10, -9, -11, -11, -9, -11, -14, -13, -10, -11, -13 };
int[] val = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };

DescendingRandomComparer descendingRandomComparer = new DescendingRandomComparer();
Array.Sort(key, val, descendingRandomComparer);
Console.WriteLine(key.ToStringExtension());
Console.WriteLine(val.ToStringExtension());

Console.ReadLine();
}
}
0694名無しさん@そうだ選挙に行こう2014/12/13(土) 14:59:16.25ID:o7g19REx
ランダムな割合で重複が発生するパターンをランダムに生成して何度も繰り返して落ちたらダンプ
ってするだけだろ?

落ちても文句言えないことをしておいて
何が違うんだと質問し出す低脳、
しかも指摘されても質問を続ける馬鹿は死んで欲しい
0695名無しさん@そうだ選挙に行こう2014/12/13(土) 15:03:54.48ID:y9otNf+T
俺は>>661じゃないからわからないが、
>>661本人が実行する限り現象が再現しないんじゃ問題意識もてないでしょ。
問題が起きるパターンを提示するのは問題提起した俺の責任だ。
0696名無しさん@そうだ選挙に行こう2014/12/13(土) 15:13:21.37ID:/UEpnQ1u
MSDNに明記されているから検証しなくてよかったのに
0697名無しさん@そうだ選挙に行こう2014/12/13(土) 16:27:37.19ID:4Dj8qcBV
>>695
あなたが責任を感じることじゃないよ
落ちる現象と、IComparer の結果に一貫性がないことの関連性を確認したかったんだけど、
手元で再現しなかったから、なんでだ? と思ったんだ
なお、>>693 でも落ちなかった、手元は 4.5.1 だから >>662 の言う通りなんじゃないかな
0698名無しさん@そうだ選挙に行こう2014/12/13(土) 17:25:43.60ID:dyRngJUX
>>693のコード試したけど、うちの環境じゃ
ターゲットが4.5か4.5.1だとエラー
4以下(4 3.5 3.0 2.0)だとエラーなし

ほかの人と結果逆になってる?
0699名無しさん@そうだ選挙に行こう2014/12/13(土) 18:30:02.77ID:y9otNf+T
色々試したので報告。

まず、>>657のコードを試してみた。
今までの自分のコードはforループの中でリスト構造の要素位置を
参照するというO(n)の操作をやってしまっていた。
指摘されて確かにこれは無駄だなと思ったんだが、
>>657のコードに変更して実行してみても結果はまったくといっていいほど変わらなかった。
なんで改善しないんだ?と思って色々調べていると以下の記述を発見。

Enumerable.ElementAt
source の型が IList<T> を実装する場合、その実装を使用して、指定したインデックス位置にある要素を取得します。 それ以外の場合、このメソッドは、指定した要素を取得します。
http://msdn.microsoft.com/ja-jp/library/bb299233%28v=vs.110%29.aspx

つまり、O(n)だと思っていた操作は対象がintだったことからO(1)になっていたわけだ。
0700名無しさん@そうだ選挙に行こう2014/12/13(土) 18:33:51.42ID:D6PKj09G
それぞれにランダム値を割り当てて
値が同じな場合ランダム値同士を比較した結果を返せばいいだけだろ
0701名無しさん@そうだ選挙に行こう2014/12/13(土) 18:37:55.46ID:y9otNf+T
次に、現状でのライブラリを用いたソートに関する見解。

【純粋ソート】
Array.Sortがやっぱり速い。
自分のソフトのあるベンチマークを走らせてみると、
LINQ版が11.8秒かかるところが、Array.Sort版だと10.3秒で終わる。
なので、ランダム性オフの場合はやはり今後もArray.Sortを利用することになる。

【ランダム性ソート】
Array.Sortはこれまでの議論から達成する手段がない状態。
なので、しかたなくLINQ版を使っている。
しかし、よくよく考えてみれば、
Array.Sort版は例外は発生しているが、ソート結果は望み通りの結果なのだから、
Array.Sortのソースが手に入れば、そこから例外処理を削除すれば、
Array.Sortのランダム性版が達成できるのかな?
VSのバージョンによっては一切エラー吐かないみたいだし、
副作用はなさそう。
そして、とても高速そう。

Array.Sortのソースってどっかから入手できるの?
0702名無しさん@そうだ選挙に行こう2014/12/13(土) 18:52:41.11ID:aIxuvf1S
ものすごく馬鹿な方向に向かっているな
誰も止めないんだお前たちはひどい奴だ
0703名無しさん@そうだ選挙に行こう2014/12/13(土) 18:54:59.54ID:RgtXmaIK
>Array.Sortはこれまでの議論から達成する手段がない状態。

全体をシャッフルしてからソートって案が出てるだろ
>>701は文盲なの?
0704名無しさん@そうだ選挙に行こう2014/12/13(土) 18:59:43.53ID:y9otNf+T
>>702
正しい方向に導いてくれ

>>703
それ、直感的になんだけど、不安定ソートと相性悪くない?
安定ソートだったら良いと思うんだけど・・・。
0705名無しさん@そうだ選挙に行こう2014/12/13(土) 19:02:21.65ID:8M8PdmNT
想像よりさらに二段階下くらいの知能の相手をしてるような気分でいっぱい
0706名無しさん@そうだ選挙に行こう2014/12/13(土) 19:02:32.31ID:y9otNf+T
ちょっと補足すると、
安定ソートは同じ値の中での順番がオリジナルと同一であることが保証されてる。
一方で、
不安定ソートは同じ値の中での順番がどういう並び順になっているかは一切保証されない。
つまり、ある秩序をもった特定の並び方になるかもしれないわけだ。
0707名無しさん@そうだ選挙に行こう2014/12/13(土) 19:06:27.40ID:zlOWmko4
>>701
ttp://referencesource.microsoft.com/#mscorlib/system/array.cs,1815

あと>>649のコードだけど、そのまま実行するとこっちの手元では>>657とかなり差が出るんだが
もしかして、実際にはorderをToArray()とかしてたりする?
もしそうなら大した差は出ないはずなのですまんかった
0708名無しさん@そうだ選挙に行こう2014/12/13(土) 19:06:37.23ID:D6PKj09G
不安定ソートの不安定さ加減と
乱数生成アルゴリズムに何らかの相関があれば
ソート後の不安定性にある傾向が生まれてくることもあるかもね

まあ相関なんかあるわけないけどね
0709名無しさん@そうだ選挙に行こう2014/12/13(土) 19:10:22.95ID:90PDXzSI
IComparer(T).Compareメソッドが純粋関数でないとか
業務でそんなコード見かけたら、書いたやつを張り倒してやりたい
0710名無しさん@そうだ選挙に行こう2014/12/13(土) 19:18:53.06ID:NhLeKCbv
なんでソートで盛り上がってんの
(´・ω・`)
0711名無しさん@そうだ選挙に行こう2014/12/13(土) 19:20:22.19ID:y9otNf+T
>>707

出力結果をToArrayしてました^^;
拡張メソッドはいろんなところで使えるんで、
作成するときはより一般的に作るように心掛けてて
IEnumerableで書いてますが、実際はint[]です^^;
ToArrayなければやはり効果があるんですね〜、確認できてよかった。
あなたが>>657のコード書いた人かな?
とりあえず性能は変わらなかったけど、可読性の観点だけからみても
あなたのコードの方がよかったので、置き換えました^^;
性能面でも効果を発揮する場面があるとなれば、なおさらだわ。

とりあえず感謝。
0712名無しさん@そうだ選挙に行こう2014/12/13(土) 19:43:41.71ID:11C65zvi
>>706
ソートで同値なんだから、あと影響される要素は元の並び順以外にないだろう。
「ある秩序」って、いったいどういうものを想像してるのか。
0713名無しさん@そうだ選挙に行こう2014/12/13(土) 19:59:04.17ID:y9otNf+T
>>712

直感が先行してるだけでうまく説明できないかもしれないが

�@純粋ソート→同一値のものをシャッフル
�A全体をシャッフル→純粋ソート

たくさんの実験を行った後の、
実験結果の頻度ヒストグラムを想像してみよう。

�@は完全に一様であることが自明だが、
�Aはどうだろうか?
ソートアルゴリズムがクイックソートやバブルソートによって違ったり、
乱数生成アルゴリズムがメルセンヌツイスターやカオス乱数によって違ったり、
直感的に一様であるとは思えない。

ま、一様じゃなくて、特定の分布をもってたとしても、実害はないとは思うんだけどね。

いずれにせよ、これからも色々実験してみる予定。

今まで俺が色々試した中でのアウトプットは

「純粋ソートはLINQよりもArray.Sortを使え!」

ということ。

これからの俺のアウトプットとして

「ランダム性ソートはHogeHogeを使え!」

のHogeHogeは求める予定。
0714名無しさん@そうだ選挙に行こう2014/12/13(土) 20:14:44.99ID:dyRngJUX
>>713
つまりお前が言いたい事は

Array.SortはLINQより速い
特殊なソートしたければ自分で作る(何を作るかは考える)

ってことか
もう来なくていいよ
0715名無しさん@そうだ選挙に行こう2014/12/13(土) 20:20:40.75ID:y9otNf+T
>特殊なソートしたければ自分で作る(何を作るかは考える)

どうやったらそう解釈できるんだよOTZ

評価値いじって改善しろとかいう頭脳だとそうなるんだなw
0716名無しさん@そうだ選挙に行こう2014/12/13(土) 20:33:44.22ID:wHnW1l6n
もう相手すんなよ
答えいくつも出てるのによく分からんものを求め続けてる
0717名無しさん@そうだ選挙に行こう2014/12/13(土) 20:37:44.93ID:11C65zvi
>>713
乱数の一様性に問題があるなら�@も同様に問題だということがわからないかな?
しかもソートの安定性は関係ないし。まぁ、直感wなら仕方ないか。
0718名無しさん@そうだ選挙に行こう2014/12/13(土) 20:38:51.62ID:gqZ8fUEZ
多分、地頭が悪いってやつなんだろうな
初歩的なとこでトンチンカンだもん

>>716
そうそれ
0719名無しさん@そうだ選挙に行こう2014/12/13(土) 20:40:19.62ID:erzIo8nY
>>713
>�Aはどうだろうか?
教えてやろう
「ソートアルゴリズムが同一の入力に対し常に同一結果を返すか?」
→Noの場合 ならシャッフル以前に目的達成だな
→Yesの場合 一様にランダムなのは自明
わかったらもう来るな。
わからなくてももう来るな
0720名無しさん@そうだ選挙に行こう2014/12/13(土) 20:48:19.87ID:JEL3H7Tn
やけにスレが進んでると思ったら・・・
0721名無しさん@そうだ選挙に行こう2014/12/13(土) 20:49:46.56ID:aIxuvf1S
???「見なかったことにしよう!」
0722名無しさん@そうだ選挙に行こう2014/12/13(土) 21:34:45.72ID:y9otNf+T
ソース探して例外処理を無効にして・・・とか、
なにやってんだこいつ?と思うのはわからなくはない、
が、少しでも速いコードにするためには
手段を選ばないというのがこの分野の常識なんだわ。

ボードサイズ8で8回のループするんであれば、
forループ書くよりもべた書きするとかね。

んで、おまえたちは、やりたいことができればいいじゃん、
っていう、そういう考えだよな。違うんだよ俺は。

シャッフルするにもO(n)のオーダーで計算量がかかるだろ?
これをComparerにランダム性あたえて普通にソートさせたらどうなる?
0723名無しさん@そうだ選挙に行こう2014/12/13(土) 21:37:53.02ID:D6PKj09G
パフォーマンスを計測する前から最適化を考えるのは有害
ソートにかかる時間の1割程度の違いが体感速度に影響を与えることはない
0724名無しさん@そうだ選挙に行こう2014/12/13(土) 21:38:51.54ID:gqZ8fUEZ
自分が見えてないってのは悲惨なことよ…
これじゃあどこに行っても孤立するだろうな
0725名無しさん@そうだ選挙に行こう2014/12/13(土) 21:40:56.22ID:D6PKj09G
ソートはO(n log n)だからそこに付随するO(n)のちょっとした処理がボトルネックになることはない
0726名無しさん@そうだ選挙に行こう2014/12/13(土) 21:52:47.11ID:y9otNf+T
nは着手可能手数だぞ?
単純計算でn=10として23と比べて無視できると思うのか?
0727名無しさん@そうだ選挙に行こう2014/12/13(土) 21:55:05.75ID:dyRngJUX
そんなに速度気にするとかいいならがら、かたくなに出来合いの汎用ソート使うのか
そして速度気にするけど言語はC#なんだな
俺の知らない分野だが大変だな
0728名無しさん@そうだ選挙に行こう2014/12/13(土) 22:03:09.93ID:WIHT6l5S
そーっとしといてやれよ
ソートだけにな
ガハハ!
0729名無しさん@そうだ選挙に行こう2014/12/13(土) 22:04:55.39ID:gqZ8fUEZ
分野=無職が有り余る時間でパズルに挑戦!

とか?
アマチュアがめいっぱい背伸びしてるのはヒシヒシ伝わる
0730名無しさん@そうだ選挙に行こう2014/12/13(土) 22:31:52.23ID:1Rys2+MB
>>726
アプリケーション的な条件を含めて考えていいんならこんな視野の狭い議論は無駄
そもそも幅優先探索にすればnが大きくなるだろうとか
結局面白い面白くないの問題なんだったらわざわざ探索中の全てのソートで同一値をランダムにする必要はないとか
そんなレベルの話になる
0731名無しさん@そうだ選挙に行こう2014/12/13(土) 22:37:55.05ID:y9otNf+T
なぜ無駄を省くか?
そこに無駄があるからだろう。

無駄だらけなんだから一部の無駄を省いても無駄とかいう議論が無駄
0732名無しさん@そうだ選挙に行こう2014/12/13(土) 22:42:06.14ID:y9otNf+T
幅優先探索は使ってる人みたことない。遅いし。
この分野ではアルファベータ探索が常識。俺はMTD(f)だが。
アルファベータ探索は着手可能手のうち、
どういう順番で探索するかが非常に重要なんだ。
ソートも10秒で一千万から一億程度よばれるので非常に重要。
ランダム性を与えるのは面白くするだけじゃない。
0733名無しさん@そうだ選挙に行こう2014/12/13(土) 22:45:02.72ID:1Rys2+MB
じゃ最初はクイックソートだけでやって
配列から次の手を取り出すときにその次善の手も調べて
評価値が同じだったら同一値を考慮したソートでやり直せ
0734名無しさん@そうだ選挙に行こう2014/12/13(土) 22:49:11.62ID:aIxuvf1S
まだ髪の話してる
0735名無しさん@そうだ選挙に行こう2014/12/13(土) 23:06:34.88ID:+lUWdXlc
WPFでマルチタッチのアプリ作っているのですが
タッチしている指の数を取得する方法ってありませんか?
0736デフォルトの名無しさん2014/12/14(日) 00:09:01.24ID:WRu95xzB
ソートの計算量って言っても大部分が乱数生成だったりしてね
0737名無しさん@そうだ選挙に行こう2014/12/14(日) 10:59:03.38ID:igCzp+zo
探索方法の名前だけで遅いとかいっちゃうくらいだからなあ
この(俺の作るプログラム)の分野ではそれが常識なんだろうなあ
0738名無しさん@そうだ選挙に行こう2014/12/14(日) 11:00:54.58ID:UMMlnOZ8
>>737
バブルソートは速い?
0739名無しさん@そうだ選挙に行こう2014/12/14(日) 11:36:53.33ID:Brc3C2R9
ゲーム木の探索にはαβ法がよく使われる
これは”分野”の人間ではない俺でも知ってる
幅優先探索では起こすことができないαカットとβカットが重要
カットは良い手から順番に探索することで多く発生させることができる
MTD(f)は聞いたことがなかったがウィキペディアによると現在の最速アルゴリズムらしいね
0740名無しさん@そうだ選挙に行こう2014/12/14(日) 11:51:36.06ID:ivAaTykD
で、次に調べる手を選ぼうとするときに評価値が同じ手が存在する確率はどれくらいあるの?
そして、カットによって無駄になるThenByの割合はどれくらい?
アルゴリズムの詳細をどうこう言う前に、統計的センスが無い奴は何やっても駄目
0741名無しさん@そうだ選挙に行こう2014/12/14(日) 12:07:04.39ID:AdYRt8Z2
計算量オーダーだけ見てトンチンカンなこと言ってる奴もたまに見るです
0742名無しさん@そうだ選挙に行こう2014/12/14(日) 12:33:02.00ID:pahiHQ21
昨日の子については実は>>656で答え出ててワロタw

> 俺は出来るって思ってるタイプの阿保

どうしてもこういう子は出てくるし
そして連投を止めない
不思議なもんだよ

>>741
そういうやつに限ってO記法をそもそも理解できてなかったりね
0743名無しさん@そうだ選挙に行こう2014/12/14(日) 14:40:41.98ID:3lAcDh6h
>>738
件数によるだろう
0744名無しさん@そうだ選挙に行こう2014/12/14(日) 14:43:21.85ID:kAi2SRVO
件数が少ないときは内部でバブルソートしてすぐ結果返す実装があったはず
こういうことは 例の彼の分野 以外の奴ならみんな知ってるレベルの話
0745名無しさん@そうだ選挙に行こう2014/12/14(日) 14:44:24.88ID:OZkARzTA
おい、キチガイにふれるな!
0746名無しさん@そうだ選挙に行こう2014/12/14(日) 14:47:32.09ID:pd+fXHnp
安定ソートしたいけどメモリ使いたくない時はバブルソート安定だよね〜
0747名無しさん@そうだ選挙に行こう2014/12/14(日) 15:23:15.53ID:Twa9q4id
安定と保証ほしけりゃティムソート使う
0748名無しさん@そうだ選挙に行こう2014/12/14(日) 15:23:50.23ID:7UFBlXTF
スリープソートが最強だろ
0749名無しさん@そうだ選挙に行こう2014/12/14(日) 19:33:02.76ID:1H8cyXiW
クレオソート
0750名無しさん@そうだ選挙に行こう2014/12/14(日) 19:43:16.95ID:AdYRt8Z2
ヒソヒソ(誰か正露丸飲んでね…)
ヒソヒソ(くせー)
0751デフォルトの名無しさん2014/12/15(月) 05:52:48.14ID:BV1c1+4q
将棋の評価値なんて、要因が多いから、
めったに同じにならない

指し手に、ある程度のランダム性を持たせるなら、
評価値に、ランダムな数を足したらよい
0752デフォルトの名無しさん2014/12/15(月) 05:59:00.13ID:+L/AJz6N
そもそもそんな頻繁にスコアが重複する評価関数ならそっちが問題だよな
0753デフォルトの名無しさん2014/12/15(月) 13:11:11.29ID:fIr2JzQG
答えが出たのは >>683 が最初かな。おつおつ。
0754デフォルトの名無しさん2014/12/15(月) 14:24:46.80ID:/Trcy+Ol
マイクロソフト キャンペーンの「C丼」を作って実食してみた
ttp://blog.shos.info/archives/2014/12/cdon.html
0755デフォルトの名無しさん2014/12/15(月) 14:36:33.31ID:tugqjzyP
WPFな人しか食えないのか
0756デフォルトの名無しさん2014/12/15(月) 14:38:23.15ID:k0hijP0T
C丼の内容が全くわからないのに記事は出てるのか?
なんだこりゃ
0757デフォルトの名無しさん2014/12/15(月) 14:40:25.95ID:OSQLBHqM
>>752
逆でしょ。
将棋みたいな複雑なゲームでは手の採点なんかどうせ大雑把にしかできない。

できないはずの精密採点を返す評価関数なんか、本当は1の位までの精度しか持ってないのに
1/10の位まで表示するような計測器と同じでむしろ有害。
0758デフォルトの名無しさん2014/12/15(月) 15:02:29.56ID:x1tnaevV
>>754
被写界深度浅すぎて気持ち悪い
ゲロ吐くかと思った
軽いテロ行為だわ
0759デフォルトの名無しさん2014/12/15(月) 17:38:49.57ID:Wa+r9Mlq
マイクロソフトのそういうお遊びって不気味だ。
公務員が急に盆踊りしだしたようなムードあり。
0760デフォルトの名無しさん2014/12/15(月) 20:25:15.40ID:W5/wIytj
スレ伸びてるなと思ったらソートで白熱してたんだな

まず「分野の人」>>649のデータが円周率であることに萌えた
それはいいとして、分野の人の要求って機能を満たすコードが欲しいんじゃなくて、
最速のコードが欲しいんだよな
機能を満たすコードはLINQ版として>>649に既にあるわけだし

>>753
それ本当に答えか?
へたしたらLINQ版より性能悪いんじゃないか?
0761デフォルトの名無しさん2014/12/15(月) 20:33:47.26ID:tugqjzyP
蒸し返すな低能
0762デフォルトの名無しさん2014/12/15(月) 20:45:39.43ID:bP9agA8a
ソートで白熱ねぇ?w
アホが苛められてただけにしか見えないがw
0763デフォルトの名無しさん2014/12/15(月) 22:04:20.54ID:yKKmsjBR
ここって英語だからうまく目的のものが探せない。
ttp://www.codeproject.com/

日本語でこういうサイトってない?
それともみんなGrapcityのツールとか使ってるの?
0764デフォルトの名無しさん2014/12/15(月) 22:07:12.33ID:aer3P+Xr
技術英語ぐらいは読めるようになろう
0765デフォルトの名無しさん2014/12/15(月) 22:10:48.42ID:x1tnaevV
日本語でこういうサイトって俺の知る限りでは無い
俺はGrapcityのツールとか使ってない
0766デフォルトの名無しさん2014/12/15(月) 22:29:48.80ID:YzD2lZh5
キーワードだけ分かれば探せるだろ
0767デフォルトの名無しさん2014/12/15(月) 22:55:26.25ID:zp/a3var
>>763
確かにこのサイトの検索は使いにくいと
思うが、俺の知る限りここより充実
しているサンプルコード入手出来るサイトはないぞ。
0768デフォルトの名無しさん2014/12/15(月) 22:58:49.13ID:9tEnsivf
英語サイトでも検索ボックスあるし、さすがに記事の見出し程度の英語は読めるでしょ
0769デフォルトの名無しさん2014/12/16(火) 07:58:31.23ID:Gxylz/Sw
>>763
ここかな
http://codezine.jp/

いぜんより活気が・・・
07707632014/12/16(火) 23:45:44.54ID:BYKiLsBZ
英語で検索がんばるわ。
ttp://codezine.jp/も時間作って見てみる。
みんなありがと!
0771デフォルトの名無しさん2014/12/16(火) 23:49:21.08ID:BYKiLsBZ
今はGrapecityなんて使われてないのかな?
昔の文化社?の時は、VBで入れる男、何とかレポート、グリッド?とか社内の別チームが使ってた。
スレが全然活気ないんだけどw
ttp://peace.2ch.net/test/read.cgi/tech/1196634098/
0772デフォルトの名無しさん2014/12/17(水) 00:20:31.02ID:GxR8d4Z7
InputmanやSpreadなどと同等機能のものを作れるのなら不要だろ
うちは同価格の作業量じゃ絶対に作れないから素直に使っているけど
0773デフォルトの名無しさん2014/12/17(水) 07:55:02.66ID:N9O75ow6
文化オリエントと呼んでください
0774デフォルトの名無しさん2014/12/17(水) 11:48:15.42ID:Q38dn9K3
確かにSpreadとか高性能なんだけども、対費用効果で必要かって言われるとそうでも無いのが
csvで吐き出すんでExcel使って自分で加工してくださいの方がお互い便利だったりw
0775デフォルトの名無しさん2014/12/17(水) 14:11:14.07ID:qAO+qhEe
なにこれ?
お金払ってソースコードを買うって言うサイト?
サイト使ったことない俺に教えろください
0776デフォルトの名無しさん2014/12/17(水) 14:41:49.53ID:M4DlxzNU
これってどれですか
0777デフォルトの名無しさん2014/12/17(水) 18:43:15.08ID:qAO+qhEe
話題にしてる
http://www.codeproject.com/
とか
http://codezine.jp/
に決まってるだろjk
0778デフォルトの名無しさん2014/12/17(水) 18:53:11.82ID:GxR8d4Z7
自分で確認することも出来ないの?
0779デフォルトの名無しさん2014/12/17(水) 18:56:38.17ID:4dhjoV5e
>>777
英語の方だけど、ソースを公開するからみんなどんどん使ってねって人達のコミュニティーだよ
無料だから使わないと損だよ
0780デフォルトの名無しさん2014/12/17(水) 19:08:03.39ID:BchJU/pT
codeprojectはアカウントの削除が不親切なのを何とかして欲しかったなー
それ以降使ってない
改善されたんだろうか
0781デフォルトの名無しさん2014/12/17(水) 19:52:43.01ID:SgFsfj0x
http://codezine.jp/article/detail/8365

Stack Overflow日本語版立ち上げって記事が気になったが、未だ蓄積がなくて今後期待だね
0782デフォルトの名無しさん2014/12/17(水) 21:13:28.53ID:qAO+qhEe
>>778
聞いた方がはやいだろ
会社にいるよな、すぐ聞くなググレカス的なやつ
そういうやつはだいたいコミュ障
コミュ的にも効率的にも知ってる人に聞いた方がいい

>>779
サンキュー

インターネット創世記ってヤフーに代表されるようにディレクトリ検索が主流だったよね
つまり、こういう情報がほしければこういうのがあるよ、っていう知識の集合体
こういう使い方も悪くは無いんだけど、しばらくしてグーグル的な関連度合いによる検索が抜き去って行ったわけだ
コード資産という観点についても使い勝手は一緒だと俺は思う
つまり、前者のようなcodeprojectよりも後者のようなstack overflowの方が使いやすい

現に俺はstack overflowには大変にお世話になっているが(英語版)、
codeprojectの方は名前も知らなかった。

stack overflowの日本語版には大いに期待!
よーしパパたくさん投稿しちゃうぞーーー!!!
0783デフォルトの名無しさん2014/12/17(水) 22:25:15.57ID:BchJU/pT
はぁ・・・なんだコイツ
0784デフォルトの名無しさん2014/12/18(木) 17:58:49.52ID:/+kNZ4OK
>>758
銀座線の溜池山王駅だな
0785デフォルトの名無しさん2014/12/18(木) 18:24:16.38ID:XJknmosZ
hogehoge.exe.config の probing privatePath で
参照DLLのパスを指定できますが、
これは以下に示すDLL検索パスの優先順では何番目になるのでしょうか?
http://msdn.microsoft.com/ja-jp/library/7d83bc18.aspx
0786デフォルトの名無しさん2014/12/18(木) 18:50:52.68ID:PQOqx8CM
それはネイティブのDLLの検索パスで、アセンブリの検索パスとは関係ない
アセンブリの検索順はこっち
ttp://msdn.microsoft.com/ja-jp/library/yx7xezcf.aspx
0787デフォルトの名無しさん2014/12/18(木) 19:11:00.19ID:XJknmosZ
>>786
おお、まさに欲しかった情報です。
ありがとうございました。
0788デフォルトの名無しさん2014/12/19(金) 21:24:44.39ID:5dTMV7SU
>>760
>>713読めば彼の理解度が著しく低いのは自明
0789デフォルトの名無しさん2014/12/19(金) 22:00:55.80ID:gxnXe4ct
もうその話題すんのやめろ低能
0790デフォルトの名無しさん2014/12/20(土) 00:57:34.75ID:GCXR4Qyt
やーい低脳(´・ω・`)
0791デフォルトの名無しさん2014/12/20(土) 09:15:44.31ID:7MQUqIu7
C#erは速度よりも生産性重視
速度重視するなら最初からC++
仕様が満たされればそれでよい
というのは極端だが汎用性の高いライブラリを使う時点で
多少なりとも速度を犠牲にしてるのは事実
性能上げたければ自分で書くのは鉄則
0792デフォルトの名無しさん2014/12/20(土) 09:26:57.20ID:S2toCwjv
と言う考えも昔、有りましたね。
C#で書ける領域のプログラムはC#で書くものです。
C++でしか書けない所のみをC++で書くのが普通で、
どちらを採用するか迷うこと自体が変です。
0793デフォルトの名無しさん2014/12/20(土) 09:35:06.22ID:X07PD7a1
シングルコア時代の考え方だよね
今は少しでも時間がかかる処理は裏でやるのが当たり前だから起動時間ぐらいしか差がつかない
本当にヘビーな処理はGPUにオフロードできるし
0794デフォルトの名無しさん2014/12/20(土) 09:38:30.65ID:cUhMXe+F
>>791
> 汎用性の高いライブラリを使う時点で
> 多少なりとも速度を犠牲にしてるのは事実

それ以前に、ちょっとしたものでもオブジェクトとして動的に生成する言語仕様だしね
0795デフォルトの名無しさん2014/12/20(土) 10:55:44.90ID:7MQUqIu7
>>792
なにも俺は全部をC#でとかC++でとか言ってないぞ
おまえの言うとおりの意見
C++よりもC#は生産性・保守性・可読性で優れているから
基本的にはC#で開発すべきだけど
高速性に関してはやはりC++にかなわない
高速性が必要な部分はC++で書いてDLL化するなりして
全体最適すればよい

分野君が速度を重視してソースに手を出そうとしてるのは
正しい方針だと思うが、そこまでするんだったらC#にこだわるよりも
C++で書いてDLL化した方がいいんじゃないかって思ったわけ
0796デフォルトの名無しさん2014/12/20(土) 11:21:49.31ID:iCAihzYc
将棋のAIなんか決まったアルゴリズムをいかに速く実装するかよりも
アルゴリズムを改良していくことが重要(というか、改良自体を目的としている場合がほとんど)なので
極端に遅い言語でない限りは生産性の方が重要だろう
小手先の最適化という面でも、並列化効率とかメモリアクセス局所性とか
言語を変える前に考慮すべきことはいくらでもある
0797デフォルトの名無しさん2014/12/20(土) 12:39:54.05ID:RTFB0Y7l
最適化を考えるまえにC#を捨てるのが先だろ
アルゴリズムの実装の難しさなんて言語間でそんな変わりゃせん

C#を選ぶのはライブラリの質とか
C++のように複雑ではないので「ヘボでも落とし穴に落ちにくい」とか
規模が大きくなっても破綻しにくいとかそんなんで

スキルのある人間が規模の小さいAIを作るってんならそんな変わりゃしねえわ
0798デフォルトの名無しさん2014/12/20(土) 12:42:20.77ID:2aglBm+n
>>797
初心者が勉強するにはいいんじゃね?
0799デフォルトの名無しさん2014/12/20(土) 12:57:22.91ID:iCAihzYc
>>797
同じものをC++で同じように書き直しただけで大幅に速くなるんならその通りだね
ただ個人的な経験としては実際にはそうでないケースが多くて、C++で速くしようとすれば
それだけソースが(アルゴリズムとは本質的に関係ないところで)複雑になるわけ
だから、アルゴリズムが安定していないのであればあまりメリットはないよ、という意味のつもりだった
0800デフォルトの名無しさん2014/12/20(土) 13:01:15.76ID:RTFB0Y7l
>>799
C#からC++にするだけで中央値で2倍ぐらいは速くなるだろう
Monoからだと4倍って書いてあるぞ
http://cdn-ak.f.st-hatena.com/images/fotolife/k/kwatch/20100429/20100429184937.png
0801デフォルトの名無しさん2014/12/20(土) 13:16:42.90ID:iCAihzYc
>>800
処理によってはそうかもね(特にベンチに使われるようなC++でも手動最適化の余地がないほどシンプルな処理なら)
まあ実際に移行を検討するとなると、まずは当然自分の用途に合ったベンチマークを自分でやるだろ?
他所からそういうの持ってきてどっちが速いだのというのはナンセンスだ
0802デフォルトの名無しさん2014/12/20(土) 13:27:58.29ID:cUhMXe+F
>>799
> それだけソースが(アルゴリズムとは本質的に関係ないところで)複雑になるわけ

ならないよ、なぜなると思った?
0803デフォルトの名無しさん2014/12/20(土) 13:29:44.14ID:RTFB0Y7l
なぜC#がC++に比べて遅いのかっていう原因が俺にはさっぱりわからないんだが
まあベンチ取ったりボトルネックを探り出したり改善策を考えたりする前にC++で書いてしまった方が速いと思うけどな
速度が必要な時にわざわざC#に拘るのはアホらしい
0804デフォルトの名無しさん2014/12/20(土) 13:31:13.78ID:iCAihzYc
>>802
自分の経験だね
C++で書きなおしてみたらJavaより遅かったから、Javaより速くなるように工夫したら酷いコードになったわ
0805デフォルトの名無しさん2014/12/20(土) 13:39:29.34ID:lM5J0IEh
C#でunsafeブロック使うのはダメなの。
0806デフォルトの名無しさん2014/12/20(土) 13:41:43.02ID:cUhMXe+F
>>803
>>794 とか、オブジェクトにいろんな情報抱えてたりするし
Enum の表示名とか

>>804
それは単にあんたの能力の問題かと
08078042014/12/20(土) 13:41:53.39ID:iCAihzYc
C#やJavaと比べた場合、C++で書けば速くなる余地は広がるけど、
実際にその余地を活かすのはコードの工夫と測定による努力だと思ってる
並列化とかだって一緒だよ
0808デフォルトの名無しさん2014/12/20(土) 13:47:15.57ID:X07PD7a1
型情報持ってるのはO型だけじゃねえの
0809デフォルトの名無しさん2014/12/20(土) 13:48:22.39ID:iCAihzYc
>>806
Enumは型情報すら持ってない単なる数値だぞ
Enumに限らず値型のインスタンスは純粋な値で、メタデータの類は一切持たない
Enumの表示名はEnumの型が持ってる
クラスのインスタンスでも型情報は型のidを持ってるだけだ
0810デフォルトの名無しさん2014/12/20(土) 14:17:49.81ID:Vy3Jn/8a
enumの値をToString()したら名前が出てくるからどこかに持っているんじゃないの?
0811デフォルトの名無しさん2014/12/20(土) 14:18:44.41ID:qyYbVqEq
C++で実装しても内容は同じで速くなるなら君は全部C++で実装すればいい
C#を使う利点があると思う人のみC#にすればいい
それだけのこと
0812デフォルトの名無しさん2014/12/20(土) 14:24:30.81ID:RTFB0Y7l
特に不思議なのがstructのnewで余計なコストがかかることだなあ
stackが正しい値を保っているかチェックしているような感じがあるけど
よく分かんねえ

結局ジャンプの飛び先が書き換えられないようにチェックするためには
二倍のコストを許容するしかないんじゃないのかっていう気がする
0813デフォルトの名無しさん2014/12/20(土) 14:28:30.21ID:iCAihzYc
>>810
同じenum型で値も同じなら名前は同じで、式の型はコンパイル時に確定してるんだから、
名前を取得するのには値さえあれば十分だろ?
値に対応する名前をリフレクションで探してるんだよ
Objectなどにキャストしたらコンパイル時に型が決まらなくなるけど、その場合はボックス化する際に型情報(型のid)が付く
0814デフォルトの名無しさん2014/12/20(土) 14:38:08.45ID:S6lW4VjX
なんか定期的に同じ話題になるからループものの映画を見ているような感覚になる
0815デフォルトの名無しさん2014/12/20(土) 15:09:10.57ID:gF+KxDtE
だんだん対応が雑になるんだよな。
0816デフォルトの名無しさん2014/12/20(土) 17:44:18.56ID:Dimax164
C++って概念まったく違うの?
0817デフォルトの名無しさん2014/12/20(土) 22:05:39.26ID:WZq8/1Oi
C++とC#は言語の開発概念は全く異なっている。
どちらの言語が良いかは別として、2014年現在ではC#の方が圧倒的に開発しやすい。
また、C#は雰囲気としてC++よりJavaに近い。
0818デフォルトの名無しさん2014/12/20(土) 22:14:56.13ID:iCAihzYc
そうか?
C#分かってたらC++はわりととっつきやすいぞ
値型と参照型のあたりを正しく理解できてればC++もポインタや参照も自然に受け入れられるはず
0819デフォルトの名無しさん2014/12/20(土) 22:19:08.52ID:RTFB0Y7l
ポインタがわからないまま参照型と値型とかやっても
結局は何のことかわからないままだと思うがなあ
0820デフォルトの名無しさん2014/12/20(土) 22:21:25.82ID:d1YBvdMg
そう?
値型参照型はむしろ、スタックとヒープの知識の話だと思うが。
ポインタのポインタ、みたいな発展は参照には無いんだし。
0821デフォルトの名無しさん2014/12/20(土) 22:22:44.33ID:RTFB0Y7l
参照型変数はスタックに作られたり
値型メンバはヒープに作られたりするわけでなあ
0822デフォルトの名無しさん2014/12/20(土) 22:25:40.32ID:zmiGyoK6
それこそまさに、スタックとヒープの話では?

スタック上の値型への参照、なんてありえないし、
そこがポインタとは違うところ。
0823デフォルトの名無しさん2014/12/20(土) 22:30:00.21ID:iCAihzYc
スタック上の値型やスタック上の参照型変数への参照はC#にもあるぞ
ローカル変数をrefやoutで渡すのがまさにそう
0824デフォルトの名無しさん2014/12/20(土) 22:31:04.63ID:iCAihzYc
あとC#の構造体に対するメソッド呼び出しだって実際には関数に参照渡してる
0825デフォルトの名無しさん2014/12/20(土) 22:34:35.12ID:yzMYZcu0
そやね、まあrefとoutが実現してる「参照」についてはここでは黙っておきたい(ダメ?w)

あくまで、ポインタと参照(型、っていうべきだったかな?)との違いを言いたかっただけだから
0826デフォルトの名無しさん2014/12/20(土) 22:38:29.09ID:RTFB0Y7l
実態としてポインタを渡すのが参照渡しでしょ
*をつけなくてもアクセスできるか出来ないか
その辺りはシンタックスシュガー上の問題
0827デフォルトの名無しさん2014/12/20(土) 22:41:25.96ID:iCAihzYc
ref/outと参照型の違いまで理解できていれば、もうC++で目新しい概念って
参照そのものを明示的に値として扱うこと(ポインタやC++でいう参照)とその演算くらいだよね
0828デフォルトの名無しさん2014/12/20(土) 23:16:54.31ID:GCXR4Qyt
勉強になるからこの話をもうちょっと続けてください
まだよく理解できてない
0829デフォルトの名無しさん2014/12/20(土) 23:31:28.03ID:7MQUqIu7
さて、じゃーVS2015での大変革
●オープンソース化
●C#によるObjectiveCとJavaの二重開発終了
について語ろうかw
0830デフォルトの名無しさん2014/12/21(日) 00:58:34.71ID:icy8S1ux
>>829
いや、俺はメモリの話が読みたい…
(´・ω・`)
0831デフォルトの名無しさん2014/12/21(日) 08:21:09.98ID:gFfzpUQE
質問です

using (Stream stream = File.OpenWrite(filename)) {
using (XmlWriter xw = XmlWriter.Create(stream)) {
DataContractSerializer dc = new DataContractSerializer(typeof(GraphicsPath));
dc.WriteObject(xw, path);
}
}

これでGraphicsPathをシリアライズしてXMLで書き出すとちゃんと書き出せているのですが、これを

GraphicsPath gp = new GraphicsPath();

using (Stream stream = File.OpenRead(filename)) {
using (XmlReader xr = XmlReader.Create(stream)) {
DataContractSerializer dc = new DataContractSerializer(typeof(GraphicsPath));
gp = (GraphicsPath)dc.ReadObject(xr);
}
}

でデシリアライズしようとすると、ReadObject(xr)の所で

>型 'System.ArgumentException' のハンドルされていない例外が System.Drawing.dll で発生しました
>追加情報:使用されたパラメーターが有効ではありません。

と実行時例外が出て止まってしまいます。GraphicsPathはデシリアライズ出来ないのでしょうか?
0832デフォルトの名無しさん2014/12/21(日) 08:32:22.51ID:giCb3w8x
DataContractSerializerは[DataContract]がついてる奴に使う型だよ
0833デフォルトの名無しさん2014/12/21(日) 08:39:00.89ID:gFfzpUQE
>>832
あーやっぱりそうですか・・・・

じゃあ、GraphicsPathを何らかの方法で書き出してまた読み込むのに
最も現実的な方法はどうすればいいのでしょうか?

PathData pd = path.PathData;

として、pd.Pointsとpd.Typesを自力で読み書きするしかないですか?
0834デフォルトの名無しさん2014/12/21(日) 09:09:10.31ID:giCb3w8x
5個しかプロパティ無いから自作型にコピーして入出力、だろうね
0835デフォルトの名無しさん2014/12/21(日) 09:10:38.09ID:NQggE8I7
ありがとうございます
何とかやってみます
無理にシリアライザを利用しようとするのが間違いだったようです
0836デフォルトの名無しさん2014/12/21(日) 09:25:40.18ID:giCb3w8x
いや

public class Hoge
{
public FillMode FillMode {get;set;}
public PointF[] PathPoints{get;set;}
public byte[] PathTypes{get;set;}
}

とか定義してシリアライザー使用時に間にかませろってことだよ?
0837デフォルトの名無しさん2014/12/21(日) 10:38:39.88ID:NQggE8I7
>>836
そういう事か
Listに打ち込もうとしてました
それで行きます
0838デフォルトの名無しさん2014/12/21(日) 10:48:26.99ID:DX6UP5Bm
シリアライズ専用の中間オブジェクトを使うんなら
LINQ to XML使って手で読み書きするのと大差ないけどな
シリアライザを使うメリットはDRYのただ一点であって、
それ以外は変更に弱くなるわ出力されたファイルは扱いづらいわでロクなことがない
XmlSerializerなら綺麗で自由なXMLが吐けるからまあアリだけど
0839デフォルトの名無しさん2014/12/21(日) 10:53:10.13ID:NQggE8I7
>>836>>838
http://ideone.com/lXRISt

こんな感じになってちゃんと動きました

LINQ to XMLも挑戦してみます
0840デフォルトの名無しさん2014/12/21(日) 10:58:02.37ID:NQggE8I7
XmlSerializerを使うとDataContractSerializerより柔軟になりそうですね
内部ではXmlSerializerを使っているので二度手間なだけみたいなようですけど
0841デフォルトの名無しさん2014/12/21(日) 11:07:25.76ID:L47kPoED
http://dobon.net/vb/dotnet/file/xmlserializer2.html

このようにXmlSerializerは使用するTypeを全てType[]に入れる必要があるから
DataContractSerializerの方が楽かも
そうでないとデシリアライズ中にエラーが発生する
0842デフォルトの名無しさん2014/12/21(日) 11:18:29.72ID:DX6UP5Bm
>>841
Object配列やArrayListのデシリアライズで型を教えてやらないといけないのは普通に考えて当たり前
DataContractSerializerでも派生型が不明なままでデリシアライズするのなんか当然不可能
XmlSerializerはXmlArrayItem属性をメンバに付けて派生型を教えてやればType[]に入れる必要はないし
DataContractでも同様に派生型をKnownTypeで教えてやる必要がある
0843デフォルトの名無しさん2014/12/21(日) 11:44:17.56ID:7WbNxZ9e
Genericにすれば普通にシリアライズ、デシリアライズできるし
List<MyType>
0844デフォルトの名無しさん2014/12/21(日) 11:58:33.24ID:DX6UP5Bm
それはXmlSerializerでもできるし、
MyTypeの派生型が紛れ込んでたらDataContractSerializerでもアウト
08458432014/12/21(日) 12:00:03.86ID:7WbNxZ9e
XmlSerializerしか使ったことないw
DataContractSerializerとの使い分け方がよく分からん
0846デフォルトの名無しさん2014/12/21(日) 12:09:45.18ID:DX6UP5Bm
DataContractSerializerは通信に使うんだよ
一時的なデータだからXmlSerializerのようなスキーマの柔軟性はいらないけど
従来のシリアライザくらい強力なほうがいい、でも従来のシリアライザみたいに特定の型に依存するのは困る
ってので生まれたもの
0847デフォルトの名無しさん2014/12/21(日) 12:16:07.87ID:giCb3w8x
2014年とは思えないぐらいXmlSerializerに好意的な流れだ
0848デフォルトの名無しさん2014/12/21(日) 12:19:26.94ID:iUF3WCS4
手作業で更新するなら
自分でパーサー書いて簡易言語作っちゃうよね
0849デフォルトの名無しさん2014/12/21(日) 12:21:16.65ID:DX6UP5Bm
XmlSerializerはオブジェクトとXMLをマッピングしてXML文書の読み書きをするためのもんで
いわゆるシリアライザ(.NET RemotingのシリアライザやWCFのデータコントラクト)とは目的が違う
実際、WCFが導入されて以降にSilverlightやらストアアプリやら新しい.NETのサブセットがいくつか出てるけど
XmlSerializerが省かれた例はない
0850デフォルトの名無しさん2014/12/21(日) 12:22:44.08ID:7WbNxZ9e
>>846
なるほど、ありがとう
0851デフォルトの名無しさん2014/12/21(日) 12:24:20.62ID:iUF3WCS4
パブリックセッターが必要とか狂った仕様じゃなかったっけXmlSerializer
0852デフォルトの名無しさん2014/12/21(日) 12:30:13.57ID:giCb3w8x
セッター自体は他のライブラリでもしばしば必要になる
問題は配列しか使えないこと
0853デフォルトの名無しさん2014/12/21(日) 12:31:50.32ID:iUF3WCS4
AddができるCollectionはなんでも使えたやろ・・?
0854デフォルトの名無しさん2014/12/21(日) 12:59:52.62ID:u4V+aSkW
すごい基本的な質問です。

while(true)
{
int i;

iに関する何かしらの処理
}

この場合、ループが回るごとにint宣言のメモリ割り当てが行われるんですかね?
だとしたら

int i;
while(true)
{
iに関する何かしらの処理
}

の方が効率が良いってことですか?
0855デフォルトの名無しさん2014/12/21(日) 13:05:44.24ID:YF2cDeZf
>>854
いえ、すべてに於いて上が同じか優秀です
0856デフォルトの名無しさん2014/12/21(日) 13:06:28.05ID:gQMH/TzB
コンパイルされたら関係ない
0857デフォルトの名無しさん2014/12/21(日) 13:06:38.48ID:giCb3w8x
ラムダ式とかが絡まない限り同じILになる
0858デフォルトの名無しさん2014/12/21(日) 13:40:11.83ID:t1cfeweF
ただ、i がそのブロックないでしか使われないなら、
人の視点ではスコープが必要な箇所に限定されるだけ後から理解しやすい。
0859デフォルトの名無しさん2014/12/21(日) 14:10:30.52ID:XZ/0moqW
横からですまんが同じくわからんので質問
>>854の例だと同じもしくは上の方が良いってことは
上は繰り返しの中でスタックポインタずらしてiを用意してもどしてを繰り返す
下は繰り返す前にスタックポインタをずらしてiを用意しておく
にはならないってこと?Cのauto変数をスタックに積むイメージで考えてるんですが違うのかなあ
0860デフォルトの名無しさん2014/12/21(日) 14:36:41.41ID:jc9iFlhX
Cでもそんな非効率なことはやらん
iは同時に一つしか存在しないんだから関数全体で一つだけ用意して使い回せばいい
C#ではクロージャの例外があるが、C系言語ではそれが基本だ
0861デフォルトの名無しさん2014/12/21(日) 17:04:16.23ID:ikKWfd9P
>>859
イメージはそれでいいけど、大抵のコンパイラは使い回すように最適化する
下手すると i はレジスタ上にしか存在しないかもしれない
0862デフォルトの名無しさん2014/12/21(日) 18:50:40.35ID:vluFwW8c
C#にはC、C++のような関数ポインタと似た概念ってありますかね?
0863デフォルトの名無しさん2014/12/21(日) 18:52:20.89ID:maAqlwH9
>>862
似てるかどうかわからんが、デリゲートを使う
0864デフォルトの名無しさん2014/12/21(日) 19:05:54.95ID:vluFwW8c
>>863
これですかね?
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_017/csharp_abc01.html
……いや、例えば定積分を計算する関数を作る際、C系だとxの範囲と関数ポインタを
与えて計算するじゃないですか。それと同じようなことがやりたかったんです
0865デフォルトの名無しさん2014/12/21(日) 19:14:44.09ID:giCb3w8x
リンク先に出てくる(int x, int y)=>x*yだって型を変えれば数値積分できるだろ
0866デフォルトの名無しさん2014/12/21(日) 19:27:02.52ID:mpfXzhYv
> C系だとxの範囲と関数ポインタを
与えて計算するじゃないですか。

と言われても、自分の常識が必ずしも自分の常識じゃないので
ちゃんと仕様提示してくれ

その関数ポインタは何のためのもの?
別にそんなもの使わずに普通に実装してはダメなのか?
0867デフォルトの名無しさん2014/12/21(日) 19:27:50.03ID:mpfXzhYv
ごめん
自分の常識は他人の常識じゃない、だ
0868デフォルトの名無しさん2014/12/21(日) 19:51:52.71ID:mpfXzhYv
Cでは関数ポインタを使ってた事が、用途事に、
デリゲート、イベント、ラムダ式、ポリモフィズム が用意されている
0869デフォルトの名無しさん2014/12/23(火) 01:26:50.63ID:vyb6wmSk
定積分の計算は俺の普通はハードコーディングだな。
せめてC++のテンプレートで静的ダックタイプ程度。
計算式を動的に差し替えるプログラムって
Mathematicaでも作ってんの?
0870デフォルトの名無しさん2014/12/23(火) 05:57:24.33ID:eMNIdGcp
つ、積分…………ぅわぁぁぁ
0871デフォルトの名無しさん2014/12/23(火) 08:06:51.46ID:ATuB6kuL
>>869
数値積分‥
0872デフォルトの名無しさん2014/12/23(火) 08:16:42.78ID:3rRE3X2t
>>871
>>869は元々そのつもりだと思うぞ
任意の式を積分したい状況なんて学生の宿題だけだろ
0873デフォルトの名無しさん2014/12/23(火) 16:22:42.64ID:W51mY81m
設計の問題で、自分はMyObjectBaseみたいな
そのプロジェクトの全クラスの継承元のクラスに
protected staticメソッドを沢山書いてそれを継承させてるんだけど
他の人のを見るとstaticなユーティリティクラスに
public staticを作ってるのを多く見る。
いちいちUtil.Funcとか書かなくていいからそうしたんだけど
いいよね?
0874デフォルトの名無しさん2014/12/23(火) 16:26:48.25ID:vvHKlqpR
>>873
C#6.0でスタティックインポートが入ったら
別クラスのほうが汎用性グッと上がるし手間も変わんなくなるっしょ

だいたいスタティックメソッドをprotectedにする意味なんてあんの
publicでいいじゃん
0875デフォルトの名無しさん2014/12/23(火) 16:31:17.25ID:zkNCry36
>だいたいスタティックメソッドをprotectedにする意味なんてあんの
>publicでいいじゃん

意味を考えた結果そうなったんだろ。
意味が理解できず形式でしか物事を考えられない
低脳には難しかったかな。
0876デフォルトの名無しさん2014/12/23(火) 16:41:18.65ID:vvHKlqpR
そもそも原理的に再利用性は限界まで高めるべきものだ
アクセス修飾子で再利用性を下げるべきではない

外部から呼び出すような粒度でない場合はprivateが妥当だけどな
protectedが出てきたらオブジェクト指向という宗教に囚われて
愚かなことをしてしまっていると自覚したほうが良い
0877デフォルトの名無しさん2014/12/23(火) 16:55:47.64ID:JQ5oTczV
馬鹿の考え休むに似たりって言葉もあるしなあ
馬鹿の考えた意味にどれだけ価値があるのか疑問だ
0878デフォルトの名無しさん2014/12/23(火) 17:04:24.26ID:gXwWfzsx
質問です。

インターフェースを実装するときには
メソッドに暗黙的にabstractキーワードをつけたことになるじゃないですか。

それと同じようにシールドクラスを実装するときには
メソッドに暗黙的にsealedキーワードをつけたことになりますよね?

public sealed class B : A
{
public sealed override void MyMethod()
{
}
}

この場合MyMethodにsealedキーワードは不要ですよね?
Visual Studio上で上記のように書いても「不要ですよ!」
的なエラーメッセージが出なかったので気になって質問させていただきました。
0879デフォルトの名無しさん2014/12/23(火) 17:44:45.65ID:eMNIdGcp
>>875
無駄に煽るなよ低能
ママの愛情が足りなかったのか?
0880デフォルトの名無しさん2014/12/23(火) 17:47:55.73ID:v4MzS1Ah
メソッドをプロパティみたいに使うことはできますか?

obj.name = "test" を
obj.ValueOf("name") = "test"

みたいにできたらと思ってるんですが、やっぱ引数使わないと無理ですかね?

今は、obj.Get("name").Value みたいに
Getで取得するパラメーターにvalueインターフェースをつけて実現してます。
0881デフォルトの名無しさん2014/12/23(火) 17:56:28.17ID:Oyhb+rQ2
>>880
インデクサならあるけど
0882デフォルトの名無しさん2014/12/23(火) 18:05:04.65ID:MA8qvbdk
>>879
そのレスいいね。よそで使わせてもらうわ。
ほんと理解不能にムダな事する奴多すぎ。
0883デフォルトの名無しさん2014/12/23(火) 18:59:58.24ID:PSJj9mkA
Math.Sin()が無くなるだけでもC#6.0にする価値はある
0884デフォルトの名無しさん2014/12/23(火) 20:49:22.45ID:aLQSY5/S
http://www.atmarkit.co.jp/fdotnet/dotnettips/480isstringnull/isstringnull.html
> if ((checkString != null) && (checkString.Length != 0))
> if (String.IsNullOrEmpty(checkString) == false)
> このようにString.IsNullOrEmptyメソッドを使うことで、Null&空文字列チェックをシンプルに記述できる。

そうかい?理想はこう… if (!checkString.IsBlank())

つかstringがnull許容型ってちょっと気付かなかった
テキストボックスはnullを空文字変換するようだし
0885デフォルトの名無しさん2014/12/23(火) 20:52:15.90ID:3/UsXzqc
可変長のものは基本的に参照型
0886デフォルトの名無しさん2014/12/23(火) 20:52:55.08ID:3/UsXzqc
あと拡張メソッドってものがある
0887デフォルトの名無しさん2014/12/23(火) 20:55:41.44ID:3rRE3X2t
>>885
んなことはない
Stringは内部でヒープ上の文字列のポインタを持ってるから文字列は可変長だけど
Stringクラスのインスタンスそのものは固定サイズだ
Stringに限らず、クラスのインスタンスは配列を除いて全て固定サイズ
C#ではあまり無いが、C++だと外からは可変長に見える値型オブジェクトってよく使われる
0888デフォルトの名無しさん2014/12/23(火) 21:06:26.28ID:3/UsXzqc
885が参照型のインスタンスサイズとか言うmscoree依存の話や、C++について述べているように見えたのなら謝るけど
0889デフォルトの名無しさん2014/12/23(火) 21:07:07.63ID:3rRE3X2t
ちなみに、Stringを構造体にして、まだ実際に文字列が割り当てられていないものは
空文字として振る舞わせるような実装はあり得る
そうしなかったのは、Javaに合わせるためと無駄なボックス化を避けるためだろうね
0890デフォルトの名無しさん2014/12/23(火) 21:08:37.94ID:aLQSY5/S
シールされて継承できません!とか言われるから困ってたらそうんな方法があったのかw
勝手に理想の言語作れそうだが…そりゃもう凄いやつ
フォームやコントロールは改造したけどあんまりやると同業者に迷惑かもしれんから
このへんは標準で我慢しとくよ
0891デフォルトの名無しさん2014/12/23(火) 21:11:58.59ID:q8CKri8Q
改造? 同業者?
0892デフォルトの名無しさん2014/12/23(火) 21:20:34.07ID:aLQSY5/S
そこがどうして気になるんだろうか…学生さん?
改造=「ユーザーコントロール」でも「カスタムコントロール」でもない派生クラス
同業者=仕事で開発すると、いずれ同業者が仕事で嫌々引き継ぐ
      (たまたま現在1人で開発中なので自由に標準化できちゃうが)
0893デフォルトの名無しさん2014/12/23(火) 21:21:38.06ID:ndvzxwOk
えっw
0894デフォルトの名無しさん2014/12/23(火) 21:28:37.64ID:5Uh8vPXz
継承クラスが迷惑?
同業者?同僚じゃなくて?

ちょっと言っていることがわからんのですよ…
0895デフォルトの名無しさん2014/12/23(火) 21:34:39.89ID:1gWRMKD1
「理想の言語作れそう」とか
「自由に標準化」も

さっぱり意味がわかんねえよ…
なんでそんな話になっちゃうの??
0896デフォルトの名無しさん2014/12/23(火) 21:52:15.02ID:JQ5oTczV
程度が違いすぎると伝わらんわな
高いか低いかは・・・ノーコメント
0897デフォルトの名無しさん2014/12/23(火) 21:56:03.21ID:ATgZaQzi
コントロールを派生させたらカスタムコントロールなんだけどな
0898デフォルトの名無しさん2014/12/23(火) 21:59:08.94ID:gXwWfzsx
どなたか>>878をお願いします。
0899デフォルトの名無しさん2014/12/23(火) 22:01:53.56ID:5O9NO3ky
>>898
>メソッドに暗黙的にabstractキーワードをつけたことになるじゃないですか
なりません。

>MyMethodにsealedキーワードは不要ですよね?
そうですね。
0900デフォルトの名無しさん2014/12/23(火) 22:08:36.34ID:gXwWfzsx
>>899

回答ありがとうございます。

>>MyMethodにsealedキーワードは不要ですよね?
>そうですね。
やはりそうですよね。
sealedを付与することによって最適化されて効率がよくなるということなので、
もしメソッドの方のsealedを外して最適化が行われなくなったらやだなと思ったんですが、
クラスにsealedを付けてれば、そのクラス内には全部sealedが付与されたことと等価になりますよね。

sealedを付けると最適化される:
http://msdn.microsoft.com/ja-jp/library/ms173150.aspx

>>メソッドに暗黙的にabstractキーワードをつけたことになるじゃないですか
>なりません。
あれ?インターフェースって実体をもたないメソッドの宣言じゃなかったですか?
0901デフォルトの名無しさん2014/12/23(火) 22:09:52.59ID:3/UsXzqc
論理上は要らないけどsealedの有無でコンパイル結果は変わる
0902デフォルトの名無しさん2014/12/23(火) 22:11:40.87ID:vvHKlqpR
C#じゃメソッドはvirtualとかabstract付けないとオーバーライド出来ないから
0903デフォルトの名無しさん2014/12/23(火) 22:30:32.59ID:gXwWfzsx
>>901
まじですか!?
ってことはsealedを付与したクラスであっても
最適化のためにはメソッド群に全部sealedを付与する必要がある
ということですね・・・。
望ましい振る舞いとしてはクラスにsealedを付与したらメソッド群には
自動的に全部sealedを付与したことと等価になるべきだと思うので、
これはマイクロソフトに報告した方がよくないですか?
今後のC#のために・・・。

>>902
だから何ですか?

>>899
気になって調べましたが、やはりインターフェースは
メソッドに暗黙的にabstractキーワードをつけたことになります。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_004/csharp_abc03.html
つまり、実体を持つメソッドは許されません。
0904デフォルトの名無しさん2014/12/23(火) 22:35:28.43ID:ZhKtxXT7
たぶん、abstractキーワードをつけたことになる対象について両者の話がずれているだけだな

インターフェースはabstractをつけたことになるが、それを実装した実体には付けた事にならない

>>899は後者のことを言ってるはず。
0905デフォルトの名無しさん2014/12/23(火) 22:37:21.79ID:ZhKtxXT7
sealedで最適化って変わるのか?
タイプライブラリは変わるだろうけど。
0906デフォルトの名無しさん2014/12/23(火) 22:39:14.09ID:3/UsXzqc
メンバー宣言にフラグが立つかどうかだけの差だけどね
呼び出し側でcallvirtがcallになるとかでは無いんで、JITがバカじゃなければ影響がないはず
0907デフォルトの名無しさん2014/12/23(火) 22:41:21.17ID:ETWztIdj
>>903
>最適化のためにはメソッド群に全部sealedを付与する必要がある
>ということですね

おまえの示した参照先からは
そのような結論になり得ないのだが
0908デフォルトの名無しさん2014/12/23(火) 22:43:15.56ID:w8fvNum1
っていうかJavaじゃあるまいしメソッドにsealedなんて付けたことなかったわw
何の意味があるんだっけ
0909デフォルトの名無しさん2014/12/23(火) 22:44:52.00ID:D6IlGqYq
>>903
> これはマイクロソフトに報告した方がよくないですか?

勝手にやっとくれ。
そしてそれ以降の報告はここではなくて個人のブログで勝手にやってくれ。
0910デフォルトの名無しさん2014/12/23(火) 22:47:44.00ID:vvHKlqpR
インターフェースはクラスの実装メンバの中に名前が同じものがあると勝手にそれを呼び出すけど
クラスのメソッドはクラスのメソッドでインターフェースの同名メソッドとは別に存在する
クラスのメソッドがabstractか非仮想かっていうのもそのクラス次第

インターフェースの明示的実装なんかやると別だって分かりやすいでしょう
http://msdn.microsoft.com/ja-jp/library/ms173157.aspx
0911デフォルトの名無しさん2014/12/23(火) 22:48:14.44ID:gXwWfzsx
>>906
中間コードをチェックしていただいたようでありがとうございます。
自分も中間コードをチェックできるようになれば話は早いのですが、
まだそこまでスキルがありません。
JITがバカじゃないことを祈りつつ、
自分のコードのメソッド群に全部sealedを付与するのはやめておこうと思います。
(仮に現在のJITがバカだとしても将来のJITは優秀になるはずなので・・・)

>>905,>>907
>シール クラスは基底クラスとして使用できないので、実行時の最適化で、シール クラス メンバーを多少高速に呼び出すことができる場合があります。
という一文があります。
0912デフォルトの名無しさん2014/12/23(火) 22:49:50.92ID:ZhKtxXT7
>>908
継承したメソッドに付けて、これ以上継承しない、出来ないようにする為らしい
俺も使ったことないな
0913デフォルトの名無しさん2014/12/23(火) 22:50:15.68ID:TOFgrQ/A
>>911
日本語も読めない低脳はもう来なくて良いよ
川俣脳
0914デフォルトの名無しさん2014/12/23(火) 22:52:18.10ID:3/UsXzqc
テンプレートメソッドパターンでA-B-Cと継承する場合、BがAのメンバーをシールするような感じ
0915デフォルトの名無しさん2014/12/23(火) 22:52:19.12ID:ZhKtxXT7
変なズレ方する子だな、思い込みがデフォと言ったらいいのか
0916デフォルトの名無しさん2014/12/23(火) 22:54:35.54ID:JQ5oTczV
ホリデーシーズンなのに殺伐としてるねえ
0917デフォルトの名無しさん2014/12/23(火) 22:57:43.62ID:w8fvNum1
>>912
なるほどそういうケースがありうるわけかw
確かに基底クラスでvirtualだと自動的にvirtualになっちゃうから。
0918デフォルトの名無しさん2014/12/23(火) 22:59:45.53ID:ZhKtxXT7
そっか、中学生ぐらいかな?
0919デフォルトの名無しさん2014/12/23(火) 23:19:07.95ID:gXwWfzsx
>>913,>>915
あなたたちの言いたいことはなんとなくわかるよ。
クラスをsealedにすれば、
メンバーにsealedが付与されてようが付与されてなかろうが、
関係なく最適化が行われる、
というように読みとれると言いたいんでしょ?

でもこれはMSDNにある「シール クラス メンバー」とは何か?
次第で解釈も変わるじゃんか。
その名の通り、sealedキーワードが付与されたメンバーのことかもしれないし。
だから、マイクロソフトには、不要なものには「不要ですよ!」と警告を出してもらいたい。

interface ITest
{
abstract void MyMethod();
}

これも現在のVSでは「abstractが不要ですよ!」的な警告出ないけど、
警告が出るようにしてもらいたいわ。
0920デフォルトの名無しさん2014/12/23(火) 23:20:56.79ID:3/UsXzqc
警告じゃなくてエラーが出るからな
0921デフォルトの名無しさん2014/12/23(火) 23:27:52.64ID:gXwWfzsx
>>920
すまん、エディタ上で警告(とエラー)が出てなかったから気付かなかった。
ビルドするとエラーになるのね。。。指摘ありがとう。
09229132014/12/23(火) 23:29:12.57ID:3wq9WRg2
>>919
>クラスをsealedにすれば、
メンバーにsealedが付与されてようが付与されてなかろうが、
>関係なく最適化が行われる、
>というように読みとれると言いたいんでしょ?
違うから。
MSDNに書いて有る日本語も読めない低脳は
来なくていいというのに。
0923デフォルトの名無しさん2014/12/23(火) 23:32:03.64ID:gXwWfzsx
>>922
自分の意見もろくに言えない奴こそ存在価値ないから来るな
0924デフォルトの名無しさん2014/12/23(火) 23:39:17.75ID:vkaSmtMb
触らなきゃよかったね
0925デフォルトの名無しさん2014/12/23(火) 23:51:09.71ID:3wq9WRg2
>>919
>その名の通り、sealedキーワードが付与されたメンバーのことかもしれないし
国籍は?中国?
0926デフォルトの名無しさん2014/12/24(水) 00:16:43.92ID:pvTdBCSk
>>925
「シール クラス メンバー」と言われた時、
普通はsealedキーワードの付与されたクラスのメンバーのことだと思う。
だが、あるクラスのsealedキーワードの付与されたメンバーの可能性も否定はできない。
それに実装上どうなってるかは、マイクロソフト依存だし、MSDNの記載が正しいとも限らない。

その観点で、>>901,>>906の回答が貰えた段階で質問は解決。

C#言語や中間言語ではなくて日本語について議論したいやつがいるみたいだが、
もうね、アホかと。。。
もうちょっと建設的な議論しろよ。

推奨NGワード:低能、低脳、国籍、中国
0927デフォルトの名無しさん2014/12/24(水) 00:39:23.30ID:ptxGNcBE
>>925
中国というよりは、チョンだろうね
0928デフォルトの名無しさん2014/12/24(水) 02:37:23.42ID:jouVg79j
ID真っ赤にしてる知障がいたスレはここですか?
0929デフォルトの名無しさん2014/12/24(水) 02:39:12.96ID:XC0jxcEU
下記に定義したクラスをインターフェースにキャストしようとすると失敗します。なぜでしょうか?

var a = new test();
var b = (Itest) a;
WriteLine(b);

public class test{
public string Get(){return "test";}
}

public interface Itest{
string Get();
}
0930デフォルトの名無しさん2014/12/24(水) 02:51:07.49ID:tbWeTz1o
classでinterfaceを指定してない。
0931デフォルトの名無しさん2014/12/24(水) 02:59:03.56ID:c07nCXDt
質問です
http://fast-uploader.com/file/6974912912078/
これの問題文の意味がわからないです
リストボックスの中にxやx^2などの1〜100まで変化させた数値をエクセルとして保存する方法のことをいうんでしょうか?
もしそうならその方法がよくわかりません。。
0932デフォルトの名無しさん2014/12/24(水) 02:59:57.29ID:c07nCXDt
jpegにしたのがこっちです
http://www.dotup.org/uploda/www.dotup.org69353.jpg
0933デフォルトの名無しさん2014/12/24(水) 03:11:23.06ID:XC0jxcEU
>>930
みかんを揉んで甘くしたいときや、おっぱいを揉みたいとき
果物クラスや人体クラスにI揉むを定義しなければいけないんでしょうか?

それらのオブジェクトはすでに定義されて生成された状態で提供されるので、
変更するのが難しいです。
0934デフォルトの名無しさん2014/12/24(水) 03:49:55.83ID:IlBhBVXC
>>931
スレチだよ死ねよ。メリークリスマス!

>>933
> 果物クラスや人体クラスにI揉むを定義しなければいけないんでしょうか?
そうです。ダックタイピングしたいならdynamic使え。メリークリスマス!

>>926が見えなくなりました。メリークリスマス!
0935デフォルトの名無しさん2014/12/24(水) 07:05:51.97ID:iAWb/cKM
>>933
デザインパターン的には、そのインターフェースを継承したアダプタークラスを作るとか
0936デフォルトの名無しさん2014/12/24(水) 08:11:17.47ID:SBMAfTrT
>>933
class Aho : Itest {
 test o;
 public Aho(test o) {this.o = o;}
 public String Get() {return this.o;}
}
var b = (Itest) new Aho(a);
0937デフォルトの名無しさん2014/12/24(水) 10:26:15.91ID:xL1H/xhs
>>936
おれ素人だけどなんで型推論使うの?
処理おそくならない?
0938デフォルトの名無しさん2014/12/24(水) 10:33:33.03ID:PztsOEBs
ならない

interfaceにこだわらずにFunc<string>とかを受け渡しする、で良いケースもあるな
0939デフォルトの名無しさん2014/12/24(水) 10:45:40.20ID:B0qw1tPJ
バリアントじゃないからな、コンパイル時に推論するだけだし
0940デフォルトの名無しさん2014/12/24(水) 11:01:44.75ID:IlBhBVXC
型を推論するのはJITさんやないで
コンパイラさんやで
何遍言わしたら気が済むんやこのダーホ
0941デフォルトの名無しさん2014/12/24(水) 16:03:09.31ID:lBk4luGp
型推論使ってないコード見ると反射的にウザく感じるよね
0942デフォルトの名無しさん2014/12/24(水) 20:00:56.76ID:kde12yWR
そんな神経質だとやっていけないぞ
人月ワールドに入ったら吐き気を催すような想像を絶する糞コードばかりだというのに
0943デフォルトの名無しさん2014/12/24(水) 22:24:49.25ID:83J9p+C4
「人月ワールド」
なんかカッコいい響きだな
0944デフォルトの名無しさん2014/12/24(水) 22:59:46.18ID:TctVZDZ1
>>941
読むのはどっちでもいいわ
書くのはもうないとダメだけど w
0945デフォルトの名無しさん2014/12/24(水) 23:16:10.51ID:FNb80HoP
おれ素人だけどのやつだけど型推論使うことにしますわ。
クラスのインスタンス化とかにも使えるんだね。
勉強になりやました。
0946デフォルトの名無しさん2014/12/25(木) 00:59:58.69ID:s/ZpbGN8
型推論は単純に書きやすいだけでしょ
型推論使わないといけないパタンって、なんかのときの繰り返し文ぐらいだったと思う
0947デフォルトの名無しさん2014/12/25(木) 03:37:15.58ID:c/bUBZQc
varは匿名型を宣言するのに必要
0948デフォルトの名無しさん2014/12/25(木) 06:48:05.41ID:XZW89gFV
考えたことなかったけど
List<dynamic>とかじゃないちゃんとしたList<匿名型>なんかは
varないとタイプセーフにできないのかな
0949デフォルトの名無しさん2014/12/25(木) 07:04:19.06ID:hIjBmD/A
LINQでは使わないとやってられないな。当たり前だが。
0950デフォルトの名無しさん2014/12/25(木) 07:10:39.83ID:dAMLPR9k
匿名型もLINQでしか使わないだろ
List<匿名型>とか勘弁してくれ
0951デフォルトの名無しさん2014/12/25(木) 07:12:31.37ID:I5lYMpbh
ASP.NET MVC「」
0952デフォルトの名無しさん2014/12/25(木) 09:10:04.03ID:KQ7q0pC/
俺これが気になるんだけどもっと簡潔に書けない?

var a = new List<Tuple<string,string>>(){
      new Tuple<string,string>("こんにちは", "世界"),
      new Tuple<string,string>("死ねよ", "クソ虫"),
      ・・・以下同じ
}

配列の要素のTは書かなくても自明なはずなのに省略できないのが納得できない
0953デフォルトの名無しさん2014/12/25(木) 09:17:17.71ID:592UL+bA
とりあえずTuple.Createが用意されててnew Tuple<string, string>(の<>は省略できる
0954デフォルトの名無しさん2014/12/25(木) 11:43:48.48ID:5xnCRqXR
>>952
> 配列の要素のTは書かなくても自明なはず

派生してる奴を突っ込むこともあるから
0955デフォルトの名無しさん2014/12/25(木) 17:26:04.94ID:tMMJu6zm
>>952
LINQ使えよクソ虫

var a = new[] {
    new[] { "こんにちは", "世界" },
    new[] { "死ねよ", "クソ虫" }
  }
  .Select(x => Tuple.Create(x[0], x[1]))
  .ToList();
0956デフォルトの名無しさん2014/12/25(木) 17:53:59.14ID:N1mmNRIO
Tupleなんか使わないでクラスを作れってこったな
0957デフォルトの名無しさん2014/12/25(木) 22:16:17.57ID:G5QkmxBI
C#に限らない話なんだけど、
Visual Studioでコマンドプロンプト以外のターミナルを使う方法ってある?
具体的にはcygwinのminttyを指定したい。
0958デフォルトの名無しさん2014/12/25(木) 22:19:13.74ID:k0rUoxkH
ターミナル
とは何ですか?
終端がどうかしましたか?
0959デフォルトの名無しさん2014/12/25(木) 22:29:21.34ID:c/bUBZQc
そもそもコマンドプロンプトはターミナルじゃない気がするが
昔のWindowsサーバにはTelnetサーバの機能があったから、いまでもあるんじゃね
それで好きなTelnetクライアント使えばいいんじゃね
0960デフォルトの名無しさん2014/12/25(木) 22:40:26.57ID:G5QkmxBI
>>958
unix系OS使ったことある?

>>959
telnetとかなんも関係ない
visual studioでコンソールアプリケーション作るときに出現するアプリを
コマンドプロンプトから任意のコンソールに変更できないか、って話。

おまえらはコンソールアプリ作ってる時、コマンドプロンプトに使いづらさ感じてない?
まず、上下方向にはなんとか広げられるが、左右方向には広げられなくね?

なんにせよminttyくそ快適だぞ
0961デフォルトの名無しさん2014/12/25(木) 22:43:07.22ID:N1mmNRIO
コンソールアプリwwwwwwwwwwwwwwwwwwwwwwwwww
0962デフォルトの名無しさん2014/12/25(木) 22:44:42.38ID:vBicrBA8
>コンソールアプリ作ってる時、コマンドプロンプトに使いづらさ感じてない?

作っているプログラムの実行環境と異なる環境で開発したいとは奇特なひとですね
0963デフォルトの名無しさん2014/12/25(木) 22:47:17.06ID:G5QkmxBI
>>961
なんか俺おもしろいこと言った?
コンソールアプリの何がおもしろいんだよ

>>962
環境はなんも変わらない。
使える武器が天と地ほど変わる。
0964デフォルトの名無しさん2014/12/25(木) 22:47:52.98ID:dAMLPR9k
Windowsで対話式のコンソールアプリなんか絶対使いたくないわ
0965デフォルトの名無しさん2014/12/25(木) 22:52:14.87ID:G5QkmxBI
>>964
ばかかおまえwwwwww
GUIとCUI切り分けてるだけだろjk

ここってこの程度のレベルの連中が集まるとこなの?
もっとギークなやついないの?
初めて来たけど損したわ。
0966デフォルトの名無しさん2014/12/25(木) 23:00:46.11ID:dAMLPR9k
>>965
一発実行して終了するコンソールアプリならVSのコンソールの使い勝手なんかどうでもいいはずだから、
対話式のコンソールアプリを作っているのだろうと推測したんだけど、言ってる意味わかる?
俺がGUIとCUI分けるんならGUIから引数付きで単発のコマンドを実行するだけにするね
熟練のUNIX使いなんか特に対話式のコンソールは嫌う人多いよ?
0967デフォルトの名無しさん2014/12/25(木) 23:14:21.94ID:G5QkmxBI
>>966
意味わかった。
現在の俺の悩みは
「一行のプリントが長い場合にコマンドプロンプトの仕様で折り返されるが、これがイヤ!」
画面を左右方向に広くして折り返されないようにしたい。
別に対話式コンソールアプリを作ってるわけではないし、
確かに俺も対話式コンソールは好きではない。(interactiveCommand | yesってかんじ)

とりあえずminttyがどれだけカッコイイかリンク貼っとくわ
http://tanakh.jp/img/posts/mintty.png
コマンドプロンプトはこのご時世つかいたくないし、みたくもない。
0968デフォルトの名無しさん2014/12/25(木) 23:31:26.08ID:rqgePbXP
ターミナルとコンソール混同してて笑う
ギークって言葉使ってるから痛い高校生だろうけど
0969デフォルトの名無しさん2014/12/25(木) 23:32:57.47ID:9YkZfv6a
俺が穿いてる褌はこんなにかっこいいぞwww
0970デフォルトの名無しさん2014/12/25(木) 23:35:26.79ID:oZl21iAb
ウニユーザーのキモさとアホさを再確認させられたわ
0971デフォルトの名無しさん2014/12/25(木) 23:36:56.41ID:TJm+7M94
そもそもコマンドプロンプトの横幅を広げるとか、普通に簡単に出来ることなんだが
0972デフォルトの名無しさん2014/12/25(木) 23:37:37.11ID:RqhB4oxO
コンソールつったらシリアル接続してcuだな
0973デフォルトの名無しさん2014/12/25(木) 23:37:41.08ID:rqgePbXP
それってシェルじゃない?
0974デフォルトの名無しさん2014/12/25(木) 23:58:34.25ID:rqgePbXP
普通に外部ブログラムの開始じゃダメか?
0975デフォルトの名無しさん2014/12/26(金) 00:02:33.23ID:rmOREM4X
>>967
minttyにデバッガを継承してexeを起動する機能があれば
「外部プログラムの開始」でできるでしょ

しかし、これをカッコイイと感じるのか・・・
古臭いコンソールアプリと中途半端な半透明ウィンドウが合わさってダサすぎるとしか思えない
0976デフォルトの名無しさん2014/12/26(金) 00:29:59.87ID:YamRiAjj
>>975
みーとぅー
0977デフォルトの名無しさん2014/12/26(金) 00:40:40.91ID:frLAmI7/
半透明かっこいいwwwwwwwwwwwwwwwww
0978デフォルトの名無しさん2014/12/26(金) 00:54:18.21ID:pj4a+GaX
わざわざminttyがどれだけカッコイイかリンク貼ってくれたのにそういうこという
なよ
0979デフォルトの名無しさん2014/12/26(金) 01:06:09.41ID:VhtXo4qT
minttyとやらが格好良くてもタスクバーにアイコンがずらずら並んでいる時点で台無しだよな
0980デフォルトの名無しさん2014/12/26(金) 04:49:47.09ID:mTrmrzjP
CUIアプリケーションをそのminttyとやらで実行する方法があるなら
そのコマンドンをデバッグ開始時に叩くようにすればいいんじゃない?
ブレークポイントとかが機能するかどうかは知らんが
0981デフォルトの名無しさん2014/12/26(金) 04:50:53.57ID:mTrmrzjP
「コマンドライン」から「ライン」を消そうとしたら
「ン」が残ってポケモンの偽物みたいになってしまった・・・
0982デフォルトの名無しさん2014/12/26(金) 05:02:33.17ID:Qmmzh/DD
あ
0983デフォルトの名無しさん2014/12/26(金) 05:23:13.16ID:+FO0ArfG
コマンドンかわいいよコマンドン
0984デフォルトの名無しさん2014/12/26(金) 10:49:11.89ID:t/ZNjN64
まあここにたむろってるのはPowerShellも使えない底辺プルグラマーだし
0985デフォルトの名無しさん2014/12/26(金) 17:27:21.72ID:S+6Wj5Hd
Windowsの操作とかテストメソッド書いて実行すりゃいいから!
0986デフォルトの名無しさん2014/12/26(金) 19:04:33.25ID:rDii6RoJ
次
0987デフォルトの名無しさん2014/12/26(金) 19:10:16.35ID:uvn+sgpC
ハイレベルなギークを自負する奴がコンソールアプリをチマチマ実行して目視でテストしてるのか?
VSの単体テスト機能でテストしてれば頻繁にアプリ全体を実行する必要はないはずだし、
アプリ全体のテストもコンソールアプリなら簡単に自動化できるでしょ
0988デフォルトの名無しさん2014/12/26(金) 21:54:20.58ID:1VVwZeam
>>968
ターミナルとコンソールはWindowsでは同義
http://gihyo.jp/book/pickup/2010/0013
ターミナルの例の中に「コマンドプロンプト」と「mintty」が挙げられてる
http://ja.wikipedia.org/wiki/%E7%AB%AF%E6%9C%AB%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF
0989デフォルトの名無しさん2014/12/26(金) 22:52:47.15ID:zbR/Pr/+
銀河鉄道999
0990デフォルトの名無しさん2014/12/26(金) 22:59:45.41ID:Z2q5F2hY
そんなウニクソユーザーの妄想はいいから。
「ソースはwiki」はもはや馬鹿の象徴
0991デフォルトの名無しさん2014/12/26(金) 23:56:48.70ID:5vBQJBUk
>>988のリンク先を見ても「ターミナルとコンソールはWindowsでは同義」とは読めない
何をみてそう言っているんだろうか
0992デフォルトの名無しさん2014/12/27(土) 00:08:23.66ID:OgvQhu0j
うめ
0993デフォルトの名無しさん2014/12/27(土) 00:39:35.42ID:CxSn36ZM
C#, C♯, C#相談室 Part86 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419608259/
0994デフォルトの名無しさん2014/12/27(土) 00:42:31.11ID:ZM4QrYS5
くるしゅうない
0995デフォルトの名無しさん2014/12/27(土) 00:43:02.94ID:xcx8bYiC
>>988
>ターミナルとコンソールはWindowsでは同義
そのリンク先にWindowsでの話は出てない。そう読める記述も無い

Wikiも見てきたけど
>コマンドプロンプト(汎用telnetソフトとして使用可能)
コマンドプロンプトがターミナルエミュレータなのではなくて、telnetソフトがターミナルエミュレータなんだが
ついでに言うとtelnetはコマンドプロンプト組み込みのコマンドじゃなくて、別のプログラムだが

本気でお前がそう思ってるなら、理解力足りなさすぎる
0996デフォルトの名無しさん2014/12/27(土) 00:55:31.20ID:Iiyigm9/
>telnetソフトがターミナルエミュレータ
その理論でいくとsshやrloginもターミナルエミュレータということになるな
窓使いが適当なこと言ってんじゃねーぞ
0997デフォルトの名無しさん2014/12/27(土) 01:05:30.75ID:Iiyigm9/
>>ターミナルとコンソールはWindowsでは同義
>そのリンク先にWindowsでの話は出てない。そう読める記述も無い
これだからバカは困る
TSSしてるWindowsのエディションがあったら教えてほしいわw
0998デフォルトの名無しさん2014/12/27(土) 04:18:40.59ID:xTCy8FqV
うめ
0999デフォルトの名無しさん2014/12/27(土) 07:35:21.03ID:enMk83j+
>>989
さぁ逝くんだ
その扉を開けて
1000デフォルトの名無しさん2014/12/27(土) 07:36:40.55ID:enMk83j+
32x32
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。