15/05/27 21:58:33.29 XkW9VjQH.net
WebClientで作成したインスタンスって破棄しないと影響でかいですか?
数秒毎にループでインスタンス作成しては読み取る処理してるんですが、同期処理のせいか重いです。非同期処理はこれから実装を検討してるんですが。
561:デフォルトの名無しさん
15/05/27 22:21:23.93 ihueyhra.net
>>542
放置プレイで何の問題も起きてないが。
562:デフォルトの名無しさん
15/05/27 22:35:44.05 aznGlafD.net
数秒毎って、攻撃と思われないように気をつけろよ
563:デフォルトの名無しさん
15/05/27 22:40:12.30 1SVgoR5i.net
相談室でやってろよ阿呆君
564:デフォルトの名無しさん
15/05/27 22:53:17.63 ihueyhra.net
>>542
毎回disposeするとHTTP Keep Alive効かないか
565:デフォルトの名無しさん
15/05/29 14:16:08.87 SHzqDeqo.net
>>546
効くだろ。
566:デフォルトの名無しさん
15/05/29 19:10:07.05 d869LRaF.net
>>547
Disposeでコネクション切断されるだろ。
567:デフォルトの名無しさん
15/05/29 20:02:27.61 QF6UrsQ/.net
544のコンピューターでは切断されたんだろうな
568:デフォルトの名無しさん
15/05/29 20:48:57.06 kXESabcL.net
で、結局gc任せでいいの?
569:デフォルトの名無しさん
15/05/29 21:01:06.10 +zWW11JT.net
Disposeによって内部のコネクションプールに戻されるとかじゃねぇの?
Disposeはしといた方が良いと思う
570:デフォルトの名無しさん
15/05/29 21:34:23.34 1xJgnWA+.net
ソース読むとWebClientはただのファクトリーで
Disposeは何もやってないように見える
571:デフォルトの名無しさん
15/05/30 14:56:19.16 DRtbRWlm.net
IDisposeを解放しないバカは死ね
ただしasync/awaitは除く
572:デフォルトの名無しさん
15/05/30 17:06:27.61 UmMhJR2/.net
開放しないとどのような弊害が起きるんでしょう。
573:デフォルトの名無しさん
15/05/30 18:10:40.93 C+IOxaVu.net
設計上意図されないタイミングで開放するバカもいる
574:デフォルトの名無しさん
15/05/30 18:15:33.23 49aSQ4HZ.net
一般的なIDisposable実装ではファイナライザでリソース解放するようになっているのでパフォーマンスが低下する
575:デフォルトの名無しさん
15/05/30 18:28:02.76 2+UGB+5g.net
>>556
適当なこと言うなよ
576:デフォルトの名無しさん
15/05/30 18:55:49.49 y5cl7Y1T.net
ファイナライザを持つオブジェクトは2回GCしないと消えないので、
GCにかかる時間や頻度、そしてメモリ使用量を増加させる原因になる
Disposeが明示的に呼ばれた場合はSuppressFinalizeでファイナライザを無効化することが推奨されてるから
明示的にDisposすることで結果としてパフォーマンスの向上につながる
577:デフォルトの名無しさん
15/05/30 19:37:57.72 vFEdwQTI.net
IDisposable実装してるクラスは明示的にdisposeした方が良いのが多いが
コネクションプール使ってるヤツは物理的にクローズされてパフォーマンスが落ちるのでものによるな。
578:デフォルトの名無しさん
15/05/30 19:45:22.76 u87GwTIT.net
>>559
例えば?w
579:デフォルトの名無しさん
15/05/30 19:53:15.04 zOKa2SxY.net
常にConnectionと一体になってるような粒度のオブジェクトしか設計したことないんやろ
580:デフォルトの名無しさん
15/05/30 20:57:24.50 vFEdwQTI.net
>>560
SqlConnection クラスとか
581:デフォルトの名無しさん
15/05/30 20:58:45.95 d5Z165ny.net
Disposeしたのに繋がってたら嫌じゃね?
582:デフォルトの名無しさん
15/05/30 20:58:57.87 vFEdwQTI.net
>>561
どういう意味?
583:デフォルトの名無しさん
15/05/30 21:03:22.68 mQMhglYl.net
SqlConnectionは Dispose = プールに返却 だからDisposeは必須だぞ
使い終わりを検知する方法がないのにどうやって使い回してると思ってたんだ
584:デフォルトの名無しさん
15/05/30 21:26:23.97 zOKa2SxY.net
落ちもついたところで今日はお開き
585:デフォルトの名無しさん
15/05/30 21:43:46.63 d5Z165ny.net
おやすみ~
586:デフォルトの名無しさん
15/05/30 22:55:48.95 vFEdwQTI.net
>>565
コネクションクローズしとくだけで良いだろ。
どうせプロセスが終ればプロセス毎解放されるし。
587:デフォルトの名無しさん
15/05/30 23:13:09.23 nd5twrZx.net
>>558
>ファイナライザを持つオブジェクトは2回GCしないと消えない
その珍妙な説のソースは?
588:デフォルトの名無しさん
15/05/30 23:46:38.97 T/VeDaq5.net
>>569
「ソースはMSDN」くらい省略させてくれよ、常識だろ?
URLリンク(msdn.microsoft.com)
589:デフォルトの名無しさん
15/05/30 23:56:09.15 oQYe81Za.net
ソースが出せない人の常套句「ソースはMSDN」
もちろんリンク先にはソ書かれていない
590:デフォルトの名無しさん
15/05/31 00:36:38.12 9foGZIMb.net
MSDNって言われても初心者的にMSDNはわかりにくいんだよなぁ
591:デフォルトの名無しさん
15/05/31 00:55:02.32 QGRYrQik.net
参照型プロパティの初期化について質問です。
■実装方針
1.プロパティのnewは1度きりで、インスタンスは引き継ぐ。
(初期化しても引き継ぎたい値のコピーやnew処理コスト、コード量増加抑止を目的)
2.プロパティのInitializeは毎回実行。
3.Initializeの引数は�
592:Nラス毎に異なる。 ■実装例 http://ideone.com/nQJ6VZ ■質問内容 1.Initialize内部では例外が無い前提で実装するのは、多人数開発においてアリか。 2.Initializeの成否でなく、thisを戻り値にする設計は、多人数開発においてアリか。 3.「m1 =(m1 ?? new M1()).Initialize」の部分が定形的なので、もっと省略したり単純化する方法はあるか。 4.実装方針に問題点はあるか? 以上、部分的にでもご意見いただければと思います。
593:デフォルトの名無しさん
15/05/31 01:29:44.63 MabpreS8.net
>>573
何のために、このような回りくどいやり方をするのでしょうか?
594:デフォルトの名無しさん
15/05/31 02:01:48.74 rnPMXZrB.net
>Initializeは毎回実行
初期化を複数回呼び出すことがおかしい。
何でInitializeがコンストラクターと別なの?
595:デフォルトの名無しさん
15/05/31 06:45:17.54 EczZHdOg.net
>>569
ごめんなさいは?
596:デフォルトの名無しさん
15/05/31 07:03:44.63 EczZHdOg.net
>>573
1. 例外がスローされる可能性を排除しては「いけない」し、そもそも「できない」。多人数だろうが個人だろうが。
2.
インスタンスを返すこのようなメソッドは静的にしたくなる。
成否と言ってるけどそもそもInitializeは失敗するのか? 失敗したインスタンスはどうするのか?
Initializeという名前だけど、毎回実行なら初期化というより単に情報を与えているだけな気が。
3. そういうレベルじゃなくね? m1, m2は初期化前に触られたらどうなんの?
4. なんか筋が悪いコードに見える
597:デフォルトの名無しさん
15/05/31 07:13:17.54 crGWWGGX.net
コンストラクタで例外投げたくないという話なら分からないでもないが、
Initializeでも投げないとなると、初期化に失敗してる可能性をプロパティ使用時に考慮しなければならない
Initialize呼び忘れのリスクもあるし、ミスを非常に生みやすいクソ設計といえるね
598:デフォルトの名無しさん
15/05/31 08:24:58.82 HdJipRY3.net
ビルダーパターンとメソッドチェーンに妙な感化でもされたのか
599:デフォルトの名無しさん
15/05/31 08:26:31.55 E4eD717b.net
初期化がメソッドチェーンに含まれる設計がクソ
初期化はコンストラクターでやれ
600:570
15/05/31 13:31:30.99 QGRYrQik.net
皆さん、ご意見ご指摘ありがとうございます。
後出しになってすみませんが、まず質問時の補足をさせていただきます。
■状況
現在WPFを勉強中です。
もともと初期化を以下のイメージで実装していました。
これでは、インスタンスの作成とモデル毎に異なる初期化の判別が冗長だと感じたのが今回の質問のきっかけです。
m1 = m1 ?? new M1();
m1.Initialize(hoge,"foo");
m2 = m2 ?? new M2();
m3 = m3 ?? new M3();
if (m3.IsInitialize) {
m3.Reset(dst);
}
else
{
m3.Initialize(dst);
}
■考え方
質問時のコードは、次の考え方を含んでいました。
・コンストラクタでの初期化が適当でないモデルを想定。(継承、シリアル化、バインディング、非同期、他)
・初期化⊃リセットと考え、Initializeにリセットの意味合いを持たせる。
・処理の抽象化とコード量を短縮することを目的に、Initializeをメソッドチェーンにする。
・初期化(リセット)が失敗した場合、エラー度合(処理を進めるのか終了するのか)は、タイミングや他モデルの状態に依存し、
初期化時に例外スローはせずにプロパティ参照時にエラー度合をチェックすべき。
続きます。
601:デフォルトの名無しさん
15/05/31 13:34:53.01 QGRYrQik.net
>>581の続きです。
今回私の考え方に誤りがあることが分かり、勉強になりました。
■反省
ご指摘を受けて、次の是正が必要だと認識しました。
・コンストラクタでの初期化が適当でないものだけ、Initializeを作成する。
・初期化とリセットを混同せず、別々に定義する。
・初期化でのメソッドチェーンはやめる。
・初期化失敗時に例外を投げて問題ない、エラー度合を判断できるクラス設計にすべき。
■お願い
反省点を認識したものの、具体的な実装が浮かびません。
上記コードのようなさまざまな参照型プロパティの初期化が必要な場合、どう効率的に実装するかご提示いただけないでしょうか?
Initializeを作らないというアプローチでもかまいません。
抽象的なお願いとなりますが、ご助力ください。
602:デフォルトの名無しさん
15/05/31 15:14:08.09 HdJipRY3.net
このモデルは本当にコンストラクタでの初期化が適当でないんだろうか
603:デフォルトの名無しさん
15/05/31 22:23:16.53 GgyUUQ/3.net
C#を使うなら諦めろということだ。どうしてもいやならC++を使えばよい。
placement newがある
604:デフォルトの名無しさん
15/05/31 22:36:02.70 DItVGOoj.net
プロパティを普通に作って??は消せよ
605:デフォルトの名無しさん
15/06/01 13:53:32.03 ZLkEb6tw.net
一つのクラスに色々詰め込みすぎだろ
一緒に初期化できないなら別のクラスにするのが筋
例えば永続化層は単なるデータとして分離しろ
606:デフォルトの名無しさん
15/06/02 10:57:10.02 +73WPJDz.net
バックグラウンドで文字列の置換を行っているのですが
DoWorkの引数を複数にした場合の書き方が分からず困っております。
どうすれば正常に動くのか教えてください。
URLリンク(ideone.com)
607:デフォルトの名無しさん
15/06/02 11:50:01.20 3K9K5nvj.net
this.backgroundWorker1.RunWorkerAsync(new object[] { this.workerArgument, this.workerArgument2 });
↓
と引数を設定したんなら
↓
object[] obj = (object[])e.Argument;
string str = (string)obj[0];
string str2 = (string)obj[1];
じゃね?
しかしFormがBackgroundWorkerを公開しちゃってるしよろしくないね
BackgroundWorkerなんて投げ捨ててTask使おうぜTask
608:デフォルトの名無しさん
15/06/02 12:42:25.68 +73WPJDz.net
>>588
教えていただいたとおりにしたところ正常に動作しました。
難しそうですがTaskというものも調べてみようと思います。
どうもありがとうございました。
609:デフォルトの名無しさん
15/06/02 20:50:03.01 pCEddnCf.net
ソレでもいいけど、Tuple使うのが常套手段じゃね?
URLリンク(www.atmarkit.co.jp)
610:デフォルトの名無しさん
15/06/02 21:18:24.64 16XnEFNb.net
>>590
これってメソッドとかに渡す時、受け側はどう宣言するの?
611:デフォルトの名無しさん
15/06/02 21:29:11.90 Km0g2dva.net
asyncじゃあかんの?
612:デフォルトの名無しさん
15/06/02 23:36:06.84 Xy74cFV6.net
まだTupleとか言ってるバカがいるのか
タプルってのは var name, age = GetNameAndAge(); のようにして使うもんであり、
間違ってもitem1とかいう意味不明な名前でコードを暗号化するためのものではない
言語レベルでのサポートがない言語で使うべきではない
613:デフォルトの名無しさん
15/06/03 01:02:06.86 N6yD348L.net
dynamicはアカンの
614:デフォルトの名無しさん
15/06/03 04:04:12.25 +cwo1qGY.net
item1とか適当な名前でも問題ないぐらいの処理だからTuple使うわけで
ちゃんとした処理ならちゃんとしたクラス作るか匿名クラスかでやるわ
615:デフォルトの名無しさん
15/06/03 07:15:25.31 Wh0ON4xv.net
もう質問は解決してますよ
思想の話がしたければ電車に飛び込んだ後、地獄でゆっくりやれよクソカス
616:デフォルトの名無しさん
15/06/03 07:15:29.90 amqoRlyA.net
ほうほう
では匿名クラスを使ったサンプルとやらを見せて貰おうか
617:デフォルトの名無しさん
2015/0
618:6/03(水) 07:27:33.67 ID:Wh0ON4xv.net
619:デフォルトの名無しさん
15/06/03 07:40:18.45 QMuypoEX.net
TupleはF#のために追加されただけだよ
C#も言語レベルでサポートしてほしい派だけど、
Tuple.CreateやらItem1やらを喜んで使うのはセンスを疑うわ
620:デフォルトの名無しさん
15/06/03 07:42:09.25 u1dB80rd.net
ウンコはトイレでしてもらえますか?臭いですよ
621:デフォルトの名無しさん
15/06/03 17:26:40.68 o7sLDqXU.net
Tupleは内部の隠ぺいされた範囲内でテンポラリーとして仕方なく使うものじゃないの?
622:デフォルトの名無しさん
15/06/03 18:57:18.34 QadS+ygN.net
型と順序だけ決まっていればいいならTuple
メンバーに名前を付けたいならクラスを定義する
名前を付けたいけど取り出すコードが近くにあるテンポラリなら匿名オブジェクト
名前をつけたいけどクラスを定義するのがダルいならdynamic
タプル型は変数に名前が欲しいかどうかであって、チンポラリとか関係無い
623:デフォルトの名無しさん
15/06/03 21:16:51.33 90whoNkH.net
>>601
クラス内部で使うデータ構造としてお手軽便利に使っておりますが。
624:デフォルトの名無しさん
15/06/03 22:09:17.51 RjLZjXm6.net
IComparerとかIEqualityComparerを実装するのに class と struct のどっちがお勧め?
継承する必要がないなら struct の方がいいんじゃないかと思うんだが
625:デフォルトの名無しさん
15/06/03 22:15:57.39 tAqP6WbY.net
>>604
その問題設定そのものが変
626:デフォルトの名無しさん
15/06/03 22:17:10.12 QMuypoEX.net
本当にそれだけの条件しか考慮しないならclassだろう
CompareやEqualsの呼ばれる頻度が高いならstructはコピーで遅くなる可能性があるし
struct+interfaceはボックス化避けるためにジェネリック多用しなきゃいけなくて不便だし
特殊化でメモリも食う
627:デフォルトの名無しさん
15/06/04 01:05:37.04 hSX2tQGq.net
ソートメソッド内でIComparerを引数にするメソッドが呼ばれてるからコピーが発生しまくるってこと?
Array.Sortの実装見ただけだけど
628:デフォルトの名無しさん
15/06/04 01:17:57.75 nTFCM4h6.net
それだけの条件って言うけど
どういう条件下ならstructを選ぶの?
選ぶ理由が全くない気がする
継承云々は問題に聞こえないし(sealedしとけよ)
629:デフォルトの名無しさん
15/06/04 01:21:11.61 pwnhvS/Q.net
だから問題設定がそもそも変なんだってw
そうとしか言いようがない。
630:デフォルトの名無しさん
15/06/04 08:12:26.92 hSX2tQGq.net
structの方がインスタンス化が早いので
でもソートメソッド内でコピーが発生する実装になってたらデメリットになるなと
631:デフォルトの名無しさん
15/06/04 08:32:19.38 xuWz3vjX.net
何か達成したい目的があって、IComparerを実装するのはその手段だろ?
IComparerを実装するのにどっちがいいかとか意味不明すぎる
Q. 新しい礼服を買ったので週末着ていきたいです。どこに行けばいいですか?
A. 葬式
みたいな質問
632:デフォルトの名無しさん
15/06/04 08:46:15.14 bfstKBEm.net
話の内容が理解できないなら無理してレスしなくてもいいんだよ?
633:デフォルトの名無しさん
15/06/04 10:20:31.70 xy19AX+E.net
条件提示してんだからそれについて解答すりゃええやん
どういう条件に変わればこっちを選ぶとか蛇足もいいとこ
答えられないから自分の答えられる実装の方がいいとかも論外
634:デフォルトの名無しさん
15/06/04 10:36:35.29 SACPq2eU.net
御託並べていい気に浸ってんじゃねえよ無職ハゲが
635:デフォルトの名無しさん
15/06/04 11:09:16.46 xuWz3vjX.net
そもそも条件なんか提示されてないに等しいだろ
俺は>>606だが、インターフェイスを強調するからには使用頻度が高いのだろうとか
恐らくパフォーマンスを重視しているのだろうとか
多くの勝手な想像を基にした回答だ
こういう意味不明な質問はまず目的を訊くのが一番手っ取り早くて確実なんだよ
636:デフォルトの名無しさん
15/06/04 11:45:56.80 xy19AX+E.net
classとstructのどっちがいいかと聞かれたらclassと答えとけばいいんじゃないかね
理由
コピーにかかるパフォーマンスとか計算できるぐらいなら質問してこないと判断
637:デフォルトの名無しさん
15/06/04 12:13:28.56 03L4l+Cb.net
理由になってないな。
質問者の質問がトンチンカンなら答える方もトンチンカンときてる
638:デフォルトの名無しさん
15/06/04 12:16:51.46 6LXNtE4C.net
/j
/__/ ‘,
// ヽ ', 、
// ‘
/イ ', l ’ …わかった この話はやめよう
iヘヘ, l | ’
| nヘヘ _ | | l ハイ!! やめやめ
| l_| | | ゝ ̄`ヽ | |〈 ̄ノ
ゝソノノ `ー‐' l ! ¨/
n/7./7 ∧ j/ / iヽiヽn
|! |///7/:::ゝ r===オ | ! | |/~7
i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/
| | | | l {':j`i::::::::::::::::`ーr ' ||ー---{
| '" ̄ ̄iノ .l::::::::::::::::::::::∧ | ゝ ',
, 一 r‐‐l γ /、::::::::::::::::::::::::〉ー= ___ ヘ ヽ }
/ o |!:::::} / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ ノ
/ o ノ:::::∧ /ヽ o ヽ::::::::| o i::::::::ヽ、 / /
/ ノ::::::/ /::::::::ヽ o ヽ:::| o {::::::::::::::Υ /
639:デフォルトの名無しさん
15/06/04 13:00:46.81 +mmsYIdN.net
マンガ脳の恐怖、まで読んだ。
640:デフォルトの名無しさん
15/06/04 14:25:28.39 18shCTe3.net
お前らVSはいくつつかってる?オラは2010だべ
641:デフォルトの名無しさん
15/06/04 15:17:58.42 ualL+iXH.net
2013 Community
Gitも使えるんで
642:デフォルトの名無しさん
15/06/04 16:04:23.30 ziyE/dl1.net
2010個もVS使うのかー
643:デフォルトの名無しさん
15/06/04 16:42:30.85 9wvQs+dO.net
典型的コミュ障
644:デフォルトの名無しさん
15/06/04 17:18:29.15 d0k9FDEW.net
2013ExpressアンインストせずCommunity入れたら、テンポラリにゴミが徐々に溜まってく不具合にあって
きちんとインストールし直すのに大変だった。
645:デフォルトの名無しさん
15/06/05 00:09:26.15 TGIdieIs.net
インターフェースからのメソッド呼び出しの質問
structをキャストしたインターフェースからのメソッド呼び出しが、classをキャストしたインターフェースからのメソッド呼び出しより遅いのは何故?
structのキャストはボックス化なので遅いのは分かるけど、メソッド呼び出しも?
>>604だが、IComparerをstructで実装するとソートが遅いのは分かった
くだらん質問してすまんかった
URLリンク(ideone.com)
646:デフォルトの名無しさん
15/06/05 12:14:41.11 ArINQc3s.net
メソッドに隠し引数としてインスタンスが渡るときにアンボクシングが発生するからだろ
滅多に使わないから最適化も甘いんだろうな
structのときは代わりにジェネリックのwhere使うとボックス化を回避できるしメソッド呼び出しも速いよ
647:デフォルトの名無しさん
15/06/06 01:11:05.16 04NM/uA4.net
3つの値を保持できるコレクションクラスとか・・・ないですよね・・・?
KEY, val1, val2 みたいな・・・
648:デフォルトの名無しさん
15/06/06 04:49:06.42 F9D1Moux.net
Dictionary<TKey, TValue>のTValueを自前クラスもしくはTupleにするとか、KeyedCollection<T>を実装するとかいくらでも
KEYが特別な意味を持たないならList<T>でも
649:デフォルトの名無しさん
15/06/06 05:01:52.19 04NM/uA4.net
>>628
あーなるほど・・・
ありがとうございました
650:
651:デフォルトの名無しさん
15/06/06 11:55:17.80 DogIJv+Z.net
C#で作ったFormアプリの画面デザインが
そのままhtmlに変換できてWebページに
簡単に作り変えられるような方法やツールは無いですか?
今、初めてhtml書いてWebページ作っているんですが難しいので困っています。
C#のformなら簡単に作れるのでそれがそのままhtmlに変換できればいいのですが。
情報お待ちしています。
652:デフォルトの名無しさん
15/06/06 12:03:44.31 j3Nw075S.net
ホームページ作成ソフト使え
653:デフォルトの名無しさん
15/06/06 12:06:50.35 9TAyXKx2.net
なかなか(C#スレとしては)新機軸な質問だな
654:デフォルトの名無しさん
15/06/06 12:19:39.72 JRwr9maH.net
html手書きしてんの?
勉強になるから続けなさい
655:デフォルトの名無しさん
15/06/06 12:37:08.53 jpaAX+4P.net
WebアプリでHTML/CSS/JavaScriptは三種の神器ではないか。
HTMLが手書き出来ないとはプログラム業界も末世じゃのぅ。
656:デフォルトの名無しさん
15/06/06 12:58:01.30 tUGAzLyi.net
そこでWPFの出番!?
657:デフォルトの名無しさん
15/06/06 13:19:53.17 9TAyXKx2.net
お呼びじゃないのよカスWPF
658:デフォルトの名無しさん
15/06/06 18:29:11.73 G9GytojR.net
そろそろWPF出てから10年たつね
659:デフォルトの名無しさん
15/06/06 19:26:53.90 NFG7nQDY.net
WPFは頭良くないと使えないよな
660:デフォルトの名無しさん
15/06/06 19:31:30.44 jpaAX+4P.net
Windows/Web FromがExcelでWPF/HTMLがWordって感じだな。
Wordはバカには使えないw
661:デフォルトの名無しさん
15/06/06 19:42:24.55 zNSHofQv.net
>>639
普通逆だと思うけどw
662:デフォルトの名無しさん
15/06/06 19:42:40.89 NlzRnH5v.net
HTMLというかWeb MVCはWPFに比べりゃバカ向きだぞ
バインディングなんて複雑な概念がなく、コード書いてHTMLをテキストで吐き出すだけという低脳仕様
663:デフォルトの名無しさん
15/06/06 19:53:31.02 9TAyXKx2.net
頭が良かったら壊れたアーキテクチャなんか選びませんわ
664:デフォルトの名無しさん
15/06/06 20:16:44.33 jpaAX+4P.net
>>641
世の中、低脳ばかりだからWPFが流行らないと言いたいのか。
665:デフォルトの名無しさん
15/06/06 20:22:45.51 NlzRnH5v.net
>>643
WPFが流行らないのは単に学習コストを正当化できないからでしょ
業務アプリに高度なビジュアル表現なんて必要ないし、
バインディングを活用して作るような量産型画面はWebで十分な場合が多い
666:デフォルトの名無しさん
15/06/06 21:38:39.71 H1DMvpQ4.net
MSは本質的に違うもものを統合しようとして失敗する癖があるな。
シェル+ブラウザ
デスクトップアプリ+Webアプリ
デスクトップ用OS+タブレットOS
他にも有る?いっぱいあるはず。
667:デフォルトの名無しさん
15/06/06 21:44:11.22 eXSgfOqh.net
企業でwpfの採用が進まず全く普及していない
需要が皆無なので学習者も増えずますます普及が遠のく
こんな悪循環か
668:デフォルトの名無しさん
15/06/06 21:48:12.15 gPTqz+5d.net
>>644
MVVMガーとかもあるけど結局パフォーマンスでしょ。
全てを保持モード一本で押し切るやり方は現実的じゃないのに結局それを中の人が認められなかった。
669:デフォルトの名無しさん
15/06/06 21:59:05.28 F9D1Moux.net
wpfはフォントによって文字が滲むのがな…
670:デフォルトの名無しさん
15/06/06 22:40:15.43 2gM0oTMR.net
>>645
MSに限らんが、Webのモデルをデスクトップに持ち込んでくるようになって
いろいろ使いづらくなったよな。
671:デフォルトの名無しさん
15/06/06 23:05:39.13 jpaAX+4P.net
>>648
高DPI対応にするにはWPFが必要なのに文字が滲むとは?
672:デフォルトの名無しさん
15/06/06 23:21:52.95 9TAyXKx2.net
TextFormattingModeとかTextRenderingModeを指定してないんでは
あとはUseLayoutRoundingとか?
たかがテキストくらいデフォルトでベストなソリューション提供しろよ
間抜けかお前はって思うけど
673:デフォルトの名無しさん
15/06/07 00:01:26.36 41WPBkin.net
WPFが悪いわけではないが
96dpiの糞モニターでクリアタイプは目に良くない
WinFormの糞フォントが最適
674:デフォルトの名無しさん
15/06/07 00:33:29.83 3tKyuKE8.net
クリアタイプはGDI+の機能ですw
675:デフォルトの名無しさん
15/06/07 03:30:23.96 p+QzNCcW.net
wpf+net3.5で文字.や画像が滲んだのは遠い記憶
676:デフォルトの名無しさん
15/06/07 09:20:51.82 bLu9Dp3Q.net
ポストグレスに、データをインサートするため、
下記のようなコードを書いたのですが、
DataRowの"b"に該当する列にnullが出現すると、
「オブジェクトをDBNullから他のタイプにキャストすることはできません。」と
怒られてしまいます。
var com = new NpgsqlCommand(sqlStr, conn);
com.Parameters.Add(new NpgsqlParameter("a", DbType.String) { Value = row.Field<string>("a") });
↓オブジェクトをDBNullから他のタイプにキャストすることはできません。
com.Parameters.Add(new NpgsqlParameter("b", DbType.Double) { Value = Convert.ToDouble(row["b"]) });
どのようにすれば回避出来るでしょうか。
よろしくお願いします。
677:デフォルトの名無しさん
15/06/07 09:31:34.43 8NCQzbFC.net
不具合でも理不尽な仕様でもなく純粋にお前が間違ってるんだから回避という言い方はやめろ
row.Field<double?>(“b”)
678:デフォルトの名無しさん
15/06/07 09:34:38.34 XmKcFN/K.net
>>645
統合=シームレス=先進的!便利!普及!
みたいな思想が根底にあるんだと思うわ
違い(セキュリティの深刻度・UIのレベル)を完全に吸収できればそれもいいんだろうけど
中途半端に終わってるよな
679:デフォルトの名無しさん
15/06/07 14:29:09.63 bLu9Dp3Q.net
>>656
com.Parameters.Add(new NpgsqlParameter("b", DbType.Double?) { Value = row.Field<double>("b") });
という書き方は試していたのですが、DataRow側をキャストしてやらないと
意味が無いんですね。
よくよく考えると、なるほどと思うのですが、
ハマると何がおかしいのかも解らなくなり。
基本をしっかり勉強しようと思います。
ありがとうございます。
680:デフォルトの名無しさん
15/06/07 14:38:28.12 bLu9Dp3Q.net
Silverlightが終わった時点で、
WPFもバッサリ切り捨てて欲しいと思う今日この頃。
WEBアプリと共通化できない時点で、WPFの魅力は
8割くらい消えたと思う。
余計なプラットフォームを増産するくらいなら、
フォームアプリのUIをリッチに進化させてくれるだけで
十分なのになぁ。
681:デフォルトの名無しさん
15/06/07 15:47:59.15 NaIbOULp.net
フォームを切り捨てるべき
682:デフォルトの名無しさん
15/06/07 16:28:11.24 bLu9Dp3Q.net
>フォームを切り捨てるべき
1000件を超えるデータをDataGridに表示したとき、
スクロールが満足に出来なくて、
WPFに未来は無いと思ったけど、
やり方によって早くなるのアレ。
683:デフォルトの名無しさん
15/06/07 16:43:06.02 FHoyYiwS.net
そらそんなの重いに決まってる。仮想ビューにしとけよ
684:デフォルトの名無しさん
15/06/07 16:54:54.38 XmKcFN/K.net
ワロタ
685:デフォルトの名無しさん
15/06/07 17:32:42.45 LuDRIQ04.net
ジェネリックスで特定のインターフェイスを食わせると、
そいつのNullオブジェクトを作って返すメソッドて可能?
686:デフォルトの名無しさん
15/06/07 17:37:36.05 8NCQzbFC.net
Castle DynamicProxyでも使えば
687:デフォルトの名無しさん
15/06/07 17:43:25.91 LuDRIQ04.net
トン
ググってたらRealProxyってのが標準であるっぽいな、使い方調べてみるわ
688:デフォルトの名無しさん
15/06/07 17:52:51.05 LuDRIQ04.net
調べたが、結論から言うとだめだった
後出しですまんが、ポータブルクラスライブラリの中で使いたかったんだ
689:デフォルトの名無しさん
15/06/07 18:12:22.29 8NCQzbFC.net
>>667
ストアアプリ対応を視野に入れるなら動的コード生成は使えないと思う
T4かビルドステップで静的生成するしかないな
690:デフォルトの名無しさん
15/06/10 09:42:27.56 ygS+rXar.net
C#で自身を自動アップデートしたいのですがClickOnce以外で簡単な方法はないでしょうか?
Visual Studio 2013 Communityを使用しています。
691:デフォルトの名無しさん
15/06/10 20:09:37.98 mqs3U/0V.net
更新用のプロセスを起動して更新してもらったら 。
692:デフォルトの名無しさん
15/06/10 22:09:57.35 kk1whmrM.net
自身をリネームしてダウンロード、それを立ち上げたらリネームした古exeを削除でいけるってさ
でもこの方法だと互換性タブの内容とか初期化されそうだけど
693:デフォルトの名無しさん
15/06/10 23:42:51.42 PClQRuuG.net
前作った時は、更新チェック、更新するプログラムを先に起動させて
必要なら本体をダウンロード。なければ本体を実行
更新用のプログラムの更新が面倒だが、とりあえず放置したw
694:デフォルトの名無しさん
15/06/11 00:16:00.76 APPInatq.net
更新用のプログラムの更新は本体がする
695:デフォルトの名無しさん
15/06/11 00:32:40.92 Js1obKtO.net
マニフェスト適切に設定すればProgram Filesの中も書き換えられるんだっけ?
その辺クリアしても、適当にやるとインストーラーの自己修復機能が働いていろいろ
大惨事になりそうな気がw
696:デフォルトの名無しさん
15/06/11 04:32:28.69 /dmUwZL+.net
Blendに期待してやってみたが
なんだこれは
カラムの色を変えるだけでものすごく面倒
カラムの色を変えられると困るの?
普通変えたいだろ?
変えさせたくない理由でもあるのか?
ボタンが星形にできます?
なめんなよカス
誰がそんなのほしいんだよ
何が開発効率あがるだ
色変えられないならWinFormsと一緒だろうが
ふざけんな!
697:デフォルトの名無しさん
15/06/11 06:21:26.51 RSM2GHGx.net
>>674
アドバタイズショートカットを無効にしとけば問題なし。
マニフェスト設定うんぬんって何?
698:デフォルトの名無しさん
15/06/11 06:26:04.61 /LMhdntT.net
>>675
ビルマの星形死体が恵まれた痛みなの
699:デフォルトの名無しさん
15/06/11 12:57:44.67 8v336KOJ.net
>>675
まぁ単純なのだったらWinFormの方がはえーだろう
700:デフォルトの名無しさん
15/06/11 14:00:29.61 7IeLpwzz.net
// 構成
public interface IHoge { event EventHandler Foo; }
internal static class IHogeEx
{
public static void Dispatch(this IHoge hoge) { /*hoge.Foo発火*/ }
}
:
// 使用例
var hoge = provider.GetService<IHoge>();
hoge.Dispatch();
上記のように、IHoge に拡張メソッドを生やして、そこからイベントを発火させたいんだけど、
何かスマートなやり方ないだろうか
701:デフォルトの名無しさん
15/06/11 14:03:09.70 y/M+seZQ.net
MVVMフレームワークは何を使えば一番良いですか?
沢山あってどれを使っていいのかわからないので教えてください
702:デフォルトの名無しさん
15/06/11 14:30:38.84 tam4srza.net
>>679
インターフェイスに発火用のメソッドを追加しないなら、
ダウンキャストかdynamicで直接実装クラスの発火メソッドを呼ぶしかない
703:デフォルトの名無しさん
15/06/11 15:16:11.25 hKCw6BKi.net
スマートも糞もないよねえw
704:デフォルトの名無しさん
15/06/11 20:53:35.21 kfIByvae.net
string src =
705:"abc1"; string dst = "abc2"; この場合"abc"と返してくれる こんな感じで2つの文字列からマッチしたとこだけ 返してくれる関数って存在しますか?
706:デフォルトの名無しさん
15/06/11 21:02:35.81 Rh7nLCb0.net
「こんな感じ」なんて曖昧な要件に疑問を感じないならプログラマ辞めるべき
707:デフォルトの名無しさん
15/06/11 21:14:06.58 0Pxomqre.net
「マッチしたとこだけ」の仕様から詰めていこうか
まあ標準メソッドにはないだろうな
708:デフォルトの名無しさん
15/06/11 21:18:18.91 Ufbw3rnf.net
>>683
積集合でよければ、LINQのIntersect
string src = "abc1";
string dst = "abc2";
var results = src.Intersect(dst);
709:デフォルトの名無しさん
15/06/11 21:19:54.57 tam4srza.net
先頭からだけでいいなら
new string(src.Zip(dst, (x, y) => new[] { x, y }).TakeWhile(xy => xy[0] == xy[1]).Select(xy => x[0]).ToArray())
710:デフォルトの名無しさん
15/06/11 21:23:09.74 Ufbw3rnf.net
そうだよね
普通先頭からだよね
なにやってんだ、俺
711:デフォルトの名無しさん
15/06/11 21:45:19.58 kfIByvae.net
集合演算とかいうのを知らなかったこれ便利ですね
ありがとうございます
712:デフォルトの名無しさん
15/06/12 10:49:10.11 2WRpjnt2.net
684は順序依存だから集合演算というよりリスト演算やシーケンス演算と呼ぶべきだろ
713:デフォルトの名無しさん
15/06/12 16:07:40.50 qBpXFxOz.net
HDD内のすべてのファイル情報を保存したい
どういう形式で保存すればいいの?
新しく作ったプロジェクトからも簡単に読めるような
汎用的なのがあったら教えて
714:デフォルトの名無しさん
15/06/12 16:18:10.66 quZXc/6x.net
VHDにしてマウントすれば最強だろ
715:デフォルトの名無しさん
15/06/12 16:20:08.31 tFsYlsAo.net
>>691
情報なわけだろ?
MongoDBとかSQLite、テキスト的なものならJSONとか色々あるべさ。
716:デフォルトの名無しさん
15/06/12 16:29:40.61 quZXc/6x.net
渾身のギャグ空振り
717:デフォルトの名無しさん
15/06/12 22:44:32.47 lGbqaeoG.net
1つメソッドがあったとします。例 test(int A,int B)
このメソッドは割と多くの場所で呼んでいるのですが、引数を追加したくなりました。
test(int A,int B,string C)
参照を検索して1つ1つ手直しすると結構時間がかかってげんなりするのですが、
例えばCに一番多く使う単語"tarou"をメソッドの修正と一緒にすべての参照元にも追加できたら助かるのですが、
そういったまとめて修正するような方法ってないでしょうか?
718:デフォルトの名無しさん
15/06/12 22:50:30.69 dm5ygxXA.net
正規表現置換で全く問題なく置換できる気がする
719:デフォルトの名無しさん
15/06/12 22:53:12.22 lGbqaeoG.net
なるほど
そういう機能みたいなのはないですよね
正規表現で置換が一般的なのかな
正規表現で置換してみます
ありがとう
720:デフォルトの名無しさん
15/06/12 23:00:46.72 PfZlC01y.net
オーバーロードしたら?
アセンブリ内限定のメンバならオプション引数もアリ
721:デフォルトの名無しさん
15/06/12 23:01:53.04 Kc7Sj0Rn.net
正規表現がカンペキとな。
どれだけ693は頭が悪いんだ。
ところで692は釣り質問でいいんだよな?
722:デフォルトの名無しさん
15/06/12 23:03:55.51 lGbqaeoG.net
釣りじゃなくて割と真面目に困ってますよー
ぱっと調べてもまとめて修正するような方法見当たらなかったので、皆参照一覧にして手打ちしてるのかなと・・・
正規表現だと真ん中に追加するのが大変そうでした
723:デフォルトの名無しさん
15/06/12 23:10:45.98 lGbqaeoG.net
>>698
違う内容のメソッドを書きたいわけではなく、(引数が異なるほぼ空のメソッドでもう片方を呼べということだとは思うのですが)
追加修正のたびにオーバーロードを増やすのもちょっと抵抗あるので、オーバーロードは避けたいかもしれません
オプション引数というのはよく知らんかったので
724:調べてみたら希望に合いそうなものでしたが、途中だけ省略するのは出来ないっぽいんですね もう少し調べてみます ありがとう
725:デフォルトの名無しさん
15/06/12 23:14:10.93 5TqWIrUh.net
オプション引数なんかよりよっぽどいいのに何が抵抗なんだろうな
726:デフォルトの名無しさん
15/06/12 23:19:45.78 lGbqaeoG.net
>>702
引数の修正の度に同じメソッドが大量にできたら分かり辛くありませんか?
修正の度に5個も6個もオーバーロード作って重ねていくのが一般的なのです?
727:デフォルトの名無しさん
15/06/12 23:20:59.14 n696dST6.net
メソッド増やしたくないならオプション引数でOK
いざとなったら名前付き引数もできるし
面倒だからあんまり使わないけど
728:デフォルトの名無しさん
15/06/12 23:29:40.51 GYWzfYC0.net
素直に引数を直した方がいいと思うがな。
729:デフォルトの名無しさん
15/06/12 23:32:47.43 5TqWIrUh.net
>>703
オプション引数出来たの4.0だからそれまでのものはそうだよ
あとはコンパイル時に補完される為外部に公開する場合後で変更できなくなって困る事、定数しか指定できない事から、基本的にオーバーロード使ってる
引数の組み合わせが膨大になるならオプション引数使うかな
730:デフォルトの名無しさん
15/06/13 04:19:23.11 ds8D2Sdy.net
引数が5回も6回も変更されて、そのたびに呼び出し元も全部修正するとか
そんな奴が設計するようなプロジェクトには関わりあいたくないなぁ
731:デフォルトの名無しさん
15/06/13 06:06:42.74 KSn5zbP7.net
>>707
ここふらっとスレですし
皆が皆、プロジェクトwとかに関わってるドカタじゃないわけで
732:デフォルトの名無しさん
15/06/13 08:00:57.79 KmHyJDy9.net
ドカタを馬鹿にしたな
埋めたろか
733:デフォルトの名無しさん
15/06/13 08:16:10.09 CvpFt6eB.net
ドカタが馬鹿にされるんじゃない
馬鹿だからドカタと呼ばれるんだ
734:デフォルトの名無しさん
15/06/13 10:25:20.60 54ObALVU.net
引数がお互いに関連の強いものだったら
クラスにまとめてそのオブジェクトで渡すようにしておけばいいし
735:デフォルトの名無しさん
15/06/13 11:47:39.05 xsEqCEFL.net
総務部長からドカタになったサラリーマンもいますけどなにか
736:デフォルトの名無しさん
15/06/13 12:02:19.55 LG1+98Ox.net
オブジェクトで渡します!
その結果↓
Show(new ShowArg("タイトル","内容",3,5,Beep.Short,Color.Red,640,480,5,5,5,5));
737:デフォルトの名無しさん
15/06/13 12:06:21.98 Rkh+1gQ3.net
>>712
総務って一番無能やん
738:デフォルトの名無しさん
15/06/13 12:18:07.18 KSn5zbP7.net
>>713
コンストラクタにもクラスでまとめてオブジェクトで渡すんだよ
739:デフォルトの名無しさん
15/06/13 14:58:17.94 ds8D2Sdy.net
>>715
そのコンストラクタに渡すオブジェクトのコンストラクタにもクラスでまとめて渡すわけですね
740:デフォルトの名無しさん
15/06/13 15:06:40.87 AmgidL1k.net
誰かゾフィー呼んでこい
741:デフォルトの名無しさん
15/06/16 01:47:38.73 jDZvQ/PE.net
.NET4.5で追加されたHttpClientを使って、何を通信しようとしても通信せずに
HelloWorldだけ返すダミークライアントを作りたい
HttpClientのコンストラクタに空っぽのHttpResponseMessageを返す
ダミーのHttpMessageHandlerを食わせてリクエスト投げると
全く応答が帰ってこなくなるんだが、どう修正すればいいんだろう
742:デフォルトの名無しさん
15/06/16 03:46:48.21 IOmyN/sL.net
>>717
私は命を2つ持ってきた
743:デフォルトの名無しさん
15/06/16 13:03:42.49 tzCZhzEY.net
>>718
自己レス。
なんか原因はっきりしないけど、TaskCompletionSource<HttpResponseMessage>使わずに
Task<HttpResponseMessage>使ってて、何らかの要因でデッドロック起こしてたのが原因ぽい。
TaskCompletionSource<HttpResponseMessage>使ったらうまいことHttpClientをジャックすることができたぽい
744:デフォルトの名無しさん
15/06/16 22:05:41.35 P66hsbhM.net
MVCで、コントローラ側での処理の正否を
ビュー側でメッセージ出力するため、
苦し紛れにViewBagをフラグ代わりに使ったのですが、
アンチパターンをしている気がしてなりません。
もっと王道的なやり方はあるでしょうか?
@if(ViewBag.Flag){
<script type="text/javascript">
$(function () {
メッセージ出力処理
};
});
</script>
}
よろしくお願いします。
745:デフォルトの名無しさん
15/06/16 22:22:55.39 y+ZRno0+.net
>>721
flash messageってやつだな
リダイレクトを挟む場合が多いからそのままビューに返すんじゃなくてCookieに突っ込め
746:デフォルトの名無しさん
15/06/17 07:12:44.06 /9CY7bHI.net
>Cookieに突っ込め
HTTPの仕組みぐらい理解しろ
747:デフォルトの名無しさん
15/06/17 07:19:59.36 F0xlXNRF.net
>>723
一時的なメッセージにcookieを使うのは普通にあるぞ
もしくはセッション使う
748:デフォルトの名無しさん
15/06/17 07:29:54.96 83TxfKRo.net
そもそもHTTPの仕組みと何の関係が
749:デフォルトの名無しさん
15/06/17 16:14:47.37 yetVKz/D.net
こんな簡単なのでうまいこと非同期で動くのか?
URLリンク(qa.atmarkit.co.jp)
750:デフォルトの名無しさん
15/06/18 01:52:24.13 8P85rytq.net
プログラミング始めようと練習問題やってて
これは難解な問題だぞ・・・と複雑に作っちゃって悩みまくってやっとできたと思って答えみたらクソ単純だったこの怒りをどうすればいいですか
751:デフォルトの名無しさん
15/06/18 06:01:23.61 Zk4Vy/pu.net
ネンネしな
752:デフォルトの名無しさん
15/06/18 06:31:34.35 luyYzeTf.net
>>727
そこでこんなに簡素化できるんだと喜べないなら向いてない
753:デフォルトの名無しさん
15/06/18 06:44:55.44 /ecUlEFr.net
tooltipの最大横幅設定ってないの?
わからなかったから、TTM_GETMAXTIPWIDTH送ろうと思ってHWND取得しようとしたら公開されてないみたいだし
754:デフォルトの名無しさん
15/06/18 07:52:23.63 MLPf1LVb.net
Handleプロパティがinternalなんでリフレクションで取得だな
755:デフォルトの名無しさん
15/06/18 08:06:44.22 SQas+mXZ.net
>>730
試す気ないけど行けそうな気がする
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
ToolTipSizeプロパティ
756:デフォルトの名無しさん
15/06/18 08:29:08.45 /ecUlEFr.net
>732
Popupでリサイズすると表示位置も変更しなきゃならないみたい
コントロールのMouseEnterで、tooltipのShowメゾットを実行して、位置指定で表示できたんだけど、
ShowAlwaysをtrueにしてても、アクティブウインドウにしてないとtooltipを表示してくれない・・・
MouseEnterはアクティブでなくても動くんだけど、Showメゾットは動いてくれない?
ShowAlwaysはSetToolTipで関連付けた時だけ有効なのかな?
>731
MFCの6.0しか触ったことない超初心者なので、まったく意味不明な単語なんだけど、
ググッて調べてみます
757:デフォルトの名無しさん
15/06/18 08:48:48.18 SQas+mXZ.net
なかなか難儀なものだ
758:デフォルトの名無しさん
15/06/18 09:00:12.23 MLPf1LVb.net
ここらのコードみれば何やってるか分かるから
URLリンク(referencesource.microsoft.com)
リフレクションで取得なら
var hwnd = (IntPtr)typeof( ToolTip ).GetProperty( "Handle", BindingFlags.NonPublic | BindingFlags.Instance ).GetValue( toolTip, null );
759:デフォルトの名無しさん
15/06/19 02:26:32.06 e7ddVa/R.net
760:C#では、このような事は出来ないのでしょうか? if (mode == 1) { System.Windows.Forms.Button[] objs; objs = new System.Windows.Forms.Button[len]; } else { System.Windows.Forms.TextBox[] objs; objs = new System.Windows.Forms.TextBox[len]; }
761:デフォルトの名無しさん
15/06/19 03:15:04.92 TkbfpMuS.net
できますよ。
762:デフォルトの名無しさん
15/06/19 07:50:23.16 e7ddVa/R.net
>>737
objsを使おうとすると、エラーになります。
やはり、c#ではこういった動的な割り当ては無理のようですね・・・
763:デフォルトの名無しさん
15/06/19 08:05:01.44 CxQBllDu.net
プログラミング向いてなさすぎて草
764:デフォルトの名無しさん
15/06/19 08:21:34.61 YVDfker6.net
順序立てで物事を進められない人間は何にも向いてない
765:デフォルトの名無しさん
15/06/19 09:01:27.03 yHcBqTMw.net
出来ない事を出来ると言い張るよりはマシでしょうけどね。
その程度ならc#知らない偽物でも出来ますから。
766:デフォルトの名無しさん
15/06/19 09:05:32.96 PbyfPj3O.net
>>741
煽って回答を引き出そうとする古典的手法ですね
767:デフォルトの名無しさん
15/06/19 09:06:00.47 w3qLtTPG.net
おいおい真性か?
…外に出さないからこうなるんですよ
避妊の話ですよ、もちろん
教育にコストが掛けられない家庭が子供を産むから
馬鹿の再生産が止まらないんですね
768:デフォルトの名無しさん
15/06/19 09:16:06.74 Rpgf6TLH.net
そうだな外に出すべきだったな。
スコープってプログラミング入門だとどの辺に来るかな。
変数ステートメント制御構造ブロックの次くらいか。
769:デフォルトの名無しさん
15/06/19 13:30:34.71 OM/mL1R2.net
Console.WriteLine("{0}unko{1}oshikko", oshiri, tinko);
こうだったり
Console.WriteLine(oshiri + "unko" + tinko + "oshikko");
こんなだったり解説サイトにとって違いますけどどっちが一般的とかあるんですか?
好みの問題?
770:デフォルトの名無しさん
15/06/19 13:55:39.70 pkAyx7dR.net
どっちでもいい
現実には書式指定が必要で前者しか使えないケースが多いから、統一するために常に前者を使う人もいるし
後者で十分なのに重い処理が走るのが気持ち悪いからとか分かりやすいからとかで後者が好きな人もいる
771:デフォルトの名無しさん
15/06/19 13:56:50.97 iLnBptiu.net
文字列の中に {0} とか入ってない前提?
772:デフォルトの名無しさん
15/06/19 15:17:35.89 0hBKkSHT.net
① if(flag == 1)
② if(1 == flag)
どっちがいいとかありますか?
773:デフォルトの名無しさん
15/06/19 15:26:10.71 CxQBllDu.net
①がいい
774:デフォルトの名無しさん
15/06/19 15:46:44.67 a3/nS/y/.net
俺は1だが、=が足りなくてバグることあるからとかで2にしろってとこもあんな
775:デフォルトの名無しさん
15/06/19 15:48:59.15 iLnBptiu.net
=が足りなくてって、、C#だぞ、、、
読んで自然な方で
776:デフォルトの名無しさん
15/06/19 15:57:58.99 Kz33B61u.net
>>748
①一択ですね。
777:デフォルトの名無しさん
15/06/19 16:08:36.21 UZ90C/fG.net
flagならbool型にしろ
bool型にできないならflagなんて名前つけるな
って言うところじゃないの?
778:デフォルトの名無しさん
15/06/19 17:55:12.81 aR5XXTpt.net
②はCやる人が良くやるけどC#では用無しだよ、警告ですらない
この文は型不一致エラーだから
779:デフォルトの名無しさん
15/06/19 17:59:21.88 e+GzY/Uc.net
『1==flag』
この書き方をする低能は自分が今までやってきたこと以外は受け入れ不能だなら
用無しなどと言っても無駄。
「ボクは今までこうしてきた」
これが低能の全て
780:デフォルトの名無しさん
15/06/19 18:01:04.33 7lvdbQLv.net
俺のflagは108式まであるで
781:デフォルトの名無しさん
15/06/19 18:03:16.40 bQ8ksHOB.net
>>748
俺だっら
bool isE
782:qual_Ichi(int Flag) っていう関数作るわ。
783:デフォルトの名無しさん
15/06/19 18:19:49.79 r/i/iowz.net
>>755
自分で自分のことを書いてることに気付きもしないあんたもどうかと思うけどねw
784:デフォルトの名無しさん
15/06/19 18:40:00.84 iLnBptiu.net
>>756
国コード入れて国旗の種類で使うとかねw
785:デフォルトの名無しさん
15/06/19 19:08:38.00 0hBKkSHT.net
Cやってきた人が②の書き方をしています
②でも動くじゃないですか、何でダメなんですか
と言う相手を説得して①にさせるには、どういう論法で言えばいいですか?
786:デフォルトの名無しさん
15/06/19 19:27:58.72 AG39fnfm.net
わずかでも合理性がある限り説得は無意味
ルールで強制させるのみ
787:デフォルトの名無しさん
15/06/19 19:28:02.10 pnFSsBPf.net
別に2でもよくね。理由があれば。
まあ、2の場面思い浮かばんけど。
788:デフォルトの名無しさん
15/06/19 19:28:28.86 r/i/iowz.net
>>760
別に説得する必要なんかない。
どっちでも同じだから。
確かにC#で(2)に固執するのもアホだが、それを言うなら(1)に固執するのも同じアホ。
789:デフォルトの名無しさん
15/06/19 19:32:49.13 yksfiqHC.net
同じアホでもC#でも2にするべきだってひとと1にするべきだってひとはアホの向く方向が違うから
790:デフォルトの名無しさん
15/06/19 19:34:40.95 pnFSsBPf.net
どっちでも同じなら、1でも2でもいいし、ルールを強制しようがしまいがどうでもいい。
つまり、どうでもいい。
791:デフォルトの名無しさん
15/06/19 19:58:20.07 aR5XXTpt.net
用がない場合はルールを強制するのは愚行
ルールは必要最低限が鉄則
792:デフォルトの名無しさん
15/06/19 22:00:29.58 PbyfPj3O.net
でもそういうアホが集まってるところではルールで縛ったほうが安全かも
793:デフォルトの名無しさん
15/06/19 22:03:17.96 7aVYy04Z.net
そういうところでは②はNGなのに丸コピぺはレビューでスルーされるという現象がよく見られる
形式的なルールで縛ろうとするのは上が無能で本質を理解していないことによる場合が多い
794:デフォルトの名無しさん
15/06/19 22:20:43.34 pnFSsBPf.net
ルールを最低限にするのなら、ルールを最低限にするなどというルールを設けるんじゃない。早速矛盾してんだよ。
795:デフォルトの名無しさん
15/06/19 22:35:53.66 8vlDffY6.net
>>769
駄レス
796:デフォルトの名無しさん
15/06/20 00:30:15.86 yM1kMDKK.net
もしflgが1ならって思考に合わせた書き方をしたほうがいいに決まってる
もし1とflgが同じならなんて思考するやつはどこかおかしい
797:デフォルトの名無しさん
15/06/20 00:31:30.88 P+7QrmPi.net
2はコーディング規約としてはありがちだな
間違って=にした時に代入が出来なくてコンパイルエラーで検出出来るから。
798:デフォルトの名無しさん
15/06/20 00:32:56.84 qQ/qlsDi.net
>>771
低能は意味を考えないから
おかしいと感じないらしい
799:デフォルトの名無しさん
15/06/20 00:33:02.36 P+7QrmPi.net
おっとC#スレだったw
>>772はC言語の話しなww
800:デフォルトの名無しさん
15/06/20 00:37:17.22 SQF/c2YL.net
>>771
>>773
言っちゃ悪いけど、それは「ボキュは演算子の交換法則なんて知りません」って語るに落ちてるだけ。
ばっかじゃねえの本当。
恥ずかしげもなくむしろドヤ顔で勝ち誇ったように間抜けなことを言ってるんだから笑える
801:デフォルトの名無しさん
15/06/20 00:41:07.20 qQ/qlsDi.net
↑文脈とか意味を考えない低能の典型例
読みにくいだろ低能め
802:デフォルトの名無しさん
15/06/20 00:52:25.05 yM1kMDKK.net
とりあえず?で書くやつはバグが多すぎる
803:デフォルトの名無しさん
15/06/20 02:34:42.39 6sbS7y/z.net
func1(){
…
return {1,2,3};
}
var a=func1();
var b=a[0];
var c=a[1];
var d=a[2];
とかかな?
804:デフォルトの名無しさん
15/06/20 15:00:31.13 XTWPFSca.net
CとC#が同じ高級言語で括られるのは違和感があるので
805:すが、 第○世代言語とか呼び方はあるのでしょうか?
806:デフォルトの名無しさん
15/06/20 15:36:18.37 s+YE9WtJ.net
ありません
807:デフォルトの名無しさん
15/06/20 16:24:23.17 P+7QrmPi.net
Cが構造化言語、C#がオブジェクト指向言語ぐらいかな
808:デフォルトの名無しさん
15/06/20 18:58:22.36 hdd6Iv+Z.net
>>779
c言語は高級言語じゃないだろ。アセンブリ言語と高級言語の間くらいの言語だと思う。
809:デフォルトの名無しさん
15/06/20 19:02:41.29 tDc6RR32.net
一般的には高級言語だよ。この単語自体もう時代遅れでどうでもいい分類だがw
URLリンク(www.weblio.jp)
URLリンク(wiki.ju.edu.jo)
810:デフォルトの名無しさん
15/06/20 19:36:29.11 YQlfkZgo.net
C言語が生まれた当時なら最先端の高級言語だなw
時代と共に古くなって、今や高級とは言いづらいけど
811:デフォルトの名無しさん
15/06/20 20:14:40.77 74rB06rU.net
>>784
言語の古さと、高級言語かどうかは全然別の話でしょ
Cより古いものにも、FORTRANとかCOBOLとかPascalといった
高級言語があったわけだから
812:デフォルトの名無しさん
15/06/20 20:46:40.54 KZdkN3xz.net
最近は高級言語なんて死後に近いから、高級言語の本来の意味を知ってるのは
俺みたいなオジサンだけかもしれないね。
高級言語の「高級」はA級戦犯とかと同じで別にグレードが高いって意味じゃないのよw
813:デフォルトの名無しさん
15/06/20 20:47:56.56 K7xzi7Ex.net
性癖
悩ましい
敷居が高い
高級言語 ←new
814:デフォルトの名無しさん
15/06/20 22:20:48.72 xyJjBRvk.net
英wikipedia見てたら超高水準言語という区分があった
815:デフォルトの名無しさん
15/06/20 23:29:40.23 XTWPFSca.net
>>783
>代表的な高級言語の種類としては、BASIC、FORTRAN、COBOL、C言語、C++、Java、Pascal、Lisp、Prolog、Smalltalkなどがある。
やはり、CとJAVAが同じ括りというのは、少し乱暴な気がします。
IT関係では、誰も気にしないんでしょうかねぇ。。。
816:デフォルトの名無しさん
15/06/20 23:44:44.79 9Ukvdsb1.net
そんな括りなんてどうでもいいと思うんだが
使わなきゃならない時にはそんな括りなんて何の意味も持ってないんだから
817:デフォルトの名無しさん
15/06/20 23:55:28.97 fYXXUti6.net
>>789は、そこで上げた言語だと、どの言語が同じ括りになると思うの?
818:デフォルトの名無しさん
15/06/21 00:44:13.38 LtTYOS1I.net
>>789
気にするのは大学生だけだよ
職場じゃそれ使って何ができるかの方が重要
819:デフォルトの名無しさん
15/06/21 00:56:02.48 oygMyh8G.net
C#やJAVAのようなモダンな言語は、オブジェクト指向を採用していて
ジェネリックやラムダみたいなモダンな仕組があるのに対し、
制御で使われるような無印Cが、同じ高級言語扱いというのが
気になりまして。
世代がかなり違うんじゃないかなと思うんですよ。
まあ、実害なんて何も無いんでしょうけど。。。
820:デフォルトの名無しさん
15/06/21 01:00:01.67 8J8Zrkqm.net
>>789
だから高級って言葉の語感に引きずられるからそうなる。
だから死後だって言ってるじゃん。
821:デフォルトの名無しさん
15/06/21 01:16:47.05 oygMyh8G.net
もう、高級言語なんて言葉は使わないんですね。
情報処理技術者試験の勉強で覚えたのですが、
情報古いよって感じですね。
5000円払って、古い話題を必死に覚えるとか、
勉強のモチベーションが下がりますね。
822:デフォルトの名無しさん
15/06/21 01:22:39.36 8J8Zrkqm.net
勉強とか言ってる割に高級言語って言葉の本来の意味を確認はしないのねw
823:デフォルトの名無しさん
15/06/21 01:26:19.30 xl4g4Hja.net
アセンブリ言語は高級言語?
マシン語だけが低級言語だよね?
824:デフォルトの名無しさん
15/06/21 03
825::59:16.75 ID:0g6EdVmv.net
826:デフォルトの名無しさん
15/06/21 04:25:32.56 Y9sFMHSn.net
BitConverter.ToInt32(bytes, 0);
とすればバイト配列は整数に変換できますけど
配列ではなくバイト1つを整数に変換するにはどうするんですか?
827:デフォルトの名無しさん
15/06/21 06:43:11.87 mTVvjbYS.net
Oh...
int i = (int)b;
828:デフォルトの名無しさん
15/06/21 06:46:12.05 0VYCqu5Y.net
>>799
キャスト
829:デフォルトの名無しさん
15/06/21 07:20:02.94 EnXta+1+.net
>>793
高級言語と低級言語の2択で分けるとアセンブリ言語ととマシン語以外は高級言語の範疇だから
無印c言語は高級言語だね。
830:デフォルトの名無しさん
15/06/21 09:53:22.86 xl4g4Hja.net
論理回路とアセンブリ言語とC言語はやっておかないと
プログラミングできるとは言えないと思う
831:デフォルトの名無しさん
15/06/21 11:05:19.79 faNvk/Nn.net
include <stdio.h>
int main (void){
int a=0,b=0;
scanf ("%d",&a);
scanf ("%d",&b);
If ( a==b ) printf ("2つの数値はおなじです\n");
else if ( a>b) printf("一つ目のほうが大きいね\n");
else printf("2つ目のほうが大きいね\n");
return 0;
}
というプログラムなんですが2つめのscanfが入力待ちになりません
832:デフォルトの名無しさん
15/06/21 11:07:57.76 LtTYOS1I.net
ID:xl4g4Hja 低級かまってちゃん
833:デフォルトの名無しさん
15/06/21 11:35:35.74 EnXta+1+.net
>>804
scanf ("%d%d", &a, &b);
834:デフォルトの名無しさん
15/06/21 11:37:15.21 0VYCqu5Y.net
>>804
スレ違い
ここはC#言語のスレ、それはC言語
835:デフォルトの名無しさん
15/06/22 11:29:32.98 UwfP1xrU.net
ま、改行が入ってそれ捨てない限り無限待ちだな
836:デフォルトの名無しさん
15/06/22 12:05:53.87 y0tN2zKc.net
論理回路とアセンブリ言語とC言語やってないプログラマがクソほどいる件
837:デフォルトの名無しさん
15/06/22 12:19:07.33 +krrUuSd.net
>>809
論理回路?
ブール代数だろ
838:デフォルトの名無しさん
15/06/22 12:22:30.22 PGSQ0zuB.net
何だよブール代数ってw
論理回路は論理回路だろw
Cはともかくアセンブリとかカルノー図書いて論理圧縮とか
今時普通のプログラマにはまず要らん無駄知識だとは思うが、
さすがに言われてそれが何か知らないのはかなり恥ずかしいレベルだなw
839:デフォルトの名無しさん
15/06/22 12:23:42.09 NbAxzy03.net
どうしたオッサン。
午前中のミーティングで若手に虐められてこんなとこで愚痴ってんの?
死ねよ、今すぐ
840:デフォルトの名無しさん
15/06/22 12:30:05.89 PGSQ0zuB.net
>>812
精神分析学で言う」「投影」のいいサンプルだねおたくw
841:デフォルトの名無しさん
15/06/22 12:53:12.43 +krrUuSd.net
>>811
プログラミングに必要なのは納戸じゃなくてブール代数だろ
842:デフォルトの名無しさん
15/06/22 13:05:30.79 i7SsAXTs.net
あー、昔はブール代数って言わなかったのよ
843:デフォルトの名無しさん
15/06/22 14:29:24.68 etNNMvNi.net
>>814
そもそもブール代数って高校の数Iだろw
必用とか必用でないとかそういうレベルかよw
844:デフォルトの名無しさん
15/06/22 14:53:48.18 ytIOVG8W.net
アセンブリ言語アレルギー多すぎw
やってみればC#より簡単なことがわかるのに
845:デフォルトの名無しさん
15/06/22 15:00:27.86 zYgzAJ7h.net
アセンブラはデバッグでハマった時にC#など目じゃない悲惨さが待っています
846:デフォルトの名無しさん
15/06/22 15:11:27.95 +krrUuSd.net
>>817
c#のジェネリックリストをアセンブラで実装してくれ
847:デフォルトの名無しさん
15/06/22 15:30:57.40 0p5/VSpX.net
それは、既に実装されているのでわ?でないと、そもそも動いてないと思う>ジェネリックリスト
848:デフォルトの名無しさん
15/06/22 16:50:46.39 +krrUuSd.net
>>820
低水準言語にそんなものを期待されても
849:デフォルトの名無しさん
15/06/22 19:27:41.51 E8VLkWhf.net
質問です
以下のようにnamespace
850:に$rootnamespace$と指定してあるソースを見たのですが、 自分のプロジェクトで同じように指定してもエラーになります これはどうやって設定すればいいのですか? ↓ namespace $rootnamespace$ { .... }
851:デフォルトの名無しさん
15/06/22 19:45:14.31 tbUBo/lz.net
置換用のプレースホルダだろう
ビルドの時にスクリプトで置換したりするんじゃね
C#はドルマーク使わないからね
852:デフォルトの名無しさん
15/06/22 19:45:33.78 74RPk8kg.net
>>822
それ、コードスニペット(のソース)じゃないの?w
853:デフォルトの名無しさん
15/06/22 20:32:05.98 E8VLkWhf.net
>>823-824
普通に使用できるものではないんですね
ありがとうございました
854:デフォルトの名無しさん
15/06/22 22:33:37.30 kX4NZqJx.net
.NETはC#一本で良いんじゃないかと思うのですが、
VB.NETを切らない理由は何なのでしょうか?
855:デフォルトの名無しさん
15/06/22 22:37:12.91 LnmegFLf.net
>>826
vb.netの方がシェアが多いから
856:デフォルトの名無しさん
15/06/22 22:39:33.29 tbUBo/lz.net
VB.NETを切ったりしたら大量の自殺者が出るだろ
社会正義のためだよ
857:デフォルトの名無しさん
15/06/22 22:43:14.43 kX4NZqJx.net
VB.NETをやっている人間が、
VB無くなったらJAVAやると言っていたのですが、
VB使いの時点で、C#やるしか無いだろうなと思いました。
858:デフォルトの名無しさん
15/06/22 22:46:32.05 tbUBo/lz.net
ドカタワールドなら技術的な部分はノウハウ(笑)をコピペするだけだから
.NETとJavaの違いなんて大して問題にならんのよ
859:デフォルトの名無しさん
15/06/22 22:49:24.32 kDeJuTTl.net
うちの会社、俺がVB.NETからC#への移行を提案したけど
コードの移植が面倒だとか読めないだとか色々言われて結局VB.NETのままだよ
まぢ死んで欲しい
860:デフォルトの名無しさん
15/06/22 23:36:15.28 uXQtn42r.net
javaは甘くねえよなあ
OracleはMSみたいにおシモの世話なんかしない
861:デフォルトの名無しさん
15/06/22 23:38:32.00 uXQtn42r.net
たぶんMavenとかGradleのエラーが解決できなくて途方に暮れると思うんですけど(名推理)
862:デフォルトの名無しさん
15/06/23 07:46:08.06 LhhNEn7L.net
>>832
JavaFXの現状見ればそれがよくわかる。
しょせんDB屋。アプリケーション類はゴミ。
863:デフォルトの名無しさん
15/06/23 07:49:00.71 U2+OnFmB.net
>>831
おめーが死ねってw
実際、c#移行したって使えねーんじゃ論外だろ。まず、現実見ろよ。
864:デフォルトの名無しさん
15/06/23 07:56:53.71 LhhNEn7L.net
>>831
会社としてはおまえが氏ねって思ってるよ。
それと、お前のその行為、間違いなく査定に引っかかってるから覚悟して
おけよ。
非常に身勝手な提案として認識されてるから。言語を変えるなんておまえ
のような三下が提起することじゃねぇんだよ。三流プログラマー君。
865:デフォルトの名無しさん
15/06/23 07:58:12.61 7ayUCnwb.net
マ板でやれ
866:デフォルトの名無しさん
15/06/23 08:06:23.29 rzZlb/rV.net
朝から元気だな
867:デフォルトの名無しさん
15/06/23 11:48:09.08 9zw4MnHg.net
会社選ぶときに主要言語を調べて入らないとこうなるんだな笑
868:デフォルトの名無しさん
15/06/23 13:23:49.18 5RwnSh85.net
社畜自慢はマ板でやれよ
869:デフォルトの名無しさん
15/06/23 15:31:00.12 8ljnnXhY.net
無職がマ板に行けるとでも?
870:デフォルトの名無しさん
15/06/23 22:14:19.04 NJre/ebQ.net
C#が仕事でかける職場は少ないけどな。自社製品主力かつスクラップ&ビルドが主流で、社内ツール作るかwindowアプリケーション作らないとC#は選択肢にならない
871:デフォルトの名無しさん
15/06/23 22:20:07.95 iTFSMqDv.net
ごめんね、それ以外でC# 仕事で使ってて
872:デフォルトの名無しさん
15/06/23 22:28:15.90 26
873:y4Wu4y.net
874:デフォルトの名無しさん
15/06/23 22:34:56.55 tJjJE4PL.net
OS別 アプリ開発言語
iOS = objective-c おおー
Android = JAVA いいねー
Windows = VB.NET へこーーーーーーーー
斜陽のMSらしいヘボ言語だよね。
C#なら、こんな負い目感じなかっただろうに。。。
875:デフォルトの名無しさん
15/06/23 22:39:28.60 0NuC1wwg.net
>>845
少なくともjavaよりvbの方がだいぶましw
vbはコ冗長になるけど(特にラムダとか酷い)出来ることはC#とそう違わないし
っていうか、10年前ならともかく今あえてC#じゃなくてVBを選択してる企業は
なかなかないと思うが
876:デフォルトの名無しさん
15/06/24 01:42:38.39 q52g9Sr7.net
ストラテジーパターンのメリットが分かりません
877:デフォルトの名無しさん
15/06/24 02:03:16.33 x8P9P79s.net
URLリンク(github.com)
こういうのどうよ
これはC++だけど関数ポインタをdelegateで書いたりActionで書いたりする
878:デフォルトの名無しさん
15/06/24 15:02:35.40 zRV+32S/.net
>>831
教育と移行にかかる工数とスケジュール表を稟議書にまとめて提出しろ
ダメでも評価は上がるべ
879:デフォルトの名無しさん
15/06/24 15:59:30.08 RTg8LFF8.net
混ぜちゃえ
880:デフォルトの名無しさん
15/06/24 16:11:52.31 NHniIMjV.net
俺も混在でいいと思うけど
そのうちVBしかダメなやつ以外はC#に移行するだろ
881:デフォルトの名無しさん
15/06/24 17:06:57.61 vFKyrOSk.net
VB独自の機能使われるとC#のプロジェクトから参照した時に
いろいろ困ったことが起こるんだったような
882:デフォルトの名無しさん
15/06/24 17:30:33.90 NVaEfsnd.net
VB独自の機能…?あったっけ?.netになってから?
883:デフォルトの名無しさん
15/06/24 18:06:37.53 no9AmW7J.net
それに関しては多分CLSCompliantAttribute付けとけば警告してくれるんだよね?
884:デフォルトの名無しさん
15/06/24 18:28:20.96 sRqUdszq.net
>>853
引数付きプロパティとか。
名前付き引数もたぶんC#と微妙に違う。
場合によってはオーバーロードの解決法の違いも問題になるかも。
あとインターフェイス関係が結構違う。
885:デフォルトの名無しさん
15/06/24 19:44:50.16 RTg8LFF8.net
VB.NETでインターフェースを使ってるの見たことがない
886:デフォルトの名無しさん
15/06/25 03:30:46.63 pZAotZeg.net
今はオプション引数も対応してるし
困る事といえばVB.NET側の修正やらされる時くらいかな
C#に戻った時に、ついDimと書いてしまう
887:デフォルトの名無しさん
15/06/25 08:24:31.88 XFqbgY05.net
VBからC#を参照すると、refまたはoutでオーバーロードしてるメソッドが困ったことになるのは知ってる
888:デフォルトの名無しさん
15/06/25 21:11:36.76 TDcnlZ9r.net
そんなVB以下の糞を垂れ流す奴が悪い
889:デフォルトの名無しさん
15/06/25 22:12:13.25 RTWId8Mi.net
>そんなVB以下の糞を垂れ流す奴が悪い
どういう理由でアンチパターンなのでしょうか?
後学のために教えてください。
890:デフォルトの名無しさん
15/06/25 22:37:06.83 U7g+0mTH.net
>>857
俺もつい
varって書いちまうわ
891:デフォルトの名無しさん
15/06/26 16:13:21.68 U7E4+CJP.net
>>738
理由は分からんが、実際エラーになるね。
892:デフォルトの名無しさん
15/06/26 16:50:56.90 Z3cTZ1J0.net
>>862
そんな演技してまで答えて欲しいのか?ゴミw
893:デフォルトの名無しさん
15/06/26 18:05:59.07 l3ThfphX.net
これは酷いwww
894:デフォルトの名無しさん
15/06/26 22:21:39.88 oMjJ
895:ITJg.net
896:デフォルトの名無しさん
15/06/26 22:24:28.29 OIUfWa0r.net
スクリプト言語使いはスコープの概念を知らないか…
897:デフォルトの名無しさん
15/06/26 22:33:04.77 jWa9J4oZ.net
配列の共変性を使うのはお勧めしないな
Javaの負の遺産みたいなもんだ
>>865だと結局後で型チェック&ダウンキャストをしない限りは
わざわざ配列の型を作り分ける意味がないわけだし
898:デフォルトの名無しさん
15/06/27 04:21:47.51 o3dT3qrp.net
ここまで丁寧に教えてもらったなら、もう大丈夫だろう
899:デフォルトの名無しさん
15/06/27 04:43:08.62 6yK3ftLr.net
元の質問者は、型のシステムが理解できてないのか、スコープが理解できてないのかわからん
たぶん両方理解できてないんだろうけど
900:デフォルトの名無しさん
15/06/27 07:38:59.62 iDD3CLpV.net
>>867
もともと同じ変数に入れようとしてるわけだし、それは込みじゃね?
それになんかオブジェクト指向してる気がして楽しいだろ
初学者には楽しさも必要
901:デフォルトの名無しさん
15/06/27 07:39:37.05 iDD3CLpV.net
あーそれともダックタイピングを無意識に要求していたのかな
902:デフォルトの名無しさん
15/06/27 17:08:22.40 R5WbdKN1.net
int[] i = {1, 2}
という配列があるとして、i[0]をa変数に、i[1]をb変数に入れるのをスマートに行う方法はないでしょうか?
Pythonであれば
a, b = i
のようにできることをやりたいです。
今は
int a = i[0]
int b = i[1]
としているのですが、もっとスマートにする方法はないかと考えています。
903:デフォルトの名無しさん
15/06/27 17:10:53.30 xbG7ljXN.net
ない
C#はスクリプト言語ではないので、そういうタプル的な値を扱うときは
ちゃんとクラスを定義して使うのが普通
904:デフォルトの名無しさん
15/06/27 17:14:17.28 xbG7ljXN.net
ちなみにクラスを定義する簡単な方法としては、
var i = new { a = 1, b = 2 };
(使うときは Console.WriteLine(i.a)のようにする)
のように書ける匿名型という機能がある
System.Tupleなんてのもあるが言語でサポートされてる訳じゃないのでお勧めしない
905:デフォルトの名無しさん
15/06/27 17:34:09.37 R5WbdKN1.net
ありがとうございます。
そのiは実際にはReadLineで読み込んだ文字列をSplitしてintに変換したような配列になります。
なので、その配列に代入されているとインデクサでアクセスする必要が有るため、わかりやすい変数名をスマートに付けれる方法がないかと思っていました。
C#を勉強し始めたところでまだまだルールがわからず、スクリプト言語の考えを前提に持ってしまっているのかもしれません。
ありがとうございました。
906:デフォルトの名無しさん
15/06/27 21:23:40.36 n+6r1LD8.net
>var i = new { a = 1, b = 2 };
初心者ですがこれはじめて知った
無名関数は知ってたけど、これは便利だな
907:デフォルトの名無しさん
15/06/28 03:54:38.43 w++X9/Nf.net
2次元配列をforeachで回すのはどうすればよいのでしょう
以下はエラーが出てしまいます
int[,] cards = new int[100,2];
foreach (int[,] card in cards)
908:デフォルトの名無しさん
15/06/28 04:10:59.08 x/T4p/ZN.net
foreachを多次元配列に対して使うとSelectMany()メソッドみたいに平坦化してしまうから
気になるなら普通にfor文を使った方がいい
int[,] cards = new int[100, 2];
foreach (var card2 in cards) {
Console.Write(card2 + " ");
}
Console.WriteLine();
909:デフォルトの名無しさん
15/06/29 23:24:49.10 bidzkCNd.net
こんばんは。
教えてください
VSでwebサイトを作っています。
SQLにある温度計データを引っ張ってきてグラフ
910:化して 推移を見ています。 Chartとデータソースを使用していて問題なかったのですが、 過去分のデータが見たいなと思ったとき今のやり方では見れません。 (データソースの構成で最新100件でグラフにしています。) そこで、ドロップダウンリストから年月を指定して その中で100件のデータを引っ張りグラフ化したいです。 分からない点としては、正直、全部なのですが SQLサーバーにdate(例:2015/06/29/23:00:00)temp(例:20.2) とある場合はドロップダウンリストで年月を選択する方法がわかりません。 SQLサーバーに上のような形式で入っている時点で 年月のみ抽出というのは不可能なのでしょうか? SQL言語の質問かもしれませんが きっとクラスを作成するだろうと思い こちらに記入しました。 どなたか知恵をお貸しください。 よろしくお願いします。
911:デフォルトの名無しさん
15/06/29 23:49:23.72 lRRDyv15.net
株価のチャートを自作したいす
912:デフォルトの名無しさん
15/06/30 00:05:34.96 LiiqQaQT.net
>>879
SELECT date, temp
FROM お前の表
WHERE ? <= date AND date <= ?
LIMIT 100
?にはそれぞれ開始日時と終了日時をバインドする
913:デフォルトの名無しさん
15/06/30 02:36:45.32 RyZIYf8u.net
between、、、
914:デフォルトの名無しさん
15/06/30 02:49:11.94 9tUPOc+y.net
null許容型(int?とか)ってあまり?使わない方が良いって聞いたんですが、なぜですか?
915:デフォルトの名無しさん
15/06/30 03:25:56.90 AoMT9Nrc.net
データベース以外でってこと?
916:デフォルトの名無しさん
15/06/30 03:58:23.92 9tUPOc+y.net
すみません、あやふやなんですが何かの掲示板(多分2ch)で
結構前に「null許容型はやめろ(クソ)」的なレスが結構続いてたので、聞いてみました
逆にデータベースでは、例えばBooleanならtrueとfalse以外「値が未設定」を表現するために
nullを使うと思いますが、そういう用途ではOK(問題ない)という事ですか?
また、逆に問題が出る使用例があれば教えて下さい。
917:デフォルトの名無しさん
15/06/30 04:24:21.76 AoMT9Nrc.net
>>885
ここ読んでさらに疑問があれば質問すれば
URLリンク(code.msdn.microsoft.com)
むやみに使うのではなく使うことで可読性が良くなりバグも減るなら使えばって感じのこと書いてある
918:デフォルトの名無しさん
15/06/30 04:35:41.24 AoMT9Nrc.net
データベースでNULLを排除したコードを書くのは非現実的だとも書いてある
919:デフォルトの名無しさん
15/06/30 04:55:25.65 9tUPOc+y.net
>>886
ありがとうございます
920:デフォルトの名無しさん
15/06/30 08:39:43.88 6xoEPUUH.net
>>881
convertでyymmにして拾うのとどっちが早いんでしょう
C#じゃないけど
921:デフォルトの名無しさん
15/06/30 15:26:37.90 Sta9LMr5.net
WebでSQLを使うときはSQLインジェクションが起こらないように注意して作らんとな
922:デフォルトの名無しさん
15/07/01 13:39:30.86 kfPim06m.net
WPFでボタンをクリックするとウェブページを非同期で取得するプログラムを
書いたのですが
自作ライブラリ内でこのように記述するとtask.Wait();でGUIが応答しなくなります
var task=GetWebPageAsync(webUri);
task.Wait();
string htmlText = task.Result ;
処理を追ってみるとGetWebPageAsyncメソッド内の下記の部分のあと
GUIが表示され処理が中断されるみたいです
HttpResponseMessage res = await client.GetAsync(uri);
923:理由がよくわからないまま string htmlText= await GetWebPageAsync(webUri); と書き直すと処理が実行されました 何が問題なのでしょうか
924:デフォルトの名無しさん
15/07/01 13:55:31.70 lMyegDBc.net
>task.Wait();
>string htmlText = task.Result ;
ここでバリバリ終了を待ってるじゃん。バリバリ。
925:デフォルトの名無しさん
15/07/01 13:59:45.12 kfPim06m.net
もう一つわからないのが>>891で取得したデータを
HogeItemsに設定してListBoxにバインドしているのですが
ListBoxに表示されません
ページの取得とプロパティの値に設定は出来ています
MVVMフレームワークとしてPrismを使用してます
<ListBox ItemsSource="{Binding HogeItems}" Height="500">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
コンストラクタ内
SearchCommand = new DelegateCommand(() => {HogeSearch();});
private async void HogeSearch(){
var list = await Hoge.SearchAsync();
this.HogeItems = new ObservableCollection<HogeItem>(list);}
926:デフォルトの名無しさん
15/07/01 14:22:19.59 kfPim06m.net
>>892
それが下記サイトを参考にコンソールアプリで作っていたときは
問題なくタスク完了したのですが
WPFで利用するとGUIがフリーズしてタスクが完了しません
フリーズするだけならわかりますが、タスクが完了しないのがなぜなのかわかりません
.NET TIPS:Html Agility Packを使ってWebページをスクレイピングするには?[C#、VB] - @IT
URLリンク(www.atmarkit.co.jp)
.NET TIPS:HttpClientクラスでWebページを取得するには?[C#、VB] - @IT
URLリンク(www.atmarkit.co.jp)
上のページから抜粋
webTask.Wait(); // Mainメソッドではawaitできないので、処理が完了するまで待機する
927:デフォルトの名無しさん
15/07/01 14:30:33.50 LLinkmjy.net
HogeItemsプロパティの変更通知はちゃんとしてるのか?
928:デフォルトの名無しさん
15/07/01 15:38:30.48 kfPim06m.net
HogeItemのプロパティに変更通知を設定しないとだめだったんですね
ObservableCollectionに入れれば必要ないと思ってました
929:デフォルトの名無しさん
15/07/01 19:48:54.41 DTddCrxB.net
>>891
コンソールアプリとwpfみたいなguiアプリではTaskの実行コンテキストが違うからってのがあるかな。
メインでResultを受け取るには、awaitの後にConfigureAwait(false)が必要。
var ret = await Abc().ConfigureAwait(false);
別のやり方としては、WaitとかResultで受け取らず、ContinueWithで以降の処理を囲むという手もある。
まあ、この方法はイベントハンドラの中の改変量が多くなるけど
c# Task 実行コンテキスト 辺りの言葉で探してみるといいよ
930:デフォルトの名無しさん
15/07/01 20:12:55.47 cqLm13Og.net
知ってると思うけどasync/awaitを使う関数はTaskもしくはTask<T>を返さないといかんよ
931:デフォルトの名無しさん
15/07/01 20:52:29.17 +trI441A.net
>メインでResultを受け取るには、awaitの後にConfigureAwait(false)が必要。
何言ってるんだこのばかは
932:デフォルトの名無しさん
15/07/01 21:47:59.99 lMyegDBc.net
つまりスレの総意としては、「初心者にasync/awaitを触らすな」でおkだな
933:デフォルトの名無しさん
15/07/01 21:55:16.01 TcFd+yBB.net
>>898
正確には「イベント処理だけはvoidでそれ以外はTask/Task<T>を返すべき」って事だな
URLリンク(neue.cc)
ここに async void がまずい理由がうまくまとめられてる
あと
URLリンク(stackoverflow.com)
こういう所を読めばasync/awaitの意味が直感的に理解できるだろ
最初からUIせずにまずコンソール画面
934:で遊んでみるといいと思う
935:デフォルトの名無しさん
15/07/01 22:05:16.30 8z426iG1.net
そもそも結果を返さない非同期処理は避けるべきだろ
Taskで副作用やると簡単にスパゲッティの出来上がり
936:デフォルトの名無しさん
15/07/01 22:10:43.83 TcFd+yBB.net
だな
永久ループのTaskとか誰得
937:デフォルトの名無しさん
15/07/01 22:20:52.29 /J4bS24z.net
今までWeb系とかやったことなくてASP.NET MVC5実践プログラミングっての買って触ってみてるんだけど、
新しいWebサイト追加したらファイルがものすごい数できてワロタ・・・みんなこれをすいすい使えるとかすげえな・・・
938:デフォルトの名無しさん
15/07/01 22:34:28.57 XZhIE+dJ.net
大丈夫
ほとんどのドカタは理解せずに使ってるだけ
939:デフォルトの名無しさん
15/07/01 22:37:28.27 jqzDD9Cy.net
拡張子aspxで(特に速度面で)まともなサービスを見たことがない
理解せずにドカタが使ってるという指摘は恐らく正しいのだろう
940:デフォルトの名無しさん
15/07/01 22:40:59.12 /J4bS24z.net
まじか。まあ自分も触って2日目だから諦めずに進めるよ。がんばって一流の土方になるよ
941:デフォルトの名無しさん
15/07/01 22:41:40.43 8z426iG1.net
Webなんか所詮来たリクエストに文字列返すだけやで
942:デフォルトの名無しさん
15/07/01 22:43:07.86 G2Z5fyBt.net
ASP.NET MVCは.aspxより体感で10倍ぐらい遅い。
ログインページとかのチンケなビューを表示させるだけで
相当な処理時間を要する。
943:デフォルトの名無しさん
15/07/01 22:50:54.07 /J4bS24z.net
aspxっていうのはweb Formsっていう認識であってます?
ネットで調べたときはMVCが主流とあったので、先攻してMVCをやってるんだけど、
まだ結構業務とかでは使われてるものですかね?
一応赤間信幸さんのWebアプリケーション構築技法っていう本を
数百円でゲットしてあるので平行して進める予定です。
944:デフォルトの名無しさん
15/07/01 22:50:58.15 fbUsRR4f.net
MVCってそんなに遅いの?
945:デフォルトの名無しさん
15/07/01 22:53:29.97 8z426iG1.net
使い方が間違ってるだけ
946:デフォルトの名無しさん
15/07/02 00:14:50.49 6NbSjz3o.net
>>898
>>901
データバインディングと非同期 ? C# Advent Calendar 2014 | kekyoの丼
URLリンク(www.kekyo.net)
※一部抜粋
この例は本物(CLR)のイベントハンドラではありませんが、
ICommandによって間接的に呼び出されるコールバックとして、
広義において同じと見なしても良いと思います。
このように説明されていたのでasync voidを使用したのですが問題有りますか?
そもそもAction型なので戻り値が設定できません
コンストラクタ内
SearchCommand = new DelegateCommand(() => {HogeSearch();});
private async void HogeSearch(){
var list = await Hoge.SearchAsync();
this.HogeItems = new ObservableCollection<HogeItem>(list);}
947:デフォルトの名無しさん
15/07/02 00:59:43.49 Eju8VvyX.net
>>913
そういうのは、イベントと同じで仕方なくasync voidを使うケースになるんじゃないかな。
それしか手段がないということで。
948:デフォルトの名無しさん
15/07/02 01:25:55.14 izkJyB4/.net
実行中の他のフォームに対してString^を渡したいんですけど、C#の超初心者なんで、
EnumWindowsでタイトルを探してHWND取得して、マーシャルした*TCHARでグローバルATOMを作成して
SendMessageで渡すという方法くらいしか思いつきません
なんかかっこいい方法ありませんか?
949:デフォルトの名無しさん
15/07/02 01:31:29.80 tXGVZqg3.net
async/awaitの使い方に関してはこの辺り読んどけ <
950:br> http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html https://msdn.microsoft.com/ja-jp/magazine/jj991977.aspx
951:デフォルトの名無しさん
15/07/02 01:47:17.82 1taOWumU.net
>>913
値を返す必要がない非同期なんだからTask.Factory.CreateNewでWaitなしでも同じ事だね
952:デフォルトの名無しさん
15/07/02 01:52:04.59 1taOWumU.net
おっと間違えてた
メソッドのなかでさらにawaitやってるんだからメソッドの中でTask.Factory.CreateNewやればいいな
asyncを使う必要性はむしろ例外が投げられた時に適切に対処出来るかどうかに関係する
953:デフォルトの名無しさん
15/07/02 08:03:29.48 XweApYF/.net
>>915
プロセス跨ぐならIPC
跨がないなら普通にメソッド呼べ
954:デフォルトの名無しさん
15/07/02 22:51:37.10 4BNFPd6R.net
ポリモーフィックな処理を書きたいときって
インターフェースを使うのと仮想メソッドを使うので理論的にはどっちが速いの?
955:デフォルトの名無しさん
15/07/02 23:39:26.50 AiijB2ck.net
変わらないんじゃないの?実測するしかないけど
abstructとvirtualの違いだよね?abstructは全てvirtualであるためなのか
virtualを付けるとコンパイルエラーになる
それからインターフェースのBaseを呼び出す事が出来ない
インターフェースは多重継承みたいな事をしたい時に使ってるけど
956:デフォルトの名無しさん
15/07/03 09:06:24.07 t3F14P3X.net
デフォルトのawaitの外側でWaitしたらあかんよ。
957:デフォルトの名無しさん
15/07/03 09:08:41.27 t3F14P3X.net
デッドロックするからね。
awaitは処理完了後UIスレッドに続きを実行させようとするが、Waitで完了待ちしてるからUIスレッドはいつまで待っても空かない。
双方待ちあってデッドロック。
958:デフォルトの名無しさん
15/07/03 09:10:44.89 t3F14P3X.net
それを防ぐにはawaitのときにConfigureAwait(false)するなりが必要。
959:デフォルトの名無しさん
15/07/03 09:13:12.96 t3F14P3X.net
つまり>>897は正しいわけだけどいきなりバカ言われて終わってるな。
960:デフォルトの名無しさん
15/07/03 09:17:28.88 jZs8Gwbi.net
Twitterと勘違いして単文連投してんのか?ボケ
片山MZも似たような病気発症してるよな
アスペに共通する病なのか?
961:デフォルトの名無しさん
15/07/03 09:17:49.13 aTUcbAAr.net
WPFでDataGridのItemSourceにObservableCollection<MyData>をBindingしているのですが、
ObservableCollection<MyData>の特定のデータを変更した際に、DataGridのスクロールを変更があったデータの位置(行)に移動したいです。
どのようにすればいいでしょうか?
962:デフォルトの名無しさん
15/07/03 09:42:07.68 3rp9Mnby.net
>>925
ワロタ
たしかにそうだな
963:デフォルトの名無しさん
15/07/03 09:43:40.63 mX8fKKOT.net
VMの変更時にメッセンジャーとか使ってVに通知してScrollIntoViewすればいいんじゃない
964:デフォルトの名無しさん
15/07/03 09:47:04.79 aTUcbAAr.net
>>929
ありがとうございます、やってみます
965:デフォルトの名無しさん
15/07/03 09:55:39.32 xTjRlvwx.net
>>930
ScrollIntoViewは仮想化切らないとマトモに動かないから中尉
966:デフォルトの名無しさん
15/07/03 10:45:26.48 JghQIuWO.net
asp.net mvc でdbにsqliteを使うことはできますか?
967:デフォルトの名無しさん
15/07/03 10:54:35.26 aTUcbAAr.net
>>931
ありがとうございます。
参考にさせて頂きます。
968:デフォルトの名無しさん
15/07/03 11:50:01.29 7czX/gB0.net
>>932
使えるって実用に耐えるかってことなら無理だね。
素直にSQL Serverを使うべき。
969:デフォルトの名無しさん
15/07/03 12:11:33.74 SPEM/1YO.net
>>920
インターフェイスは重い、仮想の方が速いってのが基本ではあるけど、最適化技術も進んでるので条件によってはほとんど変わらない。
まあでもやっぱり仮想の方が速いかな。
970:デフォルトの名無しさん
15/07/03 12:23:00.35 JghQIuWO.net
>>934
実用に耐えれなくても大丈夫です。
sql serverだと勝手に色々
971:やってくれて便利すぎるのでsqliteとかで中身理解しながら勉強したいなと思って
972:デフォルトの名無しさん
15/07/03 14:23:52.58 rDeS7aaJ.net
それはDBMSじゃなくてORMの問題かと
SQLServerでいいからEF使わないで直接DbConnectionでSQL投げたらいい
973:デフォルトの名無しさん
15/07/03 15:42:42.38 7czX/gB0.net
>>936
sqliteなんてサブセットだからちゃんとしたDBを学んだ人間が使うべきもの
勉強ならSQL ServerやPostgreSQLで学ぶべき
974:デフォルトの名無しさん
15/07/03 15:47:24.03 uO8sjm4v.net
別に何を使ったっていいだろ
sqliteはスタンドアローンで動くしユーザーやら何やらDBサーバー側の設定を気にせず使えるからとっかかりは楽だと思う
975:デフォルトの名無しさん
15/07/03 15:48:54.97 lmzcW47C.net
>>923
そうそうそうなんです、UIスレッドに戻ろうとして
Task.Waitで止まってます
わかりやすい、ありがとうございます
ってことは@ITのコードはコンソールアプリじゃないと機能しないようなものなんですね
976:デフォルトの名無しさん
15/07/03 15:51:50.93 7czX/gB0.net
>>939
じゃあそれでいいです。
977:デフォルトの名無しさん
15/07/03 16:06:51.66 jZs8Gwbi.net
だよな!
978:デフォルトの名無しさん
15/07/03 16:07:54.64 lmzcW47C.net
URLリンク(qwerty2501.hatenablog.com)
ここがすごくわかりやすく説明してた
上記サイトの一文
・基本的にはライブラリ内でawaitする場合はConfigureAwait(false)すること
自分の問題はここだった
WebPageをダウンロードするライブラリを利用するメインで
例外をキャッチしたかった
979:デフォルトの名無しさん
15/07/03 19:24:19.48 JghQIuWO.net
>>937
まだ勉強不足なんですけと、dbcontextを継承してそれをいじくるんですかね?
来週色々試してみます!
980:デフォルトの名無しさん
15/07/03 19:58:43.81 uMdddorU.net
DBの勉強したいならEFの再発明を1回やっとけばおk
981:デフォルトの名無しさん
15/07/04 02:55:41.29 A6eGrjpU.net
>>945
メンバ名とカラム名を自動で紐付けるような感じですよね
982:デフォルトの名無しさん
15/07/04 12:41:38.87 u/y4FI+O.net
それだけじゃないけどな
クエリの動的生成やら更新の追跡やら自前でやると結構めんどくさいよ
983:デフォルトの名無しさん
15/07/04 13:34:46.43 YKtPOMLD.net
更新の追跡ってなんですか??
984:デフォルトの名無しさん
15/07/04 15:34:35.19 Yn2KkVMN.net
JavaのjBatchのようなバッチ処理のフレームワークありませんか?
985:デフォルトの名無しさん
15/07/06 16:55:53.12 y9JP5enm.net
URLリンク(www40.atwiki.jp)
ここを見てストップウォッチを作っているのですが、うまくいきません
基本的な事が出来たのでテストすると、1時間までは正常表示されるのですが
1時間以上経過すると「分」を表示する部分が「2時間235分」とか表示されてしまいます
// start押したら計測開始
time_A += Time.deltaTime;
// Textコンポに表示
timer_A.text = Mathf.Floor(time_A / 3600f).ToString() + "時間 " + Mathf.Floor(time_A / 60f).ToString() + "分 " + Mathf.Floor(time_A % 60f).ToString();
やってる事はunityですが質問はC#だと思うので、こちらで質問させて頂きました
何かアドヴァイスを頂きたいのですが、どうしたらいいでしょうか?
986:デフォルトの名無しさん
15/07/06 16:58:18.01 YYyieqqT.net
例えば2時間30分のときにtime_Aにはどんな値が入ってて、それを60で割って表示したらどんな値が出力される?
987:デフォルトの名無しさん
15/07/06 17:08:41.01 y9JP5enm.net
>>951
time_Aには9000・・・?
60で割ると150ですかね
あまり自信ないです・・・
988:デフォルトの名無しさん
15/07/06 17:12:12.71 YYyieqqT.net
>>952
150になるなら、2時間150分って表示されることになるだろ?だから150になるような計算じゃなくて30になるようにしないと駄目
989:デフォルトの名無しさん
15/07/06 17:15:47.28 Rsiji3ml.net
ヒントは秒の所に
990:デフォルトの名無しさん
15/07/06 17:17:33.59 y9JP5enm.net
>>953
あー・・・なるほど
たぶん分かったと思うので、試してみます
ありがとうございました。
991:デフォルトの名無しさん
15/07/06 17:25:47.09 yvuAj/xu.net
>>950
まんまstopwatchクラスとかあるんだが
992:デフォルトの名無しさん
15/07/06 21:42:25.14 aXZfp9EM.net
ま、誰もが一度は通る細道よ
もぞもぞっとしてああそうか、で終わりよ
993:デフォルトの名無しさん
15/07/07 08:30:09.15 U6+aOXmn.net
C#もメソッドの複数戻り値欲しい
対応する他の言語も増えてるんだし
あ、Tupleは論外です
994:デフォルトの名無しさん
15/07/07 08:41:53.84 TS0XlDWE.net
言語仕様にごちゃごちゃ言えるレベルかよ
コード書いてろよタコ
995:デフォルトの名無しさん
15/07/07 08:46:01.63 ZxkWSQzJ.net
その複数の戻り値を格納したクラスのオブジェクトを返せばいいだけでは
996:デフォルトの名無しさん
15/07/07 09:23:42.50 pk39sm1t.net
dynamicでむちゃくちゃシンプルに複数戻り値のメソッド記述できるだろ
997:デフォルトの名無しさん
15/07/07 09:53:13.21 PjK/lpsq.net
連想配列を使うのが流行ってる
998:デフォルトの名無しさん
15/07/07 11:46:55.79 kBfZhVx2.net
>>958
なぜ論外なのか教えてください
999:デフォルトの名無しさん
15/07/07 12:12:07.88 qt5SIPya.net
メソッドから複数の戻り値返せるような言語の例をあげて欲しいんだが
1000:デフォルトの名無しさん
15/07/07 12:15:50.25 EDjn9D6L.net
Go、Scala、python、perl、ruby
1001:デフォルトの名無しさん
15/07/07 12:17:20.40 IXTBYhaq.net
tuple返したらだめなん?
1002:デフォルトの名無しさん
15/07/07 12:18:44.80 mRhwc0pv.net
>>961
どうやるん?
1003:デフォルトの名無しさん
15/07/07 12:19:07.82 sTXZljFQ.net
>>960
それだと最大でメソッドごとにクラスが必要でクラスごとにプロパティを持つことになりますね
これが陳腐、非生産的なので複数戻り値をサポートする言語が増えています
>>961
dynamicは実行速度が低速なので論外です
1004:デフォルトの名無しさん
15/07/07 12:28:03.41 WTwMH7IK.net
C#にも匿名型があるじゃん
1005:デフォルトの名無しさん
15/07/07 12:30:19.81 sTXZljFQ.net
ほぅ、では匿名型で書いてみましょうか
どうなると思います?
1006:デフォルトの名無しさん
15/07/07 12:40:17.61 qt5SIPya.net
>>965
Goは確かにできるみたいだな。これは面白そうではあるけど
それ以外で直接、複数戻り値返せるのはなさそうだけど?
あくまで戻してるのは配列やリストだろ。それを複数変数に一括代入できるだけで
だったらC#でもオブジェクトの配列でも戻せば良いんじゃね
オブジェクト指向としての設計方針がどうなのかはしらんが
匿名クラスが戻り値に指定出来れば面白いかもしれんのだがなぁ
出来ない事は無いような気がするんだが、やらない方針なのか
1007:デフォルトの名無しさん
15/07/07 12:43:35.50 pk39sm1t.net
>>967
private void button1_Click(object sender, EventArgs e)
{
var packed = GetHoge ();
if (packed.IsOK)
{
textBox1.Text = packed.Name;
}
}
private dynamic GetHoge ()
{
return new { Name = "ほげ", IsOK = true };
}
1008:デフォルトの名無しさん
15/07/07 12:48:04.38 TS0XlDWE.net
うんこに触りまくりだなキミら
1009:デフォルトの名無しさん
15/07/07 12:49:18.70 pk39sm1t.net
>>968
速度が必要なところではクラスを使って問題ないところでdynamic
使い分けがめんどくさいなら他の言語に行けば
1010:デフォルトの名無しさん
15/07/07 12:54:29.41 EDjn9D6L.net
>>971
内部的にはどの言語も戻してるのは配列やリストだし、C#でも同じことはできるが
例えばperlなら下のように簡単にできるってのがメリットってだけだからな
sub a { return (123, "abc"); }
my ($aaa, $bbb) = a();
1011:デフォルトの名無しさん
15/07/07 13:00:51.91 mRhwc0pv.net
>>972
ありがとー
名無しクラスで
1012:返すのか
1013:デフォルトの名無しさん
15/07/07 13:15:07.21 qt5SIPya.net
匿名型は型もってるけど、ダイナミックは結局Object型だからなぁ
結局のとこタイプセーフどうすのって話になるかと
なんか構想はあるみたいだな
URLリンク(ufcpp.wordpress.com)
1014:デフォルトの名無しさん
15/07/07 13:20:39.70 pk39sm1t.net
>>977
>結局のとこタイプセーフどうすのって話になるかと
そこがね、結構な弱点ではある
1015:デフォルトの名無しさん
15/07/07 13:30:42.49 HWlVqIKe.net
>>966
というよりこの話題でタプルを別に考えなくていいやんと思う
タプル返すならそれでいいやんって思う
しかもrubyの場合は単にArrayなんじゃなかった?(あやふや)
それだとしてもそれでいいやんって思う
用は単にx, y = fと書きたいだけじゃないのみんな
1016:デフォルトの名無しさん
15/07/07 13:46:51.67 mRhwc0pv.net
>>979
publicなメソッドでitem1、item2、...はあかんわ
1017:デフォルトの名無しさん
15/07/07 14:48:50.22 PIoug+Wj.net
>>980
ごめん、C#のSystem.Tupleについては存在すら知らなかった
ocamlのタプルを勝手に想像してて
(x, y)やカッコも省略できるんでx, yもタプル
let a, b = (1, 2);;
こういうのを勝手に想像してたすまそ
1018:デフォルトの名無しさん
15/07/07 16:52:35.77 qt5SIPya.net
>>979
>用は単にx, y = fと書きたいだけじゃないのみんな
俺はこれは嫌だな。fにx,yが内包されている事がわからんから
これだったらそれこそf.item1,f.item2で良いわけで、今のタプルで良いかと
f.なになに で、名前と型が維持されてないとダメだ
1019:デフォルトの名無しさん
15/07/07 17:05:13.40 qt5SIPya.net
そういえば上の方で、タプルは
>言語レベルでのサポートがない言語で使うべきではない
って力説してた人がいたなぁ
dynamicは遅いから論外だって言ってるけど
>>958がタプルを論外だと言う理由は何だろ
1020:デフォルトの名無しさん
15/07/07 17:39:44.26 gSeUuLQi.net
>>982
あぅ…つくづくスマン
> x, y = f
これは f() の意味ね
あなたの論旨に対して瑣末なことではあるが一応訂正しとく
1021:デフォルトの名無しさん
15/07/07 20:16:16.46 fVR/pyHV.net
ふらふらっと
1022:デフォルトの名無しさん
15/07/07 20:56:38.80 n0YcJJeB.net
次期バージョンで複数戻り値がサポートされそうってのがあったけどいつの間にかなくなったしな