「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part95
http://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
http://mevius.5ch.net/test/read.cgi/tech/1520057345/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part137
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ドコグロ MM07-2FKJ)
2018/04/06(金) 17:40:19.48ID:oKXVP34zM605デフォルトの名無しさん (ワッチョイ 05da-BHr/)
2018/05/14(月) 00:05:32.49ID:wCRTCiuQ0 素のJSONはコメントが使えないので設定ファイルには使い辛い。
606デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/14(月) 00:17:32.79ID:gDWY5JTja 川俣さんのことを馬鹿にする人が2chには多いけど、この記事の趣旨は正しいと思う
http://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_18/extremecs_18_02.html
特定の技術への信仰と「俺スゲー」っていう間抜けな自己陶酔が結びついてる奴ってよくいるし、
このスレにも時々そんなのが出るけど、そういう奴のいうことは真に受けない方がいいですw
http://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_18/extremecs_18_02.html
特定の技術への信仰と「俺スゲー」っていう間抜けな自己陶酔が結びついてる奴ってよくいるし、
このスレにも時々そんなのが出るけど、そういう奴のいうことは真に受けない方がいいですw
607デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/14(月) 00:18:47.47ID:Wjyh58JD0 >>604
まあ普通はjson使うがな
まあ普通はjson使うがな
608デフォルトの名無しさん (ワッチョイ 4b9f-ZOQu)
2018/05/14(月) 07:03:43.68ID:oC/RgBRx0 つか業務で使うなら余程のことがない限り枯れた技術の方が安定する
609デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/14(月) 07:06:02.02ID:Wjyh58JD0 >>608
COBOLとか?
COBOLとか?
610デフォルトの名無しさん (ブーイモ MM49-27Jw)
2018/05/14(月) 07:55:56.39ID:zbYXMED5M COBOLは実際優れてるんだよなあ
低品質なPGでもほぼ完璧に見積工数通りに仕上がるし、バグもほとんど出ない
金持ちな客からきっちり工数見合いで金取れるならSIerにとってこれほど好都合な言語はない
低品質なPGでもほぼ完璧に見積工数通りに仕上がるし、バグもほとんど出ない
金持ちな客からきっちり工数見合いで金取れるならSIerにとってこれほど好都合な言語はない
611デフォルトの名無しさん (オッペケ Sr21-XDJ1)
2018/05/14(月) 08:01:56.16ID:wRU00x5/r バグでないのはアカンやろw
612デフォルトの名無しさん (アウアウカー Sa11-ZOQu)
2018/05/14(月) 08:12:24.86ID:I+nT90nna それはバグが摘出できていないだけでは
613デフォルトの名無しさん (オッペケ Sr21-8dm0)
2018/05/14(月) 08:30:53.44ID:6WkSgDmyr 工数が低減できるかどうかよりも見積が精確にできることの方が管理者にとっては重要ってわけだね
614デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/14(月) 09:03:36.07ID:coszmN5L0 バグが出ないに総ツッコミでワロタ
615デフォルトの名無しさん (ワッチョイ ad8a-k/8h)
2018/05/14(月) 09:45:10.45ID:tQHKR4rj0 大体この時間にABENDしますって
異常停止をルーチンワーク化して運用している所があったな
異常停止をルーチンワーク化して運用している所があったな
616デフォルトの名無しさん (ワッチョイ 55b3-ostX)
2018/05/14(月) 10:05:11.99ID:TQ68xzma0 現場運用だと稀によくある
開発側がそれを織り込んじゃダメだけど
開発側がそれを織り込んじゃダメだけど
617デフォルトの名無しさん (アウアウカー Sa11-+fqb)
2018/05/14(月) 19:19:28.87ID:M+KhV3wka618デフォルトの名無しさん (ワッチョイ e327-0Spf)
2018/05/14(月) 20:12:46.13ID:CBd8Qc4H0 SVGやMathMLのような外部の名前区間が出てくるとか、Xamlのようにかっちりしたものを書きたい場合はXMLが有利
文字列や数値しか出てこないような簡単な構造ならJSONの方が便利なことも多い。
Trueなのかtrueなのかとか考えなくても良くて、エディタがサポートしてくれるし、エスケープの仕様とかがシンプルで、ファイルも小さい。逆に言うとその程度なのでわざわざ切り替えるほどでもないとは思う
文字列や数値しか出てこないような簡単な構造ならJSONの方が便利なことも多い。
Trueなのかtrueなのかとか考えなくても良くて、エディタがサポートしてくれるし、エスケープの仕様とかがシンプルで、ファイルも小さい。逆に言うとその程度なのでわざわざ切り替えるほどでもないとは思う
619デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/14(月) 20:37:51.15ID:5czuzhWO0 >>593
VCわけないんですか。
うーん・・・。
いろいろな設計方法があるということですね。
インスタンスの生成順として
A→B
A→C
とAからCにBのインスタンスを渡す方法は分かるのですが、
C→A
A→B
とインスタンスを生成した時、CにBのインスタンスを返すことって可能なのでしょうか?
VCわけないんですか。
うーん・・・。
いろいろな設計方法があるということですね。
インスタンスの生成順として
A→B
A→C
とAからCにBのインスタンスを渡す方法は分かるのですが、
C→A
A→B
とインスタンスを生成した時、CにBのインスタンスを返すことって可能なのでしょうか?
620デフォルトの名無しさん (アウアウカー Sa11-ZOQu)
2018/05/14(月) 20:54:23.97ID:g5WxNsfna デリゲート
621デフォルトの名無しさん (ワッチョイ f5d2-uwJI)
2018/05/14(月) 20:59:59.56ID:IVWzojCa0 【マンモグラフィー】おっぱい挟んで癌検査…必要?
http://egg.5ch.net/test/read.cgi/bio/1517115639/l50
【ペットフード】告発したら3人組に棍棒で襲われた
http://egg.5ch.net/test/read.cgi/hosp/1517110484/l50
【アマルガム】水銀を歯に? 厚労省『暴動が怖い』
http://mao.5ch.net/test/read.cgi/doctor/1517058870/l50
http://egg.5ch.net/test/read.cgi/bio/1517115639/l50
【ペットフード】告発したら3人組に棍棒で襲われた
http://egg.5ch.net/test/read.cgi/hosp/1517110484/l50
【アマルガム】水銀を歯に? 厚労省『暴動が怖い』
http://mao.5ch.net/test/read.cgi/doctor/1517058870/l50
622デフォルトの名無しさん (ワッチョイ c5eb-uwJI)
2018/05/14(月) 21:00:16.16ID:qPzo5Sk00623デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/14(月) 21:35:43.16ID:1pddwh+ma >>619
何でわざわざ話を複雑にするの?
class C
{
A a;
B b;
public C()
{
a = new A(this);
b = new B(a);
}
}
例えばこれじゃダメなの?
何でわざわざ話を複雑にするの?
class C
{
A a;
B b;
public C()
{
a = new A(this);
b = new B(a);
}
}
例えばこれじゃダメなの?
624デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/14(月) 21:38:33.33ID:Ju2ea7rBa DIコンテナとか諸々のイディオムを知らない初心者だからまぁしゃあない
MVCでもMVVMでもいいからチュートリアル的なものをひとつやっとくとだいぶ違うとは思う
MVCでもMVVMでもいいからチュートリアル的なものをひとつやっとくとだいぶ違うとは思う
625デフォルトの名無しさん (ワッチョイ 059a-k37M)
2018/05/14(月) 21:40:59.32ID:orCVIDzn0626デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/14(月) 23:18:38.41ID:coszmN5L0 馬鹿なこと考えないでジャンケンゲームでも作ってろって
627デフォルトの名無しさん (ブーイモ MM19-27Jw)
2018/05/14(月) 23:19:52.93ID:6thsxJoDM628デフォルトの名無しさん (ブーイモ MM43-Iyo3)
2018/05/14(月) 23:24:11.06ID:LQsoSslkM なんだか要領を得ないからわからないけど
Bを操作するメソッドをAに用意してCがA経由でBを操作するのはだめなのか?
Bを操作するメソッドをAに用意してCがA経由でBを操作するのはだめなのか?
629デフォルトの名無しさん (ワッチョイ 3d9e-pJrV)
2018/05/14(月) 23:36:29.55ID:0rMMZwm+0 MVC をわかってないような奴に、何も教えられない
まず、無料のRails チュートリアルで、MVC webアプリの設計から学べ
まず、無料のRails チュートリアルで、MVC webアプリの設計から学べ
630デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/15(火) 00:01:41.20ID:NfuIoln0a Railsってモデルがフォームの構造に依存するからなあ
あんなのAccessのフォームなんかと同レベルだよ
変な癖がつくから初心者には適さない
あんなのAccessのフォームなんかと同レベルだよ
変な癖がつくから初心者には適さない
631デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/15(火) 00:21:50.03ID:joJAW/ym0 >>629
スレチ
スレチ
632デフォルトの名無しさん (ワッチョイ 039d-uCqk)
2018/05/15(火) 06:26:55.76ID:bIQIvbQJ0 MVVMを理解するには何からはじめたらいいの?
633デフォルトの名無しさん (ドコグロ MM93-V2If)
2018/05/15(火) 07:15:54.13ID:OnclRViVM634デフォルトの名無しさん (ワッチョイ 039d-uCqk)
2018/05/15(火) 07:32:22.06ID:bIQIvbQJ0 やってみたけど難し過ぎて手に負えなかったってことだね。
635デフォルトの名無しさん (ブーイモ MM19-27Jw)
2018/05/15(火) 07:36:31.19ID:IL2LN/1vM >>632
Vue.jsあたりかな
XAMLはテンプレートやコマンドバインディングが複雑すぎて本質を掴みづらい
WebのMVVM系フレームワークのほうがずっと見通しが良くてMVVMの本質を素直に実装してる
Vue.jsあたりかな
XAMLはテンプレートやコマンドバインディングが複雑すぎて本質を掴みづらい
WebのMVVM系フレームワークのほうがずっと見通しが良くてMVVMの本質を素直に実装してる
636デフォルトの名無しさん (ワッチョイ ad8a-k/8h)
2018/05/15(火) 07:43:57.19ID:dqMabmxz0 まずはUNDOなりマクロを実装するのに何が必要か
考えると、「C」の動きが見えて来るかと思うけどね
GOFの最初の章にも説明はあるよ
考えると、「C」の動きが見えて来るかと思うけどね
GOFの最初の章にも説明はあるよ
637デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 07:48:40.53ID:WESx87C+0638デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 07:52:16.57ID:WESx87C+0 >>625
ご指摘を受けてメインのフォーム上でインスタンス管理しようとしているのですが、
アクセシビリティの一貫性というエラーが出てきています。
public partial class ExaminationForm : Form
{
public InitialSettingForm initialSettingForm;
public InitialValues initialValues;
で最後の行にアクセシビリティ一貫性のエラーが・・・。
3行目のpublicをinternalにするとエラー消えるのですがなんでだろう。
ご指摘を受けてメインのフォーム上でインスタンス管理しようとしているのですが、
アクセシビリティの一貫性というエラーが出てきています。
public partial class ExaminationForm : Form
{
public InitialSettingForm initialSettingForm;
public InitialValues initialValues;
で最後の行にアクセシビリティ一貫性のエラーが・・・。
3行目のpublicをinternalにするとエラー消えるのですがなんでだろう。
639デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/15(火) 07:56:03.82ID:jP3S3vDhM そのビューの入出力項目と隠し項目とユースケースを抽出するだけだよ
ログイン画面だったら
入出力項目として
・ユーザーid
・パスワード
隠し項目は無し
ユースケースは
・ログインする
なので
class LoginViewModel {
public string UserId { get; set; }
public string Password { get; set; }
public void Login() {
// login impl
}
}
こうなる
あとはViewがVMを監視するために変更通知イベントなどを実装しましょう
それだけ
ログイン画面だったら
入出力項目として
・ユーザーid
・パスワード
隠し項目は無し
ユースケースは
・ログインする
なので
class LoginViewModel {
public string UserId { get; set; }
public string Password { get; set; }
public void Login() {
// login impl
}
}
こうなる
あとはViewがVMを監視するために変更通知イベントなどを実装しましょう
それだけ
640デフォルトの名無しさん (ワントンキン MMa3-2hZ9)
2018/05/15(火) 07:59:07.77ID:5QugQ9oMM >>632へのレスな↑
641デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/15(火) 07:59:13.31ID:4jNLOtgZa >>638
InitialValuesクラスがinternalなんだろ
publicに変えれば意図通りになる
言っちゃ悪いけど正しい設計とか気にするレベルじゃないと思うよ
まずは汚くてもいいから一本何か形にできるようになってから考えればいい
InitialValuesクラスがinternalなんだろ
publicに変えれば意図通りになる
言っちゃ悪いけど正しい設計とか気にするレベルじゃないと思うよ
まずは汚くてもいいから一本何か形にできるようになってから考えればいい
642デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 08:38:53.30ID:WESx87C+0 >>641
ああああああああ!
そこなのかあああ!
classってデフォルトでinternalになるんですね。
というかinternalって省略されるから気づきませんでした。
ここで半日費やしてたのでものすごく助かりました。
ありがとうございます。m(__)m
ああああああああ!
そこなのかあああ!
classってデフォルトでinternalになるんですね。
というかinternalって省略されるから気づきませんでした。
ここで半日費やしてたのでものすごく助かりました。
ありがとうございます。m(__)m
643デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 08:42:40.68ID:WESx87C+0 >>641
一本ゲーム作ったんですが、form1(初期値)、form2(ゲーム)にほとんどぶっこんだオブジェクト指向ほぼ無視プログラムになってしまったので、
ゲーム内のデータ管理とform2だけでも分離しようとして悪戦苦闘しています。
はるか昔にBasicやったぐらいなので、インスタンスの参照渡しとかその辺がうまく実装できなくて・・・。
勉強用に買った本にもインスタンスの参照渡しなんて全く書いてないし・・・。(´・ω・`)
一本ゲーム作ったんですが、form1(初期値)、form2(ゲーム)にほとんどぶっこんだオブジェクト指向ほぼ無視プログラムになってしまったので、
ゲーム内のデータ管理とform2だけでも分離しようとして悪戦苦闘しています。
はるか昔にBasicやったぐらいなので、インスタンスの参照渡しとかその辺がうまく実装できなくて・・・。
勉強用に買った本にもインスタンスの参照渡しなんて全く書いてないし・・・。(´・ω・`)
644デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 08:47:43.78ID:WESx87C+0 あれでも
//インスタンス生成
InitialValues initialValues = new InitialValues();
//インスタンスの参照渡し
initialSettingForm.InitialValuesPointer = initialValues;
としているのに
フィールド”InitialValues"は割り当てらせません。常に規定値nullを返します。
となります。
実際にnull値が入ってるようで、initialSettingFormにインスタンスの参照は渡せていない模様・・・。
newしてるのになんで割り当てられませんと出るのでしょう??
//インスタンス生成
InitialValues initialValues = new InitialValues();
//インスタンスの参照渡し
initialSettingForm.InitialValuesPointer = initialValues;
としているのに
フィールド”InitialValues"は割り当てらせません。常に規定値nullを返します。
となります。
実際にnull値が入ってるようで、initialSettingFormにインスタンスの参照は渡せていない模様・・・。
newしてるのになんで割り当てられませんと出るのでしょう??
645デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 08:55:56.96ID:WESx87C+0 //インスタンス生成
×InitialValues initialValues = new InitialValues();
↓
this.initialValues = new InitialValues();
でした。すいません。
×InitialValues initialValues = new InitialValues();
↓
this.initialValues = new InitialValues();
でした。すいません。
646デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 09:03:30.06ID:WESx87C+0647デフォルトの名無しさん (ワッチョイ 3d9e-pJrV)
2018/05/15(火) 09:34:05.49ID:IdD83PdN0 >>643
C++ 以外のすべての言語で、インスタンスの参照渡しだろ
C++ 以外のすべての言語で、インスタンスの参照渡しだろ
648デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 10:42:46.03ID:WESx87C+0 >>647
初代MSX-Basicでゲーム作ってた頃以来のプログラミングなので(;^_^A
初代MSX-Basicでゲーム作ってた頃以来のプログラミングなので(;^_^A
649デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 10:47:12.03ID:WESx87C+0 アホな質問ですが、
Class InitialValue
に初期値を全部詰め込み、必要であればコントローラから参照しているのですが、
インスタンスの参照をinitialValueとすると
initialValue.StartPointX+hoge
などインスタンスの参照がくどくて読みづらい。
いっそiVとかしたいのですが、自分にしかわからない省略は良くないと聞いたもので・・・。
initialValue.StartPointX
initValue.StartPointX
iV.StartPointX
どれが読みやすいコードでしょうか?
Class InitialValue
に初期値を全部詰め込み、必要であればコントローラから参照しているのですが、
インスタンスの参照をinitialValueとすると
initialValue.StartPointX+hoge
などインスタンスの参照がくどくて読みづらい。
いっそiVとかしたいのですが、自分にしかわからない省略は良くないと聞いたもので・・・。
initialValue.StartPointX
initValue.StartPointX
iV.StartPointX
どれが読みやすいコードでしょうか?
650デフォルトの名無しさん (ワントンキン MMa3-2hZ9)
2018/05/15(火) 12:29:44.99ID:2i/hB9LUM651デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 13:05:19.58ID:WESx87C+0 >>650
えええ!
データはデータクラスで一元管理じゃないんですか?
そうしないとフォームなどからデータクラスを変更した時に、
コントロールクラス側でその通知を受け取って
もう一度データクラスからコントロールクラスにコピーする仕組みが必要になってきますよね。
えええ!
データはデータクラスで一元管理じゃないんですか?
そうしないとフォームなどからデータクラスを変更した時に、
コントロールクラス側でその通知を受け取って
もう一度データクラスからコントロールクラスにコピーする仕組みが必要になってきますよね。
652デフォルトの名無しさん (ワッチョイ d5bb-nFcL)
2018/05/15(火) 14:10:34.54ID:l7Fk1Hkl0 自分がアホだと分かってる割には自分の判断を信じてるのな
アホ草
アホ草
653デフォルトの名無しさん (ワッチョイ cba5-A5aB)
2018/05/15(火) 14:32:03.09ID:bP9crr2Q0 勉強のためにプロが書いた大きなプログラムを見たんだが
変数が全部4桁英数字でランダムに発生させてるような文字列だった
僕ら初心者には「これ何の変数だっけ?」と分かりにくいだけなんだけど
大きなプログラムだと万が一、変数がダブったりするのを避けるためにそうするんですかね?
変数一覧表かなにか作るんですか?
変数が全部4桁英数字でランダムに発生させてるような文字列だった
僕ら初心者には「これ何の変数だっけ?」と分かりにくいだけなんだけど
大きなプログラムだと万が一、変数がダブったりするのを避けるためにそうするんですかね?
変数一覧表かなにか作るんですか?
654デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/15(火) 14:38:53.82ID:WESx87C+0655デフォルトの名無しさん (ワッチョイ c5eb-7s4C)
2018/05/15(火) 14:54:54.48ID:oubZzl5I0 >>653
変な変数名は難読化されてるだけ
変な変数名は難読化されてるだけ
656デフォルトの名無しさん (ワッチョイ 23e3-Iyo3)
2018/05/15(火) 15:26:01.82ID:UPWhPqGh0 >>653
当然だよ。変数使うには課長級の決済が必要。変数管理台帳ファイルに全部記録されている。
当然だよ。変数使うには課長級の決済が必要。変数管理台帳ファイルに全部記録されている。
657デフォルトの名無しさん (ワッチョイ 2da5-A5aB)
2018/05/15(火) 17:20:29.21ID:nA4SMkbe0658デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/15(火) 18:44:33.69ID:Fj6Vms3Xa >>654
変数名が妥当かどうか聞いてるんじゃなかったの?w
そのInitialValueとやらのクラスを使う実装方法が妥当かどうかは実現すべき仕様を誰も知らないので
誰にも分からないと思うよw
ローカル変数の命名に関しては、型名InitialValueをそのまま変数名にしても
何をやってるのか理解できるような文脈なら変数名をivにしても同じことでしょう。
だったら短い方がいい。
ただしローカル変数でも説明的な名前の方が適切な場合もあるので馬鹿の一つ覚えはダメ。
情況に応じて柔軟に
変数名が妥当かどうか聞いてるんじゃなかったの?w
そのInitialValueとやらのクラスを使う実装方法が妥当かどうかは実現すべき仕様を誰も知らないので
誰にも分からないと思うよw
ローカル変数の命名に関しては、型名InitialValueをそのまま変数名にしても
何をやってるのか理解できるような文脈なら変数名をivにしても同じことでしょう。
だったら短い方がいい。
ただしローカル変数でも説明的な名前の方が適切な場合もあるので馬鹿の一つ覚えはダメ。
情況に応じて柔軟に
659デフォルトの名無しさん (オッペケ Sr21-8dm0)
2018/05/15(火) 19:35:30.36ID:9ix52upSr >>656
初心者が真に受けるからやめれ
初心者が真に受けるからやめれ
660デフォルトの名無しさん (ワッチョイ 23ea-Ca5/)
2018/05/16(水) 10:08:34.12ID:5p+fPd0U0 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++;
}
}
}
閾値がプラスとマイナスで条件式を変えたいんだけど、
中の処理が一回で済む書き方ってあります?
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++;
}
}
}
閾値がプラスとマイナスで条件式を変えたいんだけど、
中の処理が一回で済む書き方ってあります?
661デフォルトの名無しさん (スフッ Sd43-RQhD)
2018/05/16(水) 10:48:11.15ID:6eYS9/+hd =を含まない条件式。
そして閾値というキーワード。
まとめない方がいいよ。
そして閾値というキーワード。
まとめない方がいいよ。
662デフォルトの名無しさん (ワッチョイ 6de3-Iyo3)
2018/05/16(水) 11:18:13.11ID:XvxRw+U50 >>660
せめてCountメソッドにしとけと思うぐらい。
せめてCountメソッドにしとけと思うぐらい。
663デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/16(水) 11:47:06.88ID:B7aMvtuba >>660
単に同じ処理を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))
{
....
}
単に同じ処理を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))
{
....
}
664デフォルトの名無しさん (アウアウカー Sa11-+fqb)
2018/05/16(水) 12:22:33.98ID:CHLBL3ILa async/awaitって呼び出しのネストが深くなると、大元の呼び出しで波線が立ってすごくもどかしいんですが、気にしなくていいでしょうか?それとも呼び出しのやり方を見直したほうがいいのでしょうか
665デフォルトの名無しさん (スップ Sd03-UqMB)
2018/05/16(水) 12:29:36.06ID:+dukoeHCd >>664
ネスト関係なくね?
ネスト関係なくね?
666デフォルトの名無しさん (ブーイモ MM19-9jLD)
2018/05/16(水) 13:23:25.14ID:v6bC0eDAM >>660
カウントをCountメソッドにして引数に突っ込むラムダ式を閾値によって切り替える
カウントをCountメソッドにして引数に突っ込むラムダ式を閾値によって切り替える
667662,666 (ワッチョイ 23e3-Iyo3)
2018/05/16(水) 14:23:23.94ID:mC1mbnpn0 ごめん。Count以外の処理もあるんだね。おらの回答は無視してくれ。
668デフォルトの名無しさん (ワッチョイ a5d6-bFqk)
2018/05/16(水) 14:55:11.81ID:c5ZU3C2K0 dataGridViewのデータソースをBindingListにしています。
この時にデータの絞込を実装する方法はあるのでしょうか。
この時にデータの絞込を実装する方法はあるのでしょうか。
669デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/16(水) 19:51:48.39ID:oU1pyBE30670デフォルトの名無しさん (ワッチョイ 1a61-XGZI)
2018/05/17(木) 00:16:57.84ID:OeNqnCBl0 すいません。ちょっと教えてください。
//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に戻る方法を教えてください。
//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に戻る方法を教えてください。
671デフォルトの名無しさん (ワッチョイ 769a-NEzo)
2018/05/17(木) 00:28:09.71ID:yjgdFlmp0 >>670
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;
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;
672デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/17(木) 00:35:36.78ID:hTaKG8n8a >>670
目の前の問題を解決するよりまずインスタンスとは何かちゃんと理解した方がいいねw
目の前の問題を解決するよりまずインスタンスとは何かちゃんと理解した方がいいねw
673デフォルトの名無しさん (ワッチョイ 1a61-XGZI)
2018/05/17(木) 00:41:03.31ID:OeNqnCBl0 ありがとうございました。
大変助かりました。
大変助かりました。
674デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/17(木) 00:45:08.18ID:hTaKG8n8a もっと簡単にこれでもできるよw
var f2 = new Form2();
f2.Shown += (s, ev) => Hide();
f2.ShowDialog(this);
Show();
var f2 = new Form2();
f2.Shown += (s, ev) => Hide();
f2.ShowDialog(this);
Show();
675デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/17(木) 21:40:59.40ID:Kw1Q24F60 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してるのになんででしょう?
{
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してるのになんででしょう?
676デフォルトの名無しさん (ワッチョイ 5ad2-FO+i)
2018/05/17(木) 21:46:08.12ID:xJtGZ4kt0 >>675
静的メソッドだから
静的メソッドだから
677デフォルトの名無しさん (ワッチョイ 5ad2-HRP5)
2018/05/17(木) 23:37:38.13ID:03oIkg7y0 C#初心者です。
ある変数のその時々の値によって呼ぶメソッドを変えたいため初歩的にifやswitchで分岐させていたのですが、毎回分岐させるのもどうかと思い変数が変わるタイミングでデリゲートに代入して呼び出す方法を試してみました。
しかしながらパフォーマンステストを行ったところ、10程度の条件分岐であればifでメソッド呼び出し >>> デリゲートで呼び出しという結果でした。
速度を重視しつつ動的に呼び出すメソッドを変えるという場合はデリゲートではなく毎回条件分岐を行ったほうが良いということなのでしょうか?
ある変数のその時々の値によって呼ぶメソッドを変えたいため初歩的にifやswitchで分岐させていたのですが、毎回分岐させるのもどうかと思い変数が変わるタイミングでデリゲートに代入して呼び出す方法を試してみました。
しかしながらパフォーマンステストを行ったところ、10程度の条件分岐であればifでメソッド呼び出し >>> デリゲートで呼び出しという結果でした。
速度を重視しつつ動的に呼び出すメソッドを変えるという場合はデリゲートではなく毎回条件分岐を行ったほうが良いということなのでしょうか?
678デフォルトの名無しさん (ワッチョイ 5ad2-FO+i)
2018/05/17(木) 23:45:29.87ID:xJtGZ4kt0 >>677
どんな用途で?
どんな用途で?
679デフォルトの名無しさん (ブーイモ MMde-mCTX)
2018/05/17(木) 23:47:12.44ID:fnhXcK68M680デフォルトの名無しさん (ワッチョイ 7681-0XvN)
2018/05/17(木) 23:49:51.73ID:8WFSeAEB0 くだらねーパフォーマンスとくだらねー暗号化の話題が大好きだよな
681デフォルトの名無しさん (ワッチョイ 75eb-KqYp)
2018/05/18(金) 01:57:49.78ID:3OrmdyFD0 パフォーマンスは重要だよ
だけど、そんなのを語る以前に、コンピュータの仕組みについての素養を極端に欠く人が多すぎるんだよ
最近のC#入門書はよく出来ていて、大抵の本が最低限の仕組みが知識が身につくようページを割いて解説してるわけだけど・・・・分かっていない人ほど読み飛ばすんだな
その結果、コンピュータの仕組みからしたらとてもありえないことを言い出す高卒様が出来上がるんだ
だけど、そんなのを語る以前に、コンピュータの仕組みについての素養を極端に欠く人が多すぎるんだよ
最近のC#入門書はよく出来ていて、大抵の本が最低限の仕組みが知識が身につくようページを割いて解説してるわけだけど・・・・分かっていない人ほど読み飛ばすんだな
その結果、コンピュータの仕組みからしたらとてもありえないことを言い出す高卒様が出来上がるんだ
682デフォルトの名無しさん (ワッチョイ aa9d-zw5z)
2018/05/18(金) 02:22:20.29ID:tl8rJsN/0 >その結果、コンピュータの仕組みからしたらとてもありえないことを言い出す高卒様が出来上がるんだ
ありえないことなんてないだろ。頭硬すぎじゃねーの。「コンピュータはこうあるべきだ」とかに縛られてると新しい発想のソフトが生まれない。
ありえないことなんてないだろ。頭硬すぎじゃねーの。「コンピュータはこうあるべきだ」とかに縛られてると新しい発想のソフトが生まれない。
683デフォルトの名無しさん (ワッチョイ 75eb-KqYp)
2018/05/18(金) 02:48:57.75ID:3OrmdyFD0 新しいものができたってのならいいけど、言うこと為すこと高卒様じゃあ・・・・
684デフォルトの名無しさん (ワッチョイ fa27-ZkFG)
2018/05/18(金) 03:11:25.94ID:eSpLSQVO0 >>677
条件次第なのでなんとも言えない
インライン展開とかCPUのキャッシュとかまで関わってくる可能性がある
気にしなければいけないほどパフォーマンスを気遣うなら、JITの結果を比較したほうがいいけど、多くはそこまでするほどではない
条件次第なのでなんとも言えない
インライン展開とかCPUのキャッシュとかまで関わってくる可能性がある
気にしなければいけないほどパフォーマンスを気遣うなら、JITの結果を比較したほうがいいけど、多くはそこまでするほどではない
685デフォルトの名無しさん (ワッチョイ 1a23-RYnA)
2018/05/18(金) 04:39:51.09ID:rO+HsCUo0 デリゲート使ってる時点で初心者じゃないだろw
686デフォルトの名無しさん (ワッチョイ 5ad2-FO+i)
2018/05/18(金) 07:16:45.92ID:tpc+hoQ/0 >>685
いや、初心者がググった知識で背伸びしてるんだろ
いや、初心者がググった知識で背伸びしてるんだろ
687デフォルトの名無しさん (ワッチョイ 5ae3-+Nwo)
2018/05/18(金) 07:25:31.73ID:40IvU0mB0 デリゲートとラムダ式ってちゃうの?
688デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/18(金) 07:56:30.88ID:mGKF1mXv0689デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/18(金) 08:01:25.12ID:mGKF1mXv0 public class TargetOperation
{
Target[] target = new Target[Constants.MaximumNumberOfTarget];
public Target[] InitializeTarget()
{
for (int i = 0; i < Constants.MaximumNumberOfTarget; i++)
{
target[i] = new Target();
target[i].x = 100;
}
}
return target;
}
{
Target[] target = new Target[Constants.MaximumNumberOfTarget];
public Target[] InitializeTarget()
{
for (int i = 0; i < Constants.MaximumNumberOfTarget; i++)
{
target[i] = new Target();
target[i].x = 100;
}
}
return target;
}
690デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/18(金) 08:05:21.79ID:mGKF1mXv0 最後の行で
クラス、構造体、またはインターフェイス メンバーの宣言でトークン 'return' が無効です。
です。
またアホなことをしてそうな気がしますが、昨夜からわからず・・・。
クラス、構造体、またはインターフェイス メンバーの宣言でトークン 'return' が無効です。
です。
またアホなことをしてそうな気がしますが、昨夜からわからず・・・。
691デフォルトの名無しさん (ワッチョイ 76c9-NEzo)
2018/05/18(金) 08:09:16.96ID:WjwLG2oV0692デフォルトの名無しさん (ドコグロ MMfa-hlLb)
2018/05/18(金) 08:15:13.01ID:SuBLVM61M >>677
サンプルコードと結果貼れよ
サンプルコードと結果貼れよ
693デフォルトの名無しさん (アウアウカー Sa4d-amnG)
2018/05/18(金) 08:34:05.30ID:Yy5wJYpea デリゲート使うくらいならストラテジパターン使うけど
694デフォルトの名無しさん (ラクッペ MMa5-0XvN)
2018/05/18(金) 09:57:58.57ID:crDPuGzZM >>683
こんにちは猿の学校卒様
こんにちは猿の学校卒様
695デフォルトの名無しさん (ワッチョイ 6e8a-/w+O)
2018/05/18(金) 22:42:24.82ID:6iumh9Vb0 DataGridViewのセルのValueを取得すると、既定の型がObject型なんですが、既定の型をstringに変更する方法はありますか?
今はConvert.ToStringで変換してるんですが、記述数が多くなりすぎて参ってます。
今はConvert.ToStringで変換してるんですが、記述数が多くなりすぎて参ってます。
696デフォルトの名無しさん (ブーイモ MMfa-1jw3)
2018/05/18(金) 22:48:37.44ID:/dMxgLqhM As string
697デフォルトの名無しさん (アウアウカー Sa4d-5W05)
2018/05/19(土) 01:23:31.00ID:5ZvwKnWja C#初心者でフォームアプリを作っているんですが
例えばあるクラスAが非同期で外部機器を延々ポーリングしていて、トリガーが発生したらクラスBの処理を行いたいといった場合
・クラスAにクラスBのインスタンスを渡して、クラスBのメソッドを呼び出す
・クラスAに宣言したデリゲート(evemt?)にクラスBのメソッドをコールバック関数として登録し、クラスAはデリゲートを実行する
どちらが一般的なコーディングなんでしょうか
後者だと複数実行したい処理があるとかなり冗長な気がするんですが、他にセオリーあれば教えて頂きたいです
よろしくお願いします
例えばあるクラスAが非同期で外部機器を延々ポーリングしていて、トリガーが発生したらクラスBの処理を行いたいといった場合
・クラスAにクラスBのインスタンスを渡して、クラスBのメソッドを呼び出す
・クラスAに宣言したデリゲート(evemt?)にクラスBのメソッドをコールバック関数として登録し、クラスAはデリゲートを実行する
どちらが一般的なコーディングなんでしょうか
後者だと複数実行したい処理があるとかなり冗長な気がするんですが、他にセオリーあれば教えて頂きたいです
よろしくお願いします
698デフォルトの名無しさん (アウアウウー Sa39-RYnA)
2018/05/19(土) 01:32:36.76ID:VIvIbG0Fa 女?
699デフォルトの名無しさん (アウアウウー Sa39-mCTX)
2018/05/19(土) 01:53:30.54ID:ZECHChrda >>697
前者
デリゲートは現段階で呼び出し先が定まってなくて後でアドホックに処理を差し込みたいときに使うも
最初から呼ぶ相手が決まってるならそんなまどろっこしいことをしないで直接メソッドを呼べばよい
前者
デリゲートは現段階で呼び出し先が定まってなくて後でアドホックに処理を差し込みたいときに使うも
最初から呼ぶ相手が決まってるならそんなまどろっこしいことをしないで直接メソッドを呼べばよい
700デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/19(土) 02:13:21.77ID:FwiHY2dca >>697
騙されちゃダメwww
そういうのはイベントで実装する。
何故か?
前者で作っちゃったら、その外部デバイスをポーリングしてるクラス(普通はそのデバイスの名前を付けると思うけど)、
前者で作っちゃったら他に流用できないよ
騙されちゃダメwww
そういうのはイベントで実装する。
何故か?
前者で作っちゃったら、その外部デバイスをポーリングしてるクラス(普通はそのデバイスの名前を付けると思うけど)、
前者で作っちゃったら他に流用できないよ
701デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/19(土) 02:22:01.39ID:6pEEqPiCM >>700
YAGNI
もしそれが必要になったらそのとき変更すればいい
そして、ほとんどの場合において結局必要にならない
職業プログラマじゃないとアプリのコードを目にする機会って少ないから、
.NET Framework自体のクラスのような不特定多数向けの設計を真似してしまいがち
一般に、アプリケーションプログラミングにおいては無駄な拡張性は極力組み込まずに必要最小限のコードでコンパクトに実装するのが正解
そのほうが結果的に変更時のコストも小さくなるよ
YAGNI
もしそれが必要になったらそのとき変更すればいい
そして、ほとんどの場合において結局必要にならない
職業プログラマじゃないとアプリのコードを目にする機会って少ないから、
.NET Framework自体のクラスのような不特定多数向けの設計を真似してしまいがち
一般に、アプリケーションプログラミングにおいては無駄な拡張性は極力組み込まずに必要最小限のコードでコンパクトに実装するのが正解
そのほうが結果的に変更時のコストも小さくなるよ
702デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/19(土) 02:27:56.45ID:FwiHY2dca >>701
YAGNIなんか関係ない
アホか
必要もない仕様変更を想定して寛容に複雑にするのは愚かだが、
抽象度の高い(つまり汎用性も高い)方のクラスにより具体的(つまりそのプログラムでしか利用できない)クラスの
参照を持たせて依存させるなんてもっと愚かだ
YAGNIなんか関係ない
アホか
必要もない仕様変更を想定して寛容に複雑にするのは愚かだが、
抽象度の高い(つまり汎用性も高い)方のクラスにより具体的(つまりそのプログラムでしか利用できない)クラスの
参照を持たせて依存させるなんてもっと愚かだ
703デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/19(土) 02:32:39.74ID:6pEEqPiCM704デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/19(土) 02:38:49.87ID:FwiHY2dca >>703
たぶん言っても無駄な人だと思うけど、普通はViewをModelに依存させるように作るのであって
ModelをViewに依存させない(Modelの参照をViewが持ってはダメ)なのと同じ。
こんな基本が分からない奴が回答する側に回ってはダメだと思うw
たぶん言っても無駄な人だと思うけど、普通はViewをModelに依存させるように作るのであって
ModelをViewに依存させない(Modelの参照をViewが持ってはダメ)なのと同じ。
こんな基本が分からない奴が回答する側に回ってはダメだと思うw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 反撃の中居正広、一世一代の大勝負へ 元フジ女性アナとは「合意の上での性行為だった」と認識 ★13 [Ailuropoda melanoleuca★]
- 自民・小野寺政調会長「伸びる企業に国はえこひいきして応援する」 [少考さん★]
- Z世代の推し活は「消費しない」 月に1000円未満が最多 [少考さん★]
- 機動戦士ガンダム最新作『GQuuuuuuX(ジークアクス)』乃木坂46ネタで炎上 監督の鶴巻和哉氏は乃木坂ファン ★3 [Anonymous★]
- 「私たちの敗北かな」自民・高市早苗氏 消費税減税に否定的な石破首相の国会答弁受け [蚤の市★]
- 日産が早期退職募集へ、国内で18年ぶり…事務系社員を対象にすでに通知 [蚤の市★]
- 昭和平成の日本人に一番人気のあったパチンコ台なによ? [249548894]
- 大阪万博+103000 [931948549]
- 🏡🌞𝐒𝐮𝐧𝐝𝐚𝐲🌞🏡
- コンマで810でたら乳首晒す
- 【悲報】マツコデラックス正論「氷河期世代は希望の仕事につけなかっただけで諦めた幼稚な世代。誰もが望んだ仕事になれるわけないでしょ [257926174]
- ちんちんブラブラ←実際ブラブラするほど長くねえっつーのな!?www