- 1 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 19:00:56.93 ID:Y4203ffV0.net]
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part131 mevius.5ch.net/test/read.cgi/tech/1504861931/ ■関連スレ C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net mevius.5ch.net/test/read.cgi/tech/1492843013/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 596 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 18:55:16.39 ID:rXHf5Axha.net]
- ごめん
やっぱアホやと思う
- 597 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 19:15:45.09 ID:rZWSN5VzM.net]
- >>581
OOPでは文字列というかプリミティブ型をそのまま使う方が間違い 行という概念が対象とする業務にあるならそういうクラスを作る
- 598 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 20:14:28.12 ID:X1c8HG7Y0.net]
- とりあえずstringと暗黙に相互変換できるクラス作ればいいんじゃね
- 599 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 20:49:55.33 ID:WUINebrs0.net]
- >>570
継承(is-a)じゃなくて包含(has-a)にすべきパターン
- 600 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 21:14:06.22 ID:EvuLUtue0.net]
- >>575
>いたる所に行番号やらが必要になったstring変数 この「行番号やら」とstring変数の用途というか使用目的は?
- 601 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 21:16:11.03 ID:lTHigkwZr.net]
- >>586
素直に委譲するべきですな 継承してstringの全メソッドを公開してしまうアホさ加減が理解出来ない人多いよねw
- 602 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 21:35:30.21 ID:m7p7dboTa.net]
- >>586
>>588 この質問者のケースは単なる設計ミス(というよりあまりに思慮が足りない)だけであって 継承かコンポジションかの対立じゃありませんw
- 603 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 22:59:54.69 ID:rZWSN5VzM.net]
- 設計ミスの原因は値オブジェクトの作成をサボったこと
- 604 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 01:41:15.85 ID:niGJJWdU0.net]
- Form1のコントロールに他クラスからアクセスするとき、VB.NETだと
Form1.DataGridView1.〜 のようにアクセスできたけど、C#は同じようにできなかった https://teratail.com/questions/36464 ここのページのように実装したけど、みんなはどうしてる?
- 605 名前:デフォルトの名無しさん [2017/10/29(日) 01:56:06.10 ID:9lQAHngl0.net]
- >>591
いやできるけど
- 606 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 02:40:31.76 ID:WQc+sGcxa.net]
- >>591
C#だとデフォフトのアクセスレベルがprivateになってる(VBはpublic)から これをpublicとかに変更してやればできる。(デザイナのプロパティグリッドだとデザイン/Modifier) でもやるな。 コントロールを外から操作したいなんて99%考え方が間違ってる。
- 607 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 03:16:14.16 ID:ijP0HOZf0.net]
- >>591
エラーメッセージくらい読めよ
- 608 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 08:12:26.70 ID:eDIrk2le0.net]
- >>592-594
ありがとうございます Winフォーム作成→dataGridView貼り付け→dataGridViewのModifiersをPublic→ 新しいクラスClass1.csを作成→ public void Test() {Form1.dataGridView1.Rows.Add("hoge");} エラー CS0120 静的でないフィールド、メソッド、またはプロパティ 'Form1.dataGridView1' で、オブジェクト参照が必要です とでます。Form1. の時点でインテリセンスにも表示されませんでした どこが間違っているか指摘していただけるとうれしいです VB.NETもおなじようにやってみましたが、Form1.のインテリセンス候補も10倍くらいの量がありました >でもやるな。 >コントロールを外から操作したいなんて99%考え方が間違ってる。 ちなみにどのようにされていますか?
- 609 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 09:36:49.69 ID:xy4cL51x0.net]
- クラスのインスタンスを電文フォーマットに基づくバイト列に変換するのって
どうするのが一般的ですか? BitConverterで一つずつやるつもりでいたんだけど、電文の種類が多くて大変なんで マーシャリングかシリアライザー使って何とかならないかなと考えています。 バイトオーダの変換はありませんが 文字コードの変換はあります。
- 610 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 09:57:15.12 ID:lQWP9L+J0.net]
- >>595
クラスのインスタンスからアクセスしないといけない 他のクラスにインスタンス無しでアクセスできるのはエラーのとおりstaticなメンバーにだけ 自分で貼ったリンク先を読み返すか https://dobon.net/vb/dotnet/form/accessanotherformdata.html ここを参照
- 611 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 10:00:00.89 ID:8/yZ+26EM.net]
- >>596
独自形式? ならまずはプロトコルの変更を検討
- 612 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 10:25:39.66 ID:8DklepZ/0.net]
- >>596
電文フォーマットが有名な国際規格ならNugetにコンバータが落ちているだろうからそれ使えだけど、独自形式なら電文に応じてコンバータ作るしかないんじゃね 2.0時代の時は文字コード指定したBinaryWriterに1項目ずつ書き込んだけど、今だともっと良い方法あるのかね?
- 613 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 10:38:20.65 ID:niGJJWdU0.net]
- >>597
説明が足りなかったです 最初のレスで貼ったリンク先の方法で実現できたのですが、VB.NETのように特別な設定等なくてもアクセスできないのかなと思いまして
- 614 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 10:46:16.93 ID:lQWP9L+J0.net]
- >>600
意味が分からないのだけどインスタンス無しでアクセスしたいのなら無理 デフォルトをpublicにする設定なら知らない datagridviewをpublicにしたくないのなら同じクラスに読み書きするためのpublicなメソッドをおいてそこに外からアクセスする
- 615 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 11:57:28.03 ID:PXhFkrdq0.net]
- LINQの川俣本買ってきた
確かに変態的だがw、なかなか面白い
- 616 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 12:24:50.28 ID:niGJJWdU0.net]
- >>601
勉強になりました ありがとうございました
- 617 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 13:04:46.79 ID:ZduY/p1d0.net]
- >>602
彼が本の中で出している例が、彼が実際に作っている同人ゲームというのが痛々しい その痛さは中身とは直接関係ないけどね
- 618 名前:あ mailto:sage [2017/10/29(日) 13:54:10.92 ID:KCquvjW+d.net]
- >>596
電文コンバータと、そのコンバータ用のattribute作った事ある。 ちまちまやっても辛いが、電文は自システム外との接点で一番健全であるべきだと思うから、 あんまりその辺のライブラリ使わずに、ベンダサポ
- 619 名前:ートのあるものを買うか自作した方が良いと思う。 []
- [ここ壊れてます]
- 620 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 19:15:01.89 ID:DPr9B5TC0.net]
- double値で0〜1の乱数一個発生させた後何倍かしたあと50足して50〜100の乱数表示させたいんだが「何倍かして」をどう打ち込んでやればいいのか分から
- 621 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 19:27:01.08 ID:JiBt02fUa.net]
- >>606
0〜1の乱数 * 50 + 50
- 622 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 19:30:31.42 ID:UHlhCeyba.net]
- それが分からないってどんだけ数学苦手なんだよw
小学生でもわかる気がするけどw
- 623 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:04:49.47 ID:QVv5Qzoo0.net]
- >>606
こたえ は らんすう かける (いちばんおおきいかず ひく いちばんちいさいかず) たす いちばんちいさいかず
- 624 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:24:05.16 ID:XZx0dOgn0.net]
- List<string>をcomboBoxの内容に入れ替えたいんですが、
list.Clear(); foreach (var item in comboBox1.Items) { list.Add(item.ToString()); } もっといい書き方ありますか?
- 625 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:35:08.53 ID:2obBvs8R0.net]
- >>610
list = comboBox1.Items.Cast< string >().ToList();
- 626 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:37:54.07 ID:2obBvs8R0.net]
- listを作り直すのが嫌だったら
list.Clear(); list.AddRange( comboBox1.Items.Cast< string >() );
- 627 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:39:32.25 ID:GAnQ71f80.net]
- >>610
DataSourceにデータソースをバインドしてDisplayMemberとValueMemberをゴニョニョする方が良いと思う
- 628 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:42:13.20 ID:GAnQ71f80.net]
- ごめん、忘れて
- 629 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 20:53:42.20 ID:XZx0dOgn0.net]
- >>611-612
ありがとうございます。 やってみます。
- 630 名前:デフォルトの名無しさん [2017/10/29(日) 21:38:31.04 ID:AI+osUJX0.net]
- あるstringのデータを
コンソールで表示すると 1 2 3 4 5 6 となるのですが フォームアプリケーションのtextBoxで表示すると 1 2 3 45 6 となってしまいます これはどうしてでしょうか? コンソールアプリケーションと同じように表示する方法はありますか?
- 631 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 21:42:40.40 ID:YJExHDlc0.net]
- textBox.Multiline = true;
- 632 名前:デフォルトの名無しさん [2017/10/29(日) 21:46:02.25 ID:+ffco7dx0.net]
- >>616
フォームデザイナーでテキストボックス選択すると出てくる三角マークで出てくるチェックボックスにチェック
- 633 名前:デフォルトの名無しさん [2017/10/29(日) 21:49:41.90 ID:AI+osUJX0.net]
- >>617>>618
Multilineはチェックしています
- 634 名前:デフォルトの名無しさん [2017/10/29(日) 21:50:16.20 ID:+ffco7dx0.net]
- >>606
「*」の入力の方法 https://i.imgur.com/JX4EAnJ.jpg
- 635 名前:デフォルトの名無しさん [2017/10/29(日) 21:50:47.43 ID:+ffco7dx0.net]
- >>619
改行コードは\nじゃなくて\r\n
- 636 名前:デフォルトの名無しさん [2017/10/29(日) 21:53:57.78 ID:AI+osUJX0.net]
- >>621
なるほど、データの\nを\r\nに置換すれば良いのですね プログラム内で出来る様やってみます ありがとうございました!
- 637 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 22:29:57.26 ID:3xWluLewM.net]
- >>606
乱数で1〜0じゃなくて 乱数で0〜50出して50足せばいいよ
- 638 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 23:09:13.97 ID:lLtElflAr.net]
- >>610
悪いこと言わんからlistを入れ換えなさい
- 639 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 23:41:17.91 ID:XZx0dOgn0.net]
- >>624
>>611-612 では問題あるのでしょうか?
- 640 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 00:51:20.04 ID:ZjjJl5MKr.net]
- >>625
その二つが違うんですけどね (´・ω・`)
- 641 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 02:19:11.99 ID:WHu/EAiX0.net]
- >>600
VB.NETの既定のインスタンスのことかな? VB.NETではフォームのインスタンスをnewすることなく使える www.atmarkit.co.jp/fdotnet/special/vb6tovb2005mig02/vb6tovb2005mig02_01.html ただ、VB6との互換というか、ごまかしだから避けるのが基本 メリットが薄い割に後々混乱やバグのもとになる
- 642 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 06:37:07.25 ID:VzdyAy7l0.net]
- >>610
コンボボックスのデータソースにリスト当ててやればおけ
- 643 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 16:27:34.12 ID:uU3Z1NO30.net]
- C#凄く難しい。
みんなよく覚えられるね。
- 644 名前:デフォルトの名無しさん [2017/10/30(月) 17:05:11.69 ID:ZRry2d4e0.net]
- 最も無駄がなく整理されて簡潔な言語なのに
- 645 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:11:32.17 ID:+mMPfUc40.net]
- 互換性の為の無駄はあるよ
そして難しくはないっつーかかなり簡単な部類 仕様とライブラリが膨大で覚える事が多いだけ
- 646 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:13:03.05 ID:em1IyeD/0.net]
- Dictionaryを使って
stringとfloat型で特定の人物の電話番号を WriteLineでコンソールに出力するプログラムを作りたいのですが 例えば0001234567という電話番号だったりすると 000の部分が省略されて1234567の部分しかコンソールに出力できません float型では0は扱えないのでしょうか?
- 647 名前:デフォルトの名無しさん [2017/10/30(月) 17:16:37.50 ID:1Rgk/fXB6.net]
- なぜ電話番号を浮動小数で表すのか謎だがこのサイト見ながらで書式設定すればできる
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/formatting-numeric-results-table
- 648 名前:片山博文MZ mailto:sage [2017/10/30(月) 17:21:42.29 ID:ct0tj9Za0.net]
- >>632
電話番号には文字列を使いなよ。国際電話を使うかもしれないぜ。
- 649 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:28:01.76 ID:dYkZ5PSi0.net]
- >>632
float型だろうがdecimalだろうが頭に0が付かないのは当たり前。電話番号は文字列として扱え 数値以外の要素のチェックが必要なら面倒でもチェック用のメソッドを作る >>633 それができるのは桁数が決まっているものだけだから電話番号には使えない
- 650 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:35:14.59 ID:ZipmH/zBd.net]
- >>629
何に比べてどこが難しいの?
- 651 名前:デフォルトの名無しさん [2017/10/30(月) 17:37:33.80 ID:em1IyeD/0.net]
- >>634
>>635 文字列として扱ったら表示されました! ありがとうございました!
- 652 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:42:51.79 ID:MXOIFBwWa.net]
- スレ的に笑っちゃいけないのかもしれないけどその発想はなかったw
だけど常識的に考えて、0と00が別の値として認識される数値型があったら変だろうw
- 653 名前:デフォルトの名無しさん [2017/10/30(月) 17:43:10.06 ID:1Rgk/fXB6.net]
- 電話番号って幅バラバラなんだ初めて知った
- 654 名前:デフォルトの名無しさん [2017/10/30(月) 17:44:12.67 ID:1Rgk/fXB6.net]
- 確かにバラバラだわ
- 655 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:46:47.02 ID:MXOIFBwWa.net]
- 東京の局番が増えたのついこの間だったろう...と思ったらもう20年以上前かw
- 656 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:48:26.11 ID:+mMPfUc40.net]
- まあ固定電話と携帯電話でも桁数違うし
- 657 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 17:57:55.85 ID:qj0DpEco0.net]
- 電話番号は真面目に考えると結構複雑
nugetでPhoneNumberを調べるとすでに作ってる人がいるので参考にするなり拝借するなり してきた方がいいかもしれない
- 658 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 18:01:26.63 ID:Bbjg4pNZa.net]
- 問題点番号26
110と119、117が登録できない 永久凍結(笑)
- 659 名前:デフォルトの名無しさん [2017/10/30(月) 18:02:40.83 ID:zMAqCiK10.net]
- 常識的に考えて緊急電話がサービスに登録してこない
電話帳かな?
- 660 名前:あ mailto:sage [2017/10/30(月) 18:03:59.63 ID:53AKimFld.net]
- 電話番号って番号だからなぁ。一応。
単純に文字列が良いかと言うと、ソートは国番号、市外局番、市内局番、内線番号で数字順にやりたい、とか、局番のハイフンは数字じゃないじゃんとか、市外局番変わるので洗い替えます、とか結構うんざりする。 業務系だと電話番号クラス作る(というかプリミティブな型をデータを表す型に使わない)けど、そこまでやってるとキリないしな。
- 661 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 18:05:30.03 ID:+mMPfUc40.net]
- 結局、要件定義次第だからね
将来的な変更を見越して型を作るのはアリだと思うけど
- 662 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 18:27:19.96 ID:1DqnyPzkM.net]
- 電話番号は番号というより記号
数字としての役割はしてない
- 663 名前:デフォルトの名無しさん [2017/10/30(月) 18:32:37.98 ID:6LR7RaNa6.net]
- x 数字
o 数値
- 664 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:14:48.75 ID:ums4+xqt0.net]
- >>630
MSDNの糞っぷりは天下一級品
- 665 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:17:16.26 ID:BJc9Pwjb0.net]
- ?
- 666 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:20:01.70 ID:Bbjg4pNZa.net]
- >>650
よく書いてあるじゃん vc6の頃なんてリンク切れだったぜ
- 667 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:28:47.29 ID:ums4+xqt0.net]
- >>652
VC6と比べると幾らかマシと言うレベルで褒められたもんじゃない。 .NETの少しマイナーなクラスだと「そんな説明で分かるかボケ」か説明すらない状態だ。
- 668 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:31:46.66 ID:Bbjg4pNZa.net]
- >>653
最近サンプルソースも充実してるじゃん
- 669 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:36:22.59 ID:ums4+xqt0.net]
- >>654
その充実(笑)なサンプルソースとStackOverflowの親切な外人様のおかげでなんとかなってる状態w
- 670 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:46:34.67 ID:YIhgL7yL0.net]
- >>655
docsの間違いか?
- 671 名前:デフォルトの名無しさん [2017/10/30(月) 19:48:27.09 ID:4jg/LOEr0.net]
- ワシみたいな趣味グラマーは公式ドキュメントなんか読まないからノープロブレム
- 672 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 19:49:37.11 ID:s0I2evXG0.net]
- await/asyncの良い資料ってどこかに無いかね
ParallelやTaskの奴なら昔MSが出してたParallel Programming with Microsoft .NETが参考になったけど、こっちは全然見当たらない
- 673 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:09:03.29 ID:1DqnyPzkM.net]
- >>658
具体的に何が必要?
- 674 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:18:18.09 ID:s0I2evXG0.net]
- >>659
解説に加えてパターンやアンチパターンがあるとわかりやすいからありがたいけど、ググってもブログでちょっと触ってみましたみたいな記事しか無いんだよな
- 675 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:30:18.29 ID:wEmOlfDHr.net]
- つかってりゃあ解るレベルのもんなんで何とも
- 676 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:32:27.51 ID:RKfFK5VC0.net]
- OracleやAppleに比べるとMSDNは神レベル
- 677 名前:片山博文MZ mailto:sage [2017/10/30(月) 20:35:57.71 ID:ct0tj9Za0.net]
- >>662
MSDNは情報は多いが、ひどくのろまな亀だ。
- 678 名前:デフォルトの名無しさん [2017/10/30(月) 20:40:19.79 ID:OohuTOK70.net]
- c#初心者のDTですが質問良いですか?
Visual Stdio 2017 でプログラムの実行方法が分かりません猫でも解るC#を見て打ち込んだのはいいのですが走りません アドバイスをおぬがいします
- 679 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:40:41.88 ID:RKfFK5VC0.net]
- 単に使いこなせてないだけかもね
- 680 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:41:05.20 ID:BomO59sy0.net]
- >>627
C#とVB.NETは構文が違うだけでだいたい一緒っていうイメージがありましたが、そういう側面もあるんですね 参考になりました ありがとうございます
- 681 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 20:41:46.20 ID:+mMPfUc40.net]
- >>664
先ずコードを晒せ、話はそれからだ >猫でも解るC#を見て打ち込んだのはいいのですが て事は、大して長いコードでも無いんだろうし
- 682 名前:デフォルトの名無しさん [2017/10/30(月) 20:48:55.38 ID:59na0HEH0.net]
- >>664
情報が少なすぎる とりあえずなにかを動かしたいのか? 「新しいプロジェクト」 ↓ 「コンソールアプリ」のプロジェクトを作成 ↓ static void Mainしたの中括弧
- 683 名前:の中にConsole.WriteLine(“Hello World”);
を追記する ↓ 画面の上にある再生ボタンを押す [] - [ここ壊れてます]
- 684 名前:デフォルトの名無しさん [2017/10/30(月) 21:01:28.13 ID:OohuTOK70.net]
- >>668
説明が足りなくてすいません imepic.jp/20171030/755380 こんな感じで本を見て書いたやつを走らせたい息子が困っていまして
- 685 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:05:25.57 ID:qj0DpEco0.net]
- 全裸でデバッグする奴なら知ってるが
まさかチンコでタイプするツワモノがいたとは
- 686 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:10:30.63 ID:Bbjg4pNZa.net]
- >>669
プロジェクト作ってないな >>668の通りやってみるが吉
- 687 名前:デフォルトの名無しさん [2017/10/30(月) 21:12:08.05 ID:OohuTOK70.net]
- >>671
ありがとうございます
- 688 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:12:54.40 ID:dYkZ5PSi0.net]
- >>669
www.atmarkit.co.jp/ait/articles/1704/10/news026_5.html www.atmarkit.co.jp/ait/articles/1704/10/news026_6.html
- 689 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:13:18.64 ID:+mMPfUc40.net]
- >>669
画面に顔が映り込んでんぞw プログラミングの前に、リテラシーを何とかしようぜ……
- 690 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:13:48.43 ID:wouAVMNAH.net]
- Visual Studio 2017じゃない気がするんだけど
- 691 名前:デフォルトの名無しさん [2017/10/30(月) 21:14:34.02 ID:OohuTOK70.net]
- >>674
アドバイスありがとう
- 692 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:16:25.50 ID:dYkZ5PSi0.net]
- >>675
VS codeだな >>676 今使っているのはテキストエディタでしかないのでVisual Studioを使ってください
- 693 名前:デフォルトの名無しさん [2017/10/30(月) 21:22:59.03 ID:OohuTOK70.net]
- Visual Studioを使っているのですがなかなか走らないんですよ
imepic.jp/20171030/768660 ちなみに今こんな感じ
- 694 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:26:13.22 ID:ums4+xqt0.net]
- >>669
まさかのVisual Studio Code
- 695 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:26:25.16 ID:WQOxFad40.net]
- 動いてるじゃん
- 696 名前:片山博文MZ mailto:sage [2017/10/30(月) 21:26:49.92 ID:ct0tj9Za0.net]
- >>678
プロジェクトがウィンドウになってるぞ。 コンソールプロジェクトを作れ。
- 697 名前:デフォルトの名無しさん [2017/10/30(月) 21:28:40.71 ID:OohuTOK70.net]
- >>681
的確なアドバイスありがとうございます
- 698 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:30:53.30 ID:ums4+xqt0.net]
- >>678
NECのPC使ってるヤツには何も教えません。 NEC肉けりゃPCまで
- 699 名前:デフォルトの名無しさん [2017/10/30(月) 21:32:42.46 ID:OohuTOK70.net]
- >>683
仕方がないんですよリアル中1の息子ですから ちなみに成功しましたありがとうございます
- 700 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:45:36.97 ID:RIfFu6mhM.net]
- >>683
NECに何の恨みがあると言うのだ 素晴らしい企業だろう
- 701 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:52:18.37 ID:+mMPfUc40.net]
- 素晴らしいかどうかはともかくとして、特定企業に対する好き嫌いは宗教みたいなもんだから
深くツッコミを入れてはいけない >>678 デジカメで画面を撮影するんじゃなく、スクショを撮る様にした方がいいぞ
- 702 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:54:35.90 ID:su8UHeMj0.net]
- >>678
Formに文字列を表示する方法はいくつかあるけど 簡単な方法としてはラベルに文字列を代入する ("Label1"みたいなデフォルトの文字列はプロパティから削除しておく)
- 703 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 22:03:18.54 ID:W3U3EqvHM.net]
- >>678
他の人も書いてるけど、それはVisual StudioじゃなくてVisual Studio Codeだから VSを使ったほうがいいと思う
- 704 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 22:13:38.49 ID:ZlZ2sOP4M.net]
- >>688
よく見たほうがいいよw
- 705 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 22:16:21.64 ID:W3U3EqvHM.net]
- >>689
ああ… いやそのスマホの小さい画面で 恥ずかしい
- 706 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 22:29:33.11 ID:pVIch9qW0.net]
- みんなやさしくて泣けた。
- 707 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 22:33:12.77 ID:YIhgL7yL0.net]
- >>688
www
- 708 名前:あ mailto:sage [2017/10/31(火) 00:03:40.89 ID:VssU1hfBd.net]
- >>648
>>646 で、数字として扱わなければいけない理由書いたつもりだがな。
- 709 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 00:13:41.09 ID:LbNkhFzoa.net]
- その議論は不毛だ思うよw
まあ、電話番号の最小単位の数字が単なる符号(記号というより符号だね)であったとしても 数字に符号されているんだから、コードでそれを表現する時には素直に順序付きの数字の並び(の並び) として表現した方がいろんな処理場便利なのは確かだと思う 普通はやらねえと思うけどケタの表現にenumなんか使ってもいいことないねw
- 710 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 00:25:17.81 ID:cFpPTw5nM.net]
- >>693
番号に#とか使ってたり アメリカみたいにアルファベット入れてたら数字じゃダメだよ
- 711 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 00:30:44.11 ID:CDGz4c1c0.net]
- 電話番号だからどうとか関係ない
用途によって扱いが違うだけ コンソールに表示したいんだから文字列にする
- 712 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 00:50:48.14 ID:FwO1SqIy0.net]
- >>678
まあ、>>681 でいいわけだがVSから入るとMain と Formの関係がなかなか理解できんよな そういうの解説してる入門書は少なくて オレは高橋なんとかの「やさしいC#」の最初の方読んでようやく分かった
- 713 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 01:25:40.38 ID:kCH+s2JN0.net]
- スッキリのJSとかC#バージョンを出版して下さい
- 714 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 06:51:13.60 ID:Pxy1busQ0.net]
- Entity Frameworkにの和書って絶望的に無いけどお勧めある?
使ってるヤツ居るんか。
- 715 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 07:38:32.26 ID:vjYSWXcI0.net]
- >>699
webなら普通に使ってる ef単体に絞った本は見たことない asp.net mvc の本ならefに触れてるはず でも正直本は役に立たんかったわ stackoverflowが一番役立った
- 716 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:00:58.58 ID:tTECqdhTa.net]
- 最近書籍弱いよね
本屋に行ってもオワコンなのか?と思うぐらい何もない
- 717 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:04:53.37 ID:UxJjc40bM.net]
- >>701
ブログとかの情報で十分な場合がほとんど
- 718 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:13:56.58 ID:1Z5oHBJNr.net]
- >>702
それが大きそうだね
- 719 名前:あ mailto:sage [2017/10/31(火) 08:16:12.54 ID:VssU1hfBd.net]
- >>695
番号にシャープを入れるんじゃなくて、電話番号クラスのうち、シャープ特番クラスを作る方が良いのでは? そうなると電話番号インターフェイスになるが。 アメリカのアルファベットは、ありゃ数字だ。数字をアルファベットで表現してるだけ。 なので、これは元言ってた電話番号クラスに数字列と表現列を作る他ないな。 そーすりゃ日本の語呂合わせ番号も(必要があるからはおいといて)保存できる。
- 720 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:31:09.08 ID:znhbZmhV0.net]
- 日本の携帯と固定電話に対応すれば殆ど対応できるんだから、後はメモ欄でも付けてそこに書けでいいと思うんだが
そうは問屋が卸してくれないよな
- 721 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:39:41.31 ID:ABdbotTTM.net]
- >>700
Webにあるのはef4の頃の古いのしか見当たらないね。 mvcの本はあるけど全然役には立たん。 StackOverflowが一番役に立つ悲しい現実。
- 722 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:44:22.32 ID:ABdbotTTM.net]
- >>701
洋書は沢山あるんだけどねぇ。 Linux本が一般書店に平積みしていた時代が懐かしい。
- 723 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 09:09:00.05 ID:dHXhqPbt0.net]
- 〜next();と〜next double();て整数乱数発生させるか実数乱数発生させるかの違い?
- 724 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 10:42:59.91 ID:tTECqdhTa.net]
- 実数の乱数ってそりゃ誤差じゃねぇのけ?w
狙った値が作れないから 整数で出して桁合わせする 俺はね
- 725 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 11:11:37.78 ID:0nZAN2Wka.net]
- 電話番号に#や*は使わないと思うよw
あれは自動応答を操作するためのトーンを割り当ててるだけじゃないの? そんな番号があったらダイアル回線からかけられないじゃん
- 726 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 11:57:51.15 ID:Q2spe3T60.net]
- もともとパルスの頃は数値ではあったな
0は10回パルスだった DTMF利用して余ったとこに#と*割り当てて 独自に使い始めたんじゃないかなあ
- 727 名前:デフォルトの名無しさん [2017/10/31(火) 12:06:40.36 ID:Jn8FhbAo6.net]
- 電話スレか
- 728 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 12:08:18.63 ID:yzv1EbBg0.net]
- >>710
ずーっと前からあるぞ web116.jp/shop/benri/sharp/sharp_00.html
- 729 名前:デフォルトの名無しさん [2017/10/31(火) 12:09:33.06 ID:lgb8DbLAM.net]
- >>710
*はサブアドレスで使われる。 #は内線でよく使われるな。
- 730 名前:デフォルトの名無しさん [2017/10/31(火) 12:12:12.86 ID:lgb8DbLAM.net]
- >>713
そういえば、そんなのもあったな。 すっかり忘れてた。
- 731 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 12:21:20.41 ID:OH9+jtHeM.net]
- >>711
今でもパルス回線はあるだろ。 国際電話番号の表記には+81とかある。
- 732 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 12:33:50.13 ID:HOZp+Kdp0.net]
- その+は国番号を表す記号であって
実際に+をダイヤルするわけじゃない まあ-も()もダイヤルしないから電話番号の一部じゃないけど
- 733 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 12:42:10.67 ID:0nZAN2Wka.net]
- >>713
NTTの回線からしかつながらないものを電話番号と言ってよいかは微妙でしょう >>714 後者はあきらかに電話番号とは違うような... 前者は微妙だけど、普通のアナログ回線からは掛けられないものを電話番号と言えるかどうか まあ元のお題にもどれば、テクニカルに電話番号であろうがなかろうが 電話番号として扱えるようにすべきだとは思うけど
- 734 名前:あ mailto:sage [2017/10/31(火) 12:50:04.95 ID:VssU1hfBd.net]
- >>718
と言うかコメはもともとアナログ回線で掛けてるときにいまからトーン送るぞってボタンだったんだが。 内線番号に関しては、待ってりゃ交換台出るだろ。
- 735 名前:あ mailto:sage [2017/10/31(火) 12:51:28.39 ID:VssU1hfBd.net]
- 電話番号でないものを電話番号として扱う、がわからんなぁ。
電話番号は電話番号として扱え、ならなるほどだけど。
- 736 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 13:01:26.31 ID:yzv1EbBg0.net]
- >>718
>NTTの回線からしかつながらないものを電話番号と言ってよいかは微妙でしょう これはプッシュホンのサービスと同時に開始されたサービスで、当時は電話サービスを電電公社が独占していたので、他の回線なんか存在しなかった 国際電話があるじゃねーかと言うかもしれんが、国際電話から繋がらない110などの特番は電話番号じゃねー というならその反論は認めよう
- 737 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 13:02:30.63 ID:0nZAN2Wka.net]
- >>719
それは違うでしょう。 あれは(どこのメーカーが最初に始めたのか知らないけど)ただの電話機の機能で 恐らくNTTの定めた規格でも何でもない 自由化直後の電話機はダイアル回線モードだと*押そうが何仕様が トーン出なかったような気が まあいい加減どうでもいいねw >>720 DTMFを認識する自動応答マシンにトーンを送るのは電話を掛けると言わないし 明らかに電話番号じゃないでしょう。
- 738 名前:デフォルトの名無しさん [2017/10/31(火) 14:57:18.16 ID:PGoVot5B0.net]
- ここまで電話スレ
- 739 名前:デフォルトの名無しさん [2017/10/31(火) 16:58:47.83 ID:tljKmL6i0.net]
- visualC#のXNAでブロック崩し作ってるけどクソめんどくさいな作成+整理整頓するだけで混乱する
コンソールでしょぼいので完璧だって思ってると痛い目見るな
- 740 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 20:15:22.60 ID:VEAfn5MF0.net]
- へぇ〜できたら公開して見せてよ
- 741 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 21:03:25.88 ID:tTECqdhTa.net]
- こうやってプログラム=タダって概念が世の中に蔓延したよね
広告費で稼ぐ世の中になったけど
- 742 名前:デフォルトの名無しさん [2017/10/31(火) 22:07:06.75 ID:UyVEd0rJ0.net]
- 飢餓ベネズエラ「1600%インフレ率」で仮想通貨が生活の柱|ビットコインマイニング(採掘)で生き残る
virtualmoney.jp/I0001275 「ビットコイン」新世界のベネズエラ:自由を求める、採掘者たちの反逆 https://www.fuze.dj/2017/01/venezuela_mining.html ベネズエラ、ビットコインマイナーが10万人規模に btcnews.jp/5c5uq4ei13034/ ジンバブエではビットコインが80万円?自国通貨がインフレしている国の仮想通貨需要について coinpost.jp/?p=5803 ビットコインとは?投資で儲かる仕組みと危険性を分かりやすく解説 https://enjoyrock.jp/bitcointoha-4370
- 743 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 22:10:24.98 ID:ryJZgMRZM.net]
- ビットコインとはなんぞや?
- 744 名前:デフォルトの名無しさん [2017/10/31(火) 22:46:58.06 ID:4MZcs+cX0.net]
- FindWindowで見つけたウインドウの画面をキャプチャすることはできますか?
ウインドウが隠れていてもキャプチャできるようにしたいのですが PrintWindowと組み合わせようとしてもよくわからないです
- 745 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 22:57:04.76 ID:QkT+8axj0.net]
- 隠れている部分はそもそも描いてないでしょ
- 746 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 23:28:17.44 ID:P79QNeNU0.net]
- そんなXP時代じゃないんだから…
隠しAPIのDwmGetDxSharedSurfaceが定番やね 今でも使えるのか知らんけど
- 747 名前:デフォルトの名無しさん [2017/10/31(火) 23:31:19.87 ID:4MZcs+cX0.net]
- DWMも使ってみたいのですが日本語解説のサイトが全くなくて…
英語出来ないとやっぱりだめですね
- 748 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 23:59:12.73 ID:RzsX96BS0.net]
- >>732
最小化されてなければ重なってようが画面からはみ出ていようが適当なBitmap作って using (var g = Graphics.FromImage(bmp)) PrintWindow(hWnd, g.GetHdc(), 1); とかでも済みそうだが。環境依存だろうから.NETには碌に無いしWin32APIの領分だなぁ
- 749 名前:あ mailto:sage [2017/10/31(火) 23:59:53.09 ID:KKSGwBSw0.net]
- >>722
確かに、規格ではないな。そういう意味では、それこそ自由化されたあとはNTTのローカルルールに縛られず、すべてが番号として取り扱われるべきなのかもしれん。 自動応答マシンの特定のメニューまで進むのを「番号」と言っていいと思うぞ、俺は。
- 750 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 00:21:59.34 ID:L5KemQuba.net]
- Win32関数のリファレンス日本語だけになっちゃったんだw
ほんといらんことするよなMSもGoogleもw
- 751 名前:デフォルトの名無しさん [2017/11/01(水) 04:36:44.91 ID:dB2PwCEI0.net]
- https://ideone.com/jcN0mM
別のプログラムのキャプチャを取りたいのです 別のプログラムのProcessオブジェクトを取得してPrintWindow関数につっこみたいのですが どうしたらよいでしょうか?
- 752 名前:デフォルトの名無しさん [2017/11/01(水) 04:39:54.64 ID:dB2PwCEI0.net]
- GetProcessesByNameでオブジェクトを取得した後
↑に貼ったコードのCaptureControlにthisの代わりにどうやって渡せば良いでしょうか?
- 753 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 05:32:38.62 ID:vhfog6b10.net]
- >>736-737
FindWindowと云うからP/Invokeは理解しているのかと思いきや、躓いてるのはソコかいってかコピペかい ProcessオブジェクトにはメインウィンドウハンドルだけならMainWindowHandleプロパティが既に用意されてる 枠の有無でGetWindowRectやGetClientRect等のWin32APIでサイズ取得、枠無しならnFl
- 754 名前:agsにPW_CLIENTONLY(1)を指定
LPRECTをout Rectangleとしても互換性はあるが、メンバの意味は異なるので注意。あとOpenGL画面とかは怪しかった気もする [] - [ここ壊れてます]
- 755 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 12:54:43.00 ID:wiqlBWqs0.net]
- 初歩的なことで申し訳ないですが、
C#をx86でコンパイルしたときlong型は何バイトですか? 32ビットですよね? long型な引数を持つC++で作られたDLLを呼ぼうとしてるんですが C#側もlong型にするとバイオレンスエラーが出るんです
- 756 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 13:00:28.87 ID:xMsiUXHhM.net]
- >>739
64じゃないの
- 757 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 13:01:02.25 ID:DoTChEv+0.net]
- C# の long型 の .NET型は System.Int64
64ビットだよ
- 758 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 13:30:22.67 ID:JNwvccyI0.net]
- どうでもいいけどバイオレンスじゃなくてバイオレーションな
- 759 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 13:34:10.98 ID:G3xjFDeG0.net]
- デジタル バイオレンス 略して DVか
- 760 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 13:43:47.20 ID:wiqlBWqs0.net]
- ありがとうございます。
x86指定でもC#は64ビットですか。 つまり、x86なC++のlong = C#のint ってことですね ありがとうございました。
- 761 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 14:07:25.95 ID:vhfog6b10.net]
- >>744
x86なC++というかILP32ね、LLP64でもlongは32bitだから、Windowsに限り常に32bit C#は常にintが32bit、longが64bit、IntPtrがポインターサイズでCIL名native int
- 762 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 14:12:57.28 ID:a3/dOAjga.net]
- バイオレンスww
- 763 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 14:36:04.02 ID:wgMqyCilM.net]
- >>745
IntPtrは64bitと32bitで自動的にサイズが変わる罠があるよね
- 764 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 14:53:25.19 ID:58WxqpRI0.net]
- 罠じゃなくてそれをマネージド上で扱うことを目的とした型やねんで
- 765 名前:デフォルトの名無しさん [2017/11/01(水) 15:34:33.63 ID:DJIAeWHo0.net]
- >>725
当分出来ねえから期待しないでおけ
- 766 名前:デフォルトの名無しさん [2017/11/01(水) 15:53:44.71 ID:dB2PwCEI0.net]
- >>738
すいません高度すぎてちょっとよくわからないです FindWindowでウィンドウハンドルを取得して画面をキャプチャするプログラムは作れたのですが ウインドウハンドルしか取得してないのでウインドウの大きさが設定できなくて困っています (現在ピクセル数で設定) GetWindowRectやGetClientRectを使おうとしてもRECT構造体の定義がよくわからなくて出来ません。 GetProcessesByNameで取得したProcessオブジェクトからハンドルとオブジェクトの大きさを取り出すにはどうしたら良いでしょうか?
- 767 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 16:36:24.43 ID:4v6bi03L0.net]
- >>750
www.pinvoke.net/
- 768 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 16:43:34.62 ID:wgMqyCilM.net]
- >>750
https://msdn.microsoft.com/ja-jp/library/a5ch4fda.aspx
- 769 名前:デフォルトの名無しさん [2017/11/01(水) 17:06:28.99 ID:dB2PwCEI0.net]
- >>751
よくわからないですが後で読んでおきます >>752 そのページは見たことあるんですが意味がよくわからないです… すごく低レベルな質問だと思うのですが Process[] ps = Process.GetProcessesByName("notepad"); foreach (System.Diagnostics.Process p in ps) { textBox1.Text = p.MainWindowTitle; } だと問題ないのに Process[] ps = Process.GetProcessesByName("notepad"); textBox1.Text = ps[0].MainWindowTitle; では動作しないのは何故でしょうか?
- 770 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 17:12:20.00 ID:a3/dOAjga.net]
- >>753
後者だけ動かない理由はないから何か勘違いしてるんでしょう
- 771 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 17:29:00.13 ID:wgMqyCilM.net]
- >>753
動作しないの内容が曖昧です。
- 772 名前:デフォルトの名無しさん [2017/11/01(水) 17:35:15.46 ID:dB2PwCEI0.net]
- すいません動きました!
メモ帳開いていなかっただけでした…
- 773 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 17:37:14.82 ID:qqAk/1TWM.net]
- 勉強用トイプログラムで抽象クラスを継承したクラスにインタフェースを継承したのですが、実務の世界ではよくやる事でしょうか?
- 774 名前:抽象クラス側にインタフェースのメソッドを書くとか美しく無いので邪道な事をしてるかもと心配になりまして []
- [ここ壊れてます]
- 775 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 17:46:07.56 ID:xAl8OFsq0.net]
- >>744
公式にアンマネージとマネージでのデータ形式のリファレンスがあるからそこ見ておいた方がいい https://msdn.microsoft.com/ja-jp/library/ac7ay120(v=vs.110).aspx C#でlongは紛らわしいから使わない方がいいと思う >>753 構造体がわからないとWinAPI使えないよ https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/using-structs
- 776 名前:デフォルトの名無しさん [2017/11/01(水) 17:55:43.82 ID:DJIAeWHo0.net]
- ボールとか壁に当たって反転させるときに
int speed=1; 更新処理 position.x+=speed; if(800<position.x) { speed*=-1; } こうゆう反転っておkなの?+=って無駄じゃねえかとか言われない?
- 777 名前:デフォルトの名無しさん [2017/11/01(水) 19:13:00.27 ID:dB2PwCEI0.net]
- https://ideone.com/gKjIFo
見よう見まねでRECT構造体を使おうとしているのですが 17行目の&rectWinという所で以下の2つのエラーが出てしまいます 何が間違っているのでしょうか? ポインターおよび固定サイズ バッファーは、unsafe コンテキストでのみ使用することができます。 引数 2 はキーワード 'out' と共に渡す必要があります。
- 778 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 19:18:35.70 ID:JgbY2jhcM.net]
- >>760
その文面でググれば多分わかる というよりメッセージどおりだよ 引数に out 付けよう 意味が分からないなら調べよう
- 779 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 19:18:49.98 ID:C3RJkmbpd.net]
- >>757
人間クラスと継承した社員クラスがあるとして 体重身長インターフェイスは人間クラスに、入社日退職日インターフェイスは社員クラスにってのが普通だと思うけど 抽象クラスだから付けないって考え方は美しくないんじゃないかな?
- 780 名前:デフォルトの名無しさん [2017/11/01(水) 19:22:01.17 ID:dB2PwCEI0.net]
- >>761
できました!有難う御座います!!!!!!!
- 781 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 04:46:41.42 ID:leSyCza7a.net]
- なにこれ
www.bityet.us/FVNN6-t6.jpg https://goo.gl/kLNWUT
- 782 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 07:15:17.22 ID:pmQPnNAeM.net]
- >>762
なるほどその通りですね 営業志望の未経験者なのにC#開発しろと言われ正しくOOしてるか不安でした 参考になります OOとは徹頭徹尾ヴァーチャルマシーンと言われてもピンと来なくて。。。
- 783 名前:739 mailto:sage [2017/11/02(木) 13:32:08.71 ID:wZG1ntZl0.net]
- みなさんありがとうございました。
C++側で void test(long aa[2]); みたいに定義されてるやつをC#から使うときも IntPtr でやりくりするしかないんですよね。
- 784 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 14:07:36.43 ID:RiVwOr7+M.net]
- c#はインタープリタなので遅いって言われたw
- 785 名前:デフォルトの名無しさん [2017/11/02(木) 15:50:21.67 ID:i1tOzlAd6.net]
- バイナリプログラムもCPUがインタープリットしてるしインタープリタだなw
- 786 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 16:06:47.45 ID:/X9eIi7aM.net]
- >>766
いやintを2つ並べただけの構造体を用意してrefかout使えばいい
- 787 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 16:12:10.17 ID:KloAouzuM.net]
- >>767
コンパイラ型なんだけど。。 あほなの?
- 788 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 16:17:55.02 ID:wZG1ntZl0.net]
- >>769
pack意識したうえで配列という手もありますね どっちにしろコード量は増えますね C# 側で ref を付けるだけで 勝手にIntPtrやらマーシャル確保・代入・解放してくれたらいいのに・・・ char * → string みたいな超絶ラクチンな方法でさ
- 789 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 16:20:47.53 ID:wZG1ntZl0.net]
- ちょっと早合点で書き込んでしまいましたが
[StructLayout(LayoutKind.Sequential, Pack = 4) struct struct_aa { public int aa1; public int aa2; } struct_aa aa; としたうえで test(ref aa); で出来ちゃうんですか!?
- 790 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 16:43:51.34 ID:/X9eIi7aM.net]
- >>772
それでいけるはず
- 791 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 17:08:27.57 ID:hwMc8ywnM.net]
- >>770
昭和のおっさんなので仕方ない
- 792 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 17:12:38.78 ID:oE5JXb4z0.net]
- 配列でそのまま渡せばいいのにわざわざ変な方法使うとか
>>766 C#から渡すときはvoid test(int[] aa);でいいんだよ。Visual Studio以外なら知らん >>772>>773 アンマネージ側で定義されていない構造体を勝手に作って渡すって考え方がおかしい アンマネージ側で要求されている引数の形式に合わせるのが基本だろ
- 793 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 17:42:00.04 ID:wZG1ntZl0.net]
- ググって最初のほうに出てくるサイトで char * 以外は全てマーシャってるので
てっきり IntPtr を駆使すると思い込んでました。 配列じゃないポインタ渡しは ref/out で何の造作もなく出来ました。 (マーシャル関連のコードを大量に書いていたのが馬鹿らしくなるほど) んで配列ですが // C++(x86) extern "C" __declspec(dllexport) void test(long a[2]); // C# [DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)] static extern void test(out int[] a); int[] a = new int[2]; test(out a); で、バイオレーションエラー出ちゃいます。。。
- 794 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 17:52:53.60 ID:oE5JXb4z0.net]
- >>776
C++側からC#にoutする形で返したいのならC#からポインタにして渡す そのコードのC#側のout(ref)だと変な動きにしかならない。消せ
- 795 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 18:01:00.66 ID:wZG1ntZl0.net]
- うわぁ、ありがとうございます。
先方で値が書き換わる場合には ref/out を付けないといけない (付けなかったら配列だろうが値渡しになる) だと先入観で思い込んでました。 配列だったらC++と同じくポインタ渡しになるんですね! // C# [DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)] static extern void test(int[] a); int[] a = new int[2]; test(a); で、うまくいきました。 (C++側で設定された値が戻ってきた)
- 796 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 18:34:34.93 ID:OVuNv67Pa.net]
- >>778みたいな場合、アンマネージド関数の宣言の仮引数にOutAttributeを付ける必要が
あるのかないのか、MSDN読んでもいまいちよく分からん https://msdn.microsoft.com/ja-jp/library/75dwhxf7(v=vs.90).aspx を読むとBittableな型の一次元配列の場合不要のようにも思えるが、 https://msdn.microsoft.com/ja-jp/library/hk9wyw21(v=vs.90).aspx のサンプルでは属性がついてる
- 797 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 22:14:18.55 ID:FJPOLiu40.net]
- >>779
そのリンク先に書いてあるぞ これらの型は、呼び出し元と呼び出し先が同じアパートメントに属する場合には、In/Out パラメータとしてマーシャリングされるように見えることがあります。 ただし、そのような型は実際には In パラメータとしてマーシャリングされるため、引数を In/Out パラメータとしてマーシャリングする必要がある場合には、InAttribute 属性と OutAttribute 属性を適用する必要があります。 Outがないと保証されない
- 798 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 22:48:20.45 ID:uoctVHYW0.net]
- >>778
ref/outは書き換え云々というより変数の参照で初期化の必要があるかどうか、P/Invokeでは構造体くらいにしか使わぬ 配列は参照型なので参照の参照になるし、そのままでもオブジェクトヘッダ+要素数を含むのでネイティブ配列へはちょっとズラしている >>779 上のページに>>780の通りずばり書いてないか?コピーと固定 # 書式指定された Blittable クラスのメモとかにも。そういう事ではなく? 既定のマーシャリング動作を理解し、MarshalAs属性とIn/Out属性を駆使すれば、Marshalメソッドの出番はあまりなくなる Marshal.UnsafeAddrOfPinnedArrayElementとかもArrayWithOffsetというお誂え向きな構造体がある 手動でIntPtrを捏ね回すのが有効なケースもあるが。ちぃと古いけど↓の記事はよく纏められている https://msdn.microsoft.com/ja-jp/library/ff647812.aspx#scalenetchapt07_topic4
- 799 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 22:54:42.83 ID:vimPIuS6M.net]
- GCがうざいならstackallocを使う手もあるよ
unsafeになるけど、マネージ配列のマーシャリング使ったとしても境界外へアクセスしたら普通にクラッシュするんだし むしろ危険な操作は明らかに危険とわかったほうがマシ
- 800 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 23:07:34.82 ID:OVuNv67Pa.net]
- >>780-781
レスどうも よく分からない箇所は結局、>>780に引用してある部分の >同じアパートメントに属する場合には この但し書きかな。 同じアパートメントって何だ? >>778のケースでは結局Out属性なしでも期待通り動くみたいだけど、 逆にBittableであっても明示的にOutを付けないといけないのはどういう 場合なんだろうか
- 801 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 01:31:28.84 ID:zjyHgUY90.net]
- >>782
stackallocはスタックを理解していなければ危険すぎないか、少量で確保速度が最重要ならアレだけど unsafeポインターを使うならfixedでも境界チェックは外れるし、そのあたりで… >>783 アーその辺はCOMの話かな、COMマーシャリングが挟まれると固定では済まなくなるという https://msdn.microsoft.com/ja-jp/library/eaw10et3.aspx#marshaling_and_com_apartments 具体例については…直接COM使った経験がC++でちょろっとしか無いのでわっかんないや(無能
- 802 名前:デフォルトの名無しさん [2017/11/03(金) 04:43:40.14 ID:ZqwqQq4y0.net]
- Parallelの動きがわからん
10個のZIPを同時に解凍する処理するとして Parallel.Forで実行したらどうなる? ちなcore i7 エラー?
- 803 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 09:51:59.78 ID:wXWM393Ar.net]
- 1.5倍(適当)くらい速くなる
- 804 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 10:02:10.84 ID:YKGzMcXY0.net]
- >>785
同時実行数はCPUのスレッド数だから8個同時に展開して、2個は待ちになるんじゃね CPUより展開後ファイルサイズによってはHDD書き込みがネックになりそうな気もするけど
- 805 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 11:00:02.96 ID:QTbHfBOQ0.net]
- >>787
オイ!
- 806 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 15:48:21.85 ID:m874gEkx0.net]
- >>786
1.5ってすごくいいよ >>787 動き知りたいんよ どうなるか
- 807 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 15:52:47.69 ID:OoLmNkMra.net]
- 何を期待してるか知らないけどやればいいじゃないか
- 808 名前:デフォルトの名無しさん [2017/11/03(金) 17:10:18.04 ID:bRMk/YPf0.net]
- c#で画像の黄色部分だけを白にして残りを黒にする様なことはできますか?
- 809 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 17:32:15.18 ID:tw8puOLsM.net]
- >>791
ProcessでImageMagick呼べば一瞬でできる 似た色はどこまで許容するのかとかいちいち個別に作ってたらキリがない
- 810 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 18:22:36.00 ID:QTbHfBOQ0.net]
- DataTable dt = new DataTable();
bool foofunc(ref DataTable dt) { ・・・・ adapter.Fill(dt); こんなコード見たんだが何かメリットあるのか?
- 811 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 18:28:01.91 ID:tw8puOLsM.net]
- >>793
それ書いた奴が参照型を理解してないんだと思う 何の意味もないので絶対に真似してはいけない
- 812 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 18:37:57.11 ID:QTbHfBOQ0.net]
- >>794
c#歴10年のヤツのコードなのだ。 当然foofunc内でtry/catchがあり戻り値にエラー有無が返る。 愚痴ってスマヌ。
- 813 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 18:41:43.76 ID:lrZzjWeI0.net]
- >>792
そういうのって、C#でって言うのかな。
- 814 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 19:35:14.12 ID:Xp/sMfFK0.net]
- >>791
最低限の要件だけ勝手に解釈してこんな感じ https://ideone.com/j4HMm8
- 815 名前:デフォルトの名無しさん [2017/11/03(金) 19:43:53.45 ID:ZqwqQq4y0.net]
- imagemagickってソースに組み込める何か提供してるん?
- 816 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 19:44:48.34 ID:EmHaDWp+0.net]
- 大昔にマスク画像を作っていたのを思い出した
- 817 名前:797 mailto:sage [2017/11/03(金) 20:02:57.12 ID:Xp/sMfFK0.net]
- ついでに補足しておくとMarshal.ReadInt32でなくMarshal.Copyでバイト配列で4バイトずつ読めば
Blue,Green,Red,Alphaが取れるから許容範囲設定とかしたかったらそっちで
- 818 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 20:15:49.55 ID:WHWgtK+kr.net]
- 経験年数と理解度?にどれだけの相関関係があるのか
疑問が生じている今日この頃
- 819 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 20:20:24.80 ID:aVxxhWTE0.net]
- 相関関係はある
但し個人差は大きい
- 820 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 20:26:05.42 ID:QTbHfBOQ0.net]
- >>798
https://www.imagemagick.org/script/develop.php
- 821 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 22:49:49.36 ID:om2fc3b00.net]
- >>793-794
refで渡せば、呼び出し先の関数で、呼び出し元の変数のインスタンスを変更できる これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて なんの意味もないわけではない
- 822 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 00:09:44.98 ID:3cC+jj+w0.net]
- >>793のケースで意味がなさそうって>>793,794は言ってるのに、
>これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて とか一般論を言い出してそのつっこみよくわからん。
- 823 名前:デフォルトの名無しさん [2017/11/04(土) 01:46:45.24 ID:qZ8I6rgd0.net]
- >>797
ありがとうございます。 ほぼ真っ黒になってしまったのでRGB値で範囲指定できる様にやってみます。
- 824 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 04:11:36.08 ID:MnNwpnC60.net]
- >>804
君も参照型を理解してないね。
- 825 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 08:41:31.55 ID:sTeHaJ1X0.net]
- >>807
この話の流れに>>804がふさわしいかどうかはおいとくとして... > 君も参照型を理解してないね。 ちょっと説明してみ
- 826 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 09:02:47.97 ID:5h9DYzfZ0.net]
- DataTable dt = new DataTable();
bool foofunc(ref DataTable dt) { DataTable dt = new DataTable(); ・・・・ adapter.Fill(dt); 「なんの意味もないわけではない」のコードにはなったが 更に輪をかけた馬鹿コードに進化させてみた。 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 827 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 09:17:38.08 ID:5h9DYzfZ0.net]
- DataTable dt = new DataTable();
bool foofunc(ref DataTable dt) { dt = new DataTable(); ・・・・ adapter.Fill(dt); 間違えてたw
- 828 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 09:19:39.29 ID:flyq3nv80.net]
- それじゃただのoutじゃんrefの意味じゃないじゃん(難癖
- 829 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 09:48:23.86 ID:5h9DYzfZ0.net]
- >>811
そう、参照型にrefは無意味なのです。 参照型が分かってないよりこのコードが問題なのは、 検査結果を引数に返して実行エラーの有無を戻り値で返していること。 参照型も理解していないが例外処理はもっと理解していない糞野郎のコード。
- 830 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 09:51:19.52 ID:5h9DYzfZ0.net]
- ×検査結果
- 831 名前:
○検索結果 スマン、寝ぼけてるわ [] - [ここ壊れてます]
- 832 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:16:12.92 ID:q474DaJy0.net]
- >>812
Dictionary.TryGetValue()とかあるし、そこはケースバイケースかな。 参照型にref付けてるくらいだから、何も考えてないのかも知れないけど。
- 833 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:20:08.20 ID:5h9DYzfZ0.net]
- >>814
public bool TryGetValue ( TKey key, out TValue value ) refじゃなくてoutやないかい!
- 834 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:29:08.52 ID:q474DaJy0.net]
- そうだった。>>811とまざった。
こっちも寝ぼけてるねw
- 835 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:29:22.28 ID:fyiwYE9E0.net]
- つまり
>>793と DataTable dt = new DataTable(); bool foofunc(DataTable dt) { ・・・・ adapter.Fill(dt); とは同じ結果になると
- 836 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:37:55.56 ID:q474DaJy0.net]
- >>815
まぁ、outにする必要はあるけど、 「検査結果を引数に返して実行エラーの有無を戻り値で返していること」 自体に問題はないな。
- 837 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:38:05.17 ID:OcSSsXSe0.net]
- この手のメンバ変数に検索結果をセットする時はこんな感じにして、例外処理は基本呼出側に任せちゃうんだけど問題あるのかね?
前はエラーコードのEnum返してたけど、エラーケースの殆どが例外処理で扱われる物ばかりだったので止めちゃった DataTable dt = new DataTable(); Void SetHoge(DataTable dt){ ・・・・ adapter.Fill(dt); }
- 838 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 10:56:19.06 ID:q474DaJy0.net]
- >>819
それで良いと思う。 上のみたいに成功したかどうかを返り値で返すのは、 正常運用の範囲内で失敗する場合があるのを想定している場合。
- 839 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 12:23:07.70 ID:5h9DYzfZ0.net]
- >>819
自分ならこうするけど。 DataTable GetHoge() { var dt = new DataTable(); ・・・・ adapter.Fill(dt); return dt; }
- 840 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 13:59:17.12 ID:dOyJdliUp.net]
- >>821に1票
- 841 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 14:56:00.76 ID:ePC4mkkA0.net]
- 参照型にrefは無意味って言ってるやつは
呼び出し元変数のインスタンスを変更「できる」 ってことをどう評価してるのか
- 842 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 15:15:02.21 ID:Vg1Izipf0.net]
- 型がわからない変数と同じ型の変数を用意したいときってなんか記述方法ある?
型を調べるとかじゃなくてプログラミング的に解決する手法あったら教えて
- 843 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 15:24:28.88 ID:m6ZusNHm0.net]
- 型引数で解決できるならそれで
- 844 名前:片山博文MZ mailto:sage [2017/11/04(土) 15:24:47.55 ID:Yg7qqeZtd.net]
- >>824
ヴァーか?
- 845 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 15:41:42.41 ID:WuSfeAlZa.net]
- >>824
var y = 謎の変数x; っていうか、たぶん何か勘違いしてると思うw 「型が分からない変数」っていうのは実行時に型が決まるって意味なんだろうけど、 変数の型は静的に(コンパイル時に)確定しているのでそれはありえない それとも匿名型のことを言ってる?
- 846 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 15:49:14.84 ID:jl0ZLZ4q0.net]
- dynamic型ならコンパイル時の型チェックは行なわれず実行時に解決するね
- 847 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 15:52:54.75 ID:WuSfeAlZa.net]
- >>828
いや、「変数の型」は静的に決まるでしょ。自分でdynamic型って書いてるじゃんw
- 848 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 15:55:26.19 ID:tIYipYwe0.net]
- >>824
var x1 = new X(); var x2 = Activator.CreateInstance( x1.GetType() );
- 849 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 16:13:39.02 ID:sTeHaJ1X0.net]
- >>823
まあそれが必要なケースがほとんどないし
- 850 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 16:19:15.36 ID:2EEZfJvra.net]
- 引数のnullチェックして必要ならインスタンスをnewしてつけられる
- 851 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 16:41:13.06 ID:tIYipYwe0.net]
- バットノウハウっぽい
- 852 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 16:43:39.78 ID:FXv0ObyH0.net]
- >>833
バットは関係ないやろ
- 853 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 16:53:42.21 ID:/YBu7JsUM.net]
- >>832
出来るが引数がnullな時点でArgumentException飛ばすんで実用価値はほぼないな。
- 854 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 16:58:31.41 ID:tIYipYwe0.net]
- >>834
関係ないな。しょぼい誤字だ。 >>824 何をやりたいか分からないが、ジェネリックメソッドでは目的に沿わないかな。
- 855 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 17:05:47.97 ID:83ZjnaGFa.net]
- javascriptみたいなのを想定してるんだろうけど
まあ普通はない
- 856 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 17:44:10.96 ID:SXZaCuwQ0.net]
- ベッドノウハウ
しかし俺は未経験
- 857 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 17:51:46.51 ID:sTeHaJ1X0.net]
- >>832
だからそんなことが必要になったことがどれだけあるんだ?
- 858 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:10:38.00 ID:WuSfeAlZa.net]
- なんかしょうもないことで争ってるけど、>>823の方が正しいね
エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ 負け惜しみでくだらない意地を張るのは子供っぽいよ
- 859 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:13:38.30 ID:wTKOoVxtr.net]
- ペットノウハウ
ボトルじゃないよ
- 860 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:17:18.92 ID:wTKOoVxtr.net]
- MSらしく反則技が用意してあるだけ
初心者は使わない方が無難 返り値が二つ以上欲しい時は今なら名前付タプルを使う
- 861 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:26:59.70 ID:flyq3nv80.net]
- 返値代わりに使うのはoutだし今ならって言ってるとおり昔はなかったんだし
ちょっと何言ってるのか分からない
- 862 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:35:14.75 ID:sTeHaJ1X0.net]
- >>840
> エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ ??? refって参照型じゃなくても使えるんだが... 参照型にrefを使うことがほぼないだろって話だと思うけどな > 負け惜しみでくだらない意地を張るのは子供っぽいよ 自己紹介は要らんよ w
- 863 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:40:28.61 ID:WuSfeAlZa.net]
- >>844
意味が分からない 変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が 参照型であるか値型であるかは関係ない。 何を言ってんの? しかし、いい歳こいて幼稚な奴って嫌だねほんと
- 864 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:43:37.92 ID:OcSSsXSe0.net]
- >>842
名前付きタプル使いたいけどVS2013限定という変な縛りに囚われているわ フレームワーク縛りは判るけど、IDEのバージョンを縛る理由ってなんなんだろう
- 865 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 18:58:38.30 ID:3Qk/5QRnM.net]
- 古いコンパイラでビルドできなくなるだろ
俺個人としては大した問題ではないと思うけど、大した問題だと考える人がいるのは普通に理解できるぞ
- 866 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 19:12:51.54 ID:sTeHaJ1X0.net]
- >>845
> 変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が > 参照型であるか値型であるかは関係ない。 えっ? 普通にググればrefが値型と参照型でどう使われてるかわかると思うんだが... 引っ込みつかなくなってるのかな > しかし、いい歳こいて幼稚な奴って嫌だねほんと また自己紹介ですか? w
- 867 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:19:58.00 ID:m6ZusNHm0.net]
- 幼稚呼ばわりが得意なのはかの例外を握り潰す人だが
- 868 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:22:16.23 ID:m6ZusNHm0.net]
- ようするにキチガイなので相手にしなくてよいという話
- 869 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:45:43.86 ID:5h9DYzfZ0.net]
- >>840
とりあえず、refは値型以外には使い道が無いのは確定で。
- 870 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:48:54.35 ID:wTKOoVxtr.net]
- >>846
2017?
- 871 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:49:38.51 ID:mF4CZaPha.net]
- >>848
マジモンかよ 俺個人が使うか、あるいは一般に多用されるかどうかはともかく、 参照型であろうと変数の値(つまり参照)そのものを書き換えたいケースは存在すると思われる。 たとえばStringのようなイミュータブルな型や配列の長さのように変更できない要素を 持つ型の場合、元の値を利用しつつそれを加工した値を返すにはrefを使うしかない
- 872 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 20:50:11.25 ID:jl0ZLZ4q0.net]
- 最近見たrefはBindableBaseの中だったな、ref Tとかジェネリックの場合
普段は使わないね
- 873 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:08:51.42 ID:uh9vgcan0.net]
- 議論ごっこやりたいのなら
ふらっと C#,C♯,C#(議論用) mevius.2ch.net/test/read.cgi/tech/1469538912/ で好きなだけやってくれ。ワッチョイもないから
- 874 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:14:23.59 ID:5h9DYzfZ0.net]
- 意味もなく
try { ・・・ { catch {} や try { ・・・ { catch (Exception ex) { throw ex; } するヤツってアフォですか? お願いだから辞めてください。
- 875 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:16:19.73 ID:mF4CZaPha.net]
- >>856
プログラマがそこで例外が発生しうることを認識してそのコードを書いていることを 明示する意味はあるよ。 >>851といい、ちょっと単細胞過ぎないか?
- 876 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:28:09.69 ID:sTeHaJ1X0.net]
- >>850
了解 >>853を見る限りおまえの言う通りだな >>851 さすがにそれは極論過ぎ
- 877 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:30:25.68 ID:VAjFkczd0.net]
- >>857
え?
- 878 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:49:38.46 ID:FXv0ObyH0.net]
- >>857
c#で>>856やるとそこまでのスタックトレース消し去ることになるんだけど正気?
- 879 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:49:52.84 ID:jdRJf/Av0.net]
- ファイルが読めない程度で例外返すクラスとか一旦握り潰して動作を変えたい
- 880 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 21:53:09.24 ID:J+hizfOLd.net]
- >>861
c#使うのやめた方がいいな
- 881 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:02:23.28 ID:5h9DYzfZ0.net]
- >>862
go言語が例外処理の機能を無くした理由の1つは、大半のプログラマーが例外処理を正しく扱えないから。 本当にそう思うよ。
- 882 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:06:52.22 ID:mF4CZaPha.net]
- >>860
まあ後者はたしかに普通やらないと思う。 ただ、例外情報なんて必ずしも常に必要とは限らない。
- 883 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:07:27.03 ID:/B23IXM6M.net]
- >>861
関数の返り値でエラー処理したい人?
- 884 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:09:09.61 ID:KEPGzX0z0.net]
- >>863
C#使うのやめてGo使った方がいいな
- 885 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:12:09.30 ID:mF4CZaPha.net]
- >>865
TryXXXなんてのがあるように、そもそも成功したかどうかしか関心がない場合もあるでしょ
- 886 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:12:58.59 ID:5h9DYzfZ0.net]
- >>866
Go言語もまともには扱えないと思う。
- 887 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:14:37.92 ID:5h9DYzfZ0.net]
- >>867
それは例外でエラーを拾はないでエラー処理をしたい場合。 例外処理は少々重い。
- 888 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:19:20.92 ID:48c6JPwZa.net]
- 例外は便利だよ
変な使い方しなければ
- 889 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:23:38.64 ID:/B23IXM6M.net]
- >例外処理は少々重い。
初回の例外発生の時にその例外クラスがロードされるみたいなんだけど、その事?
- 890 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:40:21.94 ID:FXv0ObyH0.net]
- >>864
常に必要ではないが、それをわざわざ消す必要があるか?
- 891 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:40:24.62 ID:WGNINBFE0.net]
- ファイルを削除や移動する前に、他のソフトで使用中かどうかを調べるのに
R/Wモードでオープンしたときに例外が発生するかしないかで判断するしか無い この処理のときはcatchでfalse返して例外を握りつぶしている
- 892 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:56:58.41 ID:mF4CZaPha.net]
- >>872
まあ、たとえ使わなくてもInnerExceptionに食わせて再スローした方がベターだとは思う
- 893 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 22:59:45.13 ID:FXv0ObyH0.net]
- >>874
Java出身の人がよくやる勘違いだよね
- 894 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 23:37:22.84 ID:48c6JPwZa.net]
- 例外で何を伝えたいかどう制御したいか決まってなければ迷うかもしれない
例外出ても継続できる内容なのかもあるかな
- 895 名前:デフォルトの名無しさん [2017/11/05(日) 00:13:35.57 ID:m9wZGInC0.net]
- 例外をどこで処理するか(または投げっぱなすか)という基準をきちんと決めないとカオスになりがち
でも事前に決めて徹底させるのが難しい場面も多いのよね
- 896 名前:デフォルトの名無しさん [2017/11/05(日) 00:49:39.43 ID:/t3HbS0w0.net]
- タスケテ!!!
RARを回答する方法がわからないの! なんか組み込みでいいのないの!?
- 897 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 00:53:25.52 ID:yAuwzX3k0.net]
- >>878
7Zipのライブラリで回答できた https://sevenzip.osdn.jp/sdk.html 使い方はすっかり忘れたから聞かないでくれ
- 898 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 00:55:50.51 ID:eJ/HGJ4TM.net]
- コトリンの恐怖がおんどれらを襲うwww
- 899 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 01:34:09.45 ID:27Wvnc5t0.net]
- 適当に検索してみたら、それなりにref stringとかを伴うコードがあった
最近のref絡みの言語拡張を見てもコンパイラ絡みのガチガチに最適化するところとかはref引数の使いどころがあるっぽい https://github.com/dotnet/corefx/blob/ab0c04f10c8094731d13de6f0ceaa71dd776aa00/src/System.CodeDom/src/System/CodeDom/Compiler/Executor.cs あと、二重ポインタを扱うPInvokeとかでもでてくる
- 900 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 01:47:27.68 ID:+CtSMn6Br.net]
- CodeDomだからC#創成期だね
いわゆるひとつのレガシー
- 901 名前:デフォルトの名無しさん [2017/11/05(日) 01:51:07.20 ID:/t3HbS0w0.net]
- >>879
ぐぬぬだよ! exeとdll持ってきてコマンドラインにするかあ
- 902 名前:デフォルトの名無しさん [2017/11/05(日) 02:12:10.73 ID:/t3HbS0w0.net]
- 外部のexeをインスタンス化してそれにコマンド発行ってできる?出来た気がする
7Zipを複数起動して複数ファイルの圧縮と解凍をしたいのよ
- 903 名前:デフォルトの名無しさん [2017/11/05(日) 02:25:25.39 ID:/t3HbS0w0.net]
- ProcessStartInfoか
なんでもないです
- 904 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 03:06:49.05 ID:5Sua66ij0.net]
- >>884
ファイルIO絡むから、複数同時に動かすとむしろ遅くなるんじゃないかな。
- 905 名前:デフォルトの名無しさん [2017/11/05(日) 04:13:51.92 ID:/t3HbS0w0.net]
- >>886
えー SSDやRAMに出しても? メモリ内で解凍してデータ加工して再圧縮できない?全部メモリ内で 外部ツール使ってたら無理か
- 906 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 07:19:38.45 ID:3uuR82Hq0.net]
- >>881
夜中まで必死にググった努力は認める w >>882の言うように今時としてはいまいちのコードだよ
- 907 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 07:21:17.15 ID:eAtbP2F40.net]
- 「ref string」が何に使えるかは置いておいて、これで合ってる?
ttps://ideone.com/k9UegY
- 908 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 07:24:20.42 ID:3uuR82Hq0.net]
- >>886
むしろI/O絡むから複数同時の意味がある
- 909 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 08:45:03.60 ID:TvjmwwI20.net]
- >>871
仕組みは良くわからんけどスタックトレースを辿るとかの処理が重いと思ってる。 速度の必要の無い処理はオレオレ例外投げてエラー処理してる。 その方がコードがスッキリ書けるし。
- 910 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 08:47:05.58 ID:TvjmwwI20.net]
- >>881
いつの間にか、ref 参照型 は不要から ref 全て不要に変わってるし。 ref 値型は必要でしょう。
- 911 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:02:12.28 ID:TvjmwwI20.net]
- >>877
例外をどこで処理するかは非常に簡単だが皆分かってない。 ・例外をcatchして処理できる場合はcatchして処理する ・処理できない場合は何もしなくて(無駄にcatch throwもしない)呼び出しもとに任せる ・最後はAppDomain.UnhandledException等で拾ってログ吐いて落とす 何も出来ないのにcatchしてエラーメッセージだけ出すヤツ多すぎ。
- 912 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:14:14.87 ID:dh3CGsv/0.net]
- 言語仕様としてref値型が必要なのはわかるけど
じゃあ使うかというと使わないかな もう何年も書いた記憶がない
- 913 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:29:17.02 ID:yKSdtk7l0.net]
- ゲームで自分で当たり判定を書いたとき
GC を避けるため使ったことがあるな
- 914 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:52:03.41 ID:TvjmwwI20.net]
- >>894
hoge.TryParseも使った事がないと?
- 915 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:20:04.86 ID:3uuR82Hq0.net]
- .TryParse( ) は ref じゃなくて out
- 916 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:20:40.26 ID:vfJyTH9D0.net]
- アプリ作るたびに
ViewModelBaseのSetProperty<T>(ref T field, T newValue を作って毎回使ってるな。 で、今ちょうどJavaでMVVMやってて、refないのでSetPropertyがかけなくてつらい・・ if (this.value != value) { this.value = value; notifyほにゃ } refないのでプロパティ毎に3行書いてるんだけど死にたい。
- 917 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:40:15.20 ID:iAaHdauhM.net]
- SetProperty(value, v => field = value)
でいいだろ 設定先が単純なフィールドでない場合にも対応できるしJavaでも同じ
- 918 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:56:36.45 ID:vfJyTH9D0.net]
- んん??
どういうことそれ。引数2つ?? 3つ使って SetProperty<T>(T field, T newValue, Action<T> setterActon) こんな感じならいけそだけど。 SetPropert(field1, 10, t => field1 = 10) 後は最後にproperyNameを渡す引数追加して。
- 919 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:01:15.31 ID:vfJyTH9D0.net]
- SetPropert(field1, 10, t => field1 = 10)
は SetProperty(field1, 10, t => field1 = t)だった bool SetProperty<T>(T field, T newValue, Action<T> setterActon, string propertyName) { if (!object.equals(field, newValue)) return false; setterAction(newValue); onPropertyChanged(propertyName); return true; } コンパイルしてねぇけどこんな感じかな。
- 920 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:11:46.25 ID:27Wvnc5t0.net]
- >>888
前とは別の人だし、githubで適当に検索してみただけだから特に時間もかけてないんだけどね roslynとかで"ref 適当な型名"で検索しても、何件か引っかかるし一応新しいコードでも(美しいかはおいといて)使ってるんじゃないかな 軽くしか見てないけどnullなら初期化ってしてるコードが多いけど、ArrayBuilerはある程度有効活用になってそうな雰囲気 ref値型いらないって言ってるのはホントの初心者でしょ そちらは明らかに使いみちだらけ
- 921 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:22:13.81 ID:+CtSMn6Br.net]
- ×初心者
○過去を捨てられないベテランさん
- 922 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:28:47.04 ID:idfQljxTM.net]
- 例外が必ず適切にはかれるわけではないからこうしろって言われても困る
- 923 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:31:31.42 ID:3uuR82Hq0.net]
- >>902
いいわけは要らんよ 君がref参照型が有効だと思うコードを晒せばいいだけ
- 924 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 11:31:51.41 ID:FejOKWJjM.net]
- >>904
どう言う意味?
- 925 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 12:03:01.14 ID:8CRgy4j+a.net]
- まだ変なのが暴れてるけど、参照型であれ値型であれrefなんか必要ない、
であれば主張に一貫性があり一理ある。 筋が通らないのは。refは値型でしか意味がないという主張。 昨日説明した通り値型参照型の違いはrefの有用性と関係ない。 >>906 >>904がそうい言いたいのかどうか分からないけど、例外の処理方法や どの程度「真面目に」処理するかだって所詮要件次第なのに、例外の話になると 妙に教条主義的になる変な人がいるのは確かだ
- 926 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 12:46:34.43 ID:FejOKWJjM.net]
- >>907
例外が適切に吐かれないって事が有るのか知りたい。
- 927 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 12:51:25.95 ID:uz/X8WP/M.net]
- >>907
> まだ変なのが暴れてるけど 自己紹介ですか?
- 928 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:12:09.84 ID:yAuwzX3k0.net]
- ref はCの&にあたるものだが、&iは普通に使うけど&pなんて見たこと無いってことだ
- 929 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:34:59.13 ID:sDEQ50L
]
- [ここ壊れてます]
- 930 名前:K0.net mailto: >>894
パフォーマンスを求められる処理には縁がない人なんですね [] - [ここ壊れてます]
- 931 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:46:53.29 ID:eJ/HGJ4TM.net]
- 素人なのでref/outの使い道がよくわからないのですが、public変数にするとかじゃだめなんですか?
- 932 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:50:53.40 ID:xly4dgsP0.net]
- >>912
メソッド実行するたびにインスタンス作成すればおk
- 933 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 13:54:44.96 ID:jvnuL8BP0.net]
- >>912
コトリン使えばおk
- 934 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 14:06:26.50 ID:bQLtuEEMM.net]
- >>912
全部Public変数にしたら引数も戻り値も不要だね。 君は天才かも。
- 935 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 14:08:16.80 ID:+CtSMn6Br.net]
- >>912
素人なら自作関数には両方使わない 唯一あるとすれば パフォーマンスをシビアにする必要がある かつフィールドをたくさん持った値型 の場合だがそんな状況はアプリにもよるがそうそう無い
- 936 名前:デフォルトの名無しさん [2017/11/05(日) 14:15:44.96 ID:tjXjX3Hx0.net]
- >>893
と赤間さんが言ってたね
- 937 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 15:53:29.60 ID:3uuR82Hq0.net]
- >>912
釣り針でかすぎ
- 938 名前:デフォルトの名無しさん [2017/11/05(日) 18:22:15.77 ID:/t3HbS0w0.net]
- 藤原竜也に戻せよ
- 939 名前:デフォルトの名無しさん [2017/11/05(日) 18:23:05.50 ID:/t3HbS0w0.net]
- 誤爆
- 940 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 20:56:07.78 ID:TvjmwwI20.net]
- >>917
赤間って誰? MSDNのコラムにc#の例外処理について解説していた良い記事があったんだが見つからんわ。 C と C++のが見つかったw https://msdn.microsoft.com/ja-jp/library/cc440190(v=vs.71).aspx
- 941 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:00:58.55 ID:UgX7F9HB0.net]
- https://blogs.msdn.microsoft.com/nakama/2008/12/29/net-part-1/
これかな?
- 942 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:09:00.23 ID:TvjmwwI20.net]
- >>922
赤間さん?
- 943 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:12:55.00 ID:TvjmwwI20.net]
- 「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。」
これよ、これ。例外処理の本質。
- 944 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:42:49.26 ID:xly4dgsP0.net]
- >>924
そうはいってもファイルが読めないだけで例外だすじゃん
- 945 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:52:08.84 ID:RoulHjpBa.net]
- >>922
ああこの記事ね。 個人的にはあんまりロジカルじゃないと思うんだよねこの記事。 読んでいて感じるいくつかの「なぜ」に対する答えがない (1) エラーを業務エラーとそれ以外に大別するのはいいとして、なぜ前者に例外機構を 使ってはいけないのか? (2) なぜ集約例外ハンドラーみたいなスパテッティーを推すのか。 そもそもそういうスパゲッティーを避けるための仕組みが例外機構ではなかったのか? (3) いくら何でも 「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません」 これは言い過ぎではないのか。
- 946 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 21:59:38.87 ID:sDEQ50LK0.net]
- >>926
(3)は吹いたわwww
- 947 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:12:12.00 ID:5Sua66ij0.net]
- リトライとかの回復処理は全部ライブラリー内で完結してることが前提なんだろうな。
言いたいことは分からないでもないけど、想定しているアプリがすごく狭い気がする。
- 948 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:39:40.25 ID:GDhCJlyO0.net]
- アプリケーションってよりビジネスロジックって言いたかったのかね
- 949 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:49:10.60 ID:fgQ02ied0.net]
- >>926
(1)や(3)はコメントで回答されてるんじゃないの? 集約例外ハンドラーは業務エラーを戻り値で表現しようと 例外で表現しようと必要じゃない?
- 950 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:51:14.59 ID:sDEQ50LK0.net]
- >>930
必要だってのと推奨するのとは違うだろ
- 951 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 22:52:06.64 ID:6FoY61ET0.net]
- てか集約例外ハンドラーがスパゲッティってどういうこと?
エラーメッセージやログ処理して終了するだけのごく短いコードだと思うけど違うの?
- 952 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 00:52:33.36 ID:voxzxgu2r.net]
- >>925
ヘルスバーグも筆の誤り
- 953 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 06:29:36.68 ID:6qywALcU0.net]
- >>928
例外に落ちた時点で回復可能なエラーって限られてるぞ。 ファイルがロックされて書き込めないとか。 殆どは回復不能だし、デッドロックにしてもリトライするより適切にロックしているかやロジックを見直す必要があるだろうし。 ま、例外の原因で一番多いのは自分の仕込んだバグだw
- 954 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 08:53:17.37 ID:2nM3KO37M.net]
- >>932
集約例外に回復コードを仕込もうと思ってるんだろ。
- 955 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 12:00:15.83 ID:I56lauc90.net]
- くそベンダーにありがちwww
- 956 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 12:23:10.12 ID:2nM3KO37M.net]
- 糞ベンダーは、全てのメソッドにtry-catchを入れるコーディング規約。
- 957 名前:デフォルトの名無しさん [2017/11/06(月) 16:16:18.79 ID:sVTioIv70.net]
- ネットで更新してるアプリってテキストファイルの文字読み込んでプログラミングしてるんだなその方が変更しやすいのか?
- 958 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:30:29.32 ID:2nM3KO37M.net]
- >>938
エスパー登場を待とう
- 959 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:33:56.53 ID:RoDWv0Jka.net]
- >>938
勘違いです
- 960 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:36:08.18 ID:Z+IOadg3M.net]
- ランチャー的なフォームから小画面を起動するフォームアプリを作ったのですが、小画面大量に出すと重くなります。小画面毎に別スレッドで起動する方法を教えてください
- 961 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:37:41.80 ID:RoDWv0Jka.net]
- 設計が間違ってます
小画面を大量に出さないようにしましょう
- 962 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:43:20.86 ID:Vd7vqFxu0.net]
- 小画面の意味がわからないし、大量とはどのくらいなのかもわからない
- 963 名前:デフォルトの名無しさん [2017/11/06(月) 17:48:57.32 ID:sVTioIv70.net]
- なんだ勘違いかテキストで読み込んでるのは理由あんまりないんだ
- 964 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:51:17.55 ID:Z+IOadg3M.net]
- >>942
そこをなんとか >>943 10枚程度です。
- 965 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:53:30.02 ID:RoDWv0Jka.net]
- ツールでボットやwebチェッカー使ってるんじゃないかな
ボット一個にwindow1個とか そういうのはwindow一個で多数のものを扱うべき リソースの無駄
- 966 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:55:01.56 ID:PxQVFHXG0.net]
- どうせ並列で動いてるならPCもう一個買えよ
- 967 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 17:56:54.41 ID:JuX+gvIy0.net]
- >>945
フォームを別に表示したら元のフォームには影響しないし 10や20くらいの別フォーム起動したくらいで重くなったことはない 小画面で何をやっているかわからないしスレッド分けて〜では多分解決しない >>944 スレ違いだと思うけどアンチウィルスのパターンデータ更新みたいなのと勘違いしているだろ VisualStudioだってバイナリアップデートなんだから
- 968 名前:デフォルトの名無しさん [2017/11/06(月) 18:06:53.58 ID:piexXh++0.net]
- 関数にListを渡す時に関数内で要素を書き換えできないようにするにはどうすればいいですか
- 969 名前:デフォルトの名無しさん [2017/11/06(月) 18:08:01.18 ID:QmwWSIUM6.net]
- 無理です
- 970 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:08:42.99 ID:JuX+gvIy0.net]
- >>949
C#7.2を待つかそのlistをコピーして渡すか書き換えないように気を付けるかしてください
- 971 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:27:27.21 ID:rATvQkns0.net]
- IReadOnlyListとして渡せばええやん
- 972 名前:デフォルトの名無しさん [2017/11/06(月) 18:33:50.08 ID:QmwWSIUM6.net]
- >>952
なにそれ オブジェクトのリストを作ったとしてそのリストの要素のプロパティを書き換えるのも出来ない?
- 973 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:35:54.11 ID:3XyzIl3H0.net]
- >>951
readonly ref って構造体限定じゃね?
- 974 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:37:32.84 ID:RoDWv0Jka.net]
- >>952
こんなものがあったのか 便利そう
- 975 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:01:30.72 ID:7bDcgZ2tM.net]
- >>801
無いことがバレてプログラマの月収は一律18万円になった
- 976 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:16:12.58 ID:GQ87vZ7n0.net]
- >>949
AsReadOnlyメソッドで足りるならそちらで >>905 言い訳とは 普通にroslynのソースとダブルポインタを要求するPInvokeじゃ不満足?複雑なやり取りを低コストでやれてると思うが
- 977 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:34:57.48 ID:6qywALcU0.net]
- >>941
スキルの無いヤツほどスレッドを使いたがる。 スレッドが何か分かっているヤツはスレッドでしか実現できない場合のみ仕方なくスレッドを使う。
- 978 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:43:20.15 ID:6qywALcU0.net]
- >>938
質問の内容がワケワカラン過ぎるぞ。
- 979 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 20:15:45.06 ID:TIxTD8nqM.net]
- >>957
> 普通にroslynのソースとダブルポインタを要求するPInvokeじゃ不満足?複雑なやり取りを低コストでやれてると思うが だからそう言う言い訳はどうでもいいからコードを晒せよ
- 980 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 20:27:25.28 ID:XSO2MFzP0.net]
- >>953
流石にそれを禁止するのは無理 IListにあるAddとかRemoveとかインデクサのsetterとかがないというだけなので
- 981 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:47:01.14 ID:Uzk0iC6KM.net]
- >>958
では軽くする方法を教えて下さい。 子フォームでは重要なことは非同期で行っています
- 982 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:54:22.54 ID:PxQVFHXG0.net]
- 何やってるか知らんけど
10枚も出したらそれで限界な可能性は? 非アクティブなときも重いってあるかなぁ?
- 983 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:55:47.11 ID:4oP8v+rY0.net]
- >>962
では重い原因を教えて下さい。 ただフォーム出して重くなったでは何も分かりません。
- 984 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:04:31.11 ID:TDT9B1paa.net]
- >>962
まず重い原因を突き止めましょう。 純粋にFormのロード(表示)だけに時間がかかってるなら 個人的は軽量化は諦めた方がいいと思う Loadか何かのタイミングで実行してる初期化が重いなら そこを軽量化するなりタイミングを工夫するなり 個人的想像だと前者の可能性は低い気がする というか、Vista時代のPCでも余程大量のコントロール乗せてたり レイアウトパネル系を多用でもしてないとそこまで極端に重くはならんと思う
- 985 名前:デフォルトの名無しさん [2017/11/06(月) 22:06:21.11 ID:qEpy6DDg0.net]
- Listを抽象化したいのですが、どのように書けば良いでしょうか?
以下のように書けるかと思ったのですがダメでした よろしくお願いします interface ITest { } public class Test: ITest { public string hogege { get; set; } } class Hoge { List<ITest> test = new List<Test>(); }
- 986 名前:あ mailto:sage [2017/11/06(月) 22:06:24.98 ID:/hMSyilp0.net]
- >>962
単純にそのアプリ、親アプリと子アプリに別けて、親アプリから小アプリを10個起動したら駄目なの? 重い処理があって辛いぐらいの機能があるなら、1つの子画面で親ごと巻き込まれて死んでほしくないし、俺ならプロセスから別ける。 あと、非同期でやってる、の非同期がasyncなら、それは普通にタスクを切り替えるスキの間隔が広いかとか、諸々普通に重いだけじゃないの? await Task.Delay(1)とか呼んでみたら?
- 987 名前:デフォルトの名無しさん [2017/11/06(月) 22:11:16.29 ID:AYpingtn0.net]
- >>966
右辺と左辺の型が違うじゃん
- 988 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:40:14.56 ID:Uzk0iC6KM.net]
- >>967
その、プロセスの分け方教えて下さい!
- 989 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:48:51.69 ID:voxwNiAb0.net]
- >>969
今更どうしようもないが、次作るときはウインドウの数減らしたほうが良いよ できればメイン一つで画面遷移やタブで処理+ダイアログも同時に開くのは一つだけとかね
- 990 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 22:49:36.85 ID:9FNc82fk0.net]
- 死ね
- 991 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:36:54.55 ID:VYb2y8+kM.net]
- >>966
List抽象化はIList<Test> test= じゃないのかよw
- 992 名前:あ mailto:sage [2017/11/06(月) 23:50:31.09 ID:/hMSyilp0.net]
- >>969
プロセスの分け方も何も、今フォーム起こすのに使ってるメソッドの引数を文字列にして、Process.Startで起動引数にして起動するだけのイメージだったけど。
- 993 名前:デフォルトの名無しさん [2017/11/07(火) 01:00:13.01 ID:cTk2bFo+0.net]
- Parallelって非同期でしか使えない?
- 994 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 01:08:19.93 ID:V+BPLIz50.net]
- うんにゃ
- 995 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 01:33:47.43 ID:TUoQCgcU0.net]
- >>975
同期できるのか 使おうかな
- 996 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 02:12:31.67 ID:V+BPLIz50.net]
- >>976
どういう用途を想定してるん?
- 997 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 09:07:17.90 ID:lDMoKAlXM.net]
- そもそもParallelは同期処理に使うもんだぞ
Fork-Joinっていう、同期処理を並列で実行するパターン
- 998 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 12:22:40.45 ID:BMsgFSV6r.net]
- 一晩エスパーしたけどListの抽象化の意味解読できず
ITest[] tests = new Test[n]; IEnumrable<ITest> = new List<Test>(); なら可能だが
- 999 名前:デフォルトの名無しさん [2017/11/07(火) 15:05:18.45 ID:+aQKsyS3d.net]
- リスト抽象化という分かってるようで何も理解できてないお題
- 1000 名前:デフォルトの名無しさん [2017/11/07(火) 15:17:32.57 ID:odkSTBx66.net]
- >>980
新スレ頼んだ
- 1001 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 15:31:40.49 ID:QoqDyUp+0.net]
- >>979
変数名忘れてる!
- 1002 名前:デフォルトの名無しさん [2017/11/07(火) 16:33:19.67 ID:pVSOD8mN0.net]
- 抽象化して継承するのと基本クラスにして継承するのと使い道がわからんよな
- 1003 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:46:40.87 ID:j6tNoJ1F0.net]
- スレタイのC#表記は一つだけでいい
形骸化してる
- 1004 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:08:16.46 ID:LeQqgpmT0.net]
- そういえばずっと疑問なんだが
そもそもC#て「シーシャープ」で合ってる? #はNo.だと習ったような... それともスレタイどおり普通に「シーフラット」なのか?
- 1005 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:11:35.30 ID:QoqDyUp+0.net]
- >>985
作った人によると(C++)++で、+を4つ並べて#にしたという で、読み方はシーシャープだと
- 1006 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:14:22.37 ID:4uzCwn7XM.net]
- >>985
正式にはシャープだけど、半角表記にするために井桁でもいいことになってる
- 1007 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:17:34.23 ID:LeQqgpmT0.net]
- ほほう!!ありがとう!
- 1008 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:25:03.73 ID:LeQqgpmT0.net]
- さすがに♭でなくて安心した
- 1009 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:48:12.22 ID:wMlMdyQ30.net]
- >>987
ちょっと違う 半角で表せるようにC#と書いてC Sharpと読むと仕様書に明記されてる C♯とかは間違い
- 1010 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:49:14.24 ID:bwe89n7Ka.net]
- >>986
その話は後付けだったと思うけどw つまりC#(C sharp)っていう名前が決まったのが先で、よく見るとこれって+が四つでインクリメント演算子が2つの ようにも見えるよねって話だったはず
- 1011 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:50:12.84 ID:4uzCwn7XM.net]
- >>990
いや公式な仕様書だと♯表記だよ
- 1012 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:50:44.75 ID:bwe89n7Ka.net]
- >>990
そもそも#と♯が本来別文字かどうか怪しいw 印刷屋さんの都合じゃないのかと
- 1013 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:55:28.06 ID:t6NaVxzvH.net]
- ナンバーサインと音楽記号シャープは
まったく別物でしょ
- 1014 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 21:00:34.38 ID:LeQqgpmT0.net]
- 次スレ建ててみる
1行目 !extend:checked:vvvvv:1000:512 でいい?なお、スレタイ変えない
- 1015 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 21:12:11.14 ID:LeQqgpmT0.net]
- ふらっと C#,C♯,C#(初心者用) Part133
mevius.5ch.net/test/read.cgi/tech/1510056685/
- 1016 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 21:42:13.43 ID:kORl+ylV0.net]
- おつ
- 1017 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 22:58:38.88 ID:JobEFelh0.net]
- 荒れてばかりなのにきちんと次スレの立つこのスレ >>996 乙
- 1018 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:26:45.39 ID:lzmkdMJA0.net]
- スレ立ておつ
- 1019 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:36:05.51 ID:CLyn8lVQ0.net]
- ぬ
- 1020 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 29日 5時間 35分 9秒
- 1021 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|