[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/29 16:42 / Filesize : 310 KB / Number-of Response : 1032
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part137



1 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 17:40:19.48 ID:oKXVP34zM.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part95
mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part136
mevius.5ch.net/test/read.cgi/tech/1520057345/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

604 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:04:59.21 ID:N5R39axQ0.net]
リピーターが多い汚いコードと
リピーターが少ない綺麗なコード

後者はゴミだよね

605 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:14:50.20 ID:i7PAGBqeM.net]
世の中の多くのバカが勘違いしてるんだけど

綺麗なコード==間違えやすい製造に時間がかかるコード

じゃないんだよね
綺麗なコードはバグが少ないし製造も早い

汚くても動くコードを早く書け!なんて言ってるやつは根本的に何かがズレてる
そんな方針でコーディングしたら汚くて動かないコードを時間をかけて作る羽目になる

606 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:19:44.86 ID:kDeIpxe/p.net]
洗練された華麗なコードとインデント揃っただけの綺麗なコードを混同してるばか発見

607 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:22:07.78 ID:asXlnx2Ka.net]
>>578
UI(Form)がモデル(何か仕事をするクラス)の参照を持つのは問題ないが、
逆は良くない。理由は、

(1) 役割分担があいまいになる
厨房の人間が1分おきにウェイターに注文を確認するのは適切な役割分担と言えるか?

(2) つぶしがきかない
Formの参照を握ってFormのメンバーを操作するクラスは、UIをWPFやUWPに
変更しても使いまわしできるか?

608 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:59:31.92 ID:ySggkKZM0.net]
>>581
一読で理解できる知識がないのですが、勉強してみます。
ありがとうございます。

609 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 22:02:31.19 ID:ySggkKZM0.net]
>>594

UIがデータ格納用クラスのインスタンスを生成
UIがプロパティを介してデータ格納用クラスの変数に代入
UIがコントローラにデータ格納用クラスのインスタンスを渡す

みたいな感じでよろしいでしょうか?

610 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 22:27:53.20 ID:asXlnx2Ka.net]
>>596
>UIがデータ格納用クラスのインスタンスを生成
誰がモデルのインスタンスを生成するかはケースバイケースだしどうでもよろしい

>UIがプロパティを介してデータ格納用クラスの変数に代入
重箱の隅をつつくようだが、オブジェクトのプロパティやメソッドを操作する時に
「データ格納用クラスの変数に代入 」なんていう内部の実装を意識する必要はない。
必要はない、というか意識しなくても使えるように作るのがカプセル化。

>UIがコントローラにデータ格納用クラスのインスタンスを渡す
俺がMVCを理解してないだけの可能性もあるが、少なくともWindows Formでは
VとCを分けたりしないのが普通と思う。コントローラなんてイラネ

611 名前:デフォルトの名無しさん [2018/05/13(日) 23:13:35.13 ID:TUC5Idjma.net]
話蒸し返して悪いんだが、xmlシリアライザーって今使ってるとやばいの?業務アプリの設定ファイルほぼこれで今までやってたんだが。。
とりあえず今やってる案件JSONで見直してみるか
一人で開発やってるとついついこういうのに遅れがちになるなぁ

612 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:15:02.41 ID:F2hiJGIV0.net]
>>598
どんな用途で?



613 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:22:29.79 ID:KKJavIw30.net]
csvとJSONなら圧倒的に後者のがメリットあるけど、
xmlとJSONなら規模がでかくない限りどっちでも良いや

614 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:33:10.62 ID:R40HLbPBa.net]
>>598
業務ドカタ系でJSONなんかほとんど無いから安心しろ
客サイドは情シスですらJSON何それとか平気で言いやがるしOSSのライブラリが必要なのもネック

615 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:37:31.23 ID:OUJCfbgi0.net]
>>600
Excelで編集できるできないって違いもあるのに
どこが「圧倒的」なの?
根拠もない主張を強く推すなよ
願望だろ?お前の

616 名前:デフォルトの名無しさん [2018/05/13(日) 23:38:24.99 ID:PSHb3apy0.net]
PCのiTunesって曲の情報管理全部XMLだよな
どうにかならんのか
https://i.imgur.com/zaooQAM.jpg

617 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:40:15.36 ID:u4TQvgwd0.net]
Ant, Maven とか、Java系は、XML。
Android 画面の設定ファイルとか

Windows でも、XAML で画面設定する

プロジェクトの設定ファイルも

JSON を設定ファイルに使うのは、JavaScript を使ったもの。
例えば、Node.js を含んだ、VS Code

他には、プログラミング言語自体が設定ファイルになるもの。
Ruby, Groovy, Haxe

618 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:48:46.83 ID:i7PAGBqeM.net]
>>598
え?全然やばくないよ
むしろ安定した手堅い選択肢と言っていい
JSONを設定に使う製品はむしろ少数派

619 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:57:11.22 ID:F2hiJGIV0.net]
>>604
>JSON を設定ファイルに使うのは、JavaScript を使ったもの
最近のC#もそうですが

620 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:57:32.58 ID:OUJCfbgi0.net]
>>598
ヤバイってどういう状況?
殺されるの?

621 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 00:04:35.25 ID:3eK20qHjM.net]
>>606
project構成は不評で結局xmlに戻ったね
ASP.NETのappsettingsはボイラープレートがjsonになってるけどxmlやiniもサポートされてる

622 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 00:05:32.49 ID:wCRTCiuQ0.net]
素のJSONはコメントが使えないので設定ファイルには使い辛い。



623 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 00:17:32.79 ID:gDWY5JTja.net]
川俣さんのことを馬鹿にする人が2chには多いけど、この記事の趣旨は正しいと思う
www.atmarkit.co.jp/fdotnet/extremecs/extremecs_18/extremecs_18_02.html

特定の技術への信仰と「俺スゲー」っていう間抜けな自己陶酔が結びついてる奴ってよくいるし、
このスレにも時々そんなのが出るけど、そういう奴のいうことは真に受けない方がいいですw

624 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 00:18:47.47 ID:Wjyh58JD0.net]
>>608
まあ普通はjson使うがな

625 名前:デフォルトの名無しさん [2018/05/14(月) 07:03:43.68 ID:oC/RgBRx0.net]
つか業務で使うなら余程のことがない限り枯れた技術の方が安定する

626 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 07:06:02.02 ID:Wjyh58JD0.net]
>>612
COBOLとか?

627 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 07:55:56.39 ID:zbYXMED5M.net]
COBOLは実際優れてるんだよなあ
低品質なPGでもほぼ完璧に見積工数通りに仕上がるし、バグもほとんど出ない
金持ちな客からきっちり工数見合いで金取れるならSIerにとってこれほど好都合な言語はない

628 名前:デフォルトの名無しさん [2018/05/14(月) 08:01:56.16 ID:wRU00x5/r.net]
バグでないのはアカンやろw

629 名前:デフォルトの名無しさん [2018/05/14(月) 08:12:24.86 ID:I+nT90nna.net]
それはバグが摘出できていないだけでは

630 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 08:30:53.44 ID:6WkSgDmyr.net]
工数が低減できるかどうかよりも見積が精確にできることの方が管理者にとっては重要ってわけだね

631 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 09:03:36.07 ID:coszmN5L0.net]
バグが出ないに総ツッコミでワロタ

632 名前:デフォルトの名無しさん mailto:sage釣 [2018/05/14(月) 09:45:10.45 ID:tQHKR4rj0.net]
大体この時間にABENDしますって
異常停止をルーチンワーク化して運用している所があったな



633 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 10:05:11.99 ID:TQ68xzma0.net]
現場運用だと稀によくある
開発側がそれを織り込んじゃダメだけど

634 名前:デフォルトの名無しさん [2018/05/14(月) 19:19:28.87 ID:M+KhV3wka.net]
>>598だけど
蒸し返した話にレスくれてありがとう
自分の用途にはxmlでも問題なさそうでとりあえず安心した

635 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 20:12:46.13 ID:CBd8Qc4H0.net]
SVGやMathMLのような外部の名前区間が出てくるとか、Xamlのようにかっちりしたものを書きたい場合はXMLが有利
文字列や数値しか出てこないような簡単な構造ならJSONの方が便利なことも多い。
Trueなのかtrueなのかとか考えなくても良くて、エディタがサポートしてくれるし、エスケープの仕様とかがシンプルで、ファイルも小さい。逆に言うとその程度なのでわざわざ切り替えるほどでもないとは思う

636 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 20:37:51.15 ID:5czuzhWO0.net]
>>597
VCわけないんですか。
うーん・・・。
いろいろな設計方法があるということですね。

インスタンスの生成順として
A→B
A→C
とAからCにBのインスタンスを渡す方法は分かるのですが、

C→A
A→B
とインスタンスを生成した時、CにBのインスタンスを返すことって可能なのでしょうか?

637 名前:デフォルトの名無しさん [2018/05/14(月) 20:54:23.97 ID:g5WxNsfna.net]
デリゲート

638 名前:デフォルトの名無しさん [2018/05/14(月) 20:59:59.56 ID:IVWzojCa0.net]
【マンモグラフィー】おっぱい挟んで癌検査…必要?
egg.5ch.net/test/read.cgi/bio/1517115639/l50
【ペットフード】告発したら3人組に棍棒で襲われた
egg.5ch.net/test/read.cgi/hosp/1517110484/l50
【アマルガム】水銀を歯に? 厚労省『暴動が怖い』
mao.5ch.net/test/read.cgi/doctor/1517058870/l50

639 名前:デフォルトの名無しさん [2018/05/14(月) 21:00:16.16 ID:qPzo5Sk00.net]
>>623
「返す」ことにこだわりがあるのなら結構難しい
そこにこだわらず、単にCからbを扱えれば良いのならa.bでアクセス可能だろう

640 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 21:35:43.16 ID:1pddwh+ma.net]
>>623
何でわざわざ話を複雑にするの?
class C
{
  A a;
  B b;

  public C()
  {
    a = new A(this);
    b = new B(a);
  }
}

例えばこれじゃダメなの?

641 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 21:38:33.33 ID:Ju2ea7rBa.net]
DIコンテナとか諸々のイディオムを知らない初心者だからまぁしゃあない
MVCでもMVVMでもいいからチュートリアル的なものをひとつやっとくとだいぶ違うとは思う

642 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 21:40:59.32 ID:orCVIDzn0.net]
>>626
まず「返す」の意味が分からないんだよな
>>623
何のためにその実装が必要なのか、まずはそっちから
普通は複数の派生インスタンス扱いたいのならどこかでまとめて管理する方が楽
横に伸ばしていくんじゃなく中心から引っ張っていく形



643 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 23:18:38.41 ID:coszmN5L0.net]
馬鹿なこと考えないでジャンケンゲームでも作ってろって

644 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 23:19:52.93 ID:6thsxJoDM.net]
>>623
今時のマルチレイヤな設計ってのは、「汚い場所」をどこかに決めて、そこが依存関係の解決を一手に引き受けるようにするんだよ
で、他の部分は「汚い場所」に直接依存しないようにするの
>>627の例でいうと、Cを「汚い場所」とするならAがCを直接参照するのは良くなくて、
AからCのメソッドをコールバックしたいんだったらインターフェイスを介して呼ぶようにしたりする
汚い場所をどこにするかだけど、フォームアプリならフォームだったり、Webアプリならコントローラだったり
処理の起点となり、かつ、どのみち単体テストが困難な場所を選ぶのが一般的だ

645 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 23:24:11.06 ID:LQsoSslkM.net]
なんだか要領を得ないからわからないけど
Bを操作するメソッドをAに用意してCがA経由でBを操作するのはだめなのか?

646 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 23:36:29.55 ID:0rMMZwm+0.net]
MVC をわかってないような奴に、何も教えられない

まず、無料のRails チュートリアルで、MVC webアプリの設計から学べ

647 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 00:01:41.20 ID:NfuIoln0a.net]
Railsってモデルがフォームの構造に依存するからなあ
あんなのAccessのフォームなんかと同レベルだよ
変な癖がつくから初心者には適さない

648 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 00:21:50.03 ID:joJAW/ym0.net]
>>633
スレチ

649 名前:デフォルトの名無しさん [2018/05/15(火) 06:26:55.76 ID:bIQIvbQJ0.net]
MVVMを理解するには何からはじめたらいいの?

650 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:15:54.13 ID:OnclRViVM.net]
>>636
何から始めても理解できない
分離するどころかやればやるほど結合が強くなる現実に打ちのめされるだけ

651 名前:デフォルトの名無しさん [2018/05/15(火) 07:32:22.06 ID:bIQIvbQJ0.net]
やってみたけど難し過ぎて手に負えなかったってことだね。

652 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:36:31.19 ID:IL2LN/1vM.net]
>>636
Vue.jsあたりかな
XAMLはテンプレートやコマンドバインディングが複雑すぎて本質を掴みづらい
WebのMVVM系フレームワークのほうがずっと見通しが良くてMVVMの本質を素直に実装してる



653 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:43:57.19 ID:dqMabmxz0.net]
まずはUNDOなりマクロを実装するのに何が必要か
考えると、「C」の動きが見えて来るかと思うけどね

GOFの最初の章にも説明はあるよ

654 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:48:40.53 ID:WESx87C+0.net]
>>627
アクセシビリティに一貫性がありませんってエラーが…
internalでインスタンス生成するとOKなんですが、フォームクラスはpublicで宣言してるんですけど。

655 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:52:16.57 ID:WESx87C+0.net]
>>629
ご指摘を受けてメインのフォーム上でインスタンス管理しようとしているのですが、
アクセシビリティの一貫性というエラーが出てきています。

public partial class ExaminationForm : Form
{
public InitialSettingForm initialSettingForm;
public InitialValues initialValues;

で最後の行にアクセシビリティ一貫性のエラーが・・・。
3行目のpublicをinternalにするとエラー消えるのですがなんでだろう。

656 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:56:03.82 ID:jP3S3vDhM.net]
そのビューの入出力項目と隠し項目とユースケースを抽出するだけだよ

ログイン画面だったら
入出力項目として
・ユーザーid
・パスワード
隠し項目は無し
ユースケースは
・ログインする

なので
class LoginViewModel {
public string UserId { get; set; }
public string Password { get; set; }
public void Login() {
// login impl
}
}
こうなる

あとはViewがVMを監視するために変更通知イベントなどを実装しましょう
それだけ

657 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:59:07.77 ID:5QugQ9oMM.net]
>>636へのレスな↑

658 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 07:59:13.31 ID:4jNLOtgZa.net]
>>642
InitialValuesクラスがinternalなんだろ
publicに変えれば意図通りになる
言っちゃ悪いけど正しい設計とか気にするレベルじゃないと思うよ
まずは汚くてもいいから一本何か形にできるようになってから考えればいい

659 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 08:38:53.30 ID:WESx87C+0.net]
>>645
ああああああああ!
そこなのかあああ!

classってデフォルトでinternalになるんですね。
というかinternalって省略されるから気づきませんでした。
ここで半日費やしてたのでものすごく助かりました。
ありがとうございます。m(__)m

660 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 08:42:40.68 ID:WESx87C+0.net]
>>645
一本ゲーム作ったんですが、form1(初期値)、form2(ゲーム)にほとんどぶっこんだオブジェクト指向ほぼ無視プログラムになってしまったので、
ゲーム内のデータ管理とform2だけでも分離しようとして悪戦苦闘しています。

はるか昔にBasicやったぐらいなので、インスタンスの参照渡しとかその辺がうまく実装できなくて・・・。
勉強用に買った本にもインスタンスの参照渡しなんて全く書いてないし・・・。(´・ω・`)

661 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 08:47:43.78 ID:WESx87C+0.net]
あれでも

//インスタンス生成
InitialValues initialValues = new InitialValues(); 
//インスタンスの参照渡し
initialSettingForm.InitialValuesPointer = initialValues;

としているのに

フィールド”InitialValues"は割り当てらせません。常に規定値nullを返します。

となります。
実際にnull値が入ってるようで、initialSettingFormにインスタンスの参照は渡せていない模様・・・。
newしてるのになんで割り当てられませんと出るのでしょう??

662 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 08:55:56.96 ID:WESx87C+0.net]
//インスタンス生成
×InitialValues initialValues = new InitialValues(); 

this.initialValues = new InitialValues(); 
でした。すいません。



663 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 09:03:30.06 ID:WESx87C+0.net]
>>648
すいません。ゴチャゴチャしてた変数名整理したらエラー消えました。。。
お騒がせしてもうしわけありません。

664 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 09:34:05.49 ID:IdD83PdN0.net]
>>647
C++ 以外のすべての言語で、インスタンスの参照渡しだろ

665 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 10:42:46.03 ID:WESx87C+0.net]
>>651
初代MSX-Basicでゲーム作ってた頃以来のプログラミングなので(;^_^A

666 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 10:47:12.03 ID:WESx87C+0.net]
アホな質問ですが、
Class InitialValue
に初期値を全部詰め込み、必要であればコントローラから参照しているのですが、
インスタンスの参照をinitialValueとすると
initialValue.StartPointX+hoge
などインスタンスの参照がくどくて読みづらい。
いっそiVとかしたいのですが、自分にしかわからない省略は良くないと聞いたもので・・・。

initialValue.StartPointX
initValue.StartPointX
iV.StartPointX

どれが読みやすいコードでしょうか?

667 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 12:29:44.99 ID:2i/hB9LUM.net]
>>653
どれもダメ
initialValueをそのまま使わずに設定値を使うクラスにコピーして

668 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 13:05:19.58 ID:WESx87C+0.net]
>>654
えええ!

データはデータクラスで一元管理じゃないんですか?
そうしないとフォームなどからデータクラスを変更した時に、
コントロールクラス側で

669 名前:その通知を受け取って
もう一度データクラスからコントロールクラスにコピーする仕組みが必要になってきますよね。
[]
[ここ壊れてます]

670 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 14:10:34.54 ID:l7Fk1Hkl0.net]
自分がアホだと分かってる割には自分の判断を信じてるのな
アホ草

671 名前:デフォルトの名無しさん [2018/05/15(火) 14:32:03.09 ID:bP9crr2Q0.net]
勉強のためにプロが書いた大きなプログラムを見たんだが
変数が全部4桁英数字でランダムに発生させてるような文字列だった
僕ら初心者には「これ何の変数だっけ?」と分かりにくいだけなんだけど
大きなプログラムだと万が一、変数がダブったりするのを避けるためにそうするんですかね?
変数一覧表かなにか作るんですか?

672 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 14:38:53.82 ID:WESx87C+0.net]
>>656
いや、最初はコピーする仕様だったんですが、
データクラスで一元管理をするアドバイスを受けて変えたところです。

コピーするんなら元の仕様のままでよかったのかということに。



673 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 14:54:54.48 ID:oubZzl5I0.net]
>>657
変な変数名は難読化されてるだけ

674 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 15:26:01.82 ID:UPWhPqGh0.net]
>>657
当然だよ。変数使うには課長級の決済が必要。変数管理台帳ファイルに全部記録されている。

675 名前:デフォルトの名無しさん [2018/05/15(火) 17:20:29.21 ID:nA4SMkbe0.net]
>>659
そうか、公開用にリファクターしたのかな
いちいち一覧表見ないと何処につながってるか見えないなんて不便だもんね

676 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 18:44:33.69 ID:Fj6Vms3Xa.net]
>>658
変数名が妥当かどうか聞いてるんじゃなかったの?w

そのInitialValueとやらのクラスを使う実装方法が妥当かどうかは実現すべき仕様を誰も知らないので
誰にも分からないと思うよw

ローカル変数の命名に関しては、型名InitialValueをそのまま変数名にしても
何をやってるのか理解できるような文脈なら変数名をivにしても同じことでしょう。
だったら短い方がいい。

ただしローカル変数でも説明的な名前の方が適切な場合もあるので馬鹿の一つ覚えはダメ。
情況に応じて柔軟に

677 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 19:35:30.36 ID:9ix52upSr.net]
>>660
初心者が真に受けるからやめれ

678 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 10:08:34.12 ID:5p+fPd0U0.net]
int[] intData = new int[10];
int intThread = -3; // 閾値
int intCount = 0;
for (int i = 0; i < intData.Length; i++)
{
if (intThread >= 0)
{
if (intData[i] > intThread)
{
// 処理
intCount++;
}
}
else if (intThread < 0)
{
if (intData[i] < intThread)
{
// 処理
intCount++;
}
}
}

閾値がプラスとマイナスで条件式を変えたいんだけど、
中の処理が一回で済む書き方ってあります?

679 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 10:48:11.15 ID:6eYS9/+hd.net]
=を含まない条件式。
そして閾値というキーワード。

まとめない方がいいよ。

680 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 11:18:13.11 ID:XvxRw+U50.net]
>>664
せめてCountメソッドにしとけと思うぐらい。

681 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 11:47:06.88 ID:B7aMvtuba.net]
>>664
単に同じ処理を2回書く無駄をなくしたいだけなら&&と||を使って
条件式をまとめるだけ

if((threshold >= 0 && x > threshold) || (threshold < 0 && x < threshold))
{
  ....
}

値が不変のはずのthresholdの符号をループで毎回評価する無駄が許せないなら
Func<int, bool> predicate = x => x > threshold;
if (threshold < 0) predicate = x => x < thredhold;
....
if (predicate(x))
{
  ....
}

682 名前:デフォルトの名無しさん [2018/05/16(水) 12:22:33.98 ID:CHLBL3ILa.net]
async/awaitって呼び出しのネストが深くなると、大元の



683 名前:呼び出しで波線が立ってすごくもどかしいんですが、気にしなくていいでしょうか?それとも呼び出しのやり方を見直したほうがいいのでしょうか []
[ここ壊れてます]

684 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 12:29:36.06 ID:+dukoeHCd.net]
>>668
ネスト関係なくね?

685 名前:デフォルトの名無しさん [2018/05/16(水) 13:23:25.14 ID:v6bC0eDAM.net]
>>664
カウントをCountメソッドにして引数に突っ込むラムダ式を閾値によって切り替える

686 名前:662,666 mailto:sage [2018/05/16(水) 14:23:23.94 ID:mC1mbnpn0.net]
ごめん。Count以外の処理もあるんだね。おらの回答は無視してくれ。

687 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 14:55:11.81 ID:c5ZU3C2K0.net]
dataGridViewのデータソースをBindingListにしています。
この時にデータの絞込を実装する方法はあるのでしょうか。

688 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 19:51:48.39 ID:oU1pyBE30.net]
>>668
波線が立つのは単にasyncなメソッドをawai付けずに投げっぱなし呼び出しの警告出ているだけじゃないのか
>>669の言う通りネスト関係ない

689 名前:デフォルトの名無しさん [2018/05/17(木) 00:16:57.84 ID:OeNqnCBl0.net]
すいません。ちょっと教えてください。

//Form1にて
Form2 f = new Form2();
f.show();
this.visible=false;

としてForm2を開いて、Form1を非表示にします。
//Form2にて
Form1 f = new Form1();
f.visible=true;
this.visible=false;

としてForm1に戻った場合、先程form1で入力した内容が消えてしまいます。
form1の内容を消さずにform2からform1に戻る方法を教えてください。

690 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 00:28:09.71 ID:yjgdFlmp0.net]
>>674
Form1 f = 「new」 Form1();
新しいForm1を作ったんだから前のはVisible=false;のままで表示されていない
例えばこうする
//Form1にて
Form2 f = new Form2(this);//Form2のコンストラクタの引数にForm1の参照を渡す
f.show();
this.visible=false;
//Form2にて
private Form1 form1;
//コンストラクタ
public Form2(Form1 f)
{
InitializeComponent();
form1=f;
}
//戻る処理
form1.Visible=true;
this.Visible=false;

691 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 00:35:36.78 ID:hTaKG8n8a.net]
>>674
目の前の問題を解決するよりまずインスタンスとは何かちゃんと理解した方がいいねw

692 名前:デフォルトの名無しさん [2018/05/17(木) 00:41:03.31 ID:OeNqnCBl0.net]
ありがとうございました。
大変助かりました。



693 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 00:45:08.18 ID:hTaKG8n8a.net]
もっと簡単にこれでもできるよw

var f2 = new Form2();
f2.Shown += (s, ev) => Hide();
f2.ShowDialog(this);
Show();

694 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 16:26:49.89 ID:GnA4tN+Fi]
アプリ全体の設定について、設定変更画面を作ろうとして、まずは設定そのものを1つのクラスにまとめることを考えた
そんで各設定項目を public get, private set にしようと思ったら
設定画面クラスからは各設定項目プロパティの値を書き換えられなくって困ったんだが
これってどうしたらいいのかな
コンストラクタに引数渡して各設定項目を設定することも考えたけど、
設定項目が20こほどあるからそれはやりたくない

プロジェクト分けて設定画面を別アセンブリにしてpublic get, internal setにしないといけないんかな

695 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 21:40:59.40 ID:Kw1Q24F60.net]
class Program
{
TargetOpe targetOpe = new TargetOpe();
static void Main(string[] args)
{
Target [] target= targetOpe.InitializeTarget();
Console.WriteLine(target[1].x);
}
}

Target [] target= targetOpe.InitializeTarget();の行のtargeOpeで
静的でないフィールド、メソッド、またはプロパティ 'Program.targetOpe' で、オブジェクト参照が必要です
のエラーがでます。
newしてるのになんででしょう?

696 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 21:46:08.12 ID:xJtGZ4kt0.net]
>>680
静的メソッドだから

697 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 23:37:38.13 ID:03oIkg7y0.net]
C#初心者です。
ある変数のその時々の値によって呼ぶメソッドを変えたいため初歩的にifやswitchで分岐させていたのですが、毎回分岐させるのもどうかと思い変数が変わるタイミングでデリゲートに代入して呼び出す方法を試してみました。
しかしながらパフォーマンステストを行ったところ、10程度の条件分岐であればifでメソッド呼び出し >>> デリゲートで呼び出しという結果でした。
速度を重視しつつ動的に呼び出すメソッドを変えるという場合はデリゲートではなく毎回条件分岐を行ったほうが良いということなのでしょうか?

698 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 23:45:29.87 ID:xJtGZ4kt0.net]
>>682
どんな用途で?

699 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 23:47:12.44 ID:fnhXcK68M.net]
>>682
どうでもいい
そんなミクロなレベルの速度が問題になることはない
IO一つで跡形も無く吹き飛ぶ

700 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 23:49:51.73 ID:8WFSeAEB0.net]
くだらねーパフォーマンスとくだらねー暗号化の話題が大好きだよな

701 名前:デフォルトの名無しさん [2018/05/18(金) 01:57:49.78 ID:3OrmdyFD0.net]
パフォーマンスは重要だよ
だけど、そんなのを語る以前に、コンピュータの仕組みについての素養を極端に欠く人が多すぎるんだよ
最近のC#入門書はよく出来ていて、大抵の本が最低限の仕組みが知識が身につくようページを割いて解説してるわけだけど・・・・分かっていない人ほど読み飛ばすんだな
その結果、コンピュータの仕組みからしたらとてもありえないことを言い出す高卒様が出来上がるんだ

702 名前:デフォルトの名無しさん [2018/05/18(金) 02:22:20.29 ID:tl8rJsN/0.net]
>その結果、コンピュータの仕組みからしたらとてもありえないことを言い出す高卒様が出来上がるんだ

ありえないことなんてないだろ。頭硬すぎじゃねーの。「コンピュータはこうあるべきだ」とかに縛られてると新しい発想のソフトが生まれない。



703 名前:デフォルトの名無しさん [2018/05/18(金) 02:48:57.75 ID:3OrmdyFD0.net]
新しいものができたってのならいいけど、言うこと為すこと高卒様じゃあ・・・・

704 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 03:11:25.94 ID:eSpLSQVO0.net]
>>682
条件次第なのでなんとも言えない
インライン展開とかCPUのキャッシュとかまで関わってくる可能性がある

気にしなければいけないほどパフォーマンスを気遣うなら、JITの結果を比較したほうがいいけど、多くはそこまでするほどではない






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<310KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef