C#, C♯, C#相談室 Part86 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2014/12/27(土) 00:37:39.56ID:CxSn36ZMhttp://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part85
http://peace.2ch.net/test/read.cgi/tech/1412298752/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
0002デフォルトの名無しさん
2014/12/27(土) 14:06:36.30ID:Cc0RXd7d0003デフォルトの名無しさん
2014/12/27(土) 15:54:09.50ID:tQpEEr8J0004デフォルトの名無しさん
2014/12/27(土) 18:35:29.91ID:GhEDQNHO0005デフォルトの名無しさん
2014/12/27(土) 19:22:08.64ID:Iiyigm9/DQN
0006デフォルトの名無しさん
2014/12/28(日) 21:59:57.74ID:/g9XUAftまとめて扱うことは可能でしょうか。
たしか、<T> ってのが、
ネットのサンプルにあったのですが、
使い方がよくわかりません。
addcomponent<ClassA>().init(int,float,"String");
addcomponent<ClassB>().init(int,float,"String");
↓
addcomponent<T>().init(int,float,"String");
こんな感じにまとめたいです。
0007デフォルトの名無しさん
2014/12/28(日) 22:03:54.64ID:3UhPoklt違う処理だけabstractメソッドにしてClassA, ClassBそれぞれで別の実装を割り当てればまとまるかもね
0008デフォルトの名無しさん
2014/12/28(日) 22:06:04.30ID:hI2mx2NI0009デフォルトの名無しさん
2014/12/28(日) 22:06:44.69ID:hI2mx2NI0010デフォルトの名無しさん
2014/12/28(日) 22:09:22.41ID:PN+Ts2DK意味がわからないから何がしたいのか目的を教えて
クラスとか引数とか関数とか一般的な表現じゃなくて、
何を作ろうとしててどういうことをしててどこで詰まってるのか
0011デフォルトの名無しさん
2014/12/28(日) 22:10:21.56ID:3UhPokltClassA ClassB が BaseClass から派生していて
AddComponent(BaseClass component) こんなのがひとつあれば十分そうな見た目だけどね
使うときは
AddComponent(new ClassA(1, 1F, "String"))
って感じで
0012デフォルトの名無しさん
2014/12/28(日) 22:15:04.90ID:hI2mx2NIでもnew()制約知ってて型制約知らないってことはないよな
0013デフォルトの名無しさん
2014/12/28(日) 22:29:36.54ID:eacLnmbFそれをIEnumerable<基底クラス>を引数に取る関数に渡したいのですが、うまくいきません。
以下のようなコードを書いたのですが、間違っているのでしょうか?
public static void test(Base obj)
public static void test2(IEnumerable<Base> obj)
test(new Inheritance()); //OK
test(new Inheritance[]{}); //OK
public class IEnumerableTest<T> where T : Base
public IEnumerable<T> Get{get { return _Targets; }}
test(new IEnumerableTest<Inheritance>.Get()) //NG
0014デフォルトの名無しさん
2014/12/28(日) 22:34:12.29ID:3UhPoklt多分プロパティに()つけて呼び出してるのが間違ってるんじゃないの
public IEnumerable<T> Get(){ return _Targets; }
こうじゃダメなの
0015デフォルトの名無しさん
2014/12/28(日) 22:40:27.16ID:eacLnmbF申し訳ない、プロパティを()で読んでるのは転記ミスでござる。
関数で受け取れば渡せるが、プロパティで受け取ると渡せない。
何が起こっているの??
test2(new IEnumerableTest<Inheritance>.Get) //NG
test2(new IEnumerableTest<Inheritance>.GetFunk()) //OK
0016デフォルトの名無しさん
2014/12/28(日) 22:49:28.57ID:eacLnmbF0017デフォルトの名無しさん
2014/12/28(日) 22:57:31.63ID:d8VFVXkn0018デフォルトの名無しさん
2014/12/28(日) 23:02:31.11ID:m3FY95E3コード片じゃなくて完全なコードを>>1のideoneにコピペしてみて
0019デフォルトの名無しさん
2014/12/28(日) 23:08:30.43ID:eacLnmbFtest(new Inheritance[] { }); //OK
test((IEnumerable<Inheritance>) new Inheritance[] { }); //NG
ってことなんだ。
俺は引数に何のインターフェースを使えばいいんだ?
0020デフォルトの名無しさん
2014/12/28(日) 23:08:55.36ID:eacLnmbF少々お待ちください。
0021デフォルトの名無しさん
2014/12/28(日) 23:22:05.58ID:eacLnmbFビルドターゲット4.5だといけたけど、
3.5だとダメだった。そーいうこと??
0022デフォルトの名無しさん
2014/12/28(日) 23:26:25.33ID:m3FY95E3ジェネリックの共変性と反変性 を調べてみて
0023デフォルトの名無しさん
2014/12/29(月) 00:53:11.30ID:GGNnGKbX0024デフォルトの名無しさん
2014/12/29(月) 01:05:40.29ID:aPtCKv3Yhttp://dobon.net/vb/dotnet/vb6/apppath.html
0025デフォルトの名無しさん
2014/12/29(月) 01:15:04.67ID:GGNnGKbXアリガ�d
0026デフォルトの名無しさん
2014/12/29(月) 02:21:26.92ID:7EAdwxrqすみません…
Unity でシューティングゲームの敵データを、
CSV から読み込もうとしています。
Unity質問スレからこちらに誘導してもらいました。
CSV は1レコードの前半は共通仕様、
後半は読み込むデータ形式は同じですが、
後半データは敵の行動パターンごとに使い方が異なります。
体力や初期位置など共通して使うものは、
共通コンポーネントで持ちました。
差異が発生する後半部分(その敵固有の処理)は
同じデータ形式で取り込むのですが、
使い道や処理が違うので
取り込み先が違うコンポーネントになっている、という感じです。
コンポーネント名だけ書き換えて、
まったく同じ読み込みソースをコピペしてるのが、
スマートじゃないなと思いました。
void yomitori ( GameObject go, Type classType, 引数いっぱい ){
go.getComponent<classType>().init(引数いっぱい);
}
こんな感じにクラス(コンポーネント)を指定できるようにして
まとめたいなと思いました。
0027デフォルトの名無しさん
2014/12/29(月) 02:26:56.53ID:7EAdwxrq0028デフォルトの名無しさん
2014/12/29(月) 03:13:02.84ID:lr1HMbxN既に他の人が判りやすく説明しているけどに共通部分をまとめた基底クラスを作ってAとBがその基底クラスを継承する
コンポーネントを追加するときは作成したコンポーネントインスタンスをAddComponent()の引数として渡して
コンポーネントを取得するときはGetComponent<基底クラス>()とすればいい
0029デフォルトの名無しさん
2014/12/29(月) 09:40:21.83ID:7EAdwxrq出来ました!
継承を実践で使ったことがなかったので
まったく考えてませんでした。
ありがとうございます!
0030デフォルトの名無しさん
2014/12/29(月) 09:44:40.00ID:tirsBVZiこの場合はテンプレートメソッドかな
abstract class GameObject {
int 共通情報;
public void Yomikomi(CSVの行データ) { 共通情報 = CSV前半; ActionPatternYomikomi(CSV後半); }
protected abstract void ActionPatternYomikomi(CSV後半);
}
class EnemyA : GameObject {
int 固有情報A;
protected override void ActionPatternYomikomi(CSV後半) { 固有情報A = CSV後半; }
}
class EnemyB : GameObject {
int 固有情報B;
protected override void ActionPatternYomikomi(CSV後半) { 固有情報B = CSV後半; }
}
GameObject a = new EnemyA(), b = new EnemyB();
a.Yomikomi(CSV1行目); b.Yomikomi(CSV2行目);
0031デフォルトの名無しさん
2014/12/29(月) 14:46:23.53ID:nnY+ZM/3解決したコード書いて
0032デフォルトの名無しさん
2014/12/30(火) 22:22:27.97ID:WbPDupBZvoid OnStateEnter () {
}
という関数を特定の状態の時に呼び出してほしい用に記述したい
Attributeか何かをうまく使って指示できませんかね
[StateIs(Running)]
void OnStateEnter () {
}
こんな感じで
0033デフォルトの名無しさん
2014/12/30(火) 23:12:51.79ID:dxBK7ujR普通にまっすぐ書いたコードからステートマシンを自動生成してくれる
0034デフォルトの名無しさん
2014/12/30(火) 23:32:31.80ID:dxBK7ujR登録先によってStateパターンとか継続渡しとか呼ばれる方法だね
列挙体かなんかをキーにしてデリゲートをディクショナリに登録しとく手もあるけど、
単純に処理の振り分けに使いたいだけなら冗長
0035デフォルトの名無しさん
2014/12/30(火) 23:51:20.16ID:ZXsgTzJDfor (i = 0; i < 100; i++){
list.Add(i);
}
0036デフォルトの名無しさん
2014/12/31(水) 00:05:13.74ID:UsUXYvH4list = Enumerable.Range(0,100).ToList();
0037デフォルトの名無しさん
2014/12/31(水) 01:34:01.19ID:hZ6ACt+cありがとうございます。天才ですね
0038デフォルトの名無しさん
2014/12/31(水) 01:37:47.29ID:hZ6ACt+cすみません、これだと型がintになっちゃいますよね。
iがなんかのクラスの場合はどうやるのですか?
0039デフォルトの名無しさん
2014/12/31(水) 02:59:13.00ID:0KovdbRl0040デフォルトの名無しさん
2015/01/01(木) 11:23:54.13ID:vAAHlH5Qenumの定義そのものはクラスライブラリ側で行って、
中身だけアプリケーション側で定義したい
文法的には不可能ですが似たような機能を実装できないでしょうか
0041デフォルトの名無しさん
2015/01/01(木) 11:25:47.35ID:iDo75q0v0042デフォルトの名無しさん
2015/01/01(木) 11:28:34.71ID:dlaa3g2Epublic struct Color : IEquatable<Color> { public Color(int value) { this.value = value; } /* valueを比較するEqualsを実装 */ }
アプリケーション側
static class Colors { public static readonly Color Blue = new Color(0x00FF00); }
0043デフォルトの名無しさん
2015/01/01(木) 11:32:29.49ID:aZRx2Zh30044デフォルトの名無しさん
2015/01/01(木) 11:37:16.67ID:2oZHmgl+無制限に外部で作らせてどうする
004640
2015/01/01(木) 11:50:50.94ID:vAAHlH5QAppelaration<State, Trigger> fsm;
みたいな。
どういうステートがあるかはアプリケーション側で定義するので
partial enumがどうしても必要なのですがいいアイディアが思いつきません
0047デフォルトの名無しさん
2015/01/01(木) 11:54:38.11ID:2oZHmgl+拡張を意図した構成要素を使えばいいだけだろが
そう、クラスだ
あほなことを止めろ
Stateパターンじゃダメなん?
これなら、状態の基底クラス作っとけばユーザー側で継承して
任意に状態クラス作ればいいし
0049デフォルトの名無しさん
2015/01/01(木) 11:59:42.03ID:JpKW+t0fあとpartial class自体アセンブリを超えて分割できる物じゃないぞ
0050デフォルトの名無しさん
2015/01/01(木) 12:01:02.14ID:aZRx2Zh30051デフォルトの名無しさん
2015/01/01(木) 13:47:07.08ID:iDo75q0vそこでクラスを一つ一つ継承するっていうのは記述に対して実入りが少なすぎる
0052デフォルトの名無しさん
2015/01/01(木) 14:24:36.87ID:iDo75q0vD(S.a, T('b',S.ab), T('c', S.ac));
...
まあこんな感じで書ける程度の記述合理性は欲しいよね
DはDefine SはState(enum) TはTriggerの略で
StateがそれぞれDefineされてるかどうかの整合性チェックも一応リフレクション使って実装しときたいな
0053デフォルトの名無しさん
2015/01/01(木) 14:34:57.74ID:iDo75q0vライブラリ側はenumの具体的な値であるintに対して処理すれば
全てのenumに対して使えるからそれでいいんじゃないかと思った
0054デフォルトの名無しさん
2015/01/01(木) 19:33:21.08ID:dlaa3g2E0055デフォルトの名無しさん
2015/01/01(木) 19:37:46.81ID:iDo75q0v文字列とか無いわw
0056デフォルトの名無しさん
2015/01/01(木) 19:40:12.35ID:aZRx2Zh30057デフォルトの名無しさん
2015/01/01(木) 19:41:24.67ID:aZRx2Zh3上で書いた通り方に関係なくTypeConverterを使えばIntelliSenseは効く
0058デフォルトの名無しさん
2015/01/01(木) 19:48:03.68ID:dlaa3g2Eインテリセンスは自動的には効かないだろ
どっちにしろ定数クラスに纏めるなら値が数値だろうが文字列だろうが使い勝手は一緒
でも拡張性を持たせるなら文字列の方が管理は容易だ
0059デフォルトの名無しさん
2015/01/01(木) 20:19:41.93ID:iDo75q0v俺はenumの代わりにダブルクオートでくくって文字列直打ちするっていう話だと思ったけど
D("Initial", T('a',"a"), T('b',"b"));
これがTypeConverterを使うとどうにかなってインテリセンスが効くようになるの?
>>58
public const string Initial = "Initial";
こんなふうにやってくって話?
これを書くのがまず面倒だし
定義箇所が複数に分かれたら同じ文字列が出てきちゃう場合が考えられるから拡張性も高いとは思えないな
俺だったら複数に分けるほど大きくなる場合は
namespace N1{
enum S{ A, B, C }
class Script : ScriptBase{
void D(S s, params T[] triggers){
StateMacine.Instance.Set(typeof(S), s, triggers);
}
public static void Initialize(){
D(S.A, T('b', S.B), T('c', S.C), T('d', N2.S.D));
}
}
こんな感じでenumの型情報と一緒に登録して型ごとに分かれるようにして
ある型のenumが初回出現した時に対応するScriptクラスをnewして登録するようにすることで
初期化の負荷も分散できるようにするかな
0060デフォルトの名無しさん
2015/01/01(木) 20:23:00.17ID:iDo75q0vnamespace N1{
enum S{ A, B, C }
class Script : ScriptBase{
static void D(S s, params T[] triggers){
StateMacine.Instance.Set(typeof(S), s, triggers);
}
public static void Initialize(){
D(S.A, T('b', S.B), T('c', S.C), T('d', N2.S.D));
}
}}
ある型のenumがTriggerで初回出現した時に
対応するScriptクラスのInitializeメソッドをリフレクションで呼び出して登録するようにすることで
初期化の負荷も分散できるようにする
だわ
0061デフォルトの名無しさん
2015/01/01(木) 20:59:03.53ID:dlaa3g2E命名についてはとやかく言うつもりはないが、
呼び出し先の処理と状態遷移の定義が分離されてていいんなら、もう状態遷移表を外部ファイルか配列で持つわ
コード中に書くんであれば、コードとそれに関連する設定はまとめた方が読みやすいし修正ミスが防げる
>>32みたいに属性使うとか規約ベースでメソッド名使って定義するとかね
0062デフォルトの名無しさん
2015/01/01(木) 21:05:29.97ID:iDo75q0vそうでなければ一つにまとめりゃいいし
一つで済むならenum連番を拒む理由もないはず
enum連番なら配列に入れられるからパフォーマンスも良いし
0063デフォルトの名無しさん
2015/01/01(木) 21:31:21.13ID:dlaa3g2E1つに纏めるっていうのは状態遷移表を一つに纏めるって意味じゃないぞ
[State(A), Trigger(B), Trigger(C)]
void OnA() { ... }
[State(B), Trigger(A)]
void OnB() { ... }
こんな風に処理と設定をセットにするってこと
設定は設定、処理は処理でまとめるよりもこのやり方の方が良いかどうかは場合によるが、言いたいのは
・設定は設定でまとめるんならコード中に中途半端に混ぜないで外部ファイルに出せ
・コード中に設定書くなら処理と纏めろ
ということ
0064デフォルトの名無しさん
2015/01/01(木) 22:06:23.87ID:MUP8EK3k方法がわかりません。
こんなのをイメージしているんですが。
var console = new DebugConsole(new MyScript());
本体のアプリを実行しながら、コンソールを起動して、
コンソールからの入力をMyScriptに渡して、
本体のアプリとやり取りした結果をコンソールに返したいのです。
0065デフォルトの名無しさん
2015/01/01(木) 22:14:19.48ID:aZRx2Zh30066デフォルトの名無しさん
2015/01/01(木) 22:20:27.58ID:dlaa3g2E>>65の言うように標準入出力使うのが筋だけど結構面倒でまどろっこしいよ
やりとりの内容によるが、複雑な制御が必要ならIPC使ったほうがいいかも
0067デフォルトの名無しさん
2015/01/01(木) 22:27:48.27ID:MUP8EK3k例えば、コンソールで
get "test" とかやると
本体アプリのdictionaryインスタンスからtestを取得して返すみたいなことをしたいんです。
0068デフォルトの名無しさん
2015/01/01(木) 23:22:14.46ID:dlaa3g2Eなら標準入出力使うよりIPCの方がいいよ
標準入出力だと本体側で入力待ちのための専用スレッドが必要になったりするし
全部文字列でやりとりしなきゃいけないからコマンドの解析などは全部本体側で実装することになってしまう
自分でスレッド立てるのも本体にデバッグ用の処理を全部書くのも嫌でないなら、
コンソールアプリ使うのはやめてAllocConsoleで本体側から直接コンソールを表示することもできる
これならプロセス間のやりとりはいらない
0069デフォルトの名無しさん
2015/01/01(木) 23:41:37.70ID:MUP8EK3k本体プログラムの内部でluaインタプリタが動いていて、
デバッグのコンソールからもそのインタプリタに入力を送れるようにしたいです。
IPCについても調べてみます!
0070デフォルトの名無しさん
2015/01/02(金) 11:37:09.11ID:+yHd1Kpb別に設定だけでもC#で書けばインテリセンスの加護は受けられるし可読性も高くできる
外部に書き出すメリットはないよ
処理と設定を一緒にする場合もクラスと属性なんて言う冗長性の高いものじゃなくて
enumとラムダ式にした方がずっと可読性が高く書きやすく出来る
スクリプティングの段階に入ってもC#から離れなければメリットは大きいよ
0071デフォルトの名無しさん
2015/01/02(金) 11:41:48.09ID:UoXQYS7H0072デフォルトの名無しさん
2015/01/02(金) 11:51:03.67ID:+yHd1Kpb静的言語をスクリプティングに適用するノウハウが浸透していないだけだと思う
まあユーザーがいじることを想定した設定なら外部に書き出すこともあるだろうけど
そんなこと出来ても喜ぶのは変態だけで普通はOption画面からGUIで設定するわけだしな
0073デフォルトの名無しさん
2015/01/02(金) 12:34:57.51ID:MtiBaX+Y0074デフォルトの名無しさん
2015/01/02(金) 12:37:56.70ID:3oVUtplv0075デフォルトの名無しさん
2015/01/02(金) 12:40:50.06ID:5Yq30nMG外だしにしといて悪くはないと思うよ。GUI 自動で作るとか
0076デフォルトの名無しさん
2015/01/02(金) 12:46:10.56ID:UoXQYS7Hどうせリフレクションで情報収集するんだからついでに簡単にできるでしょ
0077デフォルトの名無しさん
2015/01/02(金) 12:55:28.12ID:5Yq30nMG0078デフォルトの名無しさん
2015/01/02(金) 13:00:33.89ID:UoXQYS7Hということにすればいいだろう
表作るんなら>>63みたいなスタイルはミスを生みやすくなるだけだから外部ファイルでいいと思う
DRYだよ
007978
2015/01/02(金) 13:06:53.32ID:UoXQYS7H表作るんなら→手作業で表作るんなら
0080デフォルトの名無しさん
2015/01/02(金) 13:10:06.15ID:JU2xwz8d今、VS Express2013のC#で作っているけど
イベント登録の"+="の使い方が解らなくて、一つのクラスで作っている。
"using"の使い方次第なのかな?
0081デフォルトの名無しさん
2015/01/02(金) 13:15:33.00ID:+yHd1Kpb可読性を上げるためにはひと目で見て把握できる範囲を広げるために冗長性を下げる必要があり
また冗長性が低くないと書いてて嫌になってしまうという問題もある
書いて読んで修正するっていう作業をスムーズにしてスクリプティングの効率を上げるには
属性やなんかで冗長に書いてからプログラムで表を自動生成するのではダメだよ
読んで即編集できるように冗長性の低いフォーマットで記述されている必要がある
C#ならインテリセンスの加護を受けて安全で速く書ける
>>73
編集可能にするにしてもデフォルト設定はどこかにガリガリ書かなきゃいけないわけで
人間が手で書ける形式の設定ファイルを外出ししてそれでデフォルト設定も書くか
デフォルト設定をC#で書いてGUIで編集することにして
人間が読み書きすることを想定しないファイルフォーマットで保存するかといった程度の違いの話だな
0082デフォルトの名無しさん
2015/01/02(金) 14:19:29.57ID:h8FNsbbo馬鹿か
0083デフォルトの名無しさん
2015/01/03(土) 13:04:04.79ID:xZbaMjzc↓
コンストラクタを書くとコンパイルが通った
これって構造体にはデフォルトのコンストラクタがないという事ですか?
クラスと違って必ずコンストラクタ書かないと駄目なんですか?
0084デフォルトの名無しさん
2015/01/03(土) 13:08:04.43ID:j/TgmM2H具体的にどう書いたらエラーになったの?
0085デフォルトの名無しさん
2015/01/03(土) 13:32:40.25ID:xZbaMjzc{
public int x, y; // フィールド
}
public class Player_2D : MonoBehaviour {
CoOrds coOrds = new CoOrds();
coOrds.x = 10;
}
↑★エラー
public struct CoOrds
{
public int x, y;
}
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
public class Player_2D : MonoBehaviour {
CoOrds coOrds = new CoOrds(100,50);
}
↑★通った
こんな感じです
0086デフォルトの名無しさん
2015/01/03(土) 13:35:18.49ID:0VTOA39G↑こうやってyのほうも初期化してやれば大丈夫。
0087デフォルトの名無しさん
2015/01/03(土) 13:41:01.42ID:xZbaMjzcクラスと違って必ず全フィールド初期化する必要があるんですね
0088デフォルトの名無しさん
2015/01/03(土) 13:41:51.03ID:0VTOA39G0089デフォルトの名無しさん
2015/01/03(土) 13:44:08.10ID:W1+QD1Kd明示的にデフォルトコンストラクタを呼ぶ必要があるけど、書くたびにこんなの自動でやってくれよと思う。
0090デフォルトの名無しさん
2015/01/03(土) 14:03:25.84ID:EzY/doXvget setで細工するのって悪手なんだろうか
public struct Hoge
{
private int _number;
public int Number { get { return _number + 10; } set { _number = value - 10; } }
}
0091デフォルトの名無しさん
2015/01/03(土) 15:01:28.05ID:C22WgX+v見た目と中身が一致してないとトラブルの元になる可能性がある
クラスの方が無難
0092デフォルトの名無しさん
2015/01/04(日) 00:00:53.54ID:Knmlwtn7これってunityのみの話?
デフォルトコンストラクタのインスタンス作成で、int型は0に初期化されるよね?
0093デフォルトの名無しさん
2015/01/04(日) 01:08:25.59ID:+rZjO+Yw0094デフォルトの名無しさん
2015/01/04(日) 01:12:49.99ID:+tHlT8u40095デフォルトの名無しさん
2015/01/04(日) 01:17:48.81ID:+rZjO+Yw0096デフォルトの名無しさん
2015/01/04(日) 04:52:16.18ID:BYramH0M悪手じゃないと思える方が不思議。
0097デフォルトの名無しさん
2015/01/04(日) 11:35:01.06ID:VztenZHc(´・ω・`)いろんな人がいるわね
0098デフォルトの名無しさん
2015/01/04(日) 11:54:41.15ID:V2qD8ALgstructの全てのフィールドを埋めないといけないのは
structの自前定義コンストラクタの中とかout変数の中とかだけじゃなかったか
0099デフォルトの名無しさん
2015/01/04(日) 11:59:37.45ID:pmYq5Gj40100デフォルトの名無しさん
2015/01/04(日) 17:21:16.29ID:BwoXMWJD0101デフォルトの名無しさん
2015/01/04(日) 17:36:24.77ID:+rZjO+Yw0102デフォルトの名無しさん
2015/01/04(日) 18:07:18.39ID:SGTkLy8I0103デフォルトの名無しさん
2015/01/04(日) 18:10:21.89ID:Rixhug78年明け一発目に笑ったのがこれ
会社いきたくねーなー
0104デフォルトの名無しさん
2015/01/04(日) 18:15:58.07ID:XBKS/x+u0105デフォルトの名無しさん
2015/01/04(日) 18:40:07.66ID:W7Dn89Wi例えば、Windows FormのSizeとClientSizeなんか>>90と似たような実装だろう。
0106デフォルトの名無しさん
2015/01/04(日) 18:45:20.74ID:+rZjO+Yw0107デフォルトの名無しさん
2015/01/04(日) 18:55:47.56ID:SGTkLy8I実装こんなんだったよ
ちなみにControlクラスね
ttp://ideone.com/wLGaud
0108デフォルトの名無しさん
2015/01/04(日) 19:00:01.67ID:BYramH0M初期値が基点として何らかの意味を持っているなら分かる。即値は勘弁して欲しいが。
上記のような意味が無く初期値を与えるためだけの実装ならあり得ない。誤解を招くだけ。
0109デフォルトの名無しさん
2015/01/04(日) 19:01:01.11ID:XBKS/x+u0110デフォルトの名無しさん
2015/01/04(日) 19:13:30.05ID:pmYq5Gj40111デフォルトの名無しさん
2015/01/04(日) 19:51:19.43ID:F+SkZ8NF確かに初期値を与える目的ならありえんね。
>>90がそう書いてるのを読み飛ばしてたよw
0112デフォルトの名無しさん
2015/01/04(日) 23:08:11.87ID:zeAkgQcd最新のEntity Data Model DesignerをVisualStudio2010のExpressで使うことは可能でしょうか?
ライブラリはとって来て動いてるけど、デザイナーは古いままのようで、
どこで入手するのかすら分かりません
方法知ってる人がいたら教えてください
0113デフォルトの名無しさん
2015/01/04(日) 23:14:59.80ID:pmYq5Gj40114デフォルトの名無しさん
2015/01/05(月) 00:24:57.21ID:CcrdyzYe�@class Hoge(){
public int x = 10;
}
というクラスを作る
↓
�A Hoge hogeinst = new Hoge();でHogeのインスタンス取得
↓
�B ArrayList testlist = new ArrayList();を作り、testlist[0]にhogeinstを入れる
↓
�Cclass Hoge2内で
Hoge thisClass = testlist[0];
とする
この時testlist[0]にはクラスHogeが入っているので、そのフィールドのxに
アクセスしたいんですが(できますよね?)
int y;
y = thisClass.x;
とかしても、リスト要素にxなんてものはありませんと言われます。
なぜですか?
デバッガ上でthisClassの中を見るとちゃんと実体が入っていて、xの値も見れます。
0115デフォルトの名無しさん
2015/01/05(月) 00:27:41.19ID:Y6BCcXgqあなたが参考にしている文献は古いので新しいのを探しなさい
0116デフォルトの名無しさん
2015/01/05(月) 00:40:39.01ID:sgWfPCE2参照するクラス名がハイパーリンクになっていないのに
クラスの名前空間が書かれていないとイラっとする
0117デフォルトの名無しさん
2015/01/05(月) 00:42:18.63ID:Y6BCcXgq>Hoge thisClass = testlist[0];
これコンパイル通らないだろ。
質問するときは下手に省略しない。
理想的には、エラーが出る最低限のコードをどこかに貼る。
http://ideone.com/zC9Ig5
0118デフォルトの名無しさん
2015/01/05(月) 01:33:11.62ID:0eh7fjHk継承について勉強すべし
ArrayListはHogeの基底クラスであるObject型で格納するので、
thisClass = testlist[0]; のthisClassはObject型。
Object型に x というメンバーは存在しないので当然アクセス不可。
ただ実体としてはあくまでもHogeクラスなので、デバッガでは見れるようになっている。
なので、Hogeクラスにキャストすれば良い
Hoge thisClass = (Hoge)testlist[0]
とはいえ、ArrayListはジェネリック対応までの古いクラスなので、
>>115 氏と全く同意見。
0119デフォルトの名無しさん
2015/01/05(月) 02:21:12.29ID:CcrdyzYeありがとうございます。
すみません、気をつけます・・・。
>>118
ありがとうございます。
Listに直し、キャストも試してみます
0120デフォルトの名無しさん
2015/01/05(月) 03:18:54.29ID:CcrdyzYe一つのリストに入れたい時はList<T>は使えないですよね?
0121デフォルトの名無しさん
2015/01/05(月) 05:25:09.73ID:kYxtbyc6そんな構造が不要になるように考える
0122デフォルトの名無しさん
2015/01/05(月) 09:16:26.05ID:+R2flTDUVS2010でDbContext使いたい場合はEF5にしとけ
0123デフォルトの名無しさん
2015/01/05(月) 10:06:37.33ID:0eh7fjHk型が不明ってどんな場合?コードを書く時点で何を格納するか決まってるはず。
複数の型も怪しいけど。
基本的には同じ型、もしくは同じ基底クラスから継承したクラスを格納する。
List<基底クラス>
0124デフォルトの名無しさん
2015/01/05(月) 11:38:55.66ID:FTlsmlFT0125デフォルトの名無しさん
2015/01/05(月) 12:00:57.25ID:QplnPHvB0126デフォルトの名無しさん
2015/01/05(月) 14:58:15.89ID:CcrdyzYeなるほど・・・今日もう一度考えてみます
>>123
Randam.rangeによって入れるクラスがランダムに変わるんです
なのですが、どうもListに入れる型が入れるまで不明というのは
設計的にまずいようですので、一つのクラス内に複数のメソッドを作って
そのメソッドをlistに入れるという方向でやってみようと思います
0127デフォルトの名無しさん
2015/01/05(月) 15:16:16.37ID:X/XHMwki斬新すぎるw
0128デフォルトの名無しさん
2015/01/05(月) 15:22:49.76ID:CcrdyzYePGの友人にまずはメソッドで出来ないか考え、どうしても無理ならクラスでやれ
と言われたのを今思い出しました
メソッドで可能か考えずにいきなりクラスでやる設計にしたのが悪かったようです
普通にメソッドで可能だと思うので、メソッドでやります
ArrayListにしたのはListと違って型指定が不要で色んなクラスを入れられたので
ArrayListを使いました
こちらも言われた通りListに修正しようと思います
0129デフォルトの名無しさん
2015/01/05(月) 15:37:14.65ID:F0b7DCdm0130デフォルトの名無しさん
2015/01/05(月) 16:12:57.15ID:wIPFuinN>入れるクラスがランダムに変わる
ってどういう用途で必要?
本当に必要だったらabstract classかinterfaceで縛った方がいい
0131デフォルトの名無しさん
2015/01/05(月) 16:27:36.40ID:mE5biZZS無理な道をどう進めばいいかに拘ってはいけない
publicフィールドとメソッドだけでも十分何でも作れるよ
0132デフォルトの名無しさん
2015/01/05(月) 17:04:56.11ID:CcrdyzYeトランプやカード(のような種類のあるもの)をランダムでデッキに積む処理です
それぞれのカードの種類をクラスで作りました
0133デフォルトの名無しさん
2015/01/05(月) 17:08:59.64ID:0G+rQibS0134デフォルトの名無しさん
2015/01/05(月) 17:40:38.34ID:QplnPHvBその共通点を基底クラスにして派生クラス作ればいいだけさ
List<基底クラス>で用意すれば派生クラスをいくら入れてもなんとかなる
どこまで基底クラスに機能を持たせるかは経験を積んで判断してくれ
0135デフォルトの名無しさん
2015/01/05(月) 18:36:45.06ID:P8usTFQmやっぱり定石といってるやり方の方が正しいのかね?
最近ランダムソートをよく見る気がするが。
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=74460
0136デフォルトの名無しさん
2015/01/05(月) 18:47:09.51ID:FTlsmlFT{
var rand = random.Next(array.Length);
Swap(array, i, rand);
}
俺はこれだなあ
正しいかは知らん
0137デフォルトの名無しさん
2015/01/05(月) 18:55:57.15ID:Y6BCcXgq標準ライブラリにあるやつ
FisherYates
俺俺アルゴ
C#じゃない場合も含めて
0138デフォルトの名無しさん
2015/01/05(月) 18:59:01.09ID:Y6BCcXgqだいたいFisherYatesで実装されてると思う
0139デフォルトの名無しさん
2015/01/05(月) 20:34:33.21ID:X/XHMwki処理でカードの種類を区別したいだけなら整数値でいいよ
トランプなら百の位でマークを、十と一の位で数字を表すとかで十分すぎる
カードクラスなんかいらない
0140デフォルトの名無しさん
2015/01/05(月) 20:54:34.70ID:O5Cj2lUa0141デフォルトの名無しさん
2015/01/05(月) 21:04:57.32ID:X/XHMwkiトランプなら手札クラスや場札クラスまででいいと思うよ
カード型があってもアルゴリズム記述の邪魔になるだけ
0142141
2015/01/05(月) 21:13:21.66ID:X/XHMwkiカード型がメソッドやプロパティを持ってる方が便利な場面はあるだろうな
ページワンで「約札かどうか」とか、ルール上、各カード自体が特別な性質を持ってると見なせる場合
0143デフォルトの名無しさん
2015/01/05(月) 23:46:57.60ID:i4FQe74T継承関係あろうがなかろうが、ゲームで使うオブジェクトを片っ端からぶちこめ。
取り出すときに、System.Linq.Enumerable.OfType<Hoget>(arraylist)とかで取り出せばいい。
0144デフォルトの名無しさん
2015/01/05(月) 23:55:32.16ID:4ygqeEMHそうするメリットが皆無なのにする意味がない。
0145デフォルトの名無しさん
2015/01/06(火) 00:20:25.34ID:yfzj11GY0146デフォルトの名無しさん
2015/01/06(火) 00:35:48.24ID:9rh5iKlfList<Object>
0147デフォルトの名無しさん
2015/01/06(火) 00:45:48.08ID:thA/82xLカードクラスを追加したら、他の部分もそれに合わせて変更が必要になるじゃん?
カードクラスを追加しても、他の部分を変更せずに済むようにするのが良い設計だよ
その方法が>>134
0148デフォルトの名無しさん
2015/01/06(火) 00:49:55.98ID:Sh5lmqQgなぜですか?
0149デフォルトの名無しさん
2015/01/06(火) 00:51:16.47ID:P27SxgEVモータポー
ミッソッ
ポテイトゥ
0150デフォルトの名無しさん
2015/01/06(火) 00:58:06.22ID:dzcmrdpWcharはキャラって読みそうだけど、
通はシャアって読むよね!
0151デフォルトの名無しさん
2015/01/06(火) 01:00:32.54ID:nsrYhV9A数字がintのクラス一つあれば十分
0152デフォルトの名無しさん
2015/01/06(火) 01:03:06.40ID:yfzj11GYならないよ。
list.OfType<Interface>で取り出せばいいよ。
0153デフォルトの名無しさん
2015/01/06(火) 03:41:49.07ID:lXgSl7Koそれなら、List<Interface>で良いんじゃ。
0154デフォルトの名無しさん
2015/01/06(火) 06:50:09.33ID:Gue0XuXVそれだと入れられなくないか?
0155デフォルトの名無しさん
2015/01/06(火) 10:00:22.93ID:tMvZ7xD7これ結構早い段階というか最初から?偏りがあるんじゃないかって疑ってたみたいだけど、そういうのってなんとなく?感覚的に?あるいは論理的に?分かるもんなの?
なんにしても、なんとなく適当にやると簡単に偏りとか出てしまうんだな。
0156デフォルトの名無しさん
2015/01/06(火) 10:23:55.04ID:IQcBbcwX0157デフォルトの名無しさん
2015/01/06(火) 12:36:40.69ID:M5IoxY0a・OrderByは安定ソートである
この2点さえ知ってれば明らかでしょ
安定ソートでないアルゴリズムでも重複キーの順序は大抵何らかの単純な法則に従うから偏るだろうね
>>136はNext(i, array.Length)に変えたら一様になるよ
インプレースだから分かりらさ
0158デフォルトの名無しさん
2015/01/06(火) 12:38:49.14ID:M5IoxY0aインプレースだから分かりにくいけど、直感的には袋に入れた玉を無作為に取り出して並べるのと等価
0159デフォルトの名無しさん
2015/01/06(火) 12:52:09.52ID:RdEZdnsU0160デフォルトの名無しさん
2015/01/06(火) 13:05:59.44ID:IQcBbcwX理解せずに無視してるとなるとそれは
0161デフォルトの名無しさん
2015/01/06(火) 13:10:43.51ID:9BIJAN3Y等価に思えんけど。
それではインデックスが若い物ほどSwapされる頻度の平均値が上がってしまう。
0162デフォルトの名無しさん
2015/01/06(火) 13:13:38.84ID:IQcBbcwX0163デフォルトの名無しさん
2015/01/06(火) 14:53:07.88ID:nsrYhV9A>Next(i, array.Length)に変えたら一様になるよ
全く意味不明だな
元がどう一様ではないのか説明してみろよ
0164デフォルトの名無しさん
2015/01/06(火) 14:59:54.65ID:3sTwSoyeでそれは>>158の解釈通りでしょ
0165デフォルトの名無しさん
2015/01/06(火) 15:01:16.62ID:3sTwSoye0166デフォルトの名無しさん
2015/01/06(火) 15:02:50.44ID:9BIJAN3Y0167デフォルトの名無しさん
2015/01/06(火) 15:07:35.47ID:A5fXnf9Kやってることはスワップなんだが、論理的には袋の中から一つずつランダムに取り出すのと同じになるんだよ、>>158のやり方で。
よく考えれば分かる。
最初のやり方は一様にならない。
0168デフォルトの名無しさん
2015/01/06(火) 15:09:36.32ID:3sTwSoyeどういうこと?157のように変えたらarray[0]は初回のみしかswapされないと思うんだが
0169デフォルトの名無しさん
2015/01/06(火) 15:09:40.81ID:nsrYhV9A元が一様ならばNext(i, array.Length)にするのは無駄な処理が増えるしシンプルさを損なうから無粋だろう
0170デフォルトの名無しさん
2015/01/06(火) 15:10:38.19ID:A5fXnf9Kスワップする事で、袋から選んだボールを並べた上で、選ばなかったボールを袋に返してることになるんだよ。
ちょっとわかりにくいけどよく考えてみれば分かるはず。
0171デフォルトの名無しさん
2015/01/06(火) 15:12:21.30ID:A5fXnf9Kスワップじゃなくて、袋から一つずつ取り出してるんだ。
一回取り出した奴を含めて選びなおしてたらおかしくなるだろ?
0172デフォルトの名無しさん
2015/01/06(火) 15:17:05.25ID:nsrYhV9Aボールを袋に返すっていうのがまず意味不明だし
袋に返すとどう一様じゃなくなるのかも分からんな
0173デフォルトの名無しさん
2015/01/06(火) 15:17:15.48ID:9BIJAN3Yだから、初期状態の位置によって何度も袋に戻される玉とそうでない玉が出るんだから全然等価じゃありません。
0174デフォルトの名無しさん
2015/01/06(火) 15:21:19.22ID:9BIJAN3YSwap(0, 1)→Swap(1, 2)→Swap(2, 3)→Swap(3, 4)
と最大4回swapされる可能性があるが、初期状態でarray[4]に入ってる値は
最大でも1回だけ。
0175デフォルトの名無しさん
2015/01/06(火) 15:22:15.54ID:nsrYhV9A現実のボールを袋から取り出してるわけではないからそのメタファーに従う必要はない
別にボールを取り出すようにやらないと配列が一様なランダム性を得られないわけではないし
さらにいえばボールを袋に返してはいけないのは並べ終わらなくなるからであって一様性とは関係ないはずだ
0176デフォルトの名無しさん
2015/01/06(火) 15:27:31.97ID:A5fXnf9K例えばボール3つの場合、ボールの並び方は
123 132 213 231 312 321
の6パターンになる。
一方、スワップの組み合わせ数は3×3×3で27パターン。
つまり6パターンで割り切れない。
ということは、どういうことになるかというと、パターン数に偏りがあるって事になる。
分かる?
0177デフォルトの名無しさん
2015/01/06(火) 15:30:16.08ID:A5fXnf9K違うよ。
プログラムの動作をメタファーで表現してるのではなくて、元々の袋から一つずつ取り出して並べる操作を、プログラムでシンプルに実装するとこうなるんだ。
論理的に等価なんだよ。
0178デフォルトの名無しさん
2015/01/06(火) 15:31:51.57ID:9BIJAN3Y0179デフォルトの名無しさん
2015/01/06(火) 15:34:02.23ID:A5fXnf9K一方で、>>157のやり方だと、スワップの組み合わせ数は
3×2×1で6パターン
つまりボールの並び順のパターン数と同じになる。
袋から一つずつ取り出して並べるのと等価になるようにプログラムしてるんだから当然だけど。
0180デフォルトの名無しさん
2015/01/06(火) 15:35:29.20ID:nsrYhV9Aまずスワップの組み合わせ数とボールの並べ方の数に何の関係があるんだよ
関係無いものを並べてみただけのただの詭弁だ
ランダム性が一様であるかどうかは「配列のすべてのインデックスで、
全ての項目から均等な確率で一つが選ばれて割り当てられているかどうか」で決まる
だから>>136は全く正しいアルゴリズムである
0181デフォルトの名無しさん
2015/01/06(火) 15:40:01.80ID:A5fXnf9Kまず一回目のループで3つのうちどれか選ぶよな。
それが一つ目のボールだ。
配列の1つめと、選んだボールをスワップする。
配列の1つは選んだボールになり、2つ目と3つ目は袋に残ったボールになる。
2回目のループで配列の2つ目と3つ目どちらかを選ぶ。
つまり、袋に残った2つのどちらかを選ぶ。
配列の2つ目と入れ替える。
配列の2つめは、袋から2回目に選んだボールとなり、配列の3つ目には選ばれなかったボールが残る。
こういう事だよ。
0182デフォルトの名無しさん
2015/01/06(火) 15:43:07.32ID:A5fXnf9Kさすがに
確率を勉強し直せとしか言えん。
スワップのパターン数=出来上がる配列の最終的なパターンの総数だろうが。
その総数が、並び方のパターン数の倍数にならないなら、並び方によって出現するパターン数が替わってしまう=一様になってない。
何で分からん?
0183デフォルトの名無しさん
2015/01/06(火) 15:43:43.21ID:IQcBbcwX0184デフォルトの名無しさん
2015/01/06(火) 15:46:15.23ID:3sTwSoye>>157だと偏ってないように見えた
ちょっと確率の計算を勉強しなおしてくる
0185デフォルトの名無しさん
2015/01/06(火) 15:51:38.69ID:IQcBbcwX0186デフォルトの名無しさん
2015/01/06(火) 15:57:49.21ID:3sTwSoye0187デフォルトの名無しさん
2015/01/06(火) 16:04:24.60ID:3sTwSoye合ってるよね?
0188デフォルトの名無しさん
2015/01/06(火) 16:04:38.57ID:9BIJAN3Ya[i]からa[n]までの部分配列を袋とみなして玉を取り出した後、袋とみなす部分配列の始点を
インクリメントするのと同じだから、やっぱり>>157-158が正しいなw
すまんかった。
0189デフォルトの名無しさん
2015/01/06(火) 16:22:27.74ID:W2F4pWSu俺はやらないけどな
0190デフォルトの名無しさん
2015/01/06(火) 16:41:32.07ID:A5fXnf9K合ってる。
0191デフォルトの名無しさん
2015/01/06(火) 16:41:49.09ID:3sTwSoyehttp://ideone.com/Uic7zf
0192デフォルトの名無しさん
2015/01/06(火) 18:03:02.39ID:GG94B219実際どの程度偏ってるんだろ
0193デフォルトの名無しさん
2015/01/06(火) 18:17:27.51ID:fNWhMhIPCのデフォRand()がアレなのは常識だけど、C#デフォのはどうなの?
メルセンヌ・ツイスタとかなら文句はないんだが
0194デフォルトの名無しさん
2015/01/06(火) 18:21:06.20ID:W2F4pWSu0195デフォルトの名無しさん
2015/01/06(火) 18:27:12.50ID:pqQorvDTうん。
0196デフォルトの名無しさん
2015/01/06(火) 18:29:24.17ID:pqQorvDT>>184
ジワジワくるw
息してないけど。
0197デフォルトの名無しさん
2015/01/06(火) 18:30:35.79ID:pqQorvDT0198デフォルトの名無しさん
2015/01/06(火) 18:32:22.80ID:nsrYhV9A>スワップのパターン数=出来上がる配列の最終的なパターンの総数
何言ってんだ一体
たとえば同じ箇所を二回スワップすれば同じパターンに戻るんだからスワップの総数は最終的なパターンの総数になんかなるわけないだろう
たしかに俺が間違っていたことは間違いないが
これが詭弁なことにも違いはない
>>191の結果を見ると
結局最初に0番にスワップされた奴はもう戻って来られない可能性が高いが
0は自由な位置に移動した後もう一度必ず移動するチャンスがあるので
その分移動しやすいってことか
なので自分の数字より若い位置に移動したらもう移動しない可能性が高いので
自分の数字より前の濃度が高くなるのか
0199デフォルトの名無しさん
2015/01/06(火) 18:42:43.31ID:pqQorvDTだから確率を勉強しし直すといいよ。
同様に確からしい起こりうる事象のすべての組み合わせのうち、
ある事象が起こる回数の割合が、その事象の起こる確率だ。
同様に確からしい、起こり得るすべての事象の総数がここでは27パターンなわけ。
この27パターンは同じ確率で発生するわけ。
並び方のパターンは6で、総事象が27ってことは、確実に多い並びと少ない並びがあるわけ。
27パターンは同じ確率で発生するんだから、少ない並びのパターンが発生する確率は少なくなるわけ。
確率を分かってたら総パターンの意味なんてすぐ分かるけど、ちゃんと理解してないからピンと来ないんだな。
0200デフォルトの名無しさん
2015/01/06(火) 18:45:28.69ID:pqQorvDT詭弁でもなんでもなくて、確率の話ではふつうの言い方だよ。
理解できないおまえがアホなだけ。
結局お前の言ってたこと全部間違ってるじゃんw
0201デフォルトの名無しさん
2015/01/06(火) 18:52:03.53ID:W2F4pWSu0202デフォルトの名無しさん
2015/01/06(火) 19:15:40.97ID:nsrYhV9A現象を理解してないから詭弁を使うわけ
俺は現象を理解したから無意味な詭弁で妙な説明をする必要はなくなったの
そしてお前は煽ってるだけで最初からなんにも理解できてないわけ
確率の上っ面を舐めて変な解説に屋上屋を重ねただけ 現象には全く届いていない
0203デフォルトの名無しさん
2015/01/06(火) 19:18:01.57ID:W2F4pWSuあと5時間もあるのよ?
0204デフォルトの名無しさん
2015/01/06(火) 19:59:29.97ID:d8xiUFfPおまえは何を言ってるんだ…
0205デフォルトの名無しさん
2015/01/06(火) 20:06:27.17ID:Q7R46vB50206デフォルトの名無しさん
2015/01/06(火) 20:10:09.17ID:d8xiUFfP27の根元事象は、結果としてこの6事象はのいずれかに対応している。
偏りがないためには、結果の6事象が同じ確率で発生しなければならない。
しかし、根元事象が27なので、結果の6事象は均等に発生せず、6事象の発生確率は確実に異なる。
だから>>136は絶対に偏りが発生する。
それだけの話で、確率としては当たり前の話。
理解できない奴がアホ。
0207デフォルトの名無しさん
2015/01/06(火) 20:13:24.83ID:d8xiUFfP0208デフォルトの名無しさん
2015/01/06(火) 20:20:40.77ID:Q7R46vB5これがidentifyのあるコミュニティだったらユーザー封印レベルだった
0209デフォルトの名無しさん
2015/01/06(火) 21:11:12.98ID:qlHRI5QUつまりこういうことか。
https://ideone.com/crwsk4
0210デフォルトの名無しさん
2015/01/06(火) 21:24:47.79ID:MYBQVLqU0211デフォルトの名無しさん
2015/01/06(火) 21:36:10.21ID:O9PzdG7T単純に大小比較で終わりそうな気もするがw
0212デフォルトの名無しさん
2015/01/06(火) 21:46:17.93ID:Z/uJ2lW6階乗って事は、n以下の前自然数が因数として含まれてるわけだ。
割り切れる訳ないよね?
証明できる。
準備:隣合う二つの整数は互いに素
証明:a, b, が d で割り切れるなら、差 a - b も d で割り切れる。(∵a = q1・d, b = q2・d とおくと a - b = d(q1 - q2))
a - b = 1 ならば、a, b, ともに割ることのできる 1より大きい整数は存在しない、もしあったら、a - b = 1 をわることができることになり矛盾。
>>210 の証明
素因数分解は一通りであることを仮定する(これは実はあたりまえじゃない)
n を素因数分解すると p1〜p(n) の m 種類の素数で構成されていたとする。このとき、 n^n も m 種類の素数で構成される。
ここで n >= p1・p2・...・p(n) 、そして、p1・p2・... p(n) とp1・p2・... p(n) - 1 は互いに素
すなわち n! を素因数分解すると p1, p2, ... p(n) のどれとも異なる素数を持つ
ゆえに、n^n は n! で割り切れない Q.E.D
0214デフォルトの名無しさん
2015/01/06(火) 22:23:51.73ID:qlHRI5QUn >= p1・p2・...・p(n)
じゃなくて、
n = p1・p2・...・p(m)
じゃないの?
0215デフォルトの名無しさん
2015/01/06(火) 22:28:02.85ID:uMZjRgvb0216デフォルトの名無しさん
2015/01/06(火) 22:30:35.81ID:nsrYhV9AC#もプログラムも一切関わりのないことをプログラム板のC#スレにズルズル書き込んでるんじゃない
0217デフォルトの名無しさん
2015/01/06(火) 22:39:13.30ID:Z/uJ2lW6とっとと失せろよ
0218デフォルトの名無しさん
2015/01/06(火) 22:47:05.72ID:3D6Su9d8ああ、m と n の使い分けがごちゃごちゃだ‥てきとーに読み替えて
>>216
ごめん
0219デフォルトの名無しさん
2015/01/06(火) 22:55:20.05ID:3sTwSoye自分も見直したけど、あなたも確率の考え方は見直しといた方が良いよ
たぶん何か勘違いしてる
0220デフォルトの名無しさん
2015/01/06(火) 23:01:15.45ID:Bc4EA3Wj搾取されるんですけどね
0221デフォルトの名無しさん
2015/01/06(火) 23:08:04.94ID:Q7R46vB50222デフォルトの名無しさん
2015/01/06(火) 23:16:03.06ID:/zWcLRCZ0223デフォルトの名無しさん
2015/01/06(火) 23:28:31.96ID:Q7R46vB50224デフォルトの名無しさん
2015/01/06(火) 23:59:07.16ID:fH0Fgns+0225デフォルトの名無しさん
2015/01/07(水) 00:03:39.74ID:kDJhAAzR一応、報告と、また低レベルな質問をしに来たのですが
今はやめた方がいい感じでしょうか?
0226デフォルトの名無しさん
2015/01/07(水) 00:04:29.36ID:dafMrNYgロジックを説明されても理解できないなら、せっかく>>209でコード書いて
実証したんだからそれ見て納得してよ。
0227デフォルトの名無しさん
2015/01/07(水) 00:05:35.11ID:dafMrNYg別にいいよ。
荒れたって死人がでるわけじゃない。
多少スレッドの見通しが悪くなるだけだ。
0228デフォルトの名無しさん
2015/01/07(水) 00:05:49.11ID:2DuSSq4qいや、むしろこの流れを変えて欲しい
0229デフォルトの名無しさん
2015/01/07(水) 00:15:10.63ID:kDJhAAzRまず、
・カード・タイプごとにクラスを切るのをやめた
・カード種類の判別は普通のintの数字のみにした
・int型のリストにランダムでカード種類を表す整数リテラルを入れ、それをシャッフルする
これでやりました
結果から言うと、やりたかった事は出来ました
また、シャッフル(ランダムにする)する処理は昨日一日調べたのですが
FisherYatesを最初使っていたのですが、もっと簡単にできるのがあるという記事を見つけて
FisherYatesをやめ、以下のように書きました。
private static void Fisher(int[] c)
{
int[] cardlist = c; //引数の配列を格納
// 1回じゃ偏りが生じるっぽいので念のため何度かシャッフルを繰り返す
for (int cnt = 0; cnt < 10; cnt++)
{
DeckList.cardlist = cardlist.OrderBy(i => Guid.NewGuid()).ToArray();
}
}
正直、このグイッドについてはあまり理解してないのですが、要するにOrderByというソートメソッドと
乱数を発生させるグイッドメソッドを組み合わせてランダムにインデックスの値をソートさせると認識しています
まず1点目にお聞きしたいのは、上記の処理は何か問題点を含んでいないでしょうか?という事です
ちなみに偏りについてですが、あまり起きないに越したことはないと思いますが、そこまで是が非でも
偏りを解消したいというわけでもないので、程々乱れてくれればいいという観点です。
0230デフォルトの名無しさん
2015/01/07(水) 00:15:59.95ID:PZkMwQ+l偏るって、どれだけ偏るんだよ
使い物にならないくらい偏るわけないだろ
シャッフル厨は死ねよ
0231デフォルトの名無しさん
2015/01/07(水) 00:17:03.97ID:kDJhAAzR・カード・タイプごとにクラスを切るのをやめた
・カード種類の判別は普通のintの数字のみにした
・カード種類をintで判定するようにしたので、ArrayListをやめてint配列にした(public static int[] cardlist = {・・・})
・int型のリストにランダムでカード種類を表す整数リテラルを入れ、それをシャッフルする
0232デフォルトの名無しさん
2015/01/07(水) 00:23:45.46ID:kDJhAAzR・int型の配列にランダムでカード種類を表す整数リテラルを入れ、それをシャッフルする
でした
0233デフォルトの名無しさん
2015/01/07(水) 00:24:43.11ID:qh26SAEn0234デフォルトの名無しさん
2015/01/07(水) 00:26:17.95ID:/xILHur90235デフォルトの名無しさん
2015/01/07(水) 00:29:02.69ID:BcMWINqr最初の、入門書も読んでるか怪しい、ど素人にもほどがある質問に比べて、
別人かのようなレベルだし。
コードも自分が納得する動きになっているんであればそれで十分かと。
0236デフォルトの名無しさん
2015/01/07(水) 00:35:27.18ID:GJGYE4EM0237デフォルトの名無しさん
2015/01/07(水) 00:39:17.83ID:+paEBoihシャッフルは FisherYatesが正解だよ。
GUIDでソートは簡単に書くのが目的であって、
わざわざ偏るからループまでするくらいなら FisherYatesでいい。
0238デフォルトの名無しさん
2015/01/07(水) 00:41:20.08ID:+paEBoihGUIDは別に質のいいランダムじゃないしね。
0239デフォルトの名無しさん
2015/01/07(水) 00:45:57.08ID:+paEBoihどう見ても自分に言ってる。
自分に言ってるなら違和感ない。
0240デフォルトの名無しさん
2015/01/07(水) 00:49:11.22ID:6g40PNLQ>>224みたいな人がゲームを作るとカルドセプトのようになる
>>191,209でせっかく実際に偏りを見せてくれてるのに
0241デフォルトの名無しさん
2015/01/07(水) 01:06:06.00ID:nug8jEZh偏ってるって言ったところで
なぜそれが偏るのか説明できなきゃ理解したことにはならないんだよ
逆に言えばなぜそれが偏るのか理解できないから
トンチンカンな説明をしだすってこと
0242デフォルトの名無しさん
2015/01/07(水) 01:19:30.07ID:6g40PNLQ0243デフォルトの名無しさん
2015/01/07(水) 01:26:30.11ID:kDJhAAzR質問するレベルじゃない気もしますし
あとシャッフルはGuidやめてFisherYatesにします
ありがとうございました。
0244デフォルトの名無しさん
2015/01/07(水) 01:31:14.45ID:nug8jEZhなぜ自分より若いインデックスの濃度が高まるのか説明できるか考えてみるといい
いかに頓珍漢な説明をしているか分かるだろう
0245デフォルトの名無しさん
2015/01/07(水) 07:13:52.16ID:AKPWQzMrトンチンカンは消えろって言ってんだよ
自覚ねえのか昨日の地球で人類最低ランキング一位のカス
0246デフォルトの名無しさん
2015/01/07(水) 07:14:44.59ID:+paEBoihやっぱり勝手に勘違いしてるんだな。
一様でないのはこういう理由で明らかと言ってるだけで、どう偏るかについては何も言ってないのに。
こういう理由で一様でないのは明らか。
→こういう風に偏る説明になってない、トンチンカンだ。
アホか。
0247デフォルトの名無しさん
2015/01/07(水) 07:20:08.78ID:+paEBoihしかも実例で偏るの見た後でしか偏るわけがないって言い張ってたくせにw
0248デフォルトの名無しさん
2015/01/07(水) 08:36:08.25ID:lse0FVq20249デフォルトの名無しさん
2015/01/07(水) 08:40:58.67ID:lse0FVq2198 デフォルトの名無しさん sage 2015/01/06(火) 18:32:22.80 ID:nsrYhV9A
>>191の結果を見ると
結局最初に0番にスワップされた奴はもう戻って来られない可能性が高いが
0は自由な位置に移動した後もう一度必ず移動するチャンスがあるので
その分移動しやすいってことか
なので自分の数字より若い位置に移動したらもう移動しない可能性が高いので
自分の数字より前の濃度が高くなるのか
これか。
ワロタ。
じゃあ何で可能性が低いどころか絶対に戻ってこれない>>157で偏らないんだよ。
0250デフォルトの名無しさん
2015/01/07(水) 09:20:24.53ID:pOoHqu3JTuple<string, string>
Tuple<string, string, sring>
Tuple<string, string, sring, sring>
これを1つのTableクラスが複数の種類のTupleを扱うためには
どういう形で持てばいいのでしょうか
Tupleの共通する基底クラスがあればいいのですが・・・あるいはインターフェース
0251デフォルトの名無しさん
2015/01/07(水) 10:09:33.54ID:NB6nt07Bいまひとつどういう事をしたいのか分からない…
sringってのはstringの間違い?
0252デフォルトの名無しさん
2015/01/07(水) 10:16:24.34ID:NB6nt07B>>244
>>249
ジワる
0253デフォルトの名無しさん
2015/01/07(水) 10:29:32.20ID:pOoHqu3J要素の数が異なるTupleをまとめて1つの変数で表す方法
ないんだよねー
ようは ITuple があればいいんだけど(内部使用の同名のインターフェースはあるっぽいがちょっと違う)
0254デフォルトの名無しさん
2015/01/07(水) 12:41:40.75ID:DpCzErqF0255デフォルトの名無しさん
2015/01/07(水) 12:44:31.50ID:DpCzErqF>>209みるとどうもそういう簡単な話には見えないんだが。
0256デフォルトの名無しさん
2015/01/07(水) 13:20:09.53ID:6g40PNLQ全部stringなんだったらArrayとかListとかの別のコレクションに変えたらいいのでは
なぜTupleにしたいの
0257デフォルトの名無しさん
2015/01/07(水) 13:45:38.44ID:CxxL7eUt三下は引っ込んでろ
0258デフォルトの名無しさん
2015/01/07(水) 13:48:40.68ID:nug8jEZh自分より前のインデックスに移動する場合、
移動なしだった場合にN+1手目に来る自分が移動するチャンスが消えてしまう
N+1手目でN番目にある数字は自由な位置にランダムに移動できるので
それを経験すれば初期並び順の影響は消える
経験できない場合は初期並び順の影響がガッチリ残ってしまう
それはたとえば最初の1手で5番が0番に移動するケースではそこから9回再移動のチャンスが有る
でも2手目で5番が1番に移動したらあと8回しかチャンスがない
だから0番より1番の方が濃度が大きくなる
同じように9手目で何かの数字が8番に移動すると10手目でもう1回移動のチャンスがあるけど
10手目で9番に移動したらもう移動のチャンスはないので10番目の方が濃度が高い
9手目ともなると8番目に8が入ってる可能性が低くなるので初期と比べると影響は少なくなる
つまり一度でもN+1手目のランダムジャンプによるリセットが入れば初期並び順の影響は消えるので>>191では検出できなくなるわけだけど
再移動チャンスを繰り返していけばリセットから時を経るごとに大きいインデックスの方の濃度が高まっていく
自分より大きいインデックスに移動した場合はもう一度再帰的に「N+1手目にN番目のリセットを経験できるか」の
サイコロを振ることになるわけだけどこの影響もまた>>191では検出できない
あと「場合の数が並び順の倍数にならない」影響も検出はできないけど理論上存在してるはずだな
再移動なしなら再移動チャンス自体が存在しないので並び順の影響は発生しないわけだな
0259デフォルトの名無しさん
2015/01/07(水) 14:10:00.61ID:nug8jEZh若い番号に移動した後の再移動チャンスは常に大きなインデックスに引き上げられるチャンスなので
大きなインデックスに移動する可能性が高くなり、若いインデックスのものはそこに留まる可能性が低くなるってことだな
0260デフォルトの名無しさん
2015/01/07(水) 17:11:30.38ID:7MvMVdqp0261デフォルトの名無しさん
2015/01/07(水) 17:48:52.70ID:6g40PNLQ確率の遷移を表にしてあげたから見ながら考えてみてね
http://ideone.com/Sc1TQ4
0262デフォルトの名無しさん
2015/01/07(水) 18:04:15.93ID:6g40PNLQでもその1回はやってもやらなくても確率は均一のままなのか
0263デフォルトの名無しさん
2015/01/07(水) 18:27:39.03ID:6g40PNLQ0264デフォルトの名無しさん
2015/01/07(水) 18:31:20.23ID:nug8jEZhいやそんなのは頭のなかに出来てるけど
それを見ると何か新しいことが分かるのか?
0265デフォルトの名無しさん
2015/01/07(水) 18:36:15.77ID:6g40PNLQ0266デフォルトの名無しさん
2015/01/07(水) 18:45:01.14ID:XLZDHvL70267デフォルトの名無しさん
2015/01/07(水) 18:55:05.79ID:dA3MQeHU0268デフォルトの名無しさん
2015/01/07(水) 19:05:27.61ID:nug8jEZhそんなん見たって解釈しないと何も分からんがな
解釈した結果は>>258に書いたし
0269デフォルトの名無しさん
2015/01/07(水) 20:25:41.50ID:48bxsm4k0270デフォルトの名無しさん
2015/01/07(水) 20:26:36.75ID:nug8jEZh0271デフォルトの名無しさん
2015/01/07(水) 20:30:21.32ID:48bxsm4k0272デフォルトの名無しさん
2015/01/07(水) 20:34:01.48ID:48bxsm4k検出できないってどういう意味で書いてんの?
0273デフォルトの名無しさん
2015/01/07(水) 20:37:32.30ID:48bxsm4kまあ昨日からアホなことばっか書きながら、言い繕いばかりやって、書けば書くほど余計にアホとしか思われんぜ。
昨日の時点で根本的に頭悪すぎることはもう見えてしまってるから。
0274デフォルトの名無しさん
2015/01/07(水) 22:43:01.26ID:nug8jEZh一旦ランダムな位置に移動したら濃度が全インデックスで均一になるからどうスワップしようと偏らないので検出できない
これをリセットと表現している
並び順の倍数のやつは統計的に検出できるほどの量にならないってこと
0275デフォルトの名無しさん
2015/01/07(水) 23:37:56.54ID:+paEBoihそもそもそのリセットされた場合もされなかった場合も
その後のどんな動きもひっくるめて繰り返し試行した
統計的な結果が>>191なんだからリセットされた場合は
検出できないなんて表現自体がとっても変なんだが、
まあそこはおいとく。
後半がぶっ飛びすぎててもはやどうでも良いレベル。
根元事象の数が結果の並び順の倍数になってないことを、
いくつかある偏る原因の一つだとでも思ってるのか…
ほかの理由による偏りは統計的に見えているが、
倍数になってないことによる偏りは統計的に影響が
少なくて見えていないってか?
ユニークな考え方だなおい。
0276デフォルトの名無しさん
2015/01/07(水) 23:38:36.58ID:+paEBoihそもそもそのリセットされた場合もされなかった場合も
その後のどんな動きもひっくるめて繰り返し試行した
統計的な結果が>>191なんだからリセットされた場合は
検出できないなんて表現自体がとっても変なんだが、
まあそこはおいとく。
後半がぶっ飛びすぎててもはやどうでも良いレベル。
根元事象の数が結果の並び順の倍数になってないことを、
いくつかある偏る原因の一つだとでも思ってるのか…
ほかの理由による偏りは統計的に見えているが、
倍数になってないことによる偏りは統計的に影響が
少なくて見えていないってか?
ユニークな考え方だなおい。
0277デフォルトの名無しさん
2015/01/07(水) 23:54:35.46ID:+paEBoih根元事象ってのは、ありとあらゆる動きをすべて含んだ全結果だぜ。
お前がいろいろ説明したいろんな理由によって起こる偏りも
全て含んだ結果の集まりが根元事象だぜ。
根元事象をすべて並べてみればどういう偏りになるか見えるといっても良いかな。
倍数になってないのは偏る原因じゃないんだよ、むしろいろんな原因によって偏った結果を意味してるんだよ。
もし統計的に検出できるほどの量にならないとしたら、
それはつまり>>191は全く偏ってない結果になるってことだよ。
もうあんまり笑わすな。
0278デフォルトの名無しさん
2015/01/08(木) 00:38:57.21ID:VH1XIADf軽視されてたな。
大学ではまったく教わってないし、そもそも入試に出ないところが圧倒的に多かった記憶がある。
高専出身者に聞いたら高専では全く習わないって言ってた。
0279デフォルトの名無しさん
2015/01/08(木) 09:56:01.78ID:1y8mGCEd倍数になってないことによる影響は10の10乗回試行した時に1差がつくっていうものだ
これを統計的に検出するテストが作れるか作れないかは知らんが
少なくとも俺のPCでは現実時間では実行できない
0280デフォルトの名無しさん
2015/01/08(木) 10:14:37.49ID:jnBNhdgx倍数になってないのは原因じゃなくて結果だ。
倍数になってないことだけから分かる確実に発生する偏りの最小量ならそうなるとしても、影響って言わないんだよそんなのは。
そもそも分かってたらそんな言い方しない言い方をしてる時点で、ああ分かってないんだなというそれだけの話。
そもそも倍数でないことから分かるのは、少なくとも偏ってるということだけであって、
どの程度偏ってるとか偏ってないとかは何も想定できない。
倍数でないという条件から確実である最低限の偏りだった場合にその影響は見えないと勝手に言ってるだけで、
そんな条件はきちんと言わなきゃ無意味だし、実際もっと偏ってるわけだ。
そんな細かいレベルの話じゃない、これまでの数々の言動で、何も分かってないアホとしか考えられんと言ってるだけのこと。
0281デフォルトの名無しさん
2015/01/08(木) 10:20:55.79ID:jnBNhdgx統計的な頻度の表も、結果の見方、表現の一つ。
後で出てきた最終的な確率の数値表も結果の見方、表現の一つ。
どれも結果の表現、見方の一つであって、どれかが原因でどうなるという因果関係ではなく、単なる別の側面での見方。
0282デフォルトの名無しさん
2015/01/08(木) 11:27:33.77ID:1y8mGCEdこれ279の直後に書いたやつなんで280とかには答えてないけどごめんね
違うか
そもそも論から言えば
Fisher Yatesが決まって完全ランダムな数列が作れたとすれば
012になる場合の数も021になる場合の数も同じだ
だから次に1と2を入れ替えるスワップを行ったとしても偏りは発生しない
スワップは複雑な操作だから倍数になっていないから偏るというものではない
だがFisher Yatesのようなものが決まっておらず元の影響が残っているなら
>>209で示されているような影響が残る
元の影響が完全に残っている場合は10の10乗回で1の差になるけども
元の影響があまり残らないようにスワップしているわけだからこの影響がどの程度になるのかは見積もることすら俺には出来ないな
0283デフォルトの名無しさん
2015/01/08(木) 11:54:11.86ID:5iJyKn99これ以上書き込むと殺す
0284デフォルトの名無しさん
2015/01/08(木) 11:54:30.55ID:c12syUmk0285デフォルトの名無しさん
2015/01/08(木) 12:00:03.43ID:1y8mGCEdまあ悪くないな
0286デフォルトの名無しさん
2015/01/08(木) 12:12:29.97ID:WfhjodiBまた分かってない。
スワップ回数と場合の数は違う。
スワップ回数は>>136も>>157も同じだろうが(最後の分は違うとも言えるが)。
シャッフル終わった後に固定場所の二つを入れ替えても、場合の数は変わらない。
ランダム選んで入れ替えたら変わる。
当たり前の話。
0287デフォルトの名無しさん
2015/01/08(木) 12:15:13.71ID:WfhjodiBもういい加減にしろよ。
最初から、倍数になってないから一様でない(偏ってる)のは明らか、という話で、間違いも何も、明らかな事実だ。
ていうかおまえ論理的にはあるはずって言ってたじゃんあれは嘘だったのかよw
はいもう終わり。
バカだって表明は事はもう十分だからやめとけ。
0288デフォルトの名無しさん
2015/01/08(木) 12:20:17.80ID:5iJyKn99黙れ殺すぞ
0289デフォルトの名無しさん
2015/01/08(木) 12:23:11.97ID:GXT9U9310290デフォルトの名無しさん
2015/01/08(木) 12:24:28.44ID:WfhjodiB場合の数は変わってないから倍数のままと言うことは変わらない。
けど結果の並びは変わるから、全並びが均等のままかどうかは俺には分からない。
ちゃんと考えたら分かるかも知れんが。
倍数になってないことからは、偏ってることが確実と分かるだけ、それ以上の何者でもない。
最初からそういう話しかしてない。
>>288
通報されるぞ
0291デフォルトの名無しさん
2015/01/08(木) 12:25:57.51ID:WfhjodiB0292デフォルトの名無しさん
2015/01/08(木) 12:34:30.60ID:qIfkunGXhttp://peace.2ch.net/test/read.cgi/tech/1197620454/
0293デフォルトの名無しさん
2015/01/08(木) 13:00:28.01ID:VLjg/Twcテメエ自身がそのマルチじゃねえか馬鹿が。
0294デフォルトの名無しさん
2015/01/08(木) 16:07:45.40ID:G25LXaeS0295デフォルトの名無しさん
2015/01/08(木) 16:17:06.20ID:qIfkunGX0296デフォルトの名無しさん
2015/01/08(木) 19:50:35.56ID:gLCA3hvH基底すぎぃ
0297デフォルトの名無しさん
2015/01/08(木) 22:17:56.21ID:RxvcgyHBメールで「公開されましたよ〜!」みたいな通知ってこないもんなの?
サイト上では既に公開されてるのに・・・。
深夜に一斉送信とかかな?
Vectorに登録したことある人教えて。
0298デフォルトの名無しさん
2015/01/08(木) 22:24:38.99ID:ZIphMHjt人に使ってもらいたいならスマホアプリに行ったほうが楽しいよ
0299デフォルトの名無しさん
2015/01/08(木) 22:30:24.54ID:RxvcgyHBVS2015でザマリンが標準搭載されるらしいね。
でもたしか無料版は容量制限があるから、
もう少し制限が緩和されたら俺もスマホアプリ開発する予定。
ObjectiveCとJavaの二重開発問題をまさかC#が解決するとはね。
0300デフォルトの名無しさん
2015/01/08(木) 22:31:31.93ID:0wZdKCPg0301デフォルトの名無しさん
2015/01/08(木) 22:56:29.91ID:NRtGS2+40302デフォルトの名無しさん
2015/01/08(木) 23:01:07.37ID:NTFJsV9Rでも本当は水ジムの方が好きです。
0303デフォルトの名無しさん
2015/01/08(木) 23:06:40.76ID:RxvcgyHBandroidの上ではJavaもパチモンだけどなw
真の正体であるDalvikはGoogleが本気だして作ってるから
C#よりも優秀な可能性がある。
それをC#から使えるんだから嬉しい限りだろ。
0304デフォルトの名無しさん
2015/01/08(木) 23:14:44.73ID:m9BFGJK50305デフォルトの名無しさん
2015/01/08(木) 23:14:56.87ID:NRtGS2+4Dalvikそのものが出来が悪いって散々聞いたけど、4.4になって改善されたの?
っていうか俺が言ってるのはそこじゃなくて、ザマリンって.NET Framework(BCL)使えないよね確か。
ライブラリはSDK(Javaのパチモン)しか使えないはず。
0306デフォルトの名無しさん
2015/01/09(金) 02:41:15.95ID:gjp6+33N0307デフォルトの名無しさん
2015/01/09(金) 03:28:42.14ID:oCewwXo00308デフォルトの名無しさん
2015/01/09(金) 06:13:54.32ID:Yt8mQXej0309デフォルトの名無しさん
2015/01/09(金) 07:58:15.25ID:Xchv982BMonoベースだからBCLは.NETと同じだよ
0310デフォルトの名無しさん
2015/01/10(土) 11:29:27.83ID:W1xS5lAEアンドロイドOS上で動くシェルが開発された・・・その名は
Dalvish
0311デフォルトの名無しさん
2015/01/11(日) 07:34:57.86ID:6fleKwOwその際に、
act()とact.Invoke()どちらを使った方がいいのでしょうか?
0312デフォルトの名無しさん
2015/01/11(日) 07:45:18.43ID:6BuzDaMrInvokeじゃないとだめな場所以外で
デリゲートを呼び出すのに()を使わない理由が思いつかない
0313デフォルトの名無しさん
2015/01/11(日) 07:55:48.50ID:6fleKwOwActionDictionary[type]() じゃ見にくいから
ActionDictionary[type].Invoke()にしようと思って沸いた疑問なんだけど
0314デフォルトの名無しさん
2015/01/11(日) 08:03:03.08ID:YzoMt1+V0315デフォルトの名無しさん
2015/01/11(日) 08:26:15.20ID:6BuzDaMr「CLRがリフレクションのための自動的にInvokeメソッドを提供しますが
コンパイラが自動的に呼び出すのでC#から明示的にInvokeメソッドを呼び出す必要はありません」
という特殊なメソッドなので
それが自分の使い方に合ってるならどうぞお好きに。
速度についてはコンパイラの実装は314の通り
0316デフォルトの名無しさん
2015/01/11(日) 08:43:01.93ID:c5JqEBin0317デフォルトの名無しさん
2015/01/11(日) 09:32:45.68ID:8e7vlna2別系統の.NETで使えなくなる可能性があるね
0318デフォルトの名無しさん
2015/01/11(日) 10:07:19.53ID:rflegamX>見にくいから
それは変数名が原因じゃないのか・・・
0319デフォルトの名無しさん
2015/01/11(日) 10:33:16.66ID:fxK+EsZ/[Vector] ライブラリ公開のお知らせ って件名でメール来たけど、公開してから数日後のようだな
正月だからだろうが2日に公開して9日にメール来たよ
0320デフォルトの名無しさん
2015/01/11(日) 10:35:44.14ID:fxK+EsZ/0321デフォルトの名無しさん
2015/01/11(日) 11:21:34.46ID:YzoMt1+V0322デフォルトの名無しさん
2015/01/11(日) 15:58:35.38ID:xu7NJdBGでも>>317の通りだろ?
0323デフォルトの名無しさん
2015/01/11(日) 18:25:40.55ID:YzoMt1+V0324デフォルトの名無しさん
2015/01/11(日) 18:40:45.94ID:hXDAFv790325デフォルトの名無しさん
2015/01/11(日) 20:23:09.56ID:23xXqbRD297だが、おまえは俺かw
俺も2日に修正して9日にメールが来た(・∀・)人(・∀・)ナカーマ
ttp://www.vector.co.jp/vpack/whats/index_1.html
この145本の中に俺のソフトとおまえのソフトがあるわけだw
ところで今回はじめてソフトを登録してみたんだけど、
日本でソフトの登録を行ってるサイトとしてはVectorの他に窓の杜が有名だと思うけど、
あそこはソフト作者からの登録は行ってないんだね。
窓の杜側が優秀なソフトを選定して作者に対して採録していいかを問い合わせる、
という形態であるということが色々調べる中でわかった。
ソフト作者からすると自作ソフトが窓の杜に採録されることって名誉なことなの?
0326デフォルトの名無しさん
2015/01/11(日) 20:31:51.99ID:hXDAFv790327デフォルトの名無しさん
2015/01/11(日) 21:29:51.05ID:fxK+EsZ/俺は10日分にのっていたが、現物はコレだ
http://www.vector.co.jp/soft/winnt/util/se508393.html
閑古鳥鳴いているんで頼むからダウンロードして下さい!
窓の杜の件だが、特別宣伝しているサイトも少ないし関係無さそうに思います
0328デフォルトの名無しさん
2015/01/11(日) 21:35:52.00ID:8e7vlna20329デフォルトの名無しさん
2015/01/11(日) 21:49:32.61ID:ueBHNwdyインストール中にこんなダイアログ出たんだけど
http://www.age2.tv/rd05/src/up6869.jpg
一応実行はできるみたい
実行環境はWin 7 Home 64bit
0330デフォルトの名無しさん
2015/01/11(日) 21:54:12.87ID:YzoMt1+V0331デフォルトの名無しさん
2015/01/11(日) 21:57:24.14ID:fxK+EsZ/http://www7b.biglobe.ne.jp/~megatherium/download.html
こっちに一応書いてあるんだが、windows8のメニューに登録する際のオプションなんですわ
windows7では無害なので安心して使って下さい
Wixの設定なんだけど止めたほうがいいのかな?
0332デフォルトの名無しさん
2015/01/11(日) 22:02:18.82ID:YzoMt1+V0333デフォルトの名無しさん
2015/01/11(日) 22:02:52.54ID:3WksrUDWしれっと行が入れ替わってCellStyleとか値以外のプロパティとかを置いてけぼりにしてしまうのですが
ちゃんと行に紐付けてプロパティも一緒に移動させる方法はないでしょうか?
0334デフォルトの名無しさん
2015/01/11(日) 22:44:59.64ID:fxK+EsZ/俺の勘違いじゃなければ、外部のライブラリが使用しているという面白くもなんともない理由です
てか、解析するのもいいけど普通に使って下さいよw
0335デフォルトの名無しさん
2015/01/11(日) 22:51:01.75ID:zMjTexznバージョン判定して 7 なら抑止した方がいいんじゃね?
どう見てもエラーメッセージだし、俺なら使うのやめると思う。
0336デフォルトの名無しさん
2015/01/11(日) 23:03:57.31ID:fxK+EsZ/MSご謹製のWixと言うxmlで設定するインストーラー使っているんだが
該当する部分にバージョンで判定する方法がよくわからないです
まあ、大した機能じゃないから削除しましょうかね
Windows8使っている人にはわかると思いますが、インストール時にスタートメニューにピン止めする機能です
もしWix上でバージョンで処理を切り分ける方法を知っている人がいて教えてもらえたら幸いです
0337デフォルトの名無しさん
2015/01/12(月) 00:58:56.97ID:15C9Kifs0338デフォルトの名無しさん
2015/01/13(火) 08:57:32.19ID:KQw876kB0339デフォルトの名無しさん
2015/01/13(火) 09:02:45.74ID:iU8Z/nwR0340デフォルトの名無しさん
2015/01/13(火) 09:20:21.58ID:ItHN1w7ZStreamBufferとかその辺しか無理臭くない?
0341デフォルトの名無しさん
2015/01/13(火) 09:27:05.89ID:NaldXlx/*((int*)0x12345678) = 0x5555aaaa;
触るだけならいくらでも
0342デフォルトの名無しさん
2015/01/13(火) 14:00:29.46ID:cjipnmCJホームページ、よく出来ているけれど、自作か?
どういうツールで作るのか教えてけれ。
俺も似たようなホームページ作りたい。
0343デフォルトの名無しさん
2015/01/13(火) 14:05:15.04ID:8RgDkMSv0344デフォルトの名無しさん
2015/01/13(火) 19:35:37.57ID:A+1L71nc自作じゃなくてフリーのテンプレ使っています
http://www.coolwebwindow.com/template/public.php
あとhttp://ri-mode.com/rainbow/2014/06/11/simple_css_dropdown_menu/
のメニューを使わせてもらっています
ツールはMSのExpressionシリーズ(Blend4の仲間)を使っています。無料化されたので探してみてください
0345デフォルトの名無しさん
2015/01/13(火) 20:09:24.19ID:fFU9OuRs0346デフォルトの名無しさん
2015/01/13(火) 21:01:47.74ID:AKeCVrBf0347デフォルトの名無しさん
2015/01/15(木) 09:40:21.78ID:V95QWGsJblogspot.com
ここでアカウント作れ
0348デフォルトの名無しさん
2015/01/15(木) 10:34:10.16ID:Dbge0Tem0349デフォルトの名無しさん
2015/01/15(木) 14:30:38.22ID:ORcxK7jY十分ホムペとして通用するよ
0350デフォルトの名無しさん
2015/01/15(木) 14:37:43.60ID:WLm8ZLzH0351デフォルトの名無しさん
2015/01/15(木) 14:42:15.22ID:IiuUEEzW0352デフォルトの名無しさん
2015/01/15(木) 14:43:59.93ID:Dbge0Temこういうかっこいいページはどうやって作ってるんだろう
http://www.mapeditor.org/
0353デフォルトの名無しさん
2015/01/15(木) 15:13:19.72ID:k20V67BW0354デフォルトの名無しさん
2015/01/15(木) 15:33:50.00ID:DICmco6vここのひとか
http://aidiary.hatenablog.com/entry/20080629/1281169955
http://aidiary.hatenablog.com/entry/20080629/1281170301
http://aidiary.hatenablog.com/entry/20080630/1281171006
http://aidiary.hatenablog.com/entry/20080701/1281171236
http://aidiary.hatenablog.com/entry/20080704/1281171437
http://aidiary.hatenablog.com/entry/20080705/1281171713
http://aidiary.hatenablog.com/entry/20080705/1281171879
0355デフォルトの名無しさん
2015/01/15(木) 15:36:41.59ID:DICmco6vスレチ
あっちでどうぞ
http://kanae.2ch.net/php/
0356デフォルトの名無しさん
2015/01/15(木) 20:16:39.96ID:sFrLm9vjpublic static int[] list = {1,2,3};
var n = list.length;
これで
エラー
'System.Array' に 'length' の定義が含まれておらず、型 'System.Array' の最初の引数を
受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。
と表示されます
どこがおかしいのか分かりません
0357デフォルトの名無しさん
2015/01/15(木) 20:33:57.72ID:yTCJBhR90358デフォルトの名無しさん
2015/01/15(木) 20:34:03.27ID:5kvrGtaT0359デフォルトの名無しさん
2015/01/15(木) 20:52:44.51ID:r4XhfXoN0360デフォルトの名無しさん
2015/01/15(木) 23:09:03.00ID:ojV8YXVD0361デフォルトの名無しさん
2015/01/15(木) 23:46:08.32ID:jCapVwH9http://joshclose.github.io/CsvHelper/
これでCSVを自分のクラスにマッピングするときに
CsvClassMap<T>というabstractクラスを継承しろってことになってるんだけど、
いくら探してもこのパッケージ内にこのCsvClassMapがそもそも存在しないように見える。
using CsvHelperしてもサジェストに出てこないし、
オブジェクトブラウザーで中を見ても、確かに無い。
でもこれ使ってる人をググると普通にこれで使えてるみたいだし、
GitHub覗いてみたらこのクラスは存在するし、
試しに少し昔のバージョンを入れてみたけど変わらずだし、わけわかんなくなってきた…。
ちなみに私のスキルレベルは、C#をちゃんと触るのは今日が初めてレベル。
他の言語の素養はあるので、概ね理解していろいろ調べてるつもり。
0362デフォルトの名無しさん
2015/01/15(木) 23:53:12.31ID:v2twkO800363デフォルトの名無しさん
2015/01/15(木) 23:58:23.24ID:jCapVwH9それでもダメなんだよ…
ググったりGitHubを見る限り、確かにCsvHelper.Configurationの下にいるはずなんだが
オブジェクトブラウザーで見ると、その下には
CsvHelper.Configuration
├CsvConfigration
└CsvConfigrationException
の二つの要素しか無い。
つい5日前に修正されたりしてるから、何かやらかしてるのかと疑って
半年前のバージョンを入れても同じだった。
0364デフォルトの名無しさん
2015/01/16(金) 00:04:40.77ID:zayw9HUQNugetでバージョン2.10.0入れてみたけど
CsvClassMapってクラス普通にある
0365デフォルトの名無しさん
2015/01/16(金) 00:16:52.72ID:lMiMEz1xおお、わざわざ試してくれてありがとう。
じゃあ俺の環境だけなんかおかしいんだろうな。
ちなみに、最初はVS2012のメニューにデフォで入ってるNugetから入れて(2.10.0)、
そのあと一度消して、パッケージマネージャーコンソールから2.7.0を入れてみた感じ。
ありがとう、とりあえず入れて再起動消して再起動とかいろいろ試してみることにするよ…。
0366デフォルトの名無しさん
2015/01/16(金) 00:28:00.63ID:lMiMEz1xCsvHelper.2.10.0\lib\net20\CsvHelper.dll
ってなってるから、.NetFramework2.0用のになってて機能が少ないのかなーと疑ってる。
win7だからデフォで3.5が入ってるはずだけど、どこかの設定で2.0扱いなんだろうか…
0367デフォルトの名無しさん
2015/01/16(金) 00:43:41.85ID:lMiMEz1x参照が変わってくれる方法がわからない。
ので、このパスに4.5用を置き換えてしまうというひどいゴリ押しをしたところ、
無事CsvClassMapが見つかりました…。
根本解決してないけどいったん自己解決とします。ありがとうございました。
どなたかNugetしたライブラリのFrameworkバージョン参照の左右する要因が
わかるかたが居ましたら教えてください…。
ちなみにcsprojと同フォルダに生成されたpackages.configを覗いてみたところ、
ちゃんとtargetFramework="net45"になってました。ここを40や35にしてもダメだった。
0368デフォルトの名無しさん
2015/01/16(金) 01:48:26.38ID:dn4hhy1Qありがとうございます。
本当に気付きませんでした
0369デフォルトの名無しさん
2015/01/17(土) 16:36:52.44ID:dhp2WV1i.NET 3.0、3.5はCLRは2.0のままだからライブラリは2.0用のを使う
.NET 4.5を入れて、VSのプロジェクトの設定を変えないと4.5用のは使われないだろ
でも、4.5って4を置換してしまうんだよね
0370デフォルトの名無しさん
2015/01/18(日) 04:21:03.44ID:LPhlZ9GXwin7はデフォで4.5までの勘違いだったので、4.5まで入ってた。
ライブラリのフォルダはnet20,net30,net40と用意されてるので
各段階で使ってくれそうなものなんだけどなぁ。
それはさておき、ひとまずその「CLR」とやらについて理解すればよさそうかな。
調べてみる、ありがとう。
0371デフォルトの名無しさん
2015/01/18(日) 06:48:11.05ID:vYre8goe>>369はどっちかと言えばBCLの話のような気がする
0372デフォルトの名無しさん
2015/01/18(日) 07:19:37.42ID:MPT8mUCEASP.NETのアプリケーションプールの「.NET」の誤表記が
混乱を招いたために「CLR」に訂正されてんのに
同じとかマジキチ
0373デフォルトの名無しさん
2015/01/18(日) 08:13:19.47ID:B8dPlRlQC++ではmapに放り込んでた自作クラスをデストラクタでdeleteしてたんですが、C#ではプロセス終了で勝手にdeleteしてくれるって認識で問題ないでしょうか?
0374デフォルトの名無しさん
2015/01/18(日) 08:20:52.28ID:sNaTaheH0375デフォルトの名無しさん
2015/01/18(日) 08:54:14.96ID:YQ/T1PKNスタックとstaticフィールドから参照を辿っていけば、オブジェクトはツリーを構成してると考えられる
そのツリーから一旦外れると、プログラムからはもうそのオブジェクトにアクセスする手段はない
そうなったオブジェクトはGCによって自動的に検出されて削除される
つまり、他のところから参照されてなければ、DictionaryがGCされるタイミングで一緒にGCされる
0376デフォルトの名無しさん
2015/01/18(日) 08:59:36.09ID:wO+wr/rb0377デフォルトの名無しさん
2015/01/18(日) 09:20:08.48ID:CCXSPGR2従ってデストラクタが呼ばれる事を保証したい場合はusing使え
0378デフォルトの名無しさん
2015/01/18(日) 09:23:01.91ID:vYre8goe0379デフォルトの名無しさん
2015/01/18(日) 09:23:53.24ID:YQ/T1PKNCLRが正常終了する限りは呼ばれるよ
プロセスが異常終了するときには呼ばれないことがあるけど、
その場合はusingもfinallyもファイナライザ(デストラクタ)も、
もっと言えばCriticalFinalizerObjectのファイナライザすらも呼ばれない
0380デフォルトの名無しさん
2015/01/18(日) 09:40:04.01ID:T4pSBaJb>プロセスが異常終了するときには呼ばれないことがあるけど
この馬鹿はいったい何を言ってるんだろう
0381デフォルトの名無しさん
2015/01/18(日) 09:51:21.86ID:YQ/T1PKN試してみたら?
それともCLRとプロセスの区別が理解できてないのかな?
厳密に言うともう一つのレイヤーとしてAppDomainも区別するべきなんだけど、
大抵はCLRと一対一だからあまり気にする必要はない
0382デフォルトの名無しさん
2015/01/18(日) 10:12:22.18ID:YQ/T1PKNこの場合は ○ファイナライザ、○finally(=using)、○CriticalFinalizerObject.Finalize、○C++のデストラクタ
・AppDomainが強制終了→CLRが正常終了→プロセスが正常終了
この場合は ×ファイナライザ、×finally(=using)、○CriticalFinalizerObject.Finalize、○C++のデストラクタ
・CLRが強制終了→プロセスが正常終了
この場合は ×ファイナライザ、×finally(=using)、×CriticalFinalizerObject.Finalize、○C++のデストラクタ
・プロセスが強制終了
この場合は ×ファイナライザ、×finally(=using)、×CriticalFinalizerObject.Finalize、×C++のデストラクタ
まとめるとこうなる
もちろんfinallyに意味がないわけじゃなくて、すぐに解放処理を行えばそれだけ強制終了に巻き込まれる可能性が低くなるわけ
0383デフォルトの名無しさん
2015/01/18(日) 10:13:45.86ID:sNaTaheHexitで呼んでもらう
0384デフォルトの名無しさん
2015/01/18(日) 16:51:33.28ID:olpTk661>DictionaryがGCされるタイミングで一緒にGCされる
同時にGCされる保障はないだろ
そもそも.NETではデストラクタ実行のタイミングは不定であって
自分で後処理する必要があるならIDispoable実装して正しく呼ばれるようにしろって話だ
0385デフォルトの名無しさん
2015/01/18(日) 18:36:52.91ID:wXCrDAs40386デフォルトの名無しさん
2015/01/18(日) 18:41:57.93ID:RIcPSvtC0387デフォルトの名無しさん
2015/01/18(日) 19:15:13.55ID:xTVffeg80388デフォルトの名無しさん
2015/01/18(日) 19:32:24.03ID:KCbWE0/40389デフォルトの名無しさん
2015/01/18(日) 19:36:20.33ID:k4kja4YC0390デフォルトの名無しさん
2015/01/18(日) 19:49:14.81ID:asVmvkSg0391デフォルトの名無しさん
2015/01/18(日) 19:51:06.35ID:xTVffeg8太鼓判押せないような実装がググると3番目に早くも登場する・・・
http://zecl.hatenablog.com/entry/20080226/p2
0392デフォルトの名無しさん
2015/01/18(日) 19:53:42.50ID:T1+MJDlwマネージドだけならGCに任せろってことなんだろうか?
0393デフォルトの名無しさん
2015/01/18(日) 20:22:06.11ID:+O7FMjZMアンマネージコードじゃなくてアンマネージリソースな
この場合のアンマネージリソースというのは必ずしもウィンドウハンドルのように
プラットフォームのネイティブなリソースというわけではなく、
解放タイミングをGC任せにできないリソース的なもの一般を指す
たとえば処理開始時に一時的にstaticフィールドにオブジェクトが登録されて
それが終わったらメモリリークを防ぐためにDispose呼んで登録解除させないといけないような処理をするクラスがあったとしたら
そのインスタンスはアンマネージリソースと考えられる
0394デフォルトの名無しさん
2015/01/18(日) 22:30:48.89ID:YVtDUNQqどんな問題があるのか教えて。
0395デフォルトの名無しさん
2015/01/19(月) 01:41:36.01ID:TxtFW98x・lock(this)
・Dispose内ではlockしているのに、他のObjectDisposedExceptionをスローするメソッド内ではlockしてない
の2点が気になった。
前者はlockにおけるパターンの話なので今回はどうでもいい。
後者はIDisposableをスレッドセーフにしたいなら、
ObjectDisposedExceptionをスローする全メソッドでもlockしてDisposeの実行を阻止しておかないと
メソッドの実行中に別スレッドからDisposeできてしまうので破綻する。
0396デフォルトの名無しさん
2015/01/19(月) 08:27:22.41ID:eQbtjaRR0397デフォルトの名無しさん
2015/01/19(月) 15:44:01.31ID:skbVpfatクラス自身をスレッドセーフに作るなら話は別だが、無条件にやるような事じゃないし、
無条件にスレッドセーフにする気がないなら意味はない。
ファイナライザのタイミングが非同期な事から微妙に思い違いをしたのかな?
0398デフォルトの名無しさん
2015/01/19(月) 20:53:34.03ID:S6NhZW8x0399デフォルトの名無しさん
2015/01/20(火) 00:39:13.74ID:uh/WEfITVS2010はそれでいけたはず。
だけどVS2013はソースは追加されるけどフォームじゃなくてただのソースとしか認識しない。
マークもフォームのマークになってないし。
ダブルクリックしてもフォームは開かなくてソースが開くだけ。
同じ人いる?
0400デフォルトの名無しさん
2015/01/20(火) 01:12:05.61ID:d2Q8+WfPSystem.Windows.Formsの参照を追加してないなんて間抜けなオチじゃないよね?
0401デフォルトの名無しさん
2015/01/20(火) 14:36:18.13ID:FQ6ZWpD+みっともねえ奴だな
0402デフォルトの名無しさん
2015/01/20(火) 21:46:04.87ID:uh/WEfITもちろん、それはないと思う。
プロジェクトには他のフォームもあってちゃんと動いてるから。
今自宅なんで会社行かないと実際には見れないけど。
とりあえず新規でフォーム作って、追加したいcsとデザインcsの内容を丸々コピペしたら何とかいけたんで。
レスありがとう。
>>401
俺に言ってる?
君みたいに昼からネット出来るほど暇な人間じゃないから。
君、仕事もしてないプー太郎か?
こっちは汗水たらして働いてるんだから夜しかネット見れないんだよ。
くだらん書き込みでスレ汚ししないでちょっとは社会のためになる事しろ。
0403デフォルトの名無しさん
2015/01/20(火) 21:58:25.49ID:tmzshQQd別にどうでもいいけど。
社会のためってw
君は社会のため(笑)に無料で勤労奉仕してるのかもしれないが、普通は人が働くのは自分の私利私欲を満たすため。
世のため人のため(笑)はポエマー系の自己陶酔か、せいぜい言ってもついでのこと。
馬鹿じゃないの。
0404デフォルトの名無しさん
2015/01/20(火) 22:07:24.49ID:pE35F5iH0405デフォルトの名無しさん
2015/01/20(火) 22:11:04.31ID:tmzshQQd俺なら掲示板、特に2chみたいな人が多いところに質問を書いたら
最低1時間ぐらいはレスがないか確認するから。
そのぐらい煮詰まった状況だから質問してるし、そうなら一刻も早く問題を解決したいと思うから。
それが仕事ならなおさら。
0406デフォルトの名無しさん
2015/01/20(火) 22:39:18.57ID:mp2703SQ0407デフォルトの名無しさん
2015/01/20(火) 22:44:32.11ID:xzrs5cc20408デフォルトの名無しさん
2015/01/21(水) 00:19:30.44ID:9MeOdkdg0409デフォルトの名無しさん
2015/01/21(水) 04:12:59.61ID:4WIjvzZ50410デフォルトの名無しさん
2015/01/21(水) 07:22:35.22ID:e6Du7UL/描画とか入力に使うような.NETの機能ははっきり言ってどうでもいい
そんなものは必要になってから調べれば十分
0411デフォルトの名無しさん
2015/01/21(水) 11:52:49.38ID:4WIjvzZ5ありがとうございます
お勧めの書籍があれば教えて下さい
分かりやすいヤツがいいです
0412デフォルトの名無しさん
2015/01/21(水) 12:07:21.48ID:r7KA7H6tアルゴリズムこそ必要な時(そんな時は何年に1度しかないw)に調べればそれで十分だし
今時データ構造って発想が20年ずれてる
0413デフォルトの名無しさん
2015/01/21(水) 12:10:31.52ID:r7KA7H6tどんな人間か、ちょっと想像力を働かせればわかるでしょw
0414デフォルトの名無しさん
2015/01/21(水) 12:19:43.17ID:XB2BqeJs0415デフォルトの名無しさん
2015/01/21(水) 12:20:33.08ID:XB2BqeJs0416デフォルトの名無しさん
2015/01/21(水) 12:24:39.19ID:n9HGlj5T0417デフォルトの名無しさん
2015/01/21(水) 12:25:58.20ID:qABZ5Od30418デフォルトの名無しさん
2015/01/21(水) 12:59:03.24ID:4WIjvzZ5ざっとググってみたのですが、データ構造とアルゴリズムって
こういう内容の事ですか?
このページ読むのって意義ありますか
0419デフォルトの名無しさん
2015/01/21(水) 13:36:33.63ID:7gG9jU5jこれが全ての正しい作り方だよ
仕事ならそうじゃないけど、趣味ならこれでいい
>>418
実際使うだろう情報がごく一部と、
基礎教養として知っておいた方がよく、いつか使うだろう情報が一部と、
基礎教養ではあるいつまでも使わない可能性の高い情報が大部分
0420デフォルトの名無しさん
2015/01/21(水) 13:40:25.30ID:4WIjvzZ5ありがとうございました
0421デフォルトの名無しさん
2015/01/21(水) 13:41:40.93ID:2ayQ13oI必要に迫られていないときに見てもあまり実感がわかない気がする
個人的な興味や趣味で作るんなら
調べるべき内容も見当が付かないようなものはとりあえず作り始めてみるのをおススメ
完成すればそれでいいし、つまづくならつまづいた点をググったり聞いたりして見直せばよい
完成しても動作が遅いとかの不満点がでてそれを解消するために構造見直したりアルゴリズム見直したりすればよい
0422デフォルトの名無しさん
2015/01/21(水) 13:43:59.49ID:2ayQ13oI0423デフォルトの名無しさん
2015/01/21(水) 15:42:46.23ID:XB2BqeJsC#以外の解説サイト(Flashが多い)みながら移植すると早く覚えられる
0424デフォルトの名無しさん
2015/01/21(水) 22:54:50.33ID:e6Du7UL/基礎からやってもいいんじゃない?
その手のゲームを作るのを楽しめるならアルゴリズムやデータ構造の勉強は同じくらい楽しいよ
0425デフォルトの名無しさん
2015/01/21(水) 23:32:43.41ID:vtBK6gj6というかほとんどの場合組み込み型で十分
0426デフォルトの名無しさん
2015/01/22(木) 00:07:20.71ID:6/WUC/sn自分がコンピュータになったつもりで、プレイヤーの操作に対してどう動くかを考える
それをそのままコードに書いてみればいい。最初はそれで十分。
0427デフォルトの名無しさん
2015/01/22(木) 06:25:50.52ID:QZdxOwsq0428デフォルトの名無しさん
2015/01/22(木) 07:41:01.33ID:6/WUC/sn全パターンをデータで用意する実装をするのか?そうじゃないだろ?
アルゴリズムの”手続き”って、別にそれをコンピュータがやろうが人間が手作業でやろうが、
速さと正確さが違うだけ、という話。
0429デフォルトの名無しさん
2015/01/22(木) 07:56:06.52ID:CNlyFltm0430デフォルトの名無しさん
2015/01/22(木) 08:01:32.39ID:96GHEWiS常にパターン認識に頼ってるからな
0431デフォルトの名無しさん
2015/01/22(木) 17:36:43.75ID:bl3HtdF9パターン
0432デフォルトの名無しさん
2015/01/22(木) 18:20:38.32ID:55sdXS+Z0433デフォルトの名無しさん
2015/01/22(木) 22:40:51.94ID:UnI2W8j20434デフォルトの名無しさん
2015/01/28(水) 17:16:11.87ID:NY0MHdg2^ってどういう意味?
0435デフォルトの名無しさん
2015/01/28(水) 17:26:36.94ID:slxhZiXo0436デフォルトの名無しさん
2015/01/28(水) 17:32:16.10ID:969+z+pnこれ何切ればいいですか?
0437デフォルトの名無しさん
2015/01/28(水) 17:54:21.30ID:TGPi2B7q0438デフォルトの名無しさん
2015/01/28(水) 18:04:22.61ID:52xyq1S90439デフォルトの名無しさん
2015/01/28(水) 18:05:46.65ID:fP6N1Ce30440デフォルトの名無しさん
2015/01/28(水) 18:10:24.11ID:7LwetE8W0441デフォルトの名無しさん
2015/01/28(水) 18:18:11.52ID:969+z+pnありがとうございます
0442デフォルトの名無しさん
2015/01/28(水) 19:32:04.32ID:kckrowtY1 1 2 4 4 5 5 5 6 8 8 3m 6m 9s
0443デフォルトの名無しさん
2015/01/28(水) 19:33:08.98ID:kckrowtY漏れなら 9s 切る
0444デフォルトの名無しさん
2015/01/28(水) 21:21:53.16ID:H6HgeodE6m分けてるけどイーペーコー無視?
9s切りは同意。
0445デフォルトの名無しさん
2015/01/28(水) 21:30:05.41ID:eMyM1i220446デフォルトの名無しさん
2015/01/28(水) 21:33:32.29ID:969+z+pnあと4455566pのミスです
0447デフォルトの名無しさん
2015/01/28(水) 23:27:16.74ID:NY0MHdg2SelectedIndexChangedの時に"Value"を保存するって書いてるんだけど、
Comboのアイテムを変えずにデフォのValueを取得すると
その型が"System.Data.DataRowView"ってのが取得できて
値が取得できないんだけど、どうすればいいの?
0448デフォルトの名無しさん
2015/01/28(水) 23:36:49.56ID:CFOgWxxnComboはComboBoxでいいとして、
NameとValueを入れるって具体的にどういう操作?
デフォのValueを取得って具体的にどういう操作?
アイテム変えたら望ましい値が取れるの?
0449デフォルトの名無しさん
2015/01/28(水) 23:46:53.95ID:NY0MHdg2comboBoxのselectedValueはGuid型が入るんです。
FormのLoad時に入れてます。
マウスでComboBoxの選択アイテムを変えると正しいGuid型が取得できるのですが、
FormのLoad時に、そのまま選択アイテムを変えずに、
(正確にいうと、たまたまselectedIndex=0のアイテムが選択したいアイテムだった。)
comboBox.SelectedValueを取得するとGuid型ではなく、System.Data.DataRowView型が取得される為困っているという状況です。
0450デフォルトの名無しさん
2015/01/29(木) 00:23:53.49ID:cejRXMiV作ったり継承したりは出来るんですが、実際のゲーム中で
どのように使うのかが分からない・・・
なにかインターフェイスを使う練習みたいなのはありませんか?
0451デフォルトの名無しさん
2015/01/29(木) 00:27:41.32ID:y6zSBPNz継承したいクラスが2つ以上になったらお前はどうするんだ
その時インターフェースに頼ることになる
嫌でも
0452デフォルトの名無しさん
2015/01/29(木) 00:32:52.62ID:cejRXMiVつまりその辺が分かってないんです
C言語しかやった事ないんで、インターフェイスと継承がよく分からんのです
0453デフォルトの名無しさん
2015/01/29(木) 00:34:01.68ID:cejRXMiV継承しろ、とかAというメソッドを持つインターフェイスを作って実装しろ
とか局所的な事言われたらできるけど、実際のゲームで使えって言われたら
どう使えばいいのか分からない感じなんでうs
0454デフォルトの名無しさん
2015/01/29(木) 00:46:20.92ID:/U+NLJDr0455デフォルトの名無しさん
2015/01/29(木) 03:13:36.91ID:TT2nDia1って思う日が来るさ、来るまで使わなくていいよ
0456デフォルトの名無しさん
2015/01/29(木) 03:32:10.52ID:1yNl5XWr業務アプリしか作った事ないけど
武器という基底クラスを継承して剣クラスや弓クラス…
攻撃などキャラクター共通の振る舞いをインターフェイス…
みたいな感じじゃないの?
こうゆうのってデザパタも色々あるだろうし正解は無いと思うよ
アプリ毎に実装の仕方はバラバラみたいな事も聞くし
とりあえず自分の思うように作ってみれば良いじゃない
0457デフォルトの名無しさん
2015/01/29(木) 09:00:08.52ID:cejRXMiVありがとうございます。
とりあえず、分からないまま進んでみて、必要になったら再度調べてみようと思います
0458デフォルトの名無しさん
2015/01/29(木) 23:15:14.72ID:JFc1jEhn実装してればforeachできるよって奴
0459デフォルトの名無しさん
2015/01/29(木) 23:35:43.22ID:TT2nDia1インターフェースの本質を理解しないまま終わっちゃいそうな気がする
0460デフォルトの名無しさん
2015/01/29(木) 23:46:18.20ID:DDZscCYqを実装していればusing(var hair = new husahusa()){ }
できるようになる
0461デフォルトの名無しさん
2015/01/29(木) 23:54:44.19ID:D0jUH4f80462デフォルトの名無しさん
2015/01/30(金) 00:20:31.68ID:/fUJpSUx0463デフォルトの名無しさん
2015/01/30(金) 00:29:52.89ID:IKGpQS3uListのSortで使う。
0464デフォルトの名無しさん
2015/01/30(金) 01:21:44.98ID:/fUJpSUxlistのソートって基本的にLINQ(OrderByとかThenBy)使うのかと思ってました
0465デフォルトの名無しさん
2015/01/30(金) 01:28:58.99ID:vPM9OO6Wクエリ式は知らん
0466デフォルトの名無しさん
2015/01/30(金) 01:40:13.86ID:L50QtsShFlot型を文字列にキャストして小数点2桁を含めて可能な限り続く桁数を表示させたいのですが
Floatに8桁以上の値を入れた時点で値が丸め込まれてしまってどうにも上手くいきません…
続く限り無限の桁を表示させるソースが公開されていれば教えてもらえませんか
0467デフォルトの名無しさん
2015/01/30(金) 02:01:41.59ID:VHV9Z44lそれ以上の精度が必要ならdoubleで
0468デフォルトの名無しさん
2015/01/30(金) 02:04:37.13ID:VHV9Z44l0469デフォルトの名無しさん
2015/01/30(金) 06:54:15.49ID:lTWCXrI20470デフォルトの名無しさん
2015/01/30(金) 07:36:18.05ID:XjEPmedfUIの部分で.NETの環境がいくら変わっても、コアな部分との再連携さえしてやれば、再生可能だと思うんですが、
これって常識的な考え方でしょうか。
ASP.NET 4.5系と、ASP.NET 5(vNext)とで、大きくUI部分のフレームワークが変わってしまうらしいんで、
後々にまで使えるようにするには、しっかりと分離する構造にするしか策はないですよね。
0471470
2015/01/30(金) 07:43:21.87ID:XjEPmedfしっかりと、カプセル化をやっておこうと考えています。
0472デフォルトの名無しさん
2015/01/30(金) 07:59:48.58ID:BzgyBeS/ある程度UIの構造を前提にして作るもんだから、DBとORM以外全とっかえでいいよ
それよりサブシステムを丸ごと捨てて差し替えても大丈夫なようにある程度の範囲で縦割りするのが大事
0473470
2015/01/30(金) 09:34:12.93ID:XjEPmedfありがとうございます。
>DBとORM以外全とっかえでいいよ
アプリのコアな部分を大切にして、UIは何にでも(たとえtuiでも)とっかえが利くようにしたいと思います。
>それよりサブシステムを丸ごと捨てて差し替えても大丈夫なようにある程度の範囲で縦割りするのが大事
サブシステムって、Webのフレームワークのことでしょうか?
縦割りとは、DBとORM(クラス関係・・・私の言うところのコアな部分)と、Web UIとの切り離しのことでしょうか。
0474デフォルトの名無しさん
2015/01/30(金) 13:19:46.03ID:cv0bPviHググった限りだとStringBuilderが20億バイトだって話だけど、無限には遠く及ばないし。
0475デフォルトの名無しさん
2015/01/30(金) 14:51:34.28ID:X02ag5jjFloatなりDoubleなり浮動小数点型に数値を入れた時点で、特定の桁数以下の情報は切り捨てられてる
それをどう表示しようが、持ってる情報以上の桁数は出てこない
整数同士の割り算のひっ算をプログラムにするようにすれば
1桁ずつ続く限りの表示をしてくことは可能
public static void PrintFlaction(int num,int den,int decimal_places){
int mod;
if(den==0){
System.Console.WriteLine("INF");
return;
}
System.Console.Write("{0}.",num/den);
mod = num%den;
for(int i=0;i<decimal_places;i++){
mod *= 10;
System.Console.Write("{0}",mod/den);
mod %= den;
}
System.Console.WriteLine();
}
public static void Main(string[] args)
{
PrintFlaction(1,3,100);// 1/3 を小数点以下100桁表示
PrintFlaction(5,7,100);
PrintFlaction(2,2,100);
PrintFlaction(2,0,100);
Console.ReadKey(true);
}
0476デフォルトの名無しさん
2015/01/30(金) 19:26:32.38ID:2O05TJiO出力ファイルがサイズ0になってしまいます。
昨年ごろ、よくILMERGEしていて、全く問題なく出来ていたのですが。
そのC#は今年になって何も変更していません。ということは
.NET Frameworkか何かがWindowsUdateか何かで変わったのでしょうか?
みなさんILMERGE問題なく使えていますか?
0477デフォルトの名無しさん
2015/01/30(金) 20:52:27.03ID:cv0bPviH何も問題ないよ。
0478デフォルトの名無しさん
2015/01/30(金) 20:57:01.78ID:fa+fE2P90479デフォルトの名無しさん
2015/01/30(金) 21:45:21.98ID:mdFgRgTFつい最近でなぜに VS2012 なの?
VS2013 Community か冒険家なら VS2015 CTP とかじゃないのか?
0480デフォルトの名無しさん
2015/01/30(金) 22:09:09.35ID:cv0bPviH他人の作ったものを引き継ぐというクソ業務で、念のため元のと同じのにしておきたいって理由と、
2013の商用利用のセーフ範囲がよくわかんなかったから念のため2012にしておいた。
まぁ、使い道は社内のちょっとしたツールだからあまり心配してないけど。
0481デフォルトの名無しさん
2015/01/30(金) 22:37:56.23ID:mdFgRgTFああ、仕事ならしょうがないね
納得したわ
0482デフォルトの名無しさん
2015/01/31(土) 13:43:02.03ID:rOfMOZLeスマートな書き方はありますか?
string str = "123465789"
str= str.Replace("2", "");
str= str.Replace("5", "");
str= str.Replace("8", "");
0483デフォルトの名無しさん
2015/01/31(土) 13:51:49.58ID:Zp0atq7E0484デフォルトの名無しさん
2015/01/31(土) 14:14:21.40ID:rOfMOZLeありがとうございます。早速やってみます!
0485デフォルトの名無しさん
2015/01/31(土) 16:57:42.32ID:pjmSNE++ボタンを押すと「ファイルを開く」ダイアログボックスを表示され
選択されたファイルのパスがテキストボックスに表示されます。
ボタンクリック時のイベントには同じような処理が入るため
共通化したいがテキストボックスに値をセットしてあげる部分がそれぞれで違うため
どう共通化してあげればいいのかわかりません。
どなたかご教授お願い致します。
0486デフォルトの名無しさん
2015/01/31(土) 17:04:59.67ID:Zp0atq7E{
OnButtonClick(textBox1);
}
private void button2_Click(object sender, EventArgs e)
{
OnButtonClick(textBox2);
}
0487デフォルトの名無しさん
2015/01/31(土) 17:15:27.37ID:pjmSNE++ありがとうございます
バカな質問をして失礼しました・・・
0488デフォルトの名無しさん
2015/01/31(土) 18:16:43.71ID:Aa4houZl0489デフォルトの名無しさん
2015/01/31(土) 18:49:34.07ID:K0xM/bq90490デフォルトの名無しさん
2015/02/01(日) 02:19:03.64ID:s9ype9zZ0491デフォルトの名無しさん
2015/02/01(日) 04:40:59.93ID:RmYenSV2void onUpdate();
}
というインターフェイスと
public void addWatchTarget(,OnUpdate callback) {}
というメソッドを定義して、
hoge.addWatchTarget(new OnUpdate{
public void onUpdate(){
/*ここにアップデートした時の処理*/
};
});
と書こうとしたのですが、エラーが出てしまいます。
一つのインターフェイスの為だけにクラスを作りたくないし、javaで言うところの
b.setCallback(new Runnable() {
public void run() {
...
}
});
の様に書きたいのですが、c#ではどのように表記すればよろしいでしょうか。
0492デフォルトの名無しさん
2015/02/01(日) 05:00:58.39ID:82CyRnjVイベントを使う
コールバックで値を返したいのならFuncデリゲートを使う
0493デフォルトの名無しさん
2015/02/01(日) 05:10:47.88ID:RmYenSV2ありがとうございます。
すいません、例が悪かったです。インターフェイスにはn個のメソッドが宣言されています。
public interface OnUpdate {
void onUpdate();
void onFiled(int errorCode);
}
hoge.addWatchTarget(new OnUpdate{
public void onUpdate(){};
public void onFailed(int code){};
});
c# interface method arguments 等でググったのですが
「インターフェイスを実装したクラスを作って、それをインスタンス化すればいいよ!」という回答ばかりで、インターフェイスを直接引数に与える方法は見つかりませんでした。
0494デフォルトの名無しさん
2015/02/01(日) 06:15:56.60ID:WbEj9GF4C#にはそのような文法はありません。
addWatchTarget(new MyCallbackSet{
Update = ()=>{},
Fail = ()=>{}
});
としてください。
大体JAVAだって、そこはラムダで書くだろ普通
b.setCallback(() -> {
...
});
0495デフォルトの名無しさん
2015/02/01(日) 06:17:18.46ID:RmYenSV2ありがとうございます。勉強になります
0496デフォルトの名無しさん
2015/02/01(日) 06:48:17.57ID:wbarHwVKさすがにおかしいだろ・・
0497デフォルトの名無しさん
2015/02/01(日) 07:39:25.95ID:Rluj7UaD0498デフォルトの名無しさん
2015/02/01(日) 07:50:15.90ID:OM+GcdnkaddWatchTarget(() => { /* Update */ }, error => { /* Fail * });
とするのが普通だと思う
もしくは、実装に少々手間はかかるが
addWatchTarget(() => { /* Update */ }).OnFailed(error => { /* Fail * });
だね
一般的に>>494のような渡し方は格好悪いからあまりやらない
0499デフォルトの名無しさん
2015/02/01(日) 08:07:40.39ID:PJUlZZR80500デフォルトの名無しさん
2015/02/01(日) 08:24:34.28ID:sAQPzt4/ソフトウェア従事者の多くは趣味プログラミング
もちろん俺を含むw
0501デフォルトの名無しさん
2015/02/01(日) 10:20:20.00ID:sjXjc1T+0502デフォルトの名無しさん
2015/02/01(日) 14:12:41.88ID:VQFaI0Rd使命である。
0503デフォルトの名無しさん
2015/02/01(日) 18:02:14.66ID:s9ype9zZ宿命
運命
0504デフォルトの名無しさん
2015/02/03(火) 10:15:18.44ID:vbeiF6Sp0505デフォルトの名無しさん
2015/02/03(火) 21:19:50.89ID:eVaOlmBf0506デフォルトの名無しさん
2015/02/07(土) 04:24:26.14ID:J39kTiawVisual Studio 2010 proを持っていて、ASP.NETプログラムを作ったことがあるんですが、
無料のVS communityと、どちらを使えば良いんでしょうか。
悩みます。
0507デフォルトの名無しさん
2015/02/07(土) 06:30:52.04ID:L5zJgfEDWeb Essentialsとかあるし
0508デフォルトの名無しさん
2015/02/07(土) 13:55:50.70ID:J39kTiawライセンスの面では大丈夫です。やはり、新しいバージョンの方がいいですよね。
せっかく、VS 2010 PROを購入したのに、ちょっともったいなーい。
0509デフォルトの名無しさん
2015/02/07(土) 14:06:21.77ID:J39kTiawhttps://msdn.microsoft.com/ja-jp/library/bb822049%28v=vs.110%29.aspx
質問があります。
(1).NET 4.5.1をベースとしてASP.NETが動作するものだと思うのですが、(合ってますでしょうか)
そのASP.NETのバージョンは任意に選べるような仕組みなんでしょうか。
それとも、.NET 4.5.1内部にASP.NETは内包されているのでしょうか。
(2).NETフレームワーク4.5.1とIDE(VS community 2013)の関係がすっきりしません。community 2013単なるIDEだと思うので、
これをつかって.NET 2.0用のプログラムを開発することはできるのではないかと思うんですが、
どうして駄目なんでしょうか。
おねがいします。
0510デフォルトの名無しさん
2015/02/07(土) 14:09:22.63ID:L5zJgfED0511デフォルトの名無しさん
2015/02/07(土) 14:10:47.61ID:eMOSZTzl(1)IISの設定
(2)できるけどむしろなんで「どうして駄目なんでしょうか」なの?
0512デフォルトの名無しさん
2015/02/07(土) 14:18:31.17ID:M1n3dGF8> (2).NETフレームワーク4.5.1とIDE(VS community 2013)の関係がすっきりしません。community 2013単なるIDEだと思うので、
> これをつかって.NET 2.0用のプログラムを開発することはできるのではないかと思うんですが、
> どうして駄目なんでしょうか。
勘違いしてる。VS2013自体が動くのに.NET Framework4.5.1が必要。作成するプログラムの対象フレームワークは選べる。
0513デフォルトの名無しさん
2015/02/07(土) 15:36:06.44ID:J39kTiaw1、そもそも、VS community 2013(IDE)の動作に、.NET Framework4.5.1が必要であること。(>>512)
2、IDEのプログラム開発では、.NET 2.0以上の任意のフレームワークを対象したプログラムを作れる。(>>510)
3、ASP.NETの開発においては、(IDEというよりも)とくにIISで設定するASP.NETのヴァージョンが大事。(>>511 >>510)
3については、aspxを処理するのは、IISですものね。IISで、処理できるASP.NETのバージョンを絞り込むということでしょうか。
古いバージョンのaspx(ASP.NET 2.0用)も動かしたいなとおもいまして。
2については、ASP.NETを開発する場合、IDEに内蔵されたWEBサーバ機能が複数のASP.NETのバージョンに対応しているのでしょうか。
0514デフォルトの名無しさん
2015/02/07(土) 15:57:28.04ID:o5egNrasSelect( (value,index)=>new{value,index})で取得できると思うんですが、
どういう処理がされているか教えていただけないでしょうか
0515デフォルトの名無しさん
2015/02/07(土) 16:14:30.43ID:ZvzmbQxkif (source == null) throw Error.ArgumentNull("source");
if (selector == null) throw Error.ArgumentNull("selector");
return SelectIterator<TSource, TResult>(source, selector);
}
static IEnumerable<TResult> SelectIterator<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, int, TResult> selector) {
int index = -1;
foreach (TSource element in source) {
checked { index++; }
yield return selector(element, index);
}
}
0516デフォルトの名無しさん
2015/02/07(土) 17:06:07.21ID:o5egNrasありがとう。直感的にだけど理解できました。
0517デフォルトの名無しさん
2015/02/07(土) 18:53:41.86ID:EjCk1lJHそのもったいない精神、命取りになるぞ。
単純に比較して良いものを使えば良い
0518デフォルトの名無しさん
2015/02/07(土) 22:46:54.91ID:j6Fd7dobIISアプリケーションプールの設定で選択できる
大抵は最新Verのにしときゃ動くがな
0519デフォルトの名無しさん
2015/02/08(日) 05:09:40.91ID:kndmEONyレスありがとう。
VS communityをインストールします!
>>518
アプリケーションプールってありましたね。
変わった概念だなと思いました。
しばらく触っていないんで、すっかり遠い記憶になっていました。
0520デフォルトの名無しさん
2015/02/08(日) 17:29:33.54ID:s109R4ug変数にnullを設定するのでなく、
特定のメソッドを呼び出したら自動的に参照を外すようにしたいのですが。
var obj = new Hoge();
obj.Destroy();
print(obj); //null
0521デフォルトの名無しさん
2015/02/08(日) 17:35:45.48ID:5CTZvvRC0522デフォルトの名無しさん
2015/02/08(日) 17:40:56.82ID:4MKIaqhP0523デフォルトの名無しさん
2015/02/08(日) 17:41:00.54ID:N2lxbw9z何のためにそんなことするの?
たぶん、IDisposable実装してDispose()を呼び出すのがやりたいことに近いと思うけど。
0524デフォルトの名無しさん
2015/02/08(日) 17:47:37.15ID:/5XFyazcそれやったとしてもマネージド部分はGC任せなんでは?
0525デフォルトの名無しさん
2015/02/08(日) 17:54:36.05ID:N2lxbw9zまぁ、そうなんだけどね。
0526デフォルトの名無しさん
2015/02/08(日) 17:57:49.48ID:5CTZvvRC0527デフォルトの名無しさん
2015/02/08(日) 18:07:44.64ID:4RGx9zBtデリゲートの話だとばっかり思っていた。
0528デフォルトの名無しさん
2015/02/08(日) 18:21:32.57ID:Wac/ZBhZ0529デフォルトの名無しさん
2015/02/08(日) 18:34:03.57ID:w6gtl+gBvar obj = new Hoge(&obj);
みたいにしとけばできると思う
0530デフォルトの名無しさん
2015/02/08(日) 18:35:29.59ID:w6gtl+gBC++ と勘違いした、忘れてくれ
0531デフォルトの名無しさん
2015/02/08(日) 18:57:37.53ID:s109R4ugDestroyを呼び出すとアプリケーション内で
そのオブジェクトが消滅することを確定させたいです。
nullのセットし忘れとか防ぎたいんです。
0532デフォルトの名無しさん
2015/02/08(日) 19:00:51.80ID:P0HWFm4I>>527
0533デフォルトの名無しさん
2015/02/08(日) 19:01:37.12ID:P0HWFm4I>>531
>>528
0534デフォルトの名無しさん
2015/02/08(日) 19:03:01.86ID:s109R4ugそれらすべてにnullを設定していかないといけないんでしょうか?
0535デフォルトの名無しさん
2015/02/08(日) 19:23:48.94ID:JJBPIwXc0536デフォルトの名無しさん
2015/02/08(日) 19:23:52.99ID:BaY7N69fなんか根本的に考え違いをしてるようにしか思えんけど...
まあ、
pubic event EventHandler SetMeFree = () => {};
....
public void Destroy() { SetMeFree(); }
とかしておいて、
private Destroyable _hoge;
....
void Hoge()
{
....
_hoge = new Destroyable();
_hoge.SetMeFree += () => { _hoge = null; };
....
}
とか(笑)
0537デフォルトの名無しさん
2015/02/08(日) 19:28:22.42ID:orDJkmnf消えないと勘違いしてるのか?
0538デフォルトの名無しさん
2015/02/08(日) 19:30:22.43ID:8Z+tyYct当然
だって、その参照している人はまだそのオブジェクトにアクセスするかもしれんでしょ?終了処理だとかで。
だから、あくまでも参照している所の、不要となったタイミングでnullを設定するようにすべき
0539デフォルトの名無しさん
2015/02/08(日) 19:33:07.31ID:Pwx84Qtq0540デフォルトの名無しさん
2015/02/08(日) 19:34:46.24ID:Pwx84Qtq0541デフォルトの名無しさん
2015/02/08(日) 19:38:02.11ID:WC6wMHS0Hogeインスタンスを参照してるオブジェクトが自作クラスなら可能
そうでないなら無理
0542デフォルトの名無しさん
2015/02/08(日) 19:42:35.35ID:N2lxbw9zいちいちnull代入するコードは例外とかに弱いし。
0543デフォルトの名無しさん
2015/02/08(日) 20:05:43.65ID:s109R4ugオブジェクトの参照は勝手に破棄できないから、
マネージャークラスを作って監視しないといけないんですね。
0544デフォルトの名無しさん
2015/02/08(日) 20:09:01.54ID:/5XFyazcIDisposable実装してないクラスだったら放置プレーで良いんじゃないの?
IDisposableならusing使えばエエだよ
0545デフォルトの名無しさん
2015/02/08(日) 20:10:13.49ID:/5XFyazcじゃ、放置プレーで。
.NETオブジェクトはどMだから大丈夫だよw
0546デフォルトの名無しさん
2015/02/08(日) 20:11:21.97ID:TwaU4H9o参照してるのが間違ってるんだよたぶんw
0547デフォルトの名無しさん
2015/02/08(日) 20:18:08.90ID:/Wbs4GAmそれなw
GCの無い言語をやったことがないか
やってはいるが中途半端にしか修めて来なかった者の末路だな
0548デフォルトの名無しさん
2015/02/08(日) 20:26:17.79ID:s109R4ugNullっぽい挙動させればいいんだ。
そうすればマネージャー作らなくていいし。
0549デフォルトの名無しさん
2015/02/08(日) 20:30:50.26ID:i1ECf4Ro初めから見えた答えだったのにずいぶん遠まわしでしたね
0550デフォルトの名無しさん
2015/02/08(日) 20:32:26.32ID:5CTZvvRC0551デフォルトの名無しさん
2015/02/08(日) 20:56:06.86ID:/5XFyazc0552デフォルトの名無しさん
2015/02/08(日) 21:18:45.13ID:3dFU6zTjnullっぽい挙動って何?
IDisposableを実装するのか、もしくは単にIsValidプロパティみたいなフラグを作るとか?
0553デフォルトの名無しさん
2015/02/08(日) 21:27:52.36ID:/WGb+9gPStreamとかといっしょ
0554デフォルトの名無しさん
2015/02/08(日) 21:53:59.43ID:s109R4ugObjectDisposedExceptionとかそういうんじゃないです。
>>552
単にプロパティつけるか、
自分自身をラップするかとか考え中です。
0555デフォルトの名無しさん
2015/02/08(日) 22:14:38.72ID:i1ECf4Ro初心者には違うように思えるんでしょうね
0556デフォルトの名無しさん
2015/02/08(日) 22:22:41.25ID:/WGb+9gPもっと具体的な状況がわからないと
他のクラスも参照持ってるのに勝手に破棄して良くて、破棄後のアクセスはバグとしない状況がわからん
開放時にDisposedイベントが起こるやつはあるけど
単にプロパティをつけるって結局IDisposableにのフラグを公開してるだけだし
0557デフォルトの名無しさん
2015/02/08(日) 22:52:52.09ID:s109R4ugあるタイミングでターゲットにダメージを与えたりする。
ダメージが致死量になると、destroyが発生する。
後続が同じターゲットをとっていた場合は、
すでに破壊されているのでそのターゲットはnullになっていて欲しいです。
じゃあ、IDisposableというの勉強してみます。
0558デフォルトの名無しさん
2015/02/08(日) 23:03:15.93ID:/5XFyazcその用途だとIDisposableは関係無いな。
何したいのか分からんがオブジェクトの破棄じゃなくオブジェクトのプロパティで良い気がする。
それ以前にオブジェクト指向に毒され杉だねw
0559デフォルトの名無しさん
2015/02/08(日) 23:25:17.70ID:Wac/ZBhZ破壊された状況=nullという設計をした時点で詰んでる
蓄積ダメージを元にIsDestroyedプロパティを実装するんだな
>>558毒され過ぎ同意見w
0560デフォルトの名無しさん
2015/02/08(日) 23:30:30.06ID:/WGb+9gPゲームみたいなものか
nullにしなくてもターゲットに破壊フラグをつけて、攻撃時に判定すればいい
むしろ、破壊時にそのターゲットを対象にしているアクションをすべて消すほうがわかりやすい
どれにせよ、ゲームに不慣れなオブジェクト思考持ち込みすぎると破綻するぞ
0561デフォルトの名無しさん
2015/02/08(日) 23:35:17.71ID:/5XFyazc0562デフォルトの名無しさん
2015/02/08(日) 23:35:36.87ID:4RGx9zBt0563デフォルトの名無しさん
2015/02/08(日) 23:36:14.84ID:rZV+tnJ80564デフォルトの名無しさん
2015/02/08(日) 23:41:40.30ID:/5XFyazc0565デフォルトの名無しさん
2015/02/08(日) 23:56:50.95ID:s109R4ugオブジェクト指向を変に意識すると
基礎から先が複雑になってきて、わけわからなくなってきちゃいますね。
オブジェクトが気を効かせてやるべき処理をやってくれんだけど、
手続き的な記述を減らすと逆に分かりにくくなったり。
プログラムって難しいですね。
0566デフォルトの名無しさん
2015/02/09(月) 00:10:34.20ID:h/1LxHEV0567デフォルトの名無しさん
2015/02/09(月) 00:13:21.53ID:AazwEOnB臨機応変て言葉知らないか
0568デフォルトの名無しさん
2015/02/09(月) 00:22:02.87ID:Ntbz6K3q単に質問者がまともな設計ができないだけ。
だから何で同じインスタンスをプログラマが管理できないような数の変数で参照する必要があるんだってw
そんなの間違いなく質問者がそれが必用だと思い込んでるだけだと断言できる。
0569デフォルトの名無しさん
2015/02/09(月) 00:25:23.82ID:mz/setD50570デフォルトの名無しさん
2015/02/09(月) 00:25:24.86ID:AGlUXWbh0571デフォルトの名無しさん
2015/02/09(月) 00:42:15.74ID:xxoZlwvR0572デフォルトの名無しさん
2015/02/09(月) 01:12:20.86ID:p5G7+fMc0573デフォルトの名無しさん
2015/02/09(月) 06:30:28.87ID:5xuX5Rg+基底に神クラスを作って派生、じゃなくて完全に別々の神クラスにしたほうがいいのだろうか?
0574デフォルトの名無しさん
2015/02/09(月) 06:53:51.77ID:qcjAyEz20575デフォルトの名無しさん
2015/02/09(月) 07:00:25.27ID:7lZ37zN3アプリでWeakReference使うのは設計が破綻してる証拠
0576デフォルトの名無しさん
2015/02/09(月) 07:02:07.62ID:KnnpIsQe8,000,000万のメソッドを持ったクラス?
0577デフォルトの名無しさん
2015/02/09(月) 07:02:49.66ID:s0dg7c6gイベントハンドラに寿命短めのオブジェクトを追加しまくるときくらいしか使わない
GCは相互参照になってても効くし
0578デフォルトの名無しさん
2015/02/09(月) 07:03:19.67ID:KnnpIsQe0579デフォルトの名無しさん
2015/02/09(月) 08:07:57.32ID:knlwFUV0100億万円とか言っちゃう小学生いるよなw
0580デフォルトの名無しさん
2015/02/09(月) 08:24:17.80ID:iJdyGTL3http://opensource.slashdot.jp/story/15/02/08/0721252/
0581デフォルトの名無しさん
2015/02/09(月) 10:13:18.20ID:LQhyRrVoやおよろずの神って知らんのか?
教養がないとそのようか反応になるのだな
0582デフォルトの名無しさん
2015/02/09(月) 11:01:53.47ID:41/w1wVGこの場合>>581のレスこそが一番教養が無いw
0583デフォルトの名無しさん
2015/02/09(月) 12:04:48.04ID:LQhyRrVoおめー短大卒なめてんのか
0584デフォルトの名無しさん
2015/02/09(月) 12:12:46.97ID:cxy5oANg0585デフォルトの名無しさん
2015/02/09(月) 12:20:39.02ID:9fKE6Mq7ネタジョークにマジレスすんなヨ
0586デフォルトの名無しさん
2015/02/09(月) 12:43:01.03ID:58HS4m5W神クラスって知らんのか?
教養がないとそのような反応になるのだな
0587デフォルトの名無しさん
2015/02/09(月) 12:48:28.24ID:U/1UCdd/0588デフォルトの名無しさん
2015/02/09(月) 13:47:23.34ID:jsF3Jw1x0589デフォルトの名無しさん
2015/02/09(月) 14:19:43.51ID:9fKE6Mq7全知全能の神クラスだね。
八百万の神じゃ全てのものが神になってしまうので意味が違う。
0590デフォルトの名無しさん
2015/02/09(月) 14:42:29.63ID:jsF3Jw1x0591デフォルトの名無しさん
2015/02/09(月) 19:21:31.66ID:1J4Ibh0j0592デフォルトの名無しさん
2015/02/09(月) 19:40:41.41ID:sBN76GX20593デフォルトの名無しさん
2015/02/09(月) 20:59:58.55ID:KnnpIsQeabstractクラスになってるんで色々面倒な事が中東で起きてるんだが。
0594デフォルトの名無しさん
2015/02/09(月) 23:10:46.63ID:ImhpazP+0595デフォルトの名無しさん
2015/02/09(月) 23:57:25.96ID:bwEZbR4B0596デフォルトの名無しさん
2015/02/10(火) 07:00:29.60ID:nFpM6d20完全に別個のクラスを作るのかが問題なんだって。
仮に基本クラス派生だとするとメンバーやIFは何を持たせるのかが問題。
0597デフォルトの名無しさん
2015/02/10(火) 08:52:13.39ID:Hs3TdF+40598デフォルトの名無しさん
2015/02/10(火) 10:08:25.50ID:SW06GOy50599デフォルトの名無しさん
2015/02/10(火) 10:11:41.31ID:2yjbLZweそれぞれのクラスを大切にしてあげてねみたいなフワフワした話じゃないのか
0600デフォルトの名無しさん
2015/02/10(火) 11:15:02.50ID:xEK50zds0601デフォルトの名無しさん
2015/02/10(火) 12:00:06.44ID:SW06GOy50602デフォルトの名無しさん
2015/02/10(火) 12:02:55.08ID:U2zkTKp90603デフォルトの名無しさん
2015/02/10(火) 13:05:13.45ID:sO94tH0V八百万の最初のあたりで終わった冗談をなにぐだぐだやってんだか
0604デフォルトの名無しさん
2015/02/10(火) 13:14:12.29ID:2S9bXvZz0605デフォルトの名無しさん
2015/02/10(火) 13:32:22.10ID:I3Nqh774きっとモニターの前で自分のレスに例の独特の引き笑いをしてると思うよw
気色悪い。
0606デフォルトの名無しさん
2015/02/10(火) 13:44:51.87ID:foI8NMh40607デフォルトの名無しさん
2015/02/10(火) 17:57:22.45ID:QtCdRKurステレオタイプ馬鹿の典型だな
0608デフォルトの名無しさん
2015/02/10(火) 17:59:05.02ID:AMEUt00J0609デフォルトの名無しさん
2015/02/10(火) 22:51:13.03ID:etTOQNm80610デフォルトの名無しさん
2015/02/10(火) 23:41:17.65ID:Dn84JQPS0611デフォルトの名無しさん
2015/02/11(水) 11:10:33.06ID:WZeVYUoDvar aStap = new STAP();
return aStap.Exist;
は、以下のプログラムと等価
return false;
0612デフォルトの名無しさん
2015/02/11(水) 11:22:01.61ID:uxm1HOmW0613デフォルトの名無しさん
2015/02/11(水) 11:22:56.46ID:HV6QGBu90614デフォルトの名無しさん
2015/02/11(水) 12:23:52.58ID:WZeVYUoD使い方をしようとすると破綻する。
それ以前に底辺デジタル土方にオブジェクト指向は要らない。
0615デフォルトの名無しさん
2015/02/11(水) 13:13:27.60ID:nrJCL00/なんぼ底辺でも
今のシステムVB6に置き換えろとか言われたら死ぬ
0616デフォルトの名無しさん
2015/02/11(水) 13:17:28.95ID:WZeVYUoDVB6のIDEがVisual Studio並みの機能を持てば要らないのでは?
底辺デジドカの作る難解なオレオレOOスパゲティコードをメンテするよりVB6のが遥にマシ。
0617デフォルトの名無しさん
2015/02/11(水) 13:17:46.71ID:HV6QGBu90618デフォルトの名無しさん
2015/02/11(水) 13:35:21.06ID:nrJCL00/0619デフォルトの名無しさん
2015/02/11(水) 14:00:00.51ID:XzdqNrdaある意味COBOL的なスタイルだから「賢いオブジェクト」よりはドカタ向きだよ
0620デフォルトの名無しさん
2015/02/11(水) 15:42:20.05ID:+zb7i42Pそのまま底辺デジドカに埋もれてろよ
0621デフォルトの名無しさん
2015/02/11(水) 16:08:48.33ID:sK01Ui9b別にVB6でもオブジェクト指向で設計してコード書くことはできる
メンテがつらいのはそもそも設計がおかしいか設計書が残ってないか設計と実装が合ってないかのどれか
0622デフォルトの名無しさん
2015/02/11(水) 16:38:03.88ID:CW8IIrT0出来れば電子書籍化されてるもので
0623デフォルトの名無しさん
2015/02/11(水) 18:38:32.87ID:INE2YLdo0624デフォルトの名無しさん
2015/02/12(木) 23:37:57.90ID:rbj/z20K0625デフォルトの名無しさん
2015/02/14(土) 11:56:10.36ID:G8GjWWhKでもサイズ判定→タイプセーフ→タイプセーフなのだ→intとint?は違うのだって、当初の目的忘れてやり過ぎじゃないの?
void OpenGate( int gatekey ) { }
int? mykey = null;
OpenGate( (int)mykey );
こんなことしてコンパイラ黙らせてもnullで実行時エラーが起きるのは同じだし、開発効率悪いだけで何の役にも立ってない
OpenGate( mykey ); これで実行時エラーが起きれば十分
mykeyのnullはRPGの旅人がまだ鍵を入手してない状態に相当し、鍵がなくとも旅人は存在しうる
OpenGateは鍵が必要な門で、gatekeyが必須という性質
鍵がなければ門を開けようとしてエラーになるのは正しい現象で、その現象は門の性質に由来するもの
(int)で旅人が自分でチェックするのは性質の所在がおかしい
0626デフォルトの名無しさん
2015/02/14(土) 12:00:12.28ID:pzGXmezT・DB用に作った機能なので
お引取りを。
0627デフォルトの名無しさん
2015/02/14(土) 12:02:08.71ID:O6svWQnE自己批判の欠如
釈迦に説法
0628デフォルトの名無しさん
2015/02/14(土) 12:07:28.56ID:ISQup94Gお前がそこでイラッとしたのがまさにその証拠だろ?
nullがタイプセーフじゃないのは典型的な普通の静的言語の大きな欠陥として昔から言われてることで、
そもそもそこが問題だと思うならHaskellとかガチな静的型に行くと幸せになれる
0629デフォルトの名無しさん
2015/02/14(土) 12:12:42.89ID:pzGXmezT煽るなら.NETについて煽った方がよいと思います
0630デフォルトの名無しさん
2015/02/14(土) 12:13:37.07ID:G8GjWWhK日付の未設定を何かの日付で代替すると気持ち悪いことになる
別途未設定フラグを持って分岐処理すると開発効率が悪くなる
0631デフォルトの名無しさん
2015/02/14(土) 12:13:44.33ID:ISQup94Gそりゃちょっと無理があるな
C#の構文糖衣で使う前提で#のために導入された機能だ
0632デフォルトの名無しさん
2015/02/14(土) 12:19:11.45ID:G8GjWWhK必須エラーは正しい現象であって、エラーが起きるから安全なんだよ
まさかエラーが起きないことを安全だと勘違いしている?
0633デフォルトの名無しさん
2015/02/14(土) 12:39:26.91ID:ISQup94G俺がこう思ってるかどうかはともかく、一つの考え方として聞いてくれ
if (x == null) return hoge((int)x); else return null;
例えばこれ、hogeを呼ぶ時点でxがnullでないことは明らかだろ? キャストは辻褄合わせでしかない。
ガチな静的型の関数型だと、このような操作を行うとき
コンパイラが強制するべきなのはif (x==null)のチェックの方だと考える。
そして条件がtrueになった文脈であればxの値はint?ではなくint型として扱うことができ(同じ変数名xを使うかどうかは別にして)、
逆にfalseの文脈ではxの値にアクセスしようとするとコンパイルエラーになるわけ。
0634633
2015/02/14(土) 12:40:52.27ID:ISQup94G0635デフォルトの名無しさん
2015/02/14(土) 13:21:42.57ID:atTTe3b7なんでもかんでもJavaのマネしやがって
後発なんだから不味い場所も分かってただろうに
0636デフォルトの名無しさん
2015/02/14(土) 13:52:15.21ID:Uz4yE4Ox0637デフォルトの名無しさん
2015/02/14(土) 14:50:07.87ID:atTTe3b7ってgoogleでやる知恵すらないんだったら
どこ見てもムダだと思うよ
0638デフォルトの名無しさん
2015/02/14(土) 15:33:45.11ID:7wkGcJdL0639デフォルトの名無しさん
2015/02/14(土) 15:39:01.44ID:j/TRKjQzディフォルト値として null より適切な値があるなら提案してみたら?
0640デフォルトの名無しさん
2015/02/14(土) 15:46:41.76ID:QZdIRAT/恐らく実際に起こることは、単に発見困難なバグを増やすだけ。
こんな当たり前のことが分からない人って絶望的にセンスないと思う。
0641デフォルトの名無しさん
2015/02/14(土) 16:03:50.02ID:atTTe3b7ユーザーに設定強制すればいいじゃない。
配列は基本コレクションで。
>>640
減るよ!減らないわけがない。
コンストラクタで設定し忘れとか想像して言ってるんだったら心配ない
初期値なしで宣言して、コンストラクタが終了する時点までに初期化されてりゃいいんだよ。
パスを辿ってコンパイル時に判断するのも今時ならそんなに難しくないだろう
あとセンスとかいうな臭いスレに帰れ
0642デフォルトの名無しさん
2015/02/14(土) 16:23:20.88ID:coEfqUtE> ユーザーに設定強制すればいいじゃない。
class X { }
class Y: X { }
class Z: X { }
X x;
if( ){
x = new Y;
} else {
x = new Z;
}
みたいな奴はどうするのさ?
0643デフォルトの名無しさん
2015/02/14(土) 16:31:18.78ID:atTTe3b7ん?何が問題?
今だって、C#もJavaもそれで初期化されてるって判定してくれるだろ。
かたっぽ抜いたらエラーになるはず。
ようは初期化前に変数にアクセスできなきゃいいんだ
0644デフォルトの名無しさん
2015/02/14(土) 16:39:52.73ID:coEfqUtEごめん、お前さんが何を主張してるのかさっぱりわからんわ
0645デフォルトの名無しさん
2015/02/14(土) 16:53:08.05ID:bEUa3keyコンストラクタまでに強制されるとなぁ…
結局確保しておいても割り当てない事もあるのだし
引数が.NETにはじかれるようなオブジェクトは作れないし
C++++でunsafeが有るような言語で堅牢性を追求するのもなんだ
マネーコードとはいえコンパイラオプションが関の山かね
0646デフォルトの名無しさん
2015/02/14(土) 16:56:39.89ID:ocCjNIfbどうせGCだし、多少無駄なコンストラクタが呼ばれることくらい誤差のうちだろう。
0647デフォルトの名無しさん
2015/02/14(土) 16:59:55.40ID:atTTe3b7てかもうScalaとかKotlinとかその他もろもろ
デフォルトNull禁止の言語は山ほどあって上手くいってるのに
何を今更…
0648デフォルトの名無しさん
2015/02/14(土) 17:22:46.61ID:bEUa3keyしかしながら前例が山ほどあっても、C#ほどには流行ってないのが全てかもね
ってかいつのまにジどっか行ったんだよ、Moneyコードじゃねーか
0649デフォルトの名無しさん
2015/02/14(土) 17:44:57.24ID:PHmS6feJいやかけんなって話になるんだろうけどさ
3値論理の論争みたいに収束はしなさそうだな
0650デフォルトの名無しさん
2015/02/14(土) 18:40:36.04ID:PfOF9s4Mstringの初期値が""とか気持ち悪いわ
0651デフォルトの名無しさん
2015/02/14(土) 18:42:45.24ID:PfOF9s4M0652デフォルトの名無しさん
2015/02/14(土) 19:14:23.68ID:Hs1Wk7sonullを禁止するのなら元から断たねばならぬ。
NULL撲滅員会の非公認常任理事としては、データベースの実テーブルからNULLを排除するべきだと切に願う。
0653デフォルトの名無しさん
2015/02/14(土) 19:19:05.29ID:5NFDstGdせめてRoslynで実装してからまたおいで
0654デフォルトの名無しさん
2015/02/14(土) 19:31:51.69ID:Hs1Wk7so0655デフォルトの名無しさん
2015/02/14(土) 19:38:54.98ID:atTTe3b7DB用でもNullableそんなにいらないかなーと思うことしきり
0656デフォルトの名無しさん
2015/02/14(土) 19:38:58.97ID:5NFDstGd0657デフォルトの名無しさん
2015/02/14(土) 21:23:59.15ID:wmohZ6Di0658デフォルトの名無しさん
2015/02/14(土) 21:27:39.65ID:XSOXuxtr0659デフォルトの名無しさん
2015/02/14(土) 21:39:23.90ID:Kyzudol/0660デフォルトの名無しさん
2015/02/14(土) 21:52:10.16ID:3m1iUNVk0661デフォルトの名無しさん
2015/02/14(土) 22:00:51.92ID:G8GjWWhK0662デフォルトの名無しさん
2015/02/14(土) 22:44:29.39ID:atTTe3b70663デフォルトの名無しさん
2015/02/14(土) 23:05:58.61ID:7wkGcJdL0664デフォルトの名無しさん
2015/02/14(土) 23:17:21.10ID:3m1iUNVk0665デフォルトの名無しさん
2015/02/14(土) 23:24:37.22ID:hvR2TAiE0666デフォルトの名無しさん
2015/02/14(土) 23:51:41.04ID:G8GjWWhK昔からその手のもんは検討もせずスルーすんのがプロのデフォなので…
他人が考えた自動処理はどっかで行き詰る
特にメーカー品は徹底的にプリミティヴな非連結だよ
0667デフォルトの名無しさん
2015/02/15(日) 00:08:56.52ID:Mh0LkIrHもう寝るべき
0668デフォルトの名無しさん
2015/02/15(日) 08:21:19.64ID:n2M7TY52DataGridViewも非連結で使うんかいな。
0669デフォルトの名無しさん
2015/02/15(日) 09:29:10.77ID:bNigTbabそれは使うだろうけど
従来の連結ものと違って非連結と変わらんシンプルなコピーだし
メーカーは今でも1個1個セットかもしれんが
下手するとグリッド使わずテキストボックス並べて単体のスクロールバーに反応して中身入れ替えたりするし
0670デフォルトの名無しさん
2015/02/15(日) 09:42:02.67ID:ABT28a22クソ面倒臭いだけのアホみたいな作業をして
出来上がった後で当のおっさんもなんでこうしたか忘れてる意味不明な仕様のアプリが
利用者にファックファック言われながら10年運用されるんだよな…
0671デフォルトの名無しさん
2015/02/15(日) 11:38:32.24ID:uxAoEDAd10年前に考えた10年後は予想の通りだったろうか
0672デフォルトの名無しさん
2015/02/15(日) 12:22:18.18ID:n2M7TY52システムなんて日々増改築だろう。
で、最終的にスパでメンテ不能になってスクラップ&ビルド。
0673デフォルトの名無しさん
2015/02/15(日) 17:46:35.05ID:kp5uGiP40674デフォルトの名無しさん
2015/02/15(日) 18:33:46.27ID:bX6frV1s0675デフォルトの名無しさん
2015/02/15(日) 20:26:10.15ID:7wjOE94w0676デフォルトの名無しさん
2015/02/16(月) 11:39:56.92ID:a73kbkcR0677デフォルトの名無しさん
2015/02/16(月) 16:25:31.51ID:lTedmFF30678デフォルトの名無しさん
2015/02/16(月) 16:40:21.58ID:yoAtWWbZLINQ 動的クエリ
ぐぐれ粕野郎
0679デフォルトの名無しさん
2015/02/16(月) 16:43:05.90ID:q1qAzibN0680デフォルトの名無しさん
2015/02/16(月) 17:32:50.01ID:lTedmFF3式木で自前のクラスライブラリ作って実装は済んでいます。
他に面白い方法などないか聞いてみただけです。
0681デフォルトの名無しさん
2015/02/16(月) 19:16:53.25ID:lEWN8Yekこれの第6章とか?
http://www.amazon.co.jp/dp/toc/4048867741/ref=dp_toc?_encoding=UTF8&n=465392
>第6章 式によるコード生成
>6.1 式指向プログラミング
>6.2 LINQ式でダイナミックメソッドを作る
買ってみたけど余り読んでないww
0682デフォルトの名無しさん
2015/02/18(水) 13:26:39.80ID:zJtQK+E+delegate string StringHandler();
static void Main(string[] args)
{
string user01 = "";
string user02 = "";
List<StringHandler> userList = new List<StringHandler>();
userList.Add(delegate { return user01; });
userList.Add(delegate { return user02; });
user01 = "ABC";
user02 = "DEF";
foreach (StringHandler user in userList) {
Console.WriteLine(user());
}
続く
0683デフォルトの名無しさん
2015/02/18(水) 13:30:57.99ID:zJtQK+E+原理が分かりません
デリゲートでぐぐると、「メソッドの実行を関節的に行う」
「C言語でいう関数ポインタである」という説明を見ました。
これってつまり
{ return user01; });
ここはuser01というフィールドの参照をリターンしているという事なんですか?
ちなみにUnityなんですが、Debug.Logで出力してもdelegate型名がログウィンドウに
表示されるだけで、中身が確認できませんでした
0684デフォルトの名無しさん
2015/02/18(水) 13:38:39.43ID:pmjO4Zhz外部変数のキャプチャとか表現される機能
匿名メソッド/ラムダ式で外部の変数が使用される場合、
その変数はメソッドのローカル変数じゃなくてコンパイラが生成するクラスのフィールドになる
簡略化すればこんな感じ
class anonymous {
public string value;
}
static void Main() {
anonymous _user01 = new anonymous() { value = "" };
StringHandler handler = delegate { return _user01.value; };
_user01.value = "ABC";
handler();
}
0685デフォルトの名無しさん
2015/02/18(水) 13:55:24.96ID:zJtQK+E+キャプチャ機能は一応、目を通しました
匿名メソッド内で上位スコープの変数が使われている場合、その変数の延命が行われる、とか
あと
string x;
x = userList[0];
とかできないのもよく分かりません
stringにキャストできませんとか言われます
userList[0]で匿名メソッド「{ return user01; }」が動いてuser01の中身(string)を返すのでは・・・?
0686デフォルトの名無しさん
2015/02/18(水) 13:57:06.77ID:zJtQK+E+>user01の中身(string)を返すのでは・・・?
返すのはstring型ではなく、「参照」ですよね?
その中身とかどうやって見れるんでしょうか
0687デフォルトの名無しさん
2015/02/18(水) 14:01:57.13ID:pmjO4Zhz> List<StringHandler> userList = new List<StringHandler>();
userList[0]が返すのはStringHandler型であってstring型じゃない
StringHandler型つまりデリゲート型は特別に()演算子で委譲されたメソッドを実行できる
StringHandler handler = userList[0];
string result = hander();
0688デフォルトの名無しさん
2015/02/18(水) 14:06:25.57ID:zJtQK+E+アホな質問ですみませんが、delegate使ってメソッド呼ぶのと
普通にメソッド呼ぶのではキャプチャ機能以外で何が違うんでしょうか
0689デフォルトの名無しさん
2015/02/18(水) 14:07:28.88ID:zJtQK+E+デリゲートというものについての理解が困難です・・・
参考にしているのは
ttp://ufcpp.net/study/csharp/sp_delegate.html
主にここです
0690デフォルトの名無しさん
2015/02/18(水) 14:20:50.73ID:pmjO4ZhzそこのSelectメソッドをデリゲート無しで「普通にメソッド呼ぶ」ってどうやって?
条件毎にSelect1メソッド、Select2メソッド、って書いていく?
0691デフォルトの名無しさん
2015/02/18(水) 14:40:41.80ID:zJtQK+E+そこもちょっとよく理解できていませんが、
>StringHandler handler = userList[0];
>string result = hander();
当初の目的としてはここが知りたかったんです
今まで
string result = userList[0];
としていましたが、delegate型が帰るので、一度その型で受けてから
hander();と書いてメソッド実行してreturn user01の型であるstringで受ける、
という認識でいいんですよね
0692デフォルトの名無しさん
2015/02/18(水) 14:48:06.17ID:pmjO4Zhzstring result = userList[0]();
0693デフォルトの名無しさん
2015/02/18(水) 15:07:30.27ID:zJtQK+E+() ←は、メソッド(匿名メソッド)をコールしているから必要、という事ですよね?
それが分かっていなかったようです。
ありがとうございました
0694デフォルトの名無しさん
2015/02/18(水) 21:17:59.57ID:TtSVwZYjただ、デリゲート自体は関数ポインタの親戚な上に、ないとマトモにプログラム組む気起きないぐらい基本的な言語仕様なので、初心者の範疇やな
ラムダ式(匿名デリゲート)、キャプチャも慣れるまでイミフだけど、他の言語でも類似機能ある頻出な言語仕様系だからしっかり理解するのオススメ。
キャプチャ理解したら、キャプチャとforeachの仕様変更も理解するとモアベター。ふぁいと
0695デフォルトの名無しさん
2015/02/18(水) 22:09:55.86ID:FJC9eT5Z実体はオブジェクト参照+関数ポインタに他ならないけど
0696デフォルトの名無しさん
2015/02/18(水) 22:13:52.34ID:ZsWSUqlJ0697デフォルトの名無しさん
2015/02/18(水) 22:22:22.31ID:7aMv74vxそれは(自分で言ってるように)そう「見做してる」だけ。
正しいって何だよ。
0698デフォルトの名無しさん
2015/02/18(水) 22:59:55.75ID:FHXOTJ+B0699デフォルトの名無しさん
2015/02/18(水) 23:58:48.33ID:AVZb1Mt20700デフォルトの名無しさん
2015/02/19(木) 05:15:50.02ID:rPtIBISB期待した機能は問題ないのですが、コンパイルしたプログラムが、
起動させると数秒して再起動(閉じてまた起動する)します。
Hello Worl表示のようなソースでも同様なのですが、普通に1回で起動させるために何か必要なことがあるのでしょうか?
0701デフォルトの名無しさん
2015/02/19(木) 05:32:55.00ID:tuZVKyYz0702700
2015/02/19(木) 05:44:51.30ID:rPtIBISBソースはこんなんです。
シリアルポートをチェックするだけのものです。
コンパイルしたプログラムを実行させると起動して数秒で再起動します。
0703700
2015/02/19(木) 06:24:34.41ID:rPtIBISBセキュリティソフトの問題でしたorz
0704デフォルトの名無しさん
2015/02/24(火) 22:46:18.81ID:9av0rMIjMicrosoft Visual Studioことはじめ〜キャンペーン http://codeiq.hatenablog.com/entry/2014/12/25/150000
にはもちろん応募したよな?
誰か当たった?
0705デフォルトの名無しさん
2015/02/24(火) 23:37:50.92ID:9OYj7FQ20706デフォルトの名無しさん
2015/02/25(水) 01:07:58.41ID:ESAWqhksWithステートメント使えないじゃねーか
0707デフォルトの名無しさん
2015/02/25(水) 02:58:04.28ID:V4V4PRhf0708デフォルトの名無しさん
2015/02/25(水) 03:20:48.41ID:ESAWqhks0709デフォルトの名無しさん
2015/02/25(水) 19:58:40.79ID:5gzTIGkn0710デフォルトの名無しさん
2015/02/25(水) 20:19:07.06ID:9jad7y3g0711デフォルトの名無しさん
2015/02/25(水) 23:12:05.55ID:uQJ7B2Wt川俣先生がお呼びだぞ
0712デフォルトの名無しさん
2015/02/27(金) 11:40:50.23ID:KxU3cUcNなんとか早くならない?
0713デフォルトの名無しさん
2015/02/27(金) 12:29:31.22ID:EZLwV1tk動的に追加してるならSuspendLayoutしてないとかじゃないか
0714デフォルトの名無しさん
2015/02/27(金) 12:51:11.41ID:tCo8Ph/O中身が多いんだろ
0715デフォルトの名無しさん
2015/02/27(金) 13:33:00.46ID:u3BLeEUS0716デフォルトの名無しさん
2015/02/27(金) 13:43:27.62ID:rH0Q6QqF真面目に質問レス書いてたら投稿する前に解決してしまうじゃないか
0717デフォルトの名無しさん
2015/02/27(金) 15:00:23.30ID:h6tAs7eH0718デフォルトの名無しさん
2015/02/27(金) 16:11:11.88ID:c9s4YfIW0719デフォルトの名無しさん
2015/03/01(日) 03:24:09.11ID:PpU9Sdop1秒くらいなら別にいいんじゃ?
0720デフォルトの名無しさん
2015/03/01(日) 03:26:28.87ID:PpU9Sdop0721デフォルトの名無しさん
2015/03/01(日) 03:29:04.14ID:PpU9Sdop0722デフォルトの名無しさん
2015/03/02(月) 09:37:46.96ID:ixY25SIKusing (var ms = new MemoryStream())
{
using (var sw = new StreamWriter(ms))
{
sw.WriteLine("hello");
sw.WriteLine("world");
}
using (var sr = new StreamReader(ms))
{
Console.WriteLine(sr.ReadLine());
Console.WriteLine(sr.ReadLine());
}
}
0723デフォルトの名無しさん
2015/03/02(月) 10:01:17.24ID:xRfYEXVXデフォルトではReader/Writerが破棄される時
対象のストリームも一緒に閉じるから
ついでにストリーム位置戻し忘れてない?
0724デフォルトの名無しさん
2015/03/02(月) 10:12:26.14ID:SHM5IwUA0725デフォルトの名無しさん
2015/03/02(月) 11:41:53.32ID:ixY25SIKwriter閉じた後シークすらできなかったので
ストリームが閉じているというのは納得です
ありがとうございました
0726デフォルトの名無しさん
2015/03/06(金) 01:21:05.48ID:90VT0ADJ異常に保守性が悪く、バグの特定に苦労しましたが、これを使ってメリットありますか?
0727デフォルトの名無しさん
2015/03/06(金) 02:12:29.20ID:8jo4c40P0728デフォルトの名無しさん
2015/03/06(金) 09:09:56.47ID:zWXA/UR7動的云々くらいにしか使い道はないんじゃないか、結局実装はobjectらしいのでパフォーマンスも悪い
インターフェイス、抽象クラス、ジェネリック等で解決出来るならそれに越したことはないと思う
ダックタイピングなんてコンパイラ言語でやるこっちゃあないね、foreach?LINQ?…。
0729デフォルトの名無しさん
2015/03/06(金) 14:00:42.17ID:aMLLgYQ/シリアライズしたアセンブリのバージョンにバリバリ依存するので
それをなんとか回避するためにdynamic使いまくったことはある
まあ設計ミスなんだが
0730デフォルトの名無しさん
2015/03/06(金) 19:20:12.70ID:lSxjShen0731デフォルトの名無しさん
2015/03/06(金) 19:36:03.26ID:K15TOJCY0733デフォルトの名無しさん
2015/03/06(金) 20:49:44.76ID:+V/z1/b/設計としては全く賛同しないけど意味不明というほどでもない
0734デフォルトの名無しさん
2015/03/06(金) 20:58:43.65ID:coWMRvsx0735デフォルトの名無しさん
2015/03/06(金) 22:21:58.81ID:1OUVemxBアホが糞ソース量産するの防止
0736LINQer
2015/03/06(金) 22:44:07.67ID:P4OmJ7lr0737デフォルトの名無しさん
2015/03/06(金) 22:51:30.71ID:K15TOJCY0738デフォルトの名無しさん
2015/03/06(金) 22:55:22.40ID:coWMRvsxvar見たら脊髄反射してVariantだ〜品質が〜とか騒ぎ出す阿呆よりよほど使える
0739デフォルトの名無しさん
2015/03/06(金) 22:58:24.88ID:1OUVemxB0740デフォルトの名無しさん
2015/03/07(土) 11:11:58.06ID:FoVDQD6E0741デフォルトの名無しさん
2015/03/07(土) 11:27:44.78ID:2KiYbMBo0742デフォルトの名無しさん
2015/03/07(土) 11:28:28.26ID:LW8uI5XV単に使い捨てクラス作るのが面倒ってだけっしょ
それならいっそTupleでいいじゃんとは思わないでもない
0743デフォルトの名無しさん
2015/03/07(土) 11:44:17.92ID:MlGEwDRlタプルってのは言語のサポートがある上で int age, string name = GetPerson();
みたいに都度展開して使うもんなんだよ
Item1とかアホか
0744デフォルトの名無しさん
2015/03/07(土) 11:48:47.87ID:Q9nqJq7f0745デフォルトの名無しさん
2015/03/07(土) 11:54:57.96ID:0X1gIkd60746デフォルトの名無しさん
2015/03/07(土) 12:12:18.95ID:2KiYbMBo0747デフォルトの名無しさん
2015/03/07(土) 12:15:11.33ID:AaUSQvTIダックタイプが好きな人とそうでない人が
自分の志向を押しつけ合っても無駄
0748デフォルトの名無しさん
2015/03/07(土) 12:17:43.43ID:s7kGoYdvC#でそれをやりたがる発想もわからんが
0749デフォルトの名無しさん
2015/03/07(土) 12:28:40.79ID:AaUSQvTIstrong typingを捨てたらリファクタリング(名前変更とか)の精度が落ちるだろう
0750560
2015/03/07(土) 12:46:46.51ID:jaly8+RG> 匿名型をdynamicで返す
そんなことをしたくなったことがないんだが、どんな状況で必要になるんだ?
0751デフォルトの名無しさん
2015/03/07(土) 12:55:19.92ID:ELHucOd4<return>結果を格納した配列 0:◯◯の値、1:△△の値</return>
たまにやってしまう
0752デフォルトの名無しさん
2015/03/07(土) 13:02:43.81ID:0X1gIkd60753デフォルトの名無しさん
2015/03/07(土) 13:25:14.62ID:shYh0yxP0754デフォルトの名無しさん
2015/03/07(土) 13:38:59.81ID:0X1gIkd6Dynamic Assemblyじゃないんだから
0755デフォルトの名無しさん
2015/03/07(土) 19:17:13.39ID:N/wyHwvzdynamicは実行時コード生成のルールを完全に自分で定義できる高度なメタプログラミングの仕組みを備えてるよ
0756デフォルトの名無しさん
2015/03/07(土) 20:52:13.71ID:0X1gIkd6Enum.HasFlagもリフレクション使ってるからメタプログラミングだし、dynamic型とDLRの区別をつける必要もないよね
0757デフォルトの名無しさん
2015/03/07(土) 21:18:41.69ID:MlGEwDRl一種のメタプログラミングと言えるね
DLR? DLRなんてもう死語だし言ってもお前にしか伝わらんだろ
それに.NETに組み込まれてるのは本来のDLRのごく一部だ
ちなみにdynamicの仕組み(DynamicMetaObject/DynamicMetaObjectBinder)はコード生成にDynamicMethodを使うけどアセンブリの動的生成は使わんぞ
0758デフォルトの名無しさん
2015/03/07(土) 22:03:13.63ID:0X1gIkd6「メンバー名が決め打ちになるからあまり役に立たない。他のダイナミック○○と混同しているんじゃないか」(>>754)つー主張をしているつもりなんだけど
メタデータは読めても文脈は無理なのかな
あとDLRを勝手に殺すな
0759デフォルトの名無しさん
2015/03/07(土) 22:58:16.79ID:On7QrDFNC#に限定した話でなく広義的に見ると
コンパイル前のコード生成もメタプログラミングだし
C++テンプレート的なメタプログラミングもある
実行時に文字列やDOMなどをコンパイルするのもメタプログラミングだし
実行時にメンバのメタ情報の読み書きを行うのもメタプログラミングだし
ビルドプロセスに介入するのもメタプログラミングだし
生成物を後で書き換えるのもメタプログラミングだ
dynamicは実行時にメンバのメタ情報の読み書きを行うタイプのメタプログラミングで便利な時があるね
0760デフォルトの名無しさん
2015/03/07(土) 23:32:39.43ID:0X1gIkd6BinaryExpressionでも一発で出来る例なのが微妙だが
0761デフォルトの名無しさん
2015/03/08(日) 12:33:59.24ID:edMAX4MxStartCoroutine(WaitFor(2.0f)); // 一時停止
Application.LoadLevel("game"); // シーン切り替え
public IEnumerator WaitFor(float waittime)
{
// ストップ実施
yield return new WaitForSeconds(waittime);
}
とすると一時停止せずシーン切り替えされます
StartCoroutine(WaitFor(2.0f)); // 一時停止
public IEnumerator WaitFor(float waittime)
{
// ストップ実施
yield return new WaitForSeconds(waittime);
Application.LoadLevel("game"); // シーン切り替え
}
とコルーチン内にシーン切り替えを持ってくると想定動作になるのですが
これはどういう事ですか?理屈か分かりません。
0762デフォルトの名無しさん
2015/03/08(日) 12:54:16.39ID:5q7l5O1i0763デフォルトの名無しさん
2015/03/08(日) 13:07:44.15ID:JlL7Zlt50764デフォルトの名無しさん
2015/03/08(日) 13:11:01.08ID:OaTBMw3l> StartCoroutine(WaitFor(2.0f)); // 一時停止
まず自分が書いたコードで呼び出してる関数の説明ぐらい読んだらどうだ低脳
0765デフォルトの名無しさん
2015/03/08(日) 13:12:00.55ID:+/h1eClM0766デフォルトの名無しさん
2015/03/08(日) 13:23:08.66ID:5q7l5O1i0767デフォルトの名無しさん
2015/03/08(日) 13:26:25.07ID:ygKzTSMs低脳じゃなくて低能なw
0768デフォルトの名無しさん
2015/03/08(日) 13:59:15.26ID:zXQCQciGnew Action( () => Baka.Sleep(1000) )
};
Baka.InvoveActionsLater(actions);
Baka.StopSomething();
これと同じこと。当然だな
0769デフォルトの名無しさん
2015/03/08(日) 14:06:42.65ID:vYL3voYS最初っからフレームワークに頼り切らないでフレームワーク自作するぐらいの気概と学習意欲がないからそうなるんだよ
0770デフォルトの名無しさん
2015/03/08(日) 14:08:38.47ID:adF/rlPF0771デフォルトの名無しさん
2015/03/08(日) 15:08:00.17ID:r3LxMNma0772デフォルトの名無しさん
2015/03/08(日) 15:08:34.71ID:M+AHJcPP0773デフォルトの名無しさん
2015/03/08(日) 15:34:31.03ID:rEcSRQEG0774デフォルトの名無しさん
2015/03/08(日) 17:51:06.86ID:edMAX4Mx申し訳ございませんでした
0775デフォルトの名無しさん
2015/03/08(日) 18:21:08.05ID:428rnVgy何かやたら煽られるてけど、>>762で言われてる非同期処理を勉強すれば分かると思うよ。
0776デフォルトの名無しさん
2015/03/08(日) 18:44:33.67ID:edMAX4Mxありがとうございます。調べてみます。
0777デフォルトの名無しさん
2015/03/08(日) 18:51:53.31ID:srsOwzq5PHPやRubyみたいなWebサイトツクールに比べりゃ遥かにマシ
まあUnityは素のC#をほとんど理解してない人が結構いたりしてアレだが
0778デフォルトの名無しさん
2015/03/08(日) 19:32:17.74ID:ZUloTWyM仕事でそんな事言って作業時間アホほど延ばされたら困る。
0779デフォルトの名無しさん
2015/03/08(日) 19:36:58.50ID:srsOwzq5フレームワークのほんの少しの学習コストを嫌って
直接低レベルな実装をしたりアホみたいな社内フレームワークが生み出されたりする
0780デフォルトの名無しさん
2015/03/08(日) 19:42:39.99ID:Ju4Ov5Iv0782デフォルトの名無しさん
2015/03/08(日) 21:13:15.13ID:z3dYg3sm0783デフォルトの名無しさん
2015/03/08(日) 21:15:33.62ID:srsOwzq5一般的にいうフレームワークとはかなり違う
ASP.NETあたりはフレームワークと呼べなくもないけど
0784デフォルトの名無しさん
2015/03/08(日) 21:16:18.43ID:sc1gFCCN0785デフォルトの名無しさん
2015/03/08(日) 21:17:35.12ID:ceSNJXb/フレームワークへの依存は極小だな。
フレームワークの依存が大きいのはおもに
Webアプリケーションの乱立フレームワーク
0786デフォルトの名無しさん
2015/03/08(日) 21:22:08.46ID:5q7l5O1iそれで他言語で書けなくなるってことはないけど
0787デフォルトの名無しさん
2015/03/08(日) 21:50:09.69ID:srsOwzq5いわゆるWebフレームワークだと、何がどこにあるのか今何を使っているのかどういう仕組みなのかよくわからないけど
なんとなくこう書くものらしいし変にさわるとおかしくなるから気にしないでおこうというのが基本だからな
0788デフォルトの名無しさん
2015/03/08(日) 22:13:51.33ID:JHTV8U6vttps://ideone.com/YJ6bBz
Blittable構造体を読み出すジェネリック拡張メソッドをスレッドセーフで実装しながら
パフォーマンスを維持するにはこんな方法しか思いつかなかった
バッファが静的フィールドだとvolatile付けたってlockしないとスレッドセーフに成らんよな?
というかbyte[]インスタンスのTypeHandleはどっから来てるの?__makerefから取れるTypeHandleは
typeof(byte[]).TypeHandleともtypeof(Array).TypeHandleともtypeof(byte).TypeHandleとも異なる…
Type.GetTypeFromHandleUnsafeしてみりゃSystem.Byte[]が返ってくるArrayだけ構造違うの?
0789デフォルトの名無しさん
2015/03/08(日) 22:17:41.62ID:rJrv12koひとつに限定していないというだけで普通にフレームワーク提供してるだろ、
System.Windows.Applicationとか。
0790デフォルトの名無しさん
2015/03/08(日) 22:27:39.57ID:5q7l5O1i0791デフォルトの名無しさん
2015/03/08(日) 22:41:23.32ID:xsLbcRsTアプリの構造を規定しないとか嘘を言うから突っ込まれたんだろ。
言語の実行基盤としてのフレームワークはあまり規定しないかも知れんが
Webアプリ・GUIアプリ・Windowサービスのフレームワーク
としては規定しまくりだろう
0792デフォルトの名無しさん
2015/03/08(日) 22:51:51.87ID:rJrv12koWPFとFormsも例外だった?例外多いなw
0793デフォルトの名無しさん
2015/03/08(日) 22:52:24.45ID:srsOwzq5https://ideone.com/FS9jcM
0794デフォルトの名無しさん
2015/03/08(日) 22:55:27.12ID:srsOwzq5Webフレームワーク触ったことある?
規定のレベルが違う
0795デフォルトの名無しさん
2015/03/08(日) 23:16:52.36ID:5q7l5O1iそういうのは本人に聞いてくれ
0796デフォルトの名無しさん
2015/03/08(日) 23:22:52.61ID:5q7l5O1i0797デフォルトの名無しさん
2015/03/08(日) 23:25:34.17ID:JHTV8U6vうーん済まないがThreadStatic使うとnew byteするのと大してパフォーマンス変わらないんだよね
スレッドセーフじゃない静的フィールドならReadInt32を上回る速度が出るんだけど…
inputがMemoryStreamだとInternalReadInt32呼ばれて負けますがね!もはやC++/CLIでも使えって話だけど
0798デフォルトの名無しさん
2015/03/08(日) 23:38:24.38ID:uAYzQK0s0799デフォルトの名無しさん
2015/03/08(日) 23:56:15.74ID:JHTV8U6v結局unsafeコードなら直にfixedキャスト書いた方が速いし
マネージコードならSafeBuffer使えば良いし(AlignedSizeなのが玉に瑕だが
Marshal.SizeOfTypeにもthe lack of a suitable generic constraint.なんて書かれてるし
MSILで出来る事がC#で書けないのがなんかもにょる.NETの為の言語じゃねーのかよって感じで
0800デフォルトの名無しさん
2015/03/09(月) 01:49:35.21ID:bl0YQ52kわろたぁぁwww
0801560
2015/03/09(月) 06:46:27.93ID:R+XoG9o+レベルが違うだけで、フレームワークとしての仕組みは同じ
仕組み理解できない奴には全然違うものに見えるのかもしれないけど w
0802デフォルトの名無しさん
2015/03/09(月) 07:50:02.15ID:ILJGwsf4WPFもFormsも、イベントドリブンなアプリケーションの構造とその根幹であるイベントループを提供しているがな。
0803デフォルトの名無しさん
2015/03/09(月) 19:39:15.43ID:nl7+aNOJ0804デフォルトの名無しさん
2015/03/09(月) 21:31:25.39ID:ILJGwsf4持つクラスはCだろうな。
ただ、設計論としてのMVCはプログラマ自身が設計するクラスをどれに分類するかを
考えるだけで、フレームワーク自体はその背後に存在するとみなすのが普通じゃないかな。
たとえばMVVMでも、VとVMのバインディングを誰がやっているのかなんて考えないように。
0805デフォルトの名無しさん
2015/03/10(火) 08:03:14.06ID:hNEbsZbx他の考えがあるという認識が無く
すべてをMVCに当てはめようとする
0806デフォルトの名無しさん
2015/03/10(火) 08:18:10.49ID:tjx9AHBmMVCがSmalltalkのGUIフレームワーク特有の事情に依存した仕組みであることを知らない
0807デフォルトの名無しさん
2015/03/10(火) 11:28:42.22ID:zdRAHy3fやってる人居ませんか?
0808デフォルトの名無しさん
2015/03/10(火) 14:01:39.28ID:zdRAHy3fキー入力を取得するにはどうすればいいんでしょうか?
フォームアプリなら分かるんですが、DTEからはどうすればいいのか、分からない、、
0809デフォルトの名無しさん
2015/03/10(火) 23:23:01.74ID:sIC3s7FK0810デフォルトの名無しさん
2015/03/11(水) 00:00:12.86ID:409Xxc8oC#でMEFのコンポーネントとして作るという超モダンな仕組みに置き換わった
0811デフォルトの名無しさん
2015/03/11(水) 00:19:41.57ID:53MZ6hm2>vsのアドイン
http://www.atmarkit.co.jp/fdotnet/special/vsaddinintro01/vsaddinintro01_02.html
0812デフォルトの名無しさん
2015/03/11(水) 00:26:53.74ID:+PvNMM+70813デフォルトの名無しさん
2015/03/11(水) 04:17:10.81ID:s98Ts5Opwindowsフォームアプリケーションで、効果音を鳴らすためにDirectSoundを
使いたいんですが、usingに何を定義してやればいいのかわからないんですが
どなたかわかりますか
VS2012以降はDirectXがWindows SDKに統合されたと聞いたので
DirectX SDKをインストールしないでDirectSoundを使いたいです。
0814デフォルトの名無しさん
2015/03/11(水) 05:01:34.28ID:rCH71uUa0815デフォルトの名無しさん
2015/03/11(水) 07:02:55.37ID:409Xxc8oアドイン(COMでDTE系使うやつ)は廃止予定で非推奨になっている
今は拡張機能といって>>810のやり方で作る
覚えておけロートル
0816デフォルトの名無しさん
2015/03/11(水) 07:54:42.34ID:mbZuxei0その昔。vsじゃなくて自前アプリ用だけど、
ほとんど同じことをリフレクション使って自力実装していたよ
0817デフォルトの名無しさん
2015/03/11(水) 10:23:32.79ID:33mlLn1HVSTi
0818デフォルトの名無しさん
2015/03/15(日) 02:10:38.08ID:/mwwDFisWindowsフォームアプリ作るとMainメソッド内の
Application.Run(new Form1());
によってForm1が起動しています。
これを、ある条件が満たされた時はForm1ではなくて、
CUIのプログラムを起動したいと思っています。
つまり、コンソールアプリとして作ったMainメソッドです。
ところが、以下のようにしてもうまくいきませんでした。
具体的には、コマンドプロンプトの画面が現れず、
うんともすんともいいません。
//Application.Run(new Form1());
Hoge.Main(null);
どなたか解決策をご存じの方はよろしくお願いします。
0819デフォルトの名無しさん
2015/03/15(日) 02:30:43.74ID:kJqM+4Chどうしても、そういうことを(C#で)やりたいなら、コンソールアプリを別に
作って、Hoge.Main();のところでProcess.Start("Hoge.exe");とかする?
0820デフォルトの名無しさん
2015/03/15(日) 02:48:22.34ID:eouifH9j0821デフォルトの名無しさん
2015/03/15(日) 02:54:32.68ID:kJqM+4Ch但し、C#(つまり.net)で、じゃなくwinのAPIを直接叩くってことになるけどね?(´・ω・`)
0822デフォルトの名無しさん
2015/03/15(日) 02:59:16.11ID:/mwwDFisレスありがとうございます。
質問書き込んでから自分でも色々と調べてみましたが、
どうやらそういう手段をとるしかないようですね。
つまり、コンソールアプリは別途exe化しておくと。。。
自分の状況を詳しく書くと、
HogeCui名前空間にコンソールアプリを作って、
HogeGui名前空間にフォームアプリを作ってます。
このとき、HogeGuiはHogeCuiを静的リンクしていて、
HogeCuiのさまざまなモジュールを参照しています。
HogeCuiのMainメソッドのみHogeGuiから呼んでいないということで、
せっかくだからオプションで起動できるようにしたいな、
と思ったのが動機です。
具体的には
if (Control.ModifierKeys == Keys.Alt)
{
Hoge.Main(null);
}
とかで、モディファイヤーキーで起動されたときに
CUIプログラムを動かしたいなと思っていました。
しかし、静的リンクさせてexeはHogeGui.exeのみにしているので、
これをHogeGui.exeとHogeCui.exeの二種類用意しなければならないとなると、
なんか違うかな^^;
HogeCuiのメインメソッドは入力は受け付けず出力のみとなっているので(HogeGuiのベンチマーク的な扱い)、
テキストボックスを適当に張り付けたForm2を用意してHogeCuiのテキストを出力するためのフォームアプリを用意する、
っていうのが一番いい解決策ですかね〜。
0823デフォルトの名無しさん
2015/03/15(日) 03:02:34.34ID:/mwwDFisレスありがとうございます。
ちょっとこれから調べてみます。
とり急ぎお礼まで。
0824デフォルトの名無しさん
2015/03/15(日) 08:32:43.97ID:S+QWGoMWそのexeを「ある条件」で起動するだけのバッチファイルを用意したら?
CUIのアプリは外から与えられた標準入出力をそのまま利用するべきで、
自主的にコンソールを新しく開くなんてかなり非常識だよ
0825デフォルトの名無しさん
2015/03/15(日) 09:32:02.87ID:D1mOgsSk> CUIのアプリは外から与えられた標準入出力をそのまま利用するべきで
そんなオレオレ基準はチラシの裏にでも書いとけよ
0826デフォルトの名無しさん
2015/03/15(日) 09:38:31.93ID:S+QWGoMWパイプとかリダイレクトとかどうするの?
もしかしてCUI(というかCLI)使ったことない?
0827デフォルトの名無しさん
2015/03/15(日) 09:45:28.09ID:0tKSfbWr静的リンクだからDLLって認識ならそれがまず間違い
EXEだろうと問題なく静的リンク出来るし普通にやるよ
両方EXEにして条件調べて走らせたい方をサブプロセスなりアプリドメインなりで走らせる
これが正解
0828デフォルトの名無しさん
2015/03/15(日) 09:55:35.09ID:5k25S29H対話式UIとしてのCUIは終わったけどプログラマブルなインターフェースとしてのCUI(CLI)は必須だよ
Unix系は言わずもがな、WinでもPowerShellでまた再評価されてるし
0829デフォルトの名無しさん
2015/03/15(日) 11:14:18.48ID:WxCi+1nCデリケートを実行時、
引数が与えられたものはその引数で実行し、
与えられていないものは実行時に渡した引数が実行されるのでしょうか?
public class TestDelegate{
public delegate void TestAction(string msg);
TestAction Events;
TestDelegate(){
Events+= new TestAction((x) => Test("1"));
Events+= new TestAction((x) => Test("2"));
Events+= new TestAction(Test);
}
public void Do(){
Events("3");
}
}
///result
1
2
3
0830デフォルトの名無しさん
2015/03/15(日) 11:20:22.88ID:WxCi+1nC0831デフォルトの名無しさん
2015/03/15(日) 11:25:03.95ID:SPZ1Q++Q全ての CLI プログラムがフィルターだと言うアホな主張乙
0832デフォルトの名無しさん
2015/03/15(日) 11:45:24.33ID:ILrktvZ0何に使うんだ?
0833デフォルトの名無しさん
2015/03/15(日) 12:08:05.19ID:bGttvvz00834デフォルトの名無しさん
2015/03/15(日) 15:20:46.72ID:yULakZKgdelegateはdelicateではありません…それはよろしいのですが
デリゲートはメソッド(+インスタンス)の参照しか保持しないというか
どれも実行時にしか渡してないよ?最初の二つは引数無視する即値なラムダ式なだけ
0835デフォルトの名無しさん
2015/03/15(日) 15:22:03.61ID:/mwwDFisみなさん色々な議論ありがとうございます。
僕がやりたかったことは>>820のキーワードを基に調査した結果
以下のページのNo.4の前半によって完全解決しました。
どうもありがとうございました。
一応、今後このログに辿り着く人のために貼っときます。
http://oshiete.goo.ne.jp/qa/6669837.html
>>827
ちゃんと伝わってない気がする。
DLLはこの際関係ないよ。
静的リンクにしてわざわざ実体を一つにまとめてるのに、
オプションのためにそれを二つに分割したくない、ってこと。
HogeCuiを静的リンクすると、エントリポイントとして
HogeCuiとHogeGuiのそれぞれのMainメソッドが候補として挙がってきて、
そこからHogeGuiのメインメソッドを選んでフォームアプリとしてたわけ。
でも、exeの中身確認するとHogeCuiのメインメソッドも使わないのに入ってることは
確認してて、なんかもったいないなと思ったわけさ。
今回の解決策によって実体ファイルは一つで、
それを普通に実行するかオプションで実行するかによって
フォームアプリとコンソールアプリの分岐が実現できてる。
>>830
俺もその派。
どうせ使わないんだからCUIはいらないっしょ、っていう考え方もあるかとは思うけど、
GUIとCUIの切り分けの究極形がCUI:C#+GUI:XAMLなんだと思ってる(実際XAMLは経験ないんだが^^;)。
切り分けをあらかじめしっかりやっておくと、例えばCUIをC#で書いて、
あとはXAMARINでiOS用とAndroid用に変換して、GUIはそれぞれnativeで!ってことが可能だったりする。
メリットはたくさんあれど、デメリットはないと思う。
逆に、切り分けないことによるメリットは時間ぐらいだと思うけど、
実際に切り分けた場合よりも開発期間を短くできるかというと、
返って長くなってたりするんじゃないかと思う。
0836デフォルトの名無しさん
2015/03/15(日) 15:44:13.10ID:se6Ndpqj無駄な工数
0837デフォルトの名無しさん
2015/03/15(日) 15:54:22.71ID:GvBSog6G0838デフォルトの名無しさん
2015/03/15(日) 17:18:34.60ID:xoQjS1Ikそういうライブラリはないでしょうか?
0839デフォルトの名無しさん
2015/03/15(日) 17:41:53.51ID:6pbsqEWY0840デフォルトの名無しさん
2015/03/15(日) 17:46:48.34ID:xoQjS1Ik参考になるサイトがあったら教えてください
よろしくお願い申し上げます。
0841デフォルトの名無しさん
2015/03/15(日) 18:06:15.60ID:lI5KOs1Rかわいい
0842デフォルトの名無しさん
2015/03/15(日) 18:47:14.42ID:4m4AvKc70843デフォルトの名無しさん
2015/03/17(火) 00:48:40.87ID:R3SqHR4I0844デフォルトの名無しさん
2015/03/17(火) 11:21:18.75ID:fOt5FY4tここページにある一番下のC#用のコードにある↓のコールバックメソッドに
//非同期要求が終了した時に呼び出されるコールバックメソッド
private static void ResponseCallback(IAsyncResult ar)
これににSystem.IO.Stream以外の文字列を渡したいんですが
複数の引数を渡す場合にはどうすればいいのでしょうか?
0845デフォルトの名無しさん
2015/03/17(火) 13:48:16.56ID:DdKageMC質問です
Unityを使ってエロゲーを一人で作ろうと一念発起しました
ネットで調べたらまずC#がわからないと作れないみたいなんですけど
C#を理解するために最低限必須の知識がまた必要だったりしますか?
あともう一つ、私はPCを初めて買って使い始めて今年で15年目になるんですが
ローマ字で日本語入力ならなんとかタッチタイピングが出来ます
でもアルファベットの文字列入力になると途端にまごついちゃって困っています
日本語の意味をなさないABCの文字列になるとタイプミスが異常に増えるんですが
上達のコツってあるんでしょうか?
よろしくお願いします
0846デフォルトの名無しさん
2015/03/17(火) 14:39:05.53ID:F7+3oz6MTupleでも突っ込んどけ
>>845
Cの勉強してからまた来なさい
0847844
2015/03/17(火) 17:08:45.62ID:fOt5FY4tSystem.IO.Streamと文字列をTupleに詰め込んでコールバック関数に渡すまではわかるんですが、
渡したあとIAsyncResult ar を Tupleにキャストが出来ません
IAsyncResultをオブジェクト型にして、そこからTupleにしてもキャストできないので困ってます・・・・
System.IO.Stream st = webres.GetResponseStream();
// 3つの型のオブジェクトを1つにまとめる
myTuple = Tuple.Create(st, "あああ");
//非同期でデータの読み込みを開始
//状態オブジェクトとしてStreamを渡す
IAsyncResult r = (IAsyncResult)st.BeginRead(
bufferData, 0, bufferData.Length,
new AsyncCallback(ReadCallback), myTuple);
}
//非同期読み込み完了時に呼び出されるコールバックメソッド
private static void ReadCallback(IAsyncResult ar)
{
Tuple myTuple = (Tuple)ar.AsyncState; ← ここがダメ
//状態オブジェクトとして渡されたStreamを取得
System.IO.Stream st = (System.IO.Stream)ar.AsyncState;
0848デフォルトの名無しさん
2015/03/17(火) 17:16:17.31ID:F7+3oz6M0849デフォルトの名無しさん
2015/03/17(火) 18:42:54.17ID:fOt5FY4tSystem.IO.Stream が渡せてないようです。
private void ReadCallback(IAsyncResult ar)
{
Tuple<System.IO.Stream, string> myTuple = ar.AsyncState;
Console.Write(myTuple.Item1.GetType());
Console.Write(myTuple.Item2);
System.IO.Stream st = (System.IO.Stream)myTuple.Item1;
string s = myTuple.Item2;
}
↓でエラーになります
System.IO.Stream st = (System.IO.Stream)myTuple.Item1;
型 'System.Net.ConnectStream' のオブジェクトを型 'System.Tuple`2[System.IO.Stream,System.String]' にキャストできません。
昨日からあれこれやって、最初はクラスを作って渡そうとしたのですが、文字列は渡せても
今回みたいに System.IO.Stream が渡せないんですよね
0850デフォルトの名無しさん
2015/03/17(火) 18:53:32.34ID:F7+3oz6Mそのエラーメッセージよっっっっっっく見てみい
受け取り側で出てるんじゃないぞ
0851デフォルトの名無しさん
2015/03/17(火) 20:01:34.18ID:fOt5FY4tSystem.IO.Stream コールバックメソッドに渡したら System.Net.ConnectStream や System.IO.Stream,System.String に
なぜ変化するのかがサッパリわかりません
0852デフォルトの名無しさん
2015/03/18(水) 09:04:26.06ID:wDcY5eax0853デフォルトの名無しさん
2015/03/18(水) 12:52:40.42ID:rgOq7Izuよくわからないけど、呼び出し側で明示的にtupleを定義しないとダメとかじゃなくて?
Tuple<st,string> tuple = Tuple.Create<st,string>(st, "あああ");
0854デフォルトの名無しさん
2015/03/18(水) 13:22:31.85ID:kF3M8QQKその書き方キャストはmyTupleにかかりItem1にはかからない
0855デフォルトの名無しさん
2015/03/18(水) 14:15:47.70ID:Z6Z60fm9以前は初心者スレがあったと思うのですが見当たらなかったのでこちらに書き込ませていただきます
画像フォルダにx個の画像があったとしてy個の画像をpicturebox等でフォームに表示させたいのですがどういう方法があるのでしょうか?
picturebox "文字列" = new picturebox()
みたいな書き方ができないので困ってます。
0856デフォルトの名無しさん
2015/03/18(水) 14:18:10.75ID:Z6Z60fm9自己解決しました
0857デフォルトの名無しさん
2015/03/18(水) 14:56:05.91ID:wDcY5eaxおいおい
0858デフォルトの名無しさん
2015/03/18(水) 17:05:32.27ID:bQcL7aTHhttp://www.forest.impress.co.jp/docs/news/20150317_693099.html
0859デフォルトの名無しさん
2015/03/18(水) 18:09:37.62ID:eMbfMOiK0860デフォルトの名無しさん
2015/03/18(水) 20:41:49.07ID:KG+PvW+h0861デフォルトの名無しさん
2015/03/19(木) 00:14:17.55ID:bNeGNw49無料ですか?
0862デフォルトの名無しさん
2015/03/19(木) 08:35:08.27ID:Gzynmn0Kxamarin有料です
0863デフォルトの名無しさん
2015/03/19(木) 10:50:57.44ID:UsvnOtteデスクトップから突然ストアアプリにきて色々増えてて戸惑ってるorz
0864デフォルトの名無しさん
2015/03/19(木) 11:13:06.50ID:7NX1VyPt0865デフォルトの名無しさん
2015/03/19(木) 12:17:51.08ID:Gzynmn0K住み込みで雑用から
0866デフォルトの名無しさん
2015/03/19(木) 12:43:17.13ID:b7/FbYD2互いに依存しないクラスの間で通知を行いたいときに使うんだろ
単体テストや再利用時にはEventAggregatorさえ差し替えればいい
インターフェース使ってもいいけど、それだと後で変更がしづらくなるからな
だから、元々明示的に依存してるクラスの間で使う意味はあまり無いだろうな
Prismの目的からいって、メモリリークが回避できるのは副次的なものだと思う
0867デフォルトの名無しさん
2015/03/19(木) 19:21:31.25ID:zqrkQTg/Q.今どんな知識が必要ですか?
A.いいから始めろ、やりたいことを調べろ、その解説がわからなかったらさらにそれを調べろ、
それがわからなかったらさらにそれを調べろ。
今何が必要か気にしてる暇があったら始めろ、とにかく動け、さっさと一歩を踏み出せ。
Q.タイピングの上達のコツは?
とにかくやれ、そのうち慣れる。必要に迫られたスキルは自ずと身につくもんだ。
どうしても集中して上達したいならタイピングソフトでも買え
0868デフォルトの名無しさん
2015/03/19(木) 23:16:33.85ID:XgAg07xQこれを繰り返したところCLR MemoryのBytes in All heapsは低い値で安定していた
しかしProcessのWorking Set(プライベートの方)は30MBytesずつ増えていき120MBytesまで増えた
しかし120MBytes以上に増える事はなかった
Virtual Memoryは300MBytesで安定していた
これってどう解釈したらいいんですかね?
最初はアンマネージコードがメモリリークを引き起こしていると思ったんですが
リークしているなら120MBytes以上に増えるはずですよね
仮想メモリも安定してるからスワップアウトしてるってわけでもなさそうです
0869デフォルトの名無しさん
2015/03/19(木) 23:58:41.72ID:b7/FbYD20870デフォルトの名無しさん
2015/03/20(金) 03:19:41.71ID:AFFfIoWjスレ違いな点、意味不明な点があったらすみません
staticなクラスAのメンバ配列を、クラスBにコンストラクタで受渡して、
(Class B {int[,] a; B(int[,] a) this.a = a;}みたいな書き方しました)
Bのaを書き換えたところ、Aのaが書き換わってしまいました
(わかりにくくてすみません)
元のクラスの配列を書き換えないためには、どうしたら良いでしょうか
言葉足りない点が多いと思いますが、どうぞよろしくお願いします
0871デフォルトの名無しさん
2015/03/20(金) 03:41:16.90ID:IeE6utRY共変性の問題で詰まるんだが。。。
なにかいい方法ないですか?
0872デフォルトの名無しさん
2015/03/20(金) 04:15:53.84ID:gKCbE9yHArray.Copy()
0873デフォルトの名無しさん
2015/03/20(金) 04:53:25.32ID:AFFfIoWjありがとうございます!!
C#ではarray A = array Bは参照渡しになるんですね!!
一歩前に進めました!
0874デフォルトの名無しさん
2015/03/20(金) 06:22:07.56ID:7kGez1M5http://blogs.msdn.com/b/dotnet/archive/2015/03/18/msbuild-engine-is-now-open-source-on-github.aspx
0875デフォルトの名無しさん
2015/03/20(金) 07:06:29.05ID:j37DXh6X・ジェネリックリストを継承するのは厨臭いからやめろ
・クラス間のやりとりには極力IEnumerable<T>を使え
0876デフォルトの名無しさん
2015/03/20(金) 09:17:21.42ID:shwzduSCリストを継承してるわけでなく
内部で保持しているだけです。
当然、リストを直接いじって欲しくない場合はenumで返してます。
0877デフォルトの名無しさん
2015/03/20(金) 09:44:00.51ID:7IRK8izM共変性の問題で詰まるといわれても困る
言語仕様があなたの要求(や或いは妄想)に合致しないだけの話では?
.net4.0を検討したら如何
0878デフォルトの名無しさん
2015/03/20(金) 22:44:39.62ID:8t27nLZP0879デフォルトの名無しさん
2015/03/20(金) 22:56:55.50ID:j37DXh6X何がわからないのか説明できないならプログラミングは向いてないので諦めましょう
0880デフォルトの名無しさん
2015/03/21(土) 12:14:53.69ID:Kq5CKcX4一番下にスライドさせる為に、X座標の数字を 1,500としているのですが
サイトによっては、jQueryで隠しブロックが表示されてしまい(ブラウザの高さが増える)
スクロールバーを一番下に移動させる事がうまく出来ません。
どの様なページを開いてもスクロールバーを一番したまで
自動で下げるにはどうすれば良いでしょうか?
wb.Document.Window.ScrollTo(400,1500);
0881デフォルトの名無しさん
2015/03/21(土) 13:55:35.69ID:g1XQ2yrj無理
無限スクロールの存在と矛盾してる
0882デフォルトの名無しさん
2015/03/22(日) 10:55:41.74ID:1/U9rVrzthank you baby
0883デフォルトの名無しさん
2015/03/22(日) 19:30:25.25ID:cRMgPMeD0884デフォルトの名無しさん
2015/03/22(日) 20:53:54.56ID:3civYS9uC#だけでは無理
C++でCLRをホストすればCOM API使って取れる
メモリリークなどのデバッグをしたいだけならCLR Profilerが使える
CLR Profilerはヘッドレスで動かすこともできるから、アプリに組み込むこともできなくはない
0885デフォルトの名無しさん
2015/03/22(日) 21:13:25.43ID:1/U9rVrzテキスト項目への入力は出来るのですが
ie.setAttribute("value", "hoge");
コンボボックスの項目を選択する方法が分かりません。
たとえば、optionの値が "lemon" の項目をC#でIEを操作して選択するにはどういう
コードをかけば良いのでしょうか?
ie.select(); ← これだとエラーになります。
<select>
<otion value="apple">apple</option>
<otion value="lemon">apple</option>
<otion value="cabbage">cabbage</option>
</select>
0886デフォルトの名無しさん
2015/03/22(日) 21:52:47.40ID:3civYS9uブラウザのデバッガ使えば楽勝
0887デフォルトの名無しさん
2015/03/22(日) 22:36:12.98ID:4Yjb2LThなんか知らんが普通にサーバ側でスクリプト吐くように書けばいいんじゃねーのかよ
0888デフォルトの名無しさん
2015/03/22(日) 23:01:13.50ID:3gWalJmtWebBrowserコントロールかWinAPI叩きかSeleniumか何かを使ってるってことでしょ
大抵javascriptと同じAPIだからselectのidかnameを参照するとか、selectタグをたどるとかしたあとにsetAttributeでしょうね
合ってるかどうかは知らん
<select id="selectid" name="selectname"> ... </select>
ie.getElementsByTagName("select")[0].setAttribute("value","apple") //1個目のselectタグ
ie.getElementsByName("selectname")[0].setAttribute("value","apple") //1個目のselectnameというnameのタグ
ie.getElementById("selectid").setAttribute("value","apple")
0889デフォルトの名無しさん
2015/03/23(月) 00:50:27.03ID:NciN/kwkババ抜きを作っているんですが、
重複のチェックってどうやるんでしょう?
一応、数字だけならこんな感じにしたのですが
if (list.remove(card) == false) list.Add(card);
トランプ感を出すために
マークとヴァリューを持ったクラスを作りました。
そしたらこんな風になって
var FindFlag = false;
foreach(var card in hand){
if(card.value == drawcard.value){
hand.remove(card)
FindFlag = true;
break;
}
}
if(FindFlag == false) hand.Add(drawcard);
クラスにするだけでえらい手間が増えるなぁと思った次第です。
もっとかっちょいいプログラムの仕方はありますでしょうか?
0890デフォルトの名無しさん
2015/03/23(月) 01:05:42.79ID:pSjqqcPy0891デフォルトの名無しさん
2015/03/23(月) 01:10:11.75ID:NciN/kwkできないなら追加したいだけです。
0892デフォルトの名無しさん
2015/03/23(月) 01:24:43.97ID:jcFHdOQTYou are welcome a foolish baby.
0893デフォルトの名無しさん
2015/03/23(月) 02:40:38.41ID:d7pBCjoAforeachの中で列挙対象のオブジェクト削除って可能だっけ?
というかフラグなんか使わなくても
var card = hand.SingleOrDefault( x => x.Value == drawCard.Value );
if( null == card )
hand.Add( card );
else
hand.Remove( card );
みたいな感じで。テストはしてない
0894デフォルトの名無しさん
2015/03/23(月) 02:52:28.42ID:EfZYyTdeありがとうございます!エスパー様!解決しました!!
読解力のある方がいて助かります。
0895デフォルトの名無しさん
2015/03/23(月) 03:18:10.60ID:0n8ws3suIEquatable<Card>を実装してEquals(Card)メソッドをoverrideする
GetHashCode()メソッドもoverrideしてHashSet<Card>を使うのも良いだろう
0896デフォルトの名無しさん
2015/03/23(月) 04:39:28.92ID:vnw8lcsOなんか便利そうなのにありがとうございます。
>>895
なるほど、イコールを自分で作っちゃえばいいんですね。
ハッシュコードってよくわからないです。
なんでオーバライドするんですか?
0897デフォルトの名無しさん
2015/03/23(月) 05:12:28.29ID:xwACqlut一意性や一貫性は、保証されないようだ
Equalsメソッドをオーバーライドしたときは、
GetHashCodeメソッドもオーバーライドするらしいので、
Equalsで比較する時に、使うのだろう
ttp://www.weblio.jp/content/Object.GetHashCode+%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89
0898デフォルトの名無しさん
2015/03/23(月) 06:03:14.63ID:0n8ws3suうっかりEquals(Card)もoverrideと書いてしまったがそっちはオーバーライドじゃなかった
GetHashCodeをoverrideするのは、HashSet<T>がこのメソッドを利用して高速に要素の比較を行うから
予め取得されたハッシュコード(int)が同一だった場合のみ、等価性の評価にEquals()メソッドを呼び出す
で…書いといてなんだけど、Equals(Card)がマークを考慮しない比較というのも何だし
HashSet<T>を使うほどEquals(Card)が高コストでもないので、トランプ的にもIComparable<Card>で
CompareTo(Card)メソッドを実装してSortedSet<Card>を使うのが良いかもしれない
要素のクラスではなくコレクションが独自にチェックする場合はIComparer<T>を作って渡す
あるいはコレクションが重複を許可しないほど厳密でなくても良いとか、複数箇所で比較しないとかで
List<T>のままFindIndex(Predicate<T>)や>>893みたいにLINQ拡張メソッドを使ってラムダ式渡して済ませる事もできる
0899デフォルトの名無しさん
2015/03/23(月) 07:16:02.82ID:39b0MZjdそんなもん盲目検索でいいよ
ハッシュ表どころか2分検索でも余計に遅くなるわ
0900デフォルトの名無しさん
2015/03/23(月) 07:59:01.35ID:dP2v+ntyIEquatableを実装するときの作法だろ
0901デフォルトの名無しさん
2015/03/23(月) 08:16:01.38ID:39b0MZjdマークを考慮しない比較に使うのは>>898の言う通り不適切
その場限りのデリゲートでいい
0902デフォルトの名無しさん
2015/03/23(月) 09:50:12.64ID:CwInofJRdatagridviewのセルのテキストに特定の文字列が含まれている場合は、
そのセルの文字列を太字にしようと思い、cellformattingイベントで次のコードを実行しました。
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
string hoge = int.Parse(dgv.Rows[e.RowIndex].Cells[3].Value.ToString());
if (hoge =="moge")
{
dgv[2, e.RowIndex].Style.Font = new Font(dgv.DefaultCellStyle.Font, dgv.Font.Style | FontStyle.Bold);
}
}
結果、太字にはなったのですが、datagridview全体が点滅するような感じになってしまいました。
原因を調べたところ、どうやらcellformattingイベントはマウスカーソルがセル上を移動したりするたびに
呼び出されるため、このようになっているようです。
>CellFormatting イベントは、セルに値が書き込まれたり、マウスカーソルがセル上を移動したりするたびに呼び出される
EZ-NET: CellFormatting イベントで DataGridView のセルにスタイルを設定する? - Visual C# プログラミング
http://program.station.ez-net.jp/special/handbook/csharp/control/DataGridView/cell-formao
何かいい対策はないでしょうか?
0903デフォルトの名無しさん
2015/03/23(月) 10:07:03.49ID:dP2v+ntyCellFormattingでやろうとしてるDOBONとかがクソ
値によってスタイルを変えるのに値そのものが変わってないイベントでやろうとしてる最悪の低能
クソ情報垂れ流しおって
0904デフォルトの名無しさん
2015/03/23(月) 10:44:41.89ID:CwInofJRrowsAddでやってみたところ動いたのですが、1行目のスタイルしか変更されず。
addrangeで一括で描画しているので1件目しか反応しないのかな。
0905894
2015/03/23(月) 12:58:15.12ID:EfZYyTdevalue は取得できるのに、 src の属性値が取得出来ないのはなんでしょうか?
0906デフォルトの名無しさん
2015/03/23(月) 20:22:59.39ID:ai9MTwtK.Cells[3].とか直接指定しないで、CellFormattingの対象になっているセルで判断してみたらどう?
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
var text = Convert.ToString(e.Value);
if (text == "moge" )
{
e.CellStyle.Font = new Font(dgv.DefaultCellStyle.Font, dgv.Font.Style | FontStyle.Bold);
}
}
0907デフォルトの名無しさん
2015/03/23(月) 23:15:00.14ID:k4Iv9Yid0908デフォルトの名無しさん
2015/03/23(月) 23:28:12.68ID:39b0MZjdそのN個のリソースを管理してるクラスが持つキューに解放対象のリソースのハンドルかなんかを登録しておく
さらにその管理クラスでリソースが生成された数と解放された数を管理し、
全てが解放されたらキューに登録されたリソースを順に解放する
と考えてはみたけどこんな頭の悪い事するくらいなら普通にその管理クラスにDispose実装しろ
0909デフォルトの名無しさん
2015/03/24(火) 03:54:42.33ID:figDJ/Izエラーも起こらない、単純なオブジェクトに限る
オブジェクト同士が循環参照しているなど、
解放順序が問題になるような、
複雑な連鎖しているオブジェクトは、
GCには判断できないため、自分できっちり解放すべき
0910デフォルトの名無しさん
2015/03/24(火) 09:00:20.49ID:InP3mEM1は?
0911デフォルトの名無しさん
2015/03/24(火) 10:44:23.83ID:9bMH5FZc明示的な解放処理が必要か否か。それだけ
0912デフォルトの名無しさん
2015/03/24(火) 11:11:15.80ID:pTbi00YxファイナライザやIDisposable.Disposeで呼ばれるメソッド内で
正しい順番で解放する
0913デフォルトの名無しさん
2015/03/24(火) 11:14:10.96ID:ZEQduHchファイルにはどのようなフォーマットで書き出すと読み書きがしやすいでしょうか
0914デフォルトの名無しさん
2015/03/24(火) 11:38:13.53ID:twv14Qqwファイルサイズなのか 人が目で見ても分かるようにしたいのか
いろいろあるじゃん
0915デフォルトの名無しさん
2015/03/24(火) 11:45:56.69ID:InP3mEM1配列の個数は?
0916デフォルトの名無しさん
2015/03/24(火) 12:30:09.86ID:ZK0UnpiA数値データってスクリプトでバッチ処理かけたりするケースが多いと思われるので、
バイナリだと不便極まりない
ただし、
書いたときと読んだときで値が厳密に同一性でないといけないならバイナリ
ファイルサイズが3倍程度になるのが許容できないならバイナリ
読み書きの速度が許容できないボトルネックになるならバイナリ
0917デフォルトの名無しさん
2015/03/24(火) 12:36:24.65ID:ZEQduHch1つです
>>916
一行ごとに
String.Split
Double.Paise
ということですか?
0918デフォルトの名無しさん
2015/03/24(火) 12:43:34.15ID:InP3mEM1orz
配列の中身の個数は?
0919デフォルトの名無しさん
2015/03/24(火) 15:55:31.71ID:ZEQduHch縦横両方とも可変長です
0920デフォルトの名無しさん
2015/03/24(火) 16:11:40.74ID:InP3mEM1もういいorz
c#で読み書きするのなら、まるごとバイナリシリアライズでもしとけば。
0921デフォルトの名無しさん
2015/03/24(火) 17:35:43.26ID:5p22mzyj0922デフォルトの名無しさん
2015/03/24(火) 19:11:08.93ID:c6mpFC05>複雑な連鎖しているオブジェクトは、GCには判断できないため
それを判断するのが GC というものだ、循環参照を扱えないのならふつうのポインタですむ話
0923デフォルトの名無しさん
2015/03/24(火) 20:09:43.21ID:bA1Gc2HG0924デフォルトの名無しさん
2015/03/24(火) 20:38:58.17ID:5XUF0zTFpublic class clsA : clsC
public class clsB : clsC
上記のような定義があるとして、clsAやclsBの関数が呼ばれた直後と最後で、clsCのBeginとEndを呼びたいです。
ただし、clsA clsB 上に base.Begin(); base.End(); という呼び出しは書けません。
clsA clsBの関数は追加で増やす場合もあれば削除する場合もあります。その際clsCに手を加えられません。
clsAとclsBの関数名は重複しているものもあれば、別のものもあります。
おそらくですが、実装不可能ですよね?
0925デフォルトの名無しさん
2015/03/24(火) 20:42:22.79ID:ZX4Zfj1v日本語でpse
0926924
2015/03/24(火) 21:03:03.61ID:5XUF0zTFすいません。では詳しく書きなおします。
public class clsA : clsC
public class clsB : clsC
上記のようなクラス定義があるとして、clsAやclsBの関数が呼ばれた直後と関数呼び出し後で、clsCのBegin関数とEnd関数を呼びたいです。
たとえば、clsC のBegin関数に"ABC"と出力、End関数に"DEF"と出力するようになっていたとします。
public void test() {
log("hoge");
}
上記のように clsA に書かれたtest関数を呼び出したら、出力結果が
ABChogeDEF
となるようにしたいのです。
0927デフォルトの名無しさん
2015/03/24(火) 21:56:23.94ID:ZX4Zfj1vtry, finallyで自分で呼び出すしか思いつかない
0928デフォルトの名無しさん
2015/03/24(火) 22:07:19.05ID:nK3ugp2t発想がお馬鹿としか言いようがない。
0929デフォルトの名無しさん
2015/03/24(火) 22:09:47.85ID:I9d+0tlB0930デフォルトの名無しさん
2015/03/24(火) 22:36:33.74ID:CAwB99Qc追加時にbeginとendも一緒に登録すればいいんじゃないの?
関数を追加をどんな方法でやりたいのかしらんけど
0931924
2015/03/24(火) 22:48:57.40ID:5XUF0zTFプロファイルのライブラリがあって、BeginとEndを全ての関数の頭とお尻に書くように要求されてまして、、、
全ての関数に付けるのは嫌だったという経緯です。
既定クラスでの呼び出しは諦めます。
ありがとうございました。
0932デフォルトの名無しさん
2015/03/24(火) 23:02:12.67ID:grDlNje1自分じゃ使ったことないけど。
0933デフォルトの名無しさん
2015/03/25(水) 02:51:12.16ID:a84bJL6H>>929の言うとおり完全にアスペクト指向プログラミングの考え方
決して馬鹿ではない
http://www.slideshare.net/Posaune/caop
0935デフォルトの名無しさん
2015/03/25(水) 08:05:41.89ID:khkApypBマネージドで確保したメモリのポインタをネーティブに渡してネイティブで
処理することはできた。ところがネーティブで確保したメモリーのポインタ
をマネージドでもらうのはどうするの?ヒントおしえて。
0936デフォルトの名無しさん
2015/03/25(水) 08:24:28.32ID:w567qPLi何がわからないのかわからない
0937デフォルトの名無しさん
2015/03/25(水) 09:15:49.35ID:H374DreS同じソリューションなら↓になるんですけど、別ソリューションだと「型 'form1' が定義されていません。」ってなるんですけど
当然プロジェクト参照はしています。
private static Form1 _form1Instance;
0938デフォルトの名無しさん
2015/03/25(水) 09:21:06.77ID:khkApypBあっ、そうなの。簡単すぎてサンプルがないのか。サンプルを探しまくっていた。
ネーティブのバッファはバイトイメージなんだけどByteポインターってないの?
0939デフォルトの名無しさん
2015/03/25(水) 09:41:22.61ID:OEoDi144普通にdll参照するだけでは?
0940デフォルトの名無しさん
2015/03/25(水) 11:05:15.10ID:02yD7H6Lpin_ptrとかはC++/CLIだよね?それらをC#でやる場合で良いのかな?
通常はネイティブコードと連携するならプラットフォーム呼び出し(P/Invoke)を使う
(DllImport属性の適用されたstatic externで外部実装されるメソッド宣言)
その際の参照云々について、Blittable型はそのまんまref/outでもいける
それ以外はIn,Out属性を設定し、MarshalAs属性でメモリレイアウトを制御する
unsafeならBlittable型は普通にポインター宣言できるし、それに対するC++同様の演算も出来る
safeコードならvoid*に相当するIntPtrとして受け取り、メモリレイアウトが同一ならSafeBuffer、
メモリレイアウトが異なりマーシャリングが必要ならMarshalクラスの各メソッドを使うことも出来る
ちなみにfixedや&に相当するGCHandle.AddrOfPinnedObject、Marshal.UnsafeAddrOfPinnedArrayElementもあるでよ
0941デフォルトの名無しさん
2015/03/25(水) 11:14:15.75ID:H374DreSそれでもダメなんですよね〜
やっぱり参照がおかしいんですよね?
0942デフォルトの名無しさん
2015/03/25(水) 11:42:29.81ID:OEoDi144publicになってないかnameスペースが違う
0943デフォルトの名無しさん
2015/03/25(水) 16:48:41.24ID:khkApypBここまででけた。でもでもIntPtrからどうやってとりだすの?
*pじゃだめだ。
//func2でネーティブに保存したバッファの内容を読みだす。
private void button2_Click(object sender, EventArgs e)
{
IntPtr p = clsWrap.func2func (100);
for (int i = 0; i < 100; i++)
{
string dt = string.Format("{0}", *p);
p +=1;
listBox1.Items.Add(dt);
}
}
0944デフォルトの名無しさん
2015/03/25(水) 16:49:38.72ID:khkApypB///C++/CLIのラッパー
//IntPtr WRAP::clsWrap::func2fun(int no){
// int *p = TT::func2(no);
// return static_cast<IntPtr>(p); //IntPtrにキャスト
//}
//---------------------------------------
//W32
//TT::func2()
//static int gbuf[1000];
//
//int * TT::func2(int no){
// int i;
//
// for (i = 0; i < no; i++){
// gbuf[i] = i + no;
// }
// return gbuf;
//}
0945デフォルトの名無しさん
2015/03/25(水) 19:25:17.06ID:02yD7H6LIntPtr自体はポインタじゃないのでデリファレンスは無理(C++で言えばINT_PTR、ポインター長のint
ポインタで受け取るならアンセーフコードの許可してunsafeメソッドにしC#でもint* pとしてp[i]で参照する
アンマネージからはポインタを直接返せば良いけど…ネイティブ側でバッファを用意するのはあまり良くないかな
C#でnew int[]したものを[Out]属性で渡して(アンマネージ側の受け取りはint*)、サイズも渡して書き込んでもらう方が
C#側でポインタを使わなくて済むし、GCが解放する、C#側で配列を用意するのが都合悪ければ仕方が無いが…
たとえばReadProcessMemoryなんかはこれでマネージ配列に突っ込んでくれるよ
[DllImport("kernel32", SetLastError = true)]
static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [Out] byte[] lpBuffer, IntPtr nSize, out IntPtr lpNumberOfBytesRead);
ちなみにIntPtrから取り出すならプリミティブ配列はMarshal.Copy、構造体配列はSafeBuffer.ReadArrayあたり
要素ごとにMarshal.PtrToStructureは遅いので…まぁ配列返すなら、そのままポインタで受け取った方が楽だね
0946945
2015/03/25(水) 20:13:25.76ID:02yD7H6LこれはMarshal.PtrToStructureと違ってマーシャリングせず、内部でデリファレンスするだけなのでポインター並
…というかそのC++/CLIにはラッパーのみ?C#はDllImportで(自動で固定されて)直接ネイティブ呼べるよ?
0947デフォルトの名無しさん
2015/03/25(水) 23:22:40.45ID:tBQh/Ltlobject Value{get;set;}を
継承クラスでは
T Value{get;set;}で振る舞うようにすることは可能でしょうか?
0948デフォルトの名無しさん
2015/03/25(水) 23:29:46.80ID:proRqoBt0949デフォルトの名無しさん
2015/03/25(水) 23:34:23.55ID:tBQh/Ltlので、もう大丈夫です
0950デフォルトの名無しさん
2015/03/25(水) 23:37:43.37ID:psGFo2Jc例えばデコレータで拡張したいときに属性の張り直し面倒くね?
0951デフォルトの名無しさん
2015/03/26(木) 07:34:11.26ID:FQTVCqe40952デフォルトの名無しさん
2015/03/26(木) 07:37:27.14ID:vGJK9a/jIntPtrはvoid*にキャストできる
>>950
Inherited=true
0953デフォルトの名無しさん
2015/03/26(木) 07:46:22.59ID:DeNcZS0KInherited trueって継承したときだけじゃん
属性のせいでクラスを再利用するには継承しないといけなくなった
これは致命的な言語的欠陥
0954デフォルトの名無しさん
2015/03/26(木) 07:53:30.57ID:vGJK9a/j何を言ってるのかわからない
もともとデコレータって基底クラスを継承しないといけないだろ
継承関係なしに同名メンバを呼び出せるようにしたいということか?
そんなもん属性全く関係ないし静的言語では一般的には間違ったやり方だ
インターフェイスを使え
0955デフォルトの名無しさん
2015/03/26(木) 08:33:05.99ID:9LfcDYxiの話は続けなくていいですよ。
お前の人間性と同じでつまらないからね。
ママにでも聞いてもらえ。
0956デフォルトの名無しさん
2015/03/26(木) 08:50:31.59ID:DeNcZS0Kあー基礎的な内容を納めてないんだな
まだこの話題に乗れるレベルじゃないよ君
0957デフォルトの名無しさん
2015/03/26(木) 09:12:46.45ID:l7K6W2jIアスペクト指向ってキモいね
実現手法がキモい
0958デフォルトの名無しさん
2015/03/26(木) 12:20:47.34ID:AQr6ntJwメタコードがキモいんか?
0959デフォルトの名無しさん
2015/03/26(木) 15:30:47.25ID:iGJalkdz0960デフォルトの名無しさん
2015/03/26(木) 17:06:00.99ID:+6QYYRsv0961デフォルトの名無しさん
2015/03/26(木) 20:56:31.51ID:k9c4vBqP0962デフォルトの名無しさん
2015/03/26(木) 21:38:45.56ID:UNsHB6qL0963デフォルトの名無しさん
2015/03/26(木) 23:34:53.13ID:3EwJ3iS310年前に再び出会った時は話題になりつつあった
今はそんなに扱われてないので若干悲しい
0964デフォルトの名無しさん
2015/03/27(金) 08:05:00.22ID:JgPCIX8Rそりゃ質問者が言ってる通り、継承しなくても属性を付けられる機能だろ
継承するとInherited=trueでない属性が失われる→
貼り直しが面倒→
だから継承前提の設計は糞
デコレータを例に挙げてるけど使ったことなさそうとか
デフォルトで属性が引き継がれるようにすると、属性を削除したいニーズに対応するために
Delete動詞的な属性を用意しなければならないくなって筋悪だとか
思うところは色々
0965デフォルトの名無しさん
2015/03/27(金) 08:33:20.89ID:Zbc2MDwX単にデコレータの基底クラスを使う場所に共通のコード入れるか
いろんな場所で使うんならそれこそAOP的な動作を追加するデコレータを被せるとか
もっと真っ当な方法はあるからな
0966デフォルトの名無しさん
2015/03/27(金) 08:34:24.25ID:LEkSzHkIプロファイラとかトレースロガーぐらいしか用途を思い付かないんだが、流行るほど便利な用途があるんか?
0967デフォルトの名無しさん
2015/03/27(金) 08:36:41.02ID:JKhZG9XI低レベルなヤツが作ったOOもどきも同じ。
0968デフォルトの名無しさん
2015/03/27(金) 11:16:06.70ID:Zbc2MDwX関心事の分離自体は(例えば>>965のように)OOを用いて十分実装できる概念なんだよな
バカがOOと直行する概念とか言い出したからおかしくなった
0969デフォルトの名無しさん
2015/03/27(金) 12:34:35.95ID:CX/S/YARうんこが出ましたで十分なのに、なんでうんこの実態に異常な執着心があるんだろう。
0970デフォルトの名無しさん
2015/03/27(金) 12:47:11.92ID:qCIvk3hi0971デフォルトの名無しさん
2015/03/27(金) 13:11:12.90ID:kiqbsef80972デフォルトの名無しさん
2015/03/27(金) 14:19:50.24ID:JKhZG9XIウンコなんで煮ても焼いても食えぬ。
0973デフォルトの名無しさん
2015/03/27(金) 15:47:12.92ID:aS32uikB0974デフォルトの名無しさん
2015/03/27(金) 17:05:39.72ID:FbXdxQFAアスペクト指向はうまく使うのがかなり難しいからあってもほとんど使わないと思う
0975デフォルトの名無しさん
2015/03/27(金) 18:36:23.17ID:Zo0gsRSJusing(ClassA inst = (flag ? new ClassA(data1) : new ClassA(data1, data2))) {
}
今こんな感じなのですが呼ばれない方のインスタンスが無駄に確保されたりしませんか?
0976デフォルトの名無しさん
2015/03/27(金) 18:40:12.44ID:0X9R3ju6調べればすぐ分かることをなぜ調べないんだろう
https://msdn.microsoft.com/ja-jp/library/ty67wk28.aspx
0977デフォルトの名無しさん
2015/03/27(金) 18:46:16.09ID:Zo0gsRSJすみません片方しか評価されないのですね
ありがとうございます
0978デフォルトの名無しさん
2015/03/27(金) 23:24:31.77ID:72GaouxL0979デフォルトの名無しさん
2015/03/27(金) 23:29:28.41ID:JgPCIX8Rいいとこ紹介しようか?
0980デフォルトの名無しさん
2015/03/27(金) 23:48:41.98ID:72GaouxL君が世話になってる病院か?
ヤブ医者じゃねえか
0981デフォルトの名無しさん
2015/03/28(土) 00:23:44.05ID:QvAo9luz0982デフォルトの名無しさん
2015/03/28(土) 01:38:12.34ID:V3KKlDPY0983デフォルトの名無しさん
2015/03/28(土) 01:38:57.62ID:SN7vQ9760984デフォルトの名無しさん
2015/03/28(土) 03:49:22.03ID:NeQ9SRfJ0985デフォルトの名無しさん
2015/03/28(土) 03:59:15.87ID:XdXZJLO5昔からのデザパタも Python とかのも、同じデコレータだし、この程度のことで技術水準とか
ここ偶にかなり詳しい方とかいるから、どやりたいなら気を付けて
0986デフォルトの名無しさん
2015/03/28(土) 06:59:02.19ID:OyQ/coxi低レベルだよはっきり言って
0987デフォルトの名無しさん
2015/03/28(土) 07:47:03.58ID:nd1s6XTc0988デフォルトの名無しさん
2015/03/28(土) 08:17:15.37ID:dK0wuEfn少なくとも俺より出来るやつはここまで見た事無い
0989デフォルトの名無しさん
2015/03/28(土) 08:26:57.96ID:OyQ/coxiまあ一流の人間が2chで落書きなんて暇なことやるかって話だよな
0990デフォルトの名無しさん
2015/03/28(土) 08:28:56.41ID:3hbPl+o90991デフォルトの名無しさん
2015/03/28(土) 09:28:42.59ID:dK0wuEfn0992デフォルトの名無しさん
2015/03/28(土) 12:37:19.55ID:H3jos3v30993デフォルトの名無しさん
2015/03/28(土) 15:12:29.87ID:KoG0P/EF0994デフォルトの名無しさん
2015/03/28(土) 17:19:21.34ID:6s5Th0th0995デフォルトの名無しさん
2015/03/28(土) 21:04:02.14ID:rUqxb8yd0996デフォルトの名無しさん
2015/03/28(土) 22:18:10.56ID:L+hYYKmO0997デフォルトの名無しさん
2015/03/28(土) 23:56:42.85ID:D5ZX+YoL0998デフォルトの名無しさん
2015/03/29(日) 01:06:13.14ID:k9FOA6LXhttp://peace.2ch.net/test/read.cgi/tech/1427558696/
0999デフォルトの名無しさん
2015/03/29(日) 03:18:00.56ID:/ej769a21000デフォルトの名無しさん
2015/03/29(日) 03:18:55.30ID:/ej769a210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。