「どんなにくだらない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
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ドコグロ MM07-2FKJ)
2018/04/06(金) 17:40:19.48ID:oKXVP34zM2デフォルトの名無しさん (ドコグロ MM9d-2FKJ)
2018/04/06(金) 17:40:50.10ID:oKXVP34zM (*゚∀゚)v2get!
3デフォルトの名無しさん (ワッチョイ 9917-vJpg)
2018/04/06(金) 18:51:49.77ID:+Q3Wd1R20 ワッチョイ付きGJ
4デフォルトの名無しさん (ワッチョイ 35c3-vJpg)
2018/04/06(金) 22:54:25.33ID:e2Dy7HRM05デフォルトの名無しさん (ワッチョイ 89e3-2FKJ)
2018/04/06(金) 23:04:09.92ID:mLoQW3Pc06デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/06(金) 23:16:26.79ID:5BPKzXhXa まあ、最初から言ってるように、抽象的な質問には抽象的な答えしか返しようがないw
例外に対処するイディオム的な物を教えてくれ、と言ってるように聞こえるけど
そんなものはないとしか...
例外に対処するイディオム的な物を教えてくれ、と言ってるように聞こえるけど
そんなものはないとしか...
7デフォルトの名無しさん (ワッチョイ 35c3-vJpg)
2018/04/07(土) 04:26:23.93ID:1UMv7o170 なかなか意図するところが伝わってないのですが、「例外処理をループの中に閉じ込めて、
例外が発生しなかった場合だけループを抜ける」という書き方を知りたかったのです
処理の内容とかはどうでも良くて、ループの囲い方とその抜け出し方を
なので、以前レスいただいたように、whileで無限ループを作って、tryブロック内にbreakを
置いてループを抜ける、という回答で私には十分でした
試してみれば一発で分かる話だったのですが、tryブロックから外側のループを直接抜ける
ことができると思っていなかったので、それに気づかなかったということです
皆様お付き合いいただいてありがとうございました
また質問をした際には付き合っていただけると幸いです
例外が発生しなかった場合だけループを抜ける」という書き方を知りたかったのです
処理の内容とかはどうでも良くて、ループの囲い方とその抜け出し方を
なので、以前レスいただいたように、whileで無限ループを作って、tryブロック内にbreakを
置いてループを抜ける、という回答で私には十分でした
試してみれば一発で分かる話だったのですが、tryブロックから外側のループを直接抜ける
ことができると思っていなかったので、それに気づかなかったということです
皆様お付き合いいただいてありがとうございました
また質問をした際には付き合っていただけると幸いです
8デフォルトの名無しさん (ワッチョイ 4aa6-XJPP)
2018/04/07(土) 12:22:01.31ID:mY3UUgcs0 困っているわけじゃないんだけどちょっと気になってることがあるので分かる方がいたら教えてください
次のコードを実行すると y に true が代入されますが、これはどういうときに使うのでしょうか
string x = null;
bool y = x is var z; // y に true が代入される
次のコードを実行すると y に true が代入されますが、これはどういうときに使うのでしょうか
string x = null;
bool y = x is var z; // y に true が代入される
9デフォルトの名無しさん (ワッチョイ eac3-lTAg)
2018/04/07(土) 13:18:31.43ID:pLXvASH10 private void button1_Click(object sender, EventArgs e)
{
if (sender is Button b)
{
}
}
方法: as 演算子と is 演算子を使用して安全にキャストする (C# プログラミング
ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/how-to-safely-cast-by-using-as-and-is-operators
{
if (sender is Button b)
{
}
}
方法: as 演算子と is 演算子を使用して安全にキャストする (C# プログラミング
ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/how-to-safely-cast-by-using-as-and-is-operators
10デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/07(土) 15:27:01.26ID:Uoh/XEtya チラシの裏
C#の構造体にこんな落とし穴が存在することをついさっき知った
http://ufcpp.net/study/csharp/resource/readonlyness/#this-rewrite
C#の構造体にこんな落とし穴が存在することをついさっき知った
http://ufcpp.net/study/csharp/resource/readonlyness/#this-rewrite
11デフォルトの名無しさん (ワッチョイ 25b3-fGB0)
2018/04/07(土) 16:25:57.16ID:jbOaYf+S0 public class Test
{
public int Id{get;set;}
public string Text{get;set;}
public string Other{get;set;}
}
このようなクラスを他プロジェクトやライブラリで
ICollectionの型として使い回したい場合
どのような依存をすればいいのでしょうか?
インターフェースでこの型実装を強制させるとかでしょうか?
インターフェースを使わないで他の参照方法のが望ましいのでしょうか?
{
public int Id{get;set;}
public string Text{get;set;}
public string Other{get;set;}
}
このようなクラスを他プロジェクトやライブラリで
ICollectionの型として使い回したい場合
どのような依存をすればいいのでしょうか?
インターフェースでこの型実装を強制させるとかでしょうか?
インターフェースを使わないで他の参照方法のが望ましいのでしょうか?
12デフォルトの名無しさん (ブーイモ MM2e-KUJn)
2018/04/07(土) 16:37:35.07ID:Y4t1vYpsM 継承
13デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/07(土) 18:27:15.12ID:7KARL849a >>11
悪口言いたくないんだけど、俺様用語が多過ぎて何を言ってるのか全然分からないよw
悪口言いたくないんだけど、俺様用語が多過ぎて何を言ってるのか全然分からないよw
14デフォルトの名無しさん (ワッチョイ 25b3-fGB0)
2018/04/07(土) 19:44:44.45ID:jbOaYf+S0 >>13
List〈Test〉等を他のプロジェクトでも扱いたいのでTest型で返す関数を作成して
それをこれをパッケージした時に他のプロジェクトでも受け取れるようにしたいって事ですね
public Test GetTest();
みたいな関数でTest型を使いまわせるようにしたいです
List〈Test〉等を他のプロジェクトでも扱いたいのでTest型で返す関数を作成して
それをこれをパッケージした時に他のプロジェクトでも受け取れるようにしたいって事ですね
public Test GetTest();
みたいな関数でTest型を使いまわせるようにしたいです
15デフォルトの名無しさん (ワッチョイ 25b3-fGB0)
2018/04/07(土) 19:53:33.05ID:jbOaYf+S0 >>12
Abstractって指摘も入ってるので
型クラス(Test)を実装しておき
これをベースにして
public Test GetTest();
を継承先に実装するようにするのが一番賢い設計ですかね・・・?
機能というよりはC♯を使った設計の質問と少し抽象的な話なのでスレチだったらすいません
Abstractって指摘も入ってるので
型クラス(Test)を実装しておき
これをベースにして
public Test GetTest();
を継承先に実装するようにするのが一番賢い設計ですかね・・・?
機能というよりはC♯を使った設計の質問と少し抽象的な話なのでスレチだったらすいません
16デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/07(土) 20:14:36.36ID:7KARL849a17デフォルトの名無しさん (ワッチョイ 25b3-fGB0)
2018/04/07(土) 20:27:35.94ID:jbOaYf+S0 >>16
dll状態だと戻り値Test型って何?ってならないかと思って構造どうすればいいのか悩んでましたけど
そもそもそういう事を考えること自体がおかしかったかもしれないです・・・
Test型のみを他のプロジェクトに流用させたい時とかも考えていたんですけど
そもそもその設計自体がおかしいと思い至りました
dll状態だと戻り値Test型って何?ってならないかと思って構造どうすればいいのか悩んでましたけど
そもそもそういう事を考えること自体がおかしかったかもしれないです・・・
Test型のみを他のプロジェクトに流用させたい時とかも考えていたんですけど
そもそもその設計自体がおかしいと思い至りました
18デフォルトの名無しさん (ワッチョイ 25b3-fGB0)
2018/04/09(月) 11:45:33.84ID:xaQ7bksS0 >>11
もうちょっと掘り下げて質問し直します
EntityFrameworkを使ってSQLにTest型の入出力をするクラスと
WebからスクレイピングしてTest型を返すクラスを作りたいのですが
ここでTest型を両方で共通で使いたいと思ってます
Test型はプロパティが減ることは無いですが追加はしたいものとします
この時Test型はどのように実装するのが好ましいのでしょうか?
今だとSQLに接続したい時とスクレイピングする時に読み込むクラスが分けれないので困っています
もうちょっと掘り下げて質問し直します
EntityFrameworkを使ってSQLにTest型の入出力をするクラスと
WebからスクレイピングしてTest型を返すクラスを作りたいのですが
ここでTest型を両方で共通で使いたいと思ってます
Test型はプロパティが減ることは無いですが追加はしたいものとします
この時Test型はどのように実装するのが好ましいのでしょうか?
今だとSQLに接続したい時とスクレイピングする時に読み込むクラスが分けれないので困っています
19デフォルトの名無しさん (ワッチョイ 25b3-fGB0)
2018/04/09(月) 11:56:58.59ID:xaQ7bksS020デフォルトの名無しさん (ワッチョイ fe76-u9U1)
2018/04/09(月) 23:41:29.92ID:XPDmd+wz0 C#というよりクラスタイプoop全般の話だと思うのですが、クラスを呼んだ時のパラメータは、コンストラクタに与えるのが良いのでしょうか、メソッドに与えるのが良いのでしょうか
両方できるので無造作に使ってるのですがOO的に間違った事をしていそうで
よろしくお願いします
両方できるので無造作に使ってるのですがOO的に間違った事をしていそうで
よろしくお願いします
21デフォルトの名無しさん (ワッチョイ 35e7-Aj6H)
2018/04/09(月) 23:43:55.56ID:fSLWGn340 クラスを呼ぶってなに?
22デフォルトの名無しさん (ワンミングク MM5a-1n+P)
2018/04/09(月) 23:44:42.97ID:MCzflE3YM 場合によるのでその都度考えてください
23デフォルトの名無しさん (バットンキン MM5a-u9U1)
2018/04/10(火) 06:59:42.37ID:EnsNk18IM >>21
インスタンスを作るのとメソッドをコールすることと意識が混ざっている素人で失礼しました
インスタンスを作る時にパラメータを渡すのと、メソッドの引数にパラメータを渡すの、oo的にはどちらが正しいのかお聞きしたかったです
インスタンスを作るのとメソッドをコールすることと意識が混ざっている素人で失礼しました
インスタンスを作る時にパラメータを渡すのと、メソッドの引数にパラメータを渡すの、oo的にはどちらが正しいのかお聞きしたかったです
24デフォルトの名無しさん (バットンキン MM5a-u9U1)
2018/04/10(火) 07:04:03.54ID:EnsNk18IM25デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/10(火) 12:42:18.35ID:KG4vxU3va >>24
正直何が聞きたいのかよく分からんけど、
いろいろ想像してみると、たぶん本当に聞きたいことはコンストラクタ云々じゃなくて
あるデータをプロパティとしてオブジェクトに持たせるかどうかをどういう基準で決めるか、
じゃないのかな。
例えばSystem.Timers.TimerにはpublicなプロパティIntervalがあるけど、
これをprivateかprotectedにしてユーザーからアクセスできないようにして、
Startメソッドの引数として与える仕様でも同じじゃないのかと
正直何が聞きたいのかよく分からんけど、
いろいろ想像してみると、たぶん本当に聞きたいことはコンストラクタ云々じゃなくて
あるデータをプロパティとしてオブジェクトに持たせるかどうかをどういう基準で決めるか、
じゃないのかな。
例えばSystem.Timers.TimerにはpublicなプロパティIntervalがあるけど、
これをprivateかprotectedにしてユーザーからアクセスできないようにして、
Startメソッドの引数として与える仕様でも同じじゃないのかと
26デフォルトの名無しさん (ワッチョイ fe76-u9U1)
2018/04/10(火) 20:54:09.92ID:i+408CBT027デフォルトの名無しさん (アウアウウー Sa11-lfby)
2018/04/10(火) 23:02:10.41ID:IMFDPHVza そのパラメーターが変更可能なのかどうかでやり方がいろいろある
インスタンスを作るときに最初に決めたパラメーターを変える必要がないもしくは変えたくないなら
コンストラクタで渡してしまえばいい
毎回変えるかもしれないならメソッドで渡せばいい
インスタンスを作るときに最初に決めたパラメーターを変える必要がないもしくは変えたくないなら
コンストラクタで渡してしまえばいい
毎回変えるかもしれないならメソッドで渡せばいい
28デフォルトの名無しさん (ワンミングク MM5a-1n+P)
2018/04/10(火) 23:36:50.93ID:v03YChI+M29デフォルトの名無しさん (ワッチョイ 89e3-2FKJ)
2018/04/10(火) 23:44:32.77ID:yYP5pHxz0 >>20
教科書的にはメソッドの引数しかありえない
教科書的にはメソッドの引数しかありえない
30デフォルトの名無しさん (アウアウウー Sa11-EMs9)
2018/04/11(水) 00:46:06.20ID:qa2FEnRqa >>26
基本的には全部引数でも間違いではない
あくまで関数が主であって、オブジェクトは関数のコンテキストに過ぎない、と考えるのが今時のプログラミング
端的に言えば、毎回同じ引数を渡すのが面倒だと思うならクラスにすることを検討するというだけの簡単な話
基本的には全部引数でも間違いではない
あくまで関数が主であって、オブジェクトは関数のコンテキストに過ぎない、と考えるのが今時のプログラミング
端的に言えば、毎回同じ引数を渡すのが面倒だと思うならクラスにすることを検討するというだけの簡単な話
31デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/11(水) 00:50:03.90ID:mkq9MyW9a >>26
いや、プロパティとして持つべきデータかの判断は一般的にはそんなに難しくないはず。
上に例に挙げたTimerだって、Startの引数でIntervalを指定する方式だと
問題や不自然さがあることはちょっと考えれば分かるはず
いや、プロパティとして持つべきデータかの判断は一般的にはそんなに難しくないはず。
上に例に挙げたTimerだって、Startの引数でIntervalを指定する方式だと
問題や不自然さがあることはちょっと考えれば分かるはず
32デフォルトの名無しさん (ブーイモ MMea-EMs9)
2018/04/11(水) 01:12:44.96ID:KJoDibHNM >>31
別に問題も不自然さも無いよ
System.Timers.TimerやSystem.Windows.Forms.Timerのインターバルがプロパティなのは、デザイナで設定できる必要があるからだ
実際、デザイナに貼れないSystem.Threading.Timerはコンストラクタかメソッドで周期を設定する
(ライブラリではなく)アプリケーションの開発に関して言えば、データクラス以外でプロパティを使う必要があるケースは稀だよ
データクラスを除けば、一度設定した値を取り出したくなるのは殆どの場合設計が間違っている
別に問題も不自然さも無いよ
System.Timers.TimerやSystem.Windows.Forms.Timerのインターバルがプロパティなのは、デザイナで設定できる必要があるからだ
実際、デザイナに貼れないSystem.Threading.Timerはコンストラクタかメソッドで周期を設定する
(ライブラリではなく)アプリケーションの開発に関して言えば、データクラス以外でプロパティを使う必要があるケースは稀だよ
データクラスを除けば、一度設定した値を取り出したくなるのは殆どの場合設計が間違っている
33デフォルトの名無しさん (ワイモマー MMd9-4k8A)
2018/04/11(水) 01:25:13.83ID:nomvJ3n3M >>20
・コンストラクタで渡す
var a = new Test(1, "A");
・メソッドで渡す
var b = new Test().SetId(2).SetName("B");
・オブジェクト初期化子で渡す
var c = new Test{
id = 3,
name = "C",
};
通常はコンストラクタで、メソッドチェーンはファクトリパターンでよく使う
オブジェクト初期化子は閉じてるクラスの可読性を上げたいときに使う
まあ統一性さえ確保出来ていればどれを選んでも大差ないよ
・コンストラクタで渡す
var a = new Test(1, "A");
・メソッドで渡す
var b = new Test().SetId(2).SetName("B");
・オブジェクト初期化子で渡す
var c = new Test{
id = 3,
name = "C",
};
通常はコンストラクタで、メソッドチェーンはファクトリパターンでよく使う
オブジェクト初期化子は閉じてるクラスの可読性を上げたいときに使う
まあ統一性さえ確保出来ていればどれを選んでも大差ないよ
34デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/11(水) 01:44:35.49ID:mkq9MyW9a >>32
System.Threading.Timerがプロパティを持たないのは何か意図があると思うが
使ったことがないのでよくわからない。(軽量であることが「コンセンプトだから?
あるいんた単に設計者の頭が古いだけかもしれない}
TimerのIntervalをプロパティとして実装しなかった場合。
(1) タイマー動作時にIntervallを変更するためにはStartを実行することになるが、
OOP的に不自然
(2) そもそもTimerオブジェクトは、少なくとも動作時にはIntervalの値を保持している。
だったらこれをプロパティとして公開する方が自然
System.Threading.Timerがプロパティを持たないのは何か意図があると思うが
使ったことがないのでよくわからない。(軽量であることが「コンセンプトだから?
あるいんた単に設計者の頭が古いだけかもしれない}
TimerのIntervalをプロパティとして実装しなかった場合。
(1) タイマー動作時にIntervallを変更するためにはStartを実行することになるが、
OOP的に不自然
(2) そもそもTimerオブジェクトは、少なくとも動作時にはIntervalの値を保持している。
だったらこれをプロパティとして公開する方が自然
35デフォルトの名無しさん (ワイモマー MMd9-4k8A)
2018/04/11(水) 02:01:15.23ID:nomvJ3n3M >>34
動作中にIntervalの値を変えられると困る場合、
Start時のみ設定可能にするのは別に不自然でもないよ
OOPの目的はメンテナンス性と事前の徹底したバグ潰しだから、値を変更できるルートを予め絞っておくことは理に適ってる
動作中にIntervalの値を変えられると困る場合、
Start時のみ設定可能にするのは別に不自然でもないよ
OOPの目的はメンテナンス性と事前の徹底したバグ潰しだから、値を変更できるルートを予め絞っておくことは理に適ってる
36デフォルトの名無しさん (アウアウエー Sab2-hYtV)
2018/04/11(水) 02:46:11.71ID:mkq9MyW9a >>35
現実と違う仮定を置いたら何でも言える
現実と違う仮定を置いたら何でも言える
3720 (バットンキン MMd9-u9U1)
2018/04/11(水) 07:04:30.38ID:Q5HB2TyRM 色々とアドバイスありがとうございます
統一性があれば、後はデザパタに従うか等で決定するのが一般的と解釈しました
田舎の中小1人情シスでコードレビューもされないので世間の動向が分からず参考になります
都会の大手の人は切磋琢磨し洗練されたコードを書くんだろうなと憧れます
統一性があれば、後はデザパタに従うか等で決定するのが一般的と解釈しました
田舎の中小1人情シスでコードレビューもされないので世間の動向が分からず参考になります
都会の大手の人は切磋琢磨し洗練されたコードを書くんだろうなと憧れます
39デフォルトの名無しさん (ワンミングク MM5a-1n+P)
2018/04/11(水) 11:00:26.66ID:uvPDHOSBM40デフォルトの名無しさん (ワッチョイ f3e3-78aE)
2018/04/12(木) 20:03:06.85ID:XQKU/nO90 見積り終わってるのに時間かけても無駄
一円の利益にもならない
今回の開発で黒字でなければ2回目はない
よって一番時間がかからない方法が正義
一円の利益にもならない
今回の開発で黒字でなければ2回目はない
よって一番時間がかからない方法が正義
41デフォルトの名無しさん (ワントンキン MM9f-xDE7)
2018/04/12(木) 20:52:33.85ID:bR5mzWUWM 業務系はそれでいいのかもね
保守するのは自分でも自社でもない
ならどんなに汚いコードでも早くしあげたほうが勝ち
ただし納品された顧客はとんでもない借金を背負うことになる
罪悪感ってないのかね
保守するのは自分でも自社でもない
ならどんなに汚いコードでも早くしあげたほうが勝ち
ただし納品された顧客はとんでもない借金を背負うことになる
罪悪感ってないのかね
42デフォルトの名無しさん (ワッチョイ f3e3-78aE)
2018/04/12(木) 21:50:50.18ID:XQKU/nO9043デフォルトの名無しさん (ワッチョイ b317-ycE0)
2018/04/12(木) 21:55:35.29ID:kW0JyjC+0 まーた始まった
44デフォルトの名無しさん (ワッチョイ f3e3-78aE)
2018/04/12(木) 21:57:30.18ID:XQKU/nO90 >>43
お前なんか全身elseで強化した俺の敵じゃねぇ
お前なんか全身elseで強化した俺の敵じゃねぇ
45デフォルトの名無しさん (ワッチョイ b317-ycE0)
2018/04/12(木) 22:06:57.86ID:kW0JyjC+0 >>44
ナマ言ってすみませんでした
ナマ言ってすみませんでした
46デフォルトの名無しさん (ワッチョイ f306-zmT2)
2018/04/13(金) 01:45:08.04ID:JNl7+QPK0 VisualStrudioのC#でPS4を入力を表示するソフトを作りたいんだけども、
どんなライブラリが便利かな?
どんなライブラリが便利かな?
47デフォルトの名無しさん (ワッチョイ e3d7-E1tv)
2018/04/13(金) 06:13:51.49ID:Om81X5Te048デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/13(金) 07:25:42.50ID:ko86uHhA0 日本語でOK
49デフォルトの名無しさん (ブーイモ MMa7-5Vj6)
2018/04/13(金) 18:47:05.89ID:GNeQyvWjM PS4を窓の外に出力する
入力すならまずはアマゾンで注文
入力すならまずはアマゾンで注文
50デフォルトの名無しさん (ワッチョイ f3e3-78aE)
2018/04/14(土) 14:59:27.41ID:x6wpDOBa0 作画ソフトを作成したいのですが
解像度より大きな領域を扱うことになりそうです
10%〜800%まで拡大縮小ができて
編集操作を行う必要があるのですが
どのような造りにしたら良いのでしょうか?
自分でスクロールバーを置いて編集領域は自前で描画するのでしょうか?
PictureBoxのようなコントロールでスクロール操作までできてしまうのでしょうか?
解像度より大きな領域を扱うことになりそうです
10%〜800%まで拡大縮小ができて
編集操作を行う必要があるのですが
どのような造りにしたら良いのでしょうか?
自分でスクロールバーを置いて編集領域は自前で描画するのでしょうか?
PictureBoxのようなコントロールでスクロール操作までできてしまうのでしょうか?
51デフォルトの名無しさん (ワッチョイ e3d7-E1tv)
2018/04/14(土) 15:03:33.67ID:A6JgIv/D0 ドロー系?
ペイント系?
ペイント系?
52デフォルトの名無しさん (ワッチョイ f3e3-78aE)
2018/04/14(土) 15:08:53.93ID:x6wpDOBa053デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/14(土) 15:26:50.36ID:whWbsAFN0 >>49
入力酢?
入力酢?
54デフォルトの名無しさん (アウアウエー Sadf-ynAY)
2018/04/14(土) 16:20:27.70ID:411sIKLXa55デフォルトの名無しさん (ワッチョイ cf9a-ycE0)
2018/04/14(土) 17:09:28.19ID:D8vt8UcC0 >>50
PictureBoxにスクロールバー表示するのは
https://dobon.net/vb/dotnet/graphics/scrollimage.html
例ではコードでプロパティ設定しているけどデザイナで設定しても同じようにできる
PictureBoxにスクロールバー表示するのは
https://dobon.net/vb/dotnet/graphics/scrollimage.html
例ではコードでプロパティ設定しているけどデザイナで設定しても同じようにできる
56デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/14(土) 17:16:13.98ID:A7r7eR+xa 模造紙レベルのでっかいpitureboxで画像のまま編集は現実的じゃないけどね
実際は表示部分だけ都度計算して描画することになる
ドロー系にしてもまあ普通は向いてない
C++でやるような内容だよ
実際は表示部分だけ都度計算して描画することになる
ドロー系にしてもまあ普通は向いてない
C++でやるような内容だよ
57デフォルトの名無しさん (ワッチョイ e3d7-E1tv)
2018/04/14(土) 18:55:16.11ID:A6JgIv/D0 論理座標とワールド座標、デバイス座標をよく理解すべき
58デフォルトの名無しさん (ワッチョイ f3e3-78aE)
2018/04/14(土) 19:31:26.26ID:x6wpDOBa05946 (ワッチョイ f306-zmT2)
2018/04/14(土) 20:40:54.18ID:iGVhaI1m0 すいません、PS4のコントローラをPCに接続して、
入力ボタンを表示したいのです。
入力ボタンを表示したいのです。
60デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/14(土) 21:18:11.42ID:whWbsAFN06146 (ワッチョイ f306-zmT2)
2018/04/14(土) 23:01:59.31ID:iGVhaI1m0 配置が違うだけなのか。
でも認識させるにはDirectXのラッパーとか使うしか無さそうなのね。
でも認識させるにはDirectXのラッパーとか使うしか無さそうなのね。
6246 (ワッチョイ f306-zmT2)
2018/04/17(火) 01:46:03.23ID:kRrGnVcd0 出来ましたー、ありがとうございます。
DirectInput
http://nanoappli.com/blog/archives/4772
Xinput
https://gist.github.com/kb10uy/7368358
DirectInput
http://nanoappli.com/blog/archives/4772
Xinput
https://gist.github.com/kb10uy/7368358
63デフォルトの名無しさん (ワッチョイ 33f9-LJHW)
2018/04/17(火) 13:28:00.94ID:NEdohK8t0 Task.Factory.StartNew(またはTask.Run)で生成したスレッドの優先度を変える方法はあるのでしょうか。
64デフォルトの名無しさん (ワッチョイ 33f9-LJHW)
2018/04/17(火) 14:11:36.85ID:NEdohK8t0 63ですがスレッドプールを使わず、スレッドで対応することにしました。
65デフォルトの名無しさん (ブーイモ MMff-v/YJ)
2018/04/17(火) 16:42:17.15ID:joazaAE7M なぜレガシィな方向へ走るw
66デフォルトの名無しさん (ワッチョイ 33f9-LJHW)
2018/04/17(火) 17:42:06.89ID:NEdohK8t0 >>65
Taskだと処理中に割り込み?が割と入ってきて、処理時間が遅延してしまうのです。
スレッドレベルで優先度を上げたいと思いまして。
結局Threadにして優先度を上げても割り込みは入ってくるのですが、多少マシになったような気がします。
Taskだと処理中に割り込み?が割と入ってきて、処理時間が遅延してしまうのです。
スレッドレベルで優先度を上げたいと思いまして。
結局Threadにして優先度を上げても割り込みは入ってくるのですが、多少マシになったような気がします。
67デフォルトの名無しさん (アウアウエー Sadf-ynAY)
2018/04/17(火) 18:11:29.55ID:xGjbcgxza どんだけタイムクリティカルな要件なのよww
68デフォルトの名無しさん (ワッチョイ 7fac-SNXU)
2018/04/17(火) 21:11:51.39ID:kHPr9dOS0 パソコンぶん投げてPLCにしよう
69デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/17(火) 23:58:42.15ID:zXGef27d0 picでも使えよ
70デフォルトの名無しさん (ワッチョイ cfc9-ycE0)
2018/04/18(水) 00:12:24.46ID:WXSfEMqB0 >>66
それ単にスレッド生成で遅延しているなんてオチじゃないよな?
それ単にスレッド生成で遅延しているなんてオチじゃないよな?
71デフォルトの名無しさん (ワッチョイ 33f9-LJHW)
2018/04/18(水) 10:23:12.22ID:+D/RfByR0 受託案件なのでC#で作らざるを得ないのです。
自分自身はファーム屋なので、マイコンでやりたいんですけどね。
>>70
まだ遅延の原因はわかってませんです
生成時だけの遅延じゃないので、違うとは思いますが・・・
自分自身はファーム屋なので、マイコンでやりたいんですけどね。
>>70
まだ遅延の原因はわかってませんです
生成時だけの遅延じゃないので、違うとは思いますが・・・
72デフォルトの名無しさん (ワントンキン MM9f-xDE7)
2018/04/18(水) 12:14:14.43ID:wyULW0oVM プロセスの優先度もあげるといいらしいぞ
73デフォルトの名無しさん (ブーイモ MMff-v/YJ)
2018/04/18(水) 12:31:04.61ID:WeKuLBkMM 糞多い要素群にlinqで遅延実行+ループとか?
74デフォルトの名無しさん (アウアウカー Sa47-d/GC)
2018/04/18(水) 18:10:56.40ID:jY7uFFSia >>71
Win32で作る
Win32で作る
75デフォルトの名無しさん (ワッチョイ ff7f-RdoA)
2018/04/18(水) 21:09:40.32ID:unjr58vW0 >>71
GCやJITは対策してる?
GCやJITは対策してる?
76デフォルトの名無しさん (ワッチョイ 8aeb-8q6u)
2018/04/19(木) 18:59:16.22ID:Yr3hu/ey0 ユーザーコントロールのプロパティをデザイン時のプロパティウィンドウでコンボボックスにしたく
人様のサイトで恐縮なのですが、以下をほぼコピペしました。
http://blog.okazuki.jp/entry/20070207/1170820895
が、テキストボックスのままで選択肢になりません。
公開プロパティに、なにか別の宣言が要りましたでしょうか?
人様のサイトで恐縮なのですが、以下をほぼコピペしました。
http://blog.okazuki.jp/entry/20070207/1170820895
が、テキストボックスのままで選択肢になりません。
公開プロパティに、なにか別の宣言が要りましたでしょうか?
77デフォルトの名無しさん (ワッチョイ 8aeb-8q6u)
2018/04/19(木) 19:15:06.26ID:Yr3hu/ey0 継承ユーザーコントロールだったのですが、継承元にも
[System.ComponentModel.TypeConverter(typeof(〜 が必要だっただけみたいです。
すみませんでした。
[System.ComponentModel.TypeConverter(typeof(〜 が必要だっただけみたいです。
すみませんでした。
78デフォルトの名無しさん (ワッチョイ 8aeb-8q6u)
2018/04/19(木) 19:48:23.98ID:Yr3hu/ey0 引き続きすみません。
たとえばユーザーコントロールに
Folder
File
という2つのstring型の公開プロパティを用意します。
IDEのプロパティウィンドウからFolderを設定(通常のテキストボックス)すると
そのフォルダ内のファイルを舐めてFileの選択肢にしたいのです。
TypeConverterで、静的な候補が出て選択できるところまでは出来たんですが
動的に候補を変更する場合、どうするんでしょうか。
IDEのプロパティウィンドウに、どうアクセスしたらいいのか、そこが分かれば何とかなる気がしてるんですが。
たとえばユーザーコントロールに
Folder
File
という2つのstring型の公開プロパティを用意します。
IDEのプロパティウィンドウからFolderを設定(通常のテキストボックス)すると
そのフォルダ内のファイルを舐めてFileの選択肢にしたいのです。
TypeConverterで、静的な候補が出て選択できるところまでは出来たんですが
動的に候補を変更する場合、どうするんでしょうか。
IDEのプロパティウィンドウに、どうアクセスしたらいいのか、そこが分かれば何とかなる気がしてるんですが。
79デフォルトの名無しさん (ワッチョイ 4ed3-9jjH)
2018/04/20(金) 01:01:44.37ID:xYBhqDqu0 >>78
Visual Studio .NET プロパティ ブラウザによるコンポーネントの本格的な RAD 化
https://msdn.microsoft.com/ja-jp/library/aa302334.aspx#vsnetpropbrow_topic04
このドロップダウンでできると思う
Visual Studio .NET プロパティ ブラウザによるコンポーネントの本格的な RAD 化
https://msdn.microsoft.com/ja-jp/library/aa302334.aspx#vsnetpropbrow_topic04
このドロップダウンでできると思う
80デフォルトの名無しさん (ワッチョイ e7d2-B8Oq)
2018/04/20(金) 05:10:41.06ID:OZAtcLZg0 初歩的な質問で申し訳ないのですが、
戻り値なしのメソッドと、引数なしのメソッドはどういう状況で使用するのでしょうか?
戻り値なしのメソッドは
その後にどこかに代入したりする予定はなく出力が目的の場合に使用すると
読んだのですがその通りですか?
万が一、後で代入したくなった場合に備えて取り敢えず戻り値は設定しておいたりしないのでしょうか?
引数なしのメソッドは
引数がない(=変数宣言がない?)とそのメソッド自体、動いてくれないイメージがあるのですが、実際は動きますよね
何も値を与えられていないのに動くのはどうしてですか?
宜しくお願いします・・・
戻り値なしのメソッドと、引数なしのメソッドはどういう状況で使用するのでしょうか?
戻り値なしのメソッドは
その後にどこかに代入したりする予定はなく出力が目的の場合に使用すると
読んだのですがその通りですか?
万が一、後で代入したくなった場合に備えて取り敢えず戻り値は設定しておいたりしないのでしょうか?
引数なしのメソッドは
引数がない(=変数宣言がない?)とそのメソッド自体、動いてくれないイメージがあるのですが、実際は動きますよね
何も値を与えられていないのに動くのはどうしてですか?
宜しくお願いします・・・
81デフォルトの名無しさん (ワッチョイ 1781-5Fj3)
2018/04/20(金) 05:52:22.55ID:6mS8vUfV0 >>80
オーバーロードで検索してみると良い
オーバーロードで検索してみると良い
82デフォルトの名無しさん (ワッチョイ e7d2-B8Oq)
2018/04/20(金) 06:02:00.71ID:OZAtcLZg0 >>80
例えば
int Add(int a, int b) {
int c;
c = a + b;
return c;
}
というメソッドですと、Add(3, 5)ならaとbにそれぞれ3、5が入りc=8となると思うのですが、
abc = xyz,Add()といった風に使用しても、cの値も何も返ってこないのに、
引数なしのコードを見かける様な・・・
例えば
int Add(int a, int b) {
int c;
c = a + b;
return c;
}
というメソッドですと、Add(3, 5)ならaとbにそれぞれ3、5が入りc=8となると思うのですが、
abc = xyz,Add()といった風に使用しても、cの値も何も返ってこないのに、
引数なしのコードを見かける様な・・・
83デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/20(金) 06:29:51.46ID:wjKqEKEv0 >>80
デフォルト引数で統合しなされ
デフォルト引数で統合しなされ
84デフォルトの名無しさん (ワッチョイ 4ee8-9jjH)
2018/04/20(金) 09:05:47.03ID:3LwLCVWq085デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/20(金) 09:40:55.97ID:9jg3Q7S0086デフォルトの名無しさん (ワッチョイ 4ee8-9jjH)
2018/04/20(金) 09:50:08.64ID:3LwLCVWq0 >>85
君がうまい説明してあげてね
君がうまい説明してあげてね
87デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/20(金) 10:06:30.92ID:9jg3Q7S0088デフォルトの名無しさん (スフッ Sdba-XoVt)
2018/04/20(金) 11:57:10.77ID:DKeEixVwd >>80
メソッドは外注さんへの作業手順書みたいなもん
引数は、その作業に必要な情報がある場合に外部から渡すための窓口
情報不要なら省略できる
引数なし=こっちから情報渡さなくても作業できるよね?みたいな感じ
メソッド内で作業が完了したあと、なんか返事してほしい場合は戻り値をつかう
返事不要の場合void
戻り値なし=作業さえしてくれたら結果レポートいらね!
メソッドコール(外注さんへ仕事依頼)したら作業はちゃんとされるので、結果のレポートを使って、さらになんか作業をしたいなら戻り値よこせよ!って作業手順書に書いておけばいいし、仕事さえしてくれたら、返事不要なら戻り値いらない
メソッドは外注さんへの作業手順書みたいなもん
引数は、その作業に必要な情報がある場合に外部から渡すための窓口
情報不要なら省略できる
引数なし=こっちから情報渡さなくても作業できるよね?みたいな感じ
メソッド内で作業が完了したあと、なんか返事してほしい場合は戻り値をつかう
返事不要の場合void
戻り値なし=作業さえしてくれたら結果レポートいらね!
メソッドコール(外注さんへ仕事依頼)したら作業はちゃんとされるので、結果のレポートを使って、さらになんか作業をしたいなら戻り値よこせよ!って作業手順書に書いておけばいいし、仕事さえしてくれたら、返事不要なら戻り値いらない
89デフォルトの名無しさん (スプッッ Sd5a-BoQL)
2018/04/20(金) 11:59:20.85ID:o6RSJKQdd >>80
コントロールにupdateってメソッドがあるだろ?
これは自身の再描画をするだけのメソッドなんだから引数を取りようがない
また再描画するだけなのに失敗するわけないんだから戻り値もいらない
無理やり成否を返すこともできるが、失敗する可能性があるメソッドに様変わりし、呼び出し元で失敗を意識した実装にしなきゃいけないから負担を強いることになる
って感じかな
コントロールにupdateってメソッドがあるだろ?
これは自身の再描画をするだけのメソッドなんだから引数を取りようがない
また再描画するだけなのに失敗するわけないんだから戻り値もいらない
無理やり成否を返すこともできるが、失敗する可能性があるメソッドに様変わりし、呼び出し元で失敗を意識した実装にしなきゃいけないから負担を強いることになる
って感じかな
90デフォルトの名無しさん (オッペケ Sr3b-goBS)
2018/04/20(金) 12:23:49.11ID:9v7e203Yr 引数のとりようも戻り値の返しようもなんぼでもあるわ
へんな忖度みたいな真似すんなボケ
へんな忖度みたいな真似すんなボケ
91デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/20(金) 12:38:55.75ID:9jg3Q7S0092デフォルトの名無しさん (ドコグロ MM83-xI9k)
2018/04/20(金) 12:44:06.99ID:yZlfbYWOM オブジェクトとは何かね
93デフォルトの名無しさん (ブーイモ MMba-Mp6C)
2018/04/20(金) 12:52:07.95ID:wBOVlPyYM94デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/20(金) 12:58:41.12ID:luJyaFhBa95デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/20(金) 13:08:12.31ID:9jg3Q7S0096デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/20(金) 13:26:58.95ID:luJyaFhBa97デフォルトの名無しさん (スプッッ Sd5a-BoQL)
2018/04/20(金) 13:48:46.74ID:o6RSJKQdd >>91
0と1?何を言ってるのかわからん
14時に集合ってメール出して、全員からわかったみたいな返信きてもうざいだろ?
だから、14時集合(返信不要)ってメールをおくる方が受け取る側も返信しなくていいし、送る側も無駄な受信を減らせるしでwinwin
この辺りは経験だったりセンスだろうな
0と1?何を言ってるのかわからん
14時に集合ってメール出して、全員からわかったみたいな返信きてもうざいだろ?
だから、14時集合(返信不要)ってメールをおくる方が受け取る側も返信しなくていいし、送る側も無駄な受信を減らせるしでwinwin
この辺りは経験だったりセンスだろうな
98デフォルトの名無しさん (ワッチョイ 9a06-Mp6C)
2018/04/20(金) 14:03:32.43ID:0EVFmTU60 >>95
成否の観点では単にフィールドの値を設定するメソッドを鑑みても
メモリに書き込み失敗の概念があっても、代入に失敗の概念はない
設定前の値を返すにしても、わざわざ退避する処理を強制するのか?
想定外の発生は基本的に例外をぶん投げるものだし
常人が気にしない様な事を考えて躓いてそうである
成否の観点では単にフィールドの値を設定するメソッドを鑑みても
メモリに書き込み失敗の概念があっても、代入に失敗の概念はない
設定前の値を返すにしても、わざわざ退避する処理を強制するのか?
想定外の発生は基本的に例外をぶん投げるものだし
常人が気にしない様な事を考えて躓いてそうである
99デフォルトの名無しさん (ワッチョイ 1ad2-1SSC)
2018/04/20(金) 19:05:49.61ID:W6WTRmLV0 関数型プログラミングの才能があるな
100デフォルトの名無しさん (ワッチョイ fa27-ZOCN)
2018/04/20(金) 20:30:59.54ID:kti4nAgp0 >>95
戻り値がないのは常に「成功」を返す関数と考えて良い
C#では失敗した場合は例外を投げるので、成否を戻り値で判定することはない
C言語とかgoみたいに例外という概念がない言語は、成功したかどうかが戻り値に入ってることが多い
それでも絶対に失敗しないか、失敗したらプログラムが強制終了するような処理は戻り値がない場合もある
戻り値がないのは常に「成功」を返す関数と考えて良い
C#では失敗した場合は例外を投げるので、成否を戻り値で判定することはない
C言語とかgoみたいに例外という概念がない言語は、成功したかどうかが戻り値に入ってることが多い
それでも絶対に失敗しないか、失敗したらプログラムが強制終了するような処理は戻り値がない場合もある
101デフォルトの名無しさん (ワッチョイ e717-9jjH)
2018/04/20(金) 21:05:01.73ID:Yi5F0BBw0 >C#では失敗した場合は例外を投げるので、成否を戻り値で判定することはない
えぇ…
えぇ…
102デフォルトの名無しさん (ワッチョイ 9a7f-fvqh)
2018/04/20(金) 21:14:39.58ID:7WlEIf700103デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/20(金) 21:42:51.61ID:9jg3Q7S00104デフォルトの名無しさん (ワッチョイ 9a7f-fvqh)
2018/04/20(金) 21:52:31.13ID:7WlEIf700105デフォルトの名無しさん (ワッチョイ fa27-ZOCN)
2018/04/20(金) 22:00:49.23ID:kti4nAgp0106デフォルトの名無しさん (ブーイモ MM26-9jjH)
2018/04/20(金) 22:22:51.74ID:UaVetxYYM 関数という言葉に惑わされてるということかな
メソッドは数学で言う関数そのものじゃない
(y=x+1とかそういうのじゃない)
やることを順番に書いてあるもの
サブルーチン
戻り値が定義されてたそれを返すだけ
ほかの言語で戻り値がないものは関数と区別してる言語もあるけど
わざわざ二種類つくるより戻り値なしで共通にしてある
メソッドは数学で言う関数そのものじゃない
(y=x+1とかそういうのじゃない)
やることを順番に書いてあるもの
サブルーチン
戻り値が定義されてたそれを返すだけ
ほかの言語で戻り値がないものは関数と区別してる言語もあるけど
わざわざ二種類つくるより戻り値なしで共通にしてある
107デフォルトの名無しさん (ワッチョイ 9a06-Mp6C)
2018/04/20(金) 23:07:04.14ID:0EVFmTU60108デフォルトの名無しさん (ワッチョイ b38a-nSRR)
2018/04/20(金) 23:38:50.80ID:iIb0CR1w0 いろいろ調べたり考えたりしたのですが、解決出来ないので質問します。
https://dotnetfiddle.net/SoCII1
このようなコードがあって
List<ITest>にいれていったときに
ListのXだけを全て足して返す関数は出来たのですが、今後ITestのプロパティは増える予定で、それぞれに足して返す関数をつけたいです。
そのときに似たようなコードになるので一つに纏めようとしたのですが中々できず困っています。どのような書き方をすればいいでしょうか?
https://dotnetfiddle.net/SoCII1
このようなコードがあって
List<ITest>にいれていったときに
ListのXだけを全て足して返す関数は出来たのですが、今後ITestのプロパティは増える予定で、それぞれに足して返す関数をつけたいです。
そのときに似たようなコードになるので一つに纏めようとしたのですが中々できず困っています。どのような書き方をすればいいでしょうか?
109デフォルトの名無しさん (ワッチョイ fa27-ZOCN)
2018/04/21(土) 02:21:21.95ID:lHgu/nQp0 >>108
基本的にはプロパティを動的に指定するのはリフレクションとかDictionaryを駆使とか、何らかの形でコストを払うことになると思う
状況にもよるけど、コンパイル時に確定してるならT4テンプレートとかコード生成とかで対応するのが一番正しいんじゃないかな
基本的にはプロパティを動的に指定するのはリフレクションとかDictionaryを駆使とか、何らかの形でコストを払うことになると思う
状況にもよるけど、コンパイル時に確定してるならT4テンプレートとかコード生成とかで対応するのが一番正しいんじゃないかな
110デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/21(土) 02:34:40.78ID:m0t/bmNLa >>108
そんなものは自作しなくてもList自身(正確にはIEnumerable<T>だけど)が持ってるw
名前もそのまんまSumだからよくMSDNを見てみ
https://msdn.microsoft.com/ja-jp/library/6sh2ey19.aspx
そんなものは自作しなくてもList自身(正確にはIEnumerable<T>だけど)が持ってるw
名前もそのまんまSumだからよくMSDNを見てみ
https://msdn.microsoft.com/ja-jp/library/6sh2ey19.aspx
111デフォルトの名無しさん (ワッチョイ 1781-5Fj3)
2018/04/21(土) 03:42:29.63ID:MaG6OThU0 >>110
んー、エスパーだけど、質問者はプロパティをforeachみたいに回して全てにsumするようなのをプロパティの数に限らず1行で書きたいってことじゃね?
んー、エスパーだけど、質問者はプロパティをforeachみたいに回して全てにsumするようなのをプロパティの数に限らず1行で書きたいってことじゃね?
112デフォルトの名無しさん (スプッッ Sd5a-BoQL)
2018/04/21(土) 07:59:48.29ID:z4AHgN+yd >>103
メソッドの戻り値とコンピュータの世界は全く関係がない
低級のマシン語をわかりやすくするための高級言語なんで初心者用スレで〜というよりは見当違いなことを言ってる
っで、結果とは低級レベルでの結果とメソッドレベルの結果のどちらをさしている?
低級レベルでの結果が表に出てこないのは普通のこと
メソッドレベルで見てもメールの送信済マークを含めてないのでメソッド戻り値の返さない
メソッドの戻り値とコンピュータの世界は全く関係がない
低級のマシン語をわかりやすくするための高級言語なんで初心者用スレで〜というよりは見当違いなことを言ってる
っで、結果とは低級レベルでの結果とメソッドレベルの結果のどちらをさしている?
低級レベルでの結果が表に出てこないのは普通のこと
メソッドレベルで見てもメールの送信済マークを含めてないのでメソッド戻り値の返さない
113デフォルトの名無しさん (ワッチョイ b38a-nSRR)
2018/04/21(土) 08:37:04.35ID:i7kmKmol0114デフォルトの名無しさん (アウアウカー Sa43-pa6j)
2018/04/21(土) 10:09:06.82ID:XwcbmKc5a 連続時間的な関数ってあります?
115デフォルトの名無しさん (ワッチョイ e717-9jjH)
2018/04/21(土) 10:52:04.99ID:WnG+wEwt0 連続時間 is 何
116デフォルトの名無しさん (ワッチョイ 239f-xI9k)
2018/04/21(土) 11:00:42.32ID:k3YYD8ov0 エポック秒のことかなぁ
117デフォルトの名無しさん (アウアウカー Sa43-pa6j)
2018/04/21(土) 12:09:05.27ID:Y1+gKOzZa アナログメーター的なやつです
118デフォルトの名無しさん (ワッチョイ 239f-xI9k)
2018/04/21(土) 12:39:56.06ID:k3YYD8ov0 >>117
プログレスバーでググってみてはどうか
プログレスバーでググってみてはどうか
119デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/21(土) 13:49:43.77ID:gbvJ8fZ/a 時空連続体と空目した
120デフォルトの名無しさん (ワッチョイ 4ec9-pa6j)
2018/04/21(土) 18:22:05.73ID:V5ZTEj450 プログレスバーってもろデジタルメーターじゃないですか
数百〜数千の筋繊維を一本の糸で表現できるような関数はないですかね
数百〜数千の筋繊維を一本の糸で表現できるような関数はないですかね
121デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/21(土) 18:29:18.80ID:LQq77Lfe0 you!画像ファイル扱っちゃいなyo!
122デフォルトの名無しさん (ワッチョイ 4e9a-9jjH)
2018/04/21(土) 18:52:17.79ID:rKiuu7+10123デフォルトの名無しさん (アウーイモ MM47-S9Qq)
2018/04/22(日) 00:35:03.08ID:XfnBBJY5M プリンタの印刷設定の縦横を変更したいです。
DefaultPageSettings.Landscape プロパティから変えられるのは確認しましたが
一時的なものではなく、プログラムが終了したあとも変わったままにしておきたいのですが
なにか方法はないでしょうか?
http://bbs.wankuma.com/index.cgi?mode=al2&namber=2377&KLOG=2
このサイトも参考にしてSetHdevmodeなどもやってみましたが、プログラム終了後にもとに戻ってしまいます。
Windows7,10 64bitです
DefaultPageSettings.Landscape プロパティから変えられるのは確認しましたが
一時的なものではなく、プログラムが終了したあとも変わったままにしておきたいのですが
なにか方法はないでしょうか?
http://bbs.wankuma.com/index.cgi?mode=al2&namber=2377&KLOG=2
このサイトも参考にしてSetHdevmodeなどもやってみましたが、プログラム終了後にもとに戻ってしまいます。
Windows7,10 64bitです
124デフォルトの名無しさん (ワッチョイ 4ee8-9jjH)
2018/04/22(日) 00:38:42.31ID:2TRizD7z0 筋繊維を糸で表現ってそれもう物理演算じゃん
125デフォルトの名無しさん (ワッチョイ 7ae7-5Mny)
2018/04/22(日) 01:10:17.94ID:6eouzp2p0 何がしたいのかよう分からん
>数百〜数千の筋繊維を一本の糸で表現できるような関数
が欲しいなら
「アナログメーター」なんて単語は出てこんと思うのだが
なんか特殊な知識が必要なことやってるなら
なおさらキチンと説明しないといかんだろう
>数百〜数千の筋繊維を一本の糸で表現できるような関数
が欲しいなら
「アナログメーター」なんて単語は出てこんと思うのだが
なんか特殊な知識が必要なことやってるなら
なおさらキチンと説明しないといかんだろう
126デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/22(日) 02:16:18.41ID:I1dKrIqPa >>123
次回そのプログラムを起動した時も同じ設定が適用されるようにしたい、
という意味なら、Landscape を永続化すればいいだけでしょう。
同じ設定が他のプログラムにも適用されるようにしたい、って意味なら、
たぶんそんなことは出来ないんじゃないかと...
よく知らんけど
次回そのプログラムを起動した時も同じ設定が適用されるようにしたい、
という意味なら、Landscape を永続化すればいいだけでしょう。
同じ設定が他のプログラムにも適用されるようにしたい、って意味なら、
たぶんそんなことは出来ないんじゃないかと...
よく知らんけど
127デフォルトの名無しさん (アウーイモ MM47-S9Qq)
2018/04/22(日) 07:35:23.33ID:XfnBBJY5M128デフォルトの名無しさん (ワッチョイ e717-9jjH)
2018/04/22(日) 09:24:44.12ID:RctEGmkE0 他のプログラムでも同じ設定を使いたいんならプリンタドライバの設定変更以外に方法はない
てかそれってC#関係ないよね
てかそれってC#関係ないよね
129デフォルトの名無しさん (ワッチョイ 0bb3-9jjH)
2018/04/22(日) 19:36:51.14ID:YjWQK7FP0 [[['[] ]]] { {] ]][ '[][][] [][] [][][] [] '[] []
130デフォルトの名無しさん (ササクッテロラ Sp3b-0nT5)
2018/04/22(日) 21:23:13.30ID:AB//w8nmp c#勉強始めたての者です。
indexofで文字列を検索しようとしているのですが、長文を検索するとエラーが出てしまいます。
MSDNを見ると戻り値がint32とあり、戻り値がintの範囲を超えるとlongエラーになるように推測していますが対応方法はあるのでしょうか。
indexofで文字列を検索しようとしているのですが、長文を検索するとエラーが出てしまいます。
MSDNを見ると戻り値がint32とあり、戻り値がintの範囲を超えるとlongエラーになるように推測していますが対応方法はあるのでしょうか。
131デフォルトの名無しさん (ササクッテロラ Sp3b-0nT5)
2018/04/22(日) 21:24:53.81ID:AB//w8nmp すみません上記文中のlongは誤植ですので読み飛ばしてください。
132デフォルトの名無しさん (ワッチョイ 4703-goBS)
2018/04/22(日) 21:30:18.18ID:PsQCMKRd0 そう言われるともうlongしか見えない
133デフォルトの名無しさん (ワッチョイ 3aac-im5j)
2018/04/22(日) 21:37:33.88ID:hhQLBFvv0 文字数がintに収まるように文字列を切り出しながら検索すればいいんじゃないか
もちろん切れ目に検索対象の文字列が有るときの対策して切り出さなきゃならんけど
もちろん切れ目に検索対象の文字列が有るときの対策して切り出さなきゃならんけど
134デフォルトの名無しさん (ワッチョイ b3e3-0nT5)
2018/04/22(日) 22:10:29.71ID:VNNE7LSc0 ありがとうございます。
matchメソッドというのを見つけました。
全然見つからなかったのに投稿し出来すぐ見つかるものですね。
matchで出来なかったらint分割にトライしようと思います。
matchメソッドというのを見つけました。
全然見つからなかったのに投稿し出来すぐ見つかるものですね。
matchで出来なかったらint分割にトライしようと思います。
135デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/22(日) 22:23:25.89ID:f9F/Sp5R0 フォーム上のコントロールを、プログラムから参照するいい方法はないでしょうか
SplitContainer上に配置した合計20個のチェックボックスについて、textをファイルから
読み込んだものに動的に変更したいと考えています
手元の書籍(作って覚えるc#)では、forループの中で
splitContainer1.Panel2.Controls[i].Text = mistakeText;
という形でやっていましたが、今回自分で用意したフォームはほかにもテキストボックスや
ラベルがあり、うまくチェックボックスを対象としてくれません
デザイン画面で配置した順番にやや依拠しているようですが、最後においたものほど添字が
小さそうだ、程度しかわかりません
今後デザインを変更する、あるいはチェックボックスを増やす可能性を考えると、何らかの
プロパティで順番を指定できるといいなと思いますが、発見できませんでした
Form1.Designer.cs のメンバ変数宣言欄に記載がある順番のように思えますが、IDEが
自動生成したコードを並べ替えるのも何やら気持ち悪く、今の所手を出していません
今回はチェックボックスですが、ほかにもラベルを順に参照するとか、テキストボックスを
順に参照する方法などあれば、教えていただけると助かります
なお、今回のフォームでは、とりあえずチェックボックスの名前は初期値(checkBox1など)に
なっています
SplitContainer上に配置した合計20個のチェックボックスについて、textをファイルから
読み込んだものに動的に変更したいと考えています
手元の書籍(作って覚えるc#)では、forループの中で
splitContainer1.Panel2.Controls[i].Text = mistakeText;
という形でやっていましたが、今回自分で用意したフォームはほかにもテキストボックスや
ラベルがあり、うまくチェックボックスを対象としてくれません
デザイン画面で配置した順番にやや依拠しているようですが、最後においたものほど添字が
小さそうだ、程度しかわかりません
今後デザインを変更する、あるいはチェックボックスを増やす可能性を考えると、何らかの
プロパティで順番を指定できるといいなと思いますが、発見できませんでした
Form1.Designer.cs のメンバ変数宣言欄に記載がある順番のように思えますが、IDEが
自動生成したコードを並べ替えるのも何やら気持ち悪く、今の所手を出していません
今回はチェックボックスですが、ほかにもラベルを順に参照するとか、テキストボックスを
順に参照する方法などあれば、教えていただけると助かります
なお、今回のフォームでは、とりあえずチェックボックスの名前は初期値(checkBox1など)に
なっています
136デフォルトの名無しさん (ワッチョイ 4e9a-9jjH)
2018/04/22(日) 22:25:29.08ID:tqpEX+7y0 >>135
if (Controls[i] is CheckBox)
if (Controls[i] is CheckBox)
137デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/22(日) 22:43:50.37ID:VtQV/Dmoa >>135
根本的に考え違いをしてると思う。
たぶんありもしないものをあるはずだと勝手に思い込んでる。
コントロールをテーブル参照したいなら自分で明示的にテーブル(配列)を
宣言しましょう。
デザイナには君が欲しいと思っているものを忖度して自動で作ってくれるような
都合のいい機能は存在しない。
根本的に考え違いをしてると思う。
たぶんありもしないものをあるはずだと勝手に思い込んでる。
コントロールをテーブル参照したいなら自分で明示的にテーブル(配列)を
宣言しましょう。
デザイナには君が欲しいと思っているものを忖度して自動で作ってくれるような
都合のいい機能は存在しない。
138デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/22(日) 23:18:57.35ID:f9F/Sp5R0139デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/22(日) 23:35:35.52ID:Kp2niQOT0140デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/22(日) 23:50:44.34ID:f9F/Sp5R0141デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/23(月) 00:02:33.07ID:Xa6TKCtV0 >>140
意味がわからない
何がしたいの?
@コントロールを特定する必要がある
A複数のコントロールに共通の処理がしたい
Aにしか目が行ってないけど@をやらなきゃいけない時点で
Aの方法なんてエレガントにできたってウンコブリブリじゃん
意味がわからない
何がしたいの?
@コントロールを特定する必要がある
A複数のコントロールに共通の処理がしたい
Aにしか目が行ってないけど@をやらなきゃいけない時点で
Aの方法なんてエレガントにできたってウンコブリブリじゃん
142デフォルトの名無しさん (ワッチョイ 4e81-txNp)
2018/04/23(月) 02:11:14.44ID:kNAX3uRd0 オムツの取り替えまでやって欲しい要介護は大人しくVBやってろ
143デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/23(月) 03:09:44.29ID:0OUySOiKa >>140
だから、配列が欲しいなら配列を自分で作ろうよ。
配列が欲しい、でもなんだか自分で配列を書くのは嫌だ。
この発想がおかしい。
var cbs = new[] {CheckBox1, CheckBox2, ...};
これ書くのがそんなに面倒?
変な方向に努力する方が余程面倒でしょ
ローカル変数じゃなくてメンバ変数かプロパティとして実装する場合だって手間は大差ないよ
だから、配列が欲しいなら配列を自分で作ろうよ。
配列が欲しい、でもなんだか自分で配列を書くのは嫌だ。
この発想がおかしい。
var cbs = new[] {CheckBox1, CheckBox2, ...};
これ書くのがそんなに面倒?
変な方向に努力する方が余程面倒でしょ
ローカル変数じゃなくてメンバ変数かプロパティとして実装する場合だって手間は大差ないよ
144デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/23(月) 06:08:01.85ID:wp3u/AuE0145デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/23(月) 06:12:48.73ID:Xa6TKCtV0146デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/23(月) 07:30:25.22ID:wp3u/AuE0 >>145
自動でやってくれると言うか、Controls[n] の n に相当する部分を、何らかのプロパティで
持っているのではないかと思ったのです
それがわかれば、IDEでプロパティを書き換えてやればそれで済むな、と
あるいはそれがなければ、例えば
for (int i = 0; i < CBOX_ELEMENTS; i++) {
string s = "checkBox" + (i+1).ToString();
Controls(s).Text = ...
}
みたいな形で指定できないかな、と思っていたのですが、これは無理そうですし
自動でやってくれると言うか、Controls[n] の n に相当する部分を、何らかのプロパティで
持っているのではないかと思ったのです
それがわかれば、IDEでプロパティを書き換えてやればそれで済むな、と
あるいはそれがなければ、例えば
for (int i = 0; i < CBOX_ELEMENTS; i++) {
string s = "checkBox" + (i+1).ToString();
Controls(s).Text = ...
}
みたいな形で指定できないかな、と思っていたのですが、これは無理そうですし
147デフォルトの名無しさん (アウアウカー Sa43-AqIk)
2018/04/23(月) 07:45:09.58ID:7CTglbRxa 配列作って突っ込んどくのが何より簡単だし自由だろ
148デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/23(月) 08:09:08.34ID:voecBiJS0 >>146
インデクサじゃ駄目なの?
インデクサじゃ駄目なの?
149デフォルトの名無しさん (ドコグロ MM83-i2qG)
2018/04/23(月) 08:16:30.00ID:C4a+50u5M >>146
ちがくね?
お前がやりたいのって別のデータとid(?)が一致する項目にデータを入れていきたいんじゃねーの?
でもそれってコントロールを特定する必要があるんだよね?
コントロールとデータを紐付ける何かはあるの?
ちがくね?
お前がやりたいのって別のデータとid(?)が一致する項目にデータを入れていきたいんじゃねーの?
でもそれってコントロールを特定する必要があるんだよね?
コントロールとデータを紐付ける何かはあるの?
150デフォルトの名無しさん (ドコグロ MM92-xI9k)
2018/04/23(月) 08:33:16.26ID:KdhM7QliM GetAllControlsのカウント取るとかそういう?
151デフォルトの名無しさん (ワンミングク MM8a-/Wij)
2018/04/23(月) 08:37:13.12ID:+9lDlXeaM Type.GetPropertiesの方かな
152デフォルトの名無しさん (ワッチョイ b7e3-9jjH)
2018/04/23(月) 09:14:18.74ID:y08K2+qf0 VB6はコントロール配列があったけどなー。.Netの世界にはないからの。
153デフォルトの名無しさん (ワッチョイ 4ee8-9jjH)
2018/04/23(月) 12:01:51.66ID:joGGyVH30 ttps://dobon.net/vb/dotnet/control/findcontrolbyname.html
名前で探せばいいのでは?
名前で探せばいいのでは?
154デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/23(月) 12:30:43.09ID:b1ST+81Ba だから配列に突っ込めば済む話を何でわざわざより面倒な方法で解決しようとするのw
155デフォルトの名無しさん (オッペケ Sr3b-ceek)
2018/04/23(月) 12:34:22.72ID:HUKatAJtr156デフォルトの名無しさん (オッペケ Sr3b-ceek)
2018/04/23(月) 12:39:13.94ID:HUKatAJtr >>154
まあ一言でいうと、わざわざ自分で配列を作らなくても、それを実現する方法はすでに存在するだろうと思ってたのです
配列作ったら「そんなことしなくてもこう書けば一発で参照できるのに」って言われる方法があるんじゃないかと
まあ一言でいうと、わざわざ自分で配列を作らなくても、それを実現する方法はすでに存在するだろうと思ってたのです
配列作ったら「そんなことしなくてもこう書けば一発で参照できるのに」って言われる方法があるんじゃないかと
157デフォルトの名無しさん (ワンミングク MM8a-/Wij)
2018/04/23(月) 12:39:38.75ID:+9lDlXeaM >>155
その下にインデクサによる説明もあるだろw
その下にインデクサによる説明もあるだろw
158デフォルトの名無しさん (ワッチョイ 9a7f-fvqh)
2018/04/23(月) 13:33:10.44ID:48XgAlPp0 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Name ).ToArray();
}
private CheckBox[] checkBoxes;
}
{
public Form1()
{
InitializeComponent();
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Name ).ToArray();
}
private CheckBox[] checkBoxes;
}
159デフォルトの名無しさん (ワッチョイ 8aeb-8q6u)
2018/04/23(月) 17:06:56.96ID:FWk6fNJV0 public class B : private A
{
}
みたいなこと C# じゃ出来ないんだっけ?
{
}
みたいなこと C# じゃ出来ないんだっけ?
160デフォルトの名無しさん (スップ Sd5a-lyLw)
2018/04/23(月) 17:10:12.77ID:BY7S8wKYd >>159
継承元をprotectedにすれば継承したクラスからしかアクセスできないようにはできる
継承元をprotectedにすれば継承したクラスからしかアクセスできないようにはできる
161デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/23(月) 17:25:36.44ID:b1ST+81Ba >>159
何言ってるのかわかりませんw
何言ってるのかわかりませんw
162デフォルトの名無しさん (スップ Sd5a-lyLw)
2018/04/23(月) 18:05:17.14ID:BY7S8wKYd そのクラス経由でしかアクセスできないようにしたいってことじゃないの?
163デフォルトの名無しさん (ワントンキン MM8a-Pnzf)
2018/04/23(月) 18:18:07.68ID:CCSIsfHWM ゆとりしか居ないのかなぁ
C#はprivate継承はサポートしてないよ
フィールドに持たせて移譲メソッド書くしかない
C#はprivate継承はサポートしてないよ
フィールドに持たせて移譲メソッド書くしかない
164デフォルトの名無しさん (スプッッ Sdba-0snq)
2018/04/23(月) 18:31:05.83ID:VMRJeQmYd >>163
ゆとりなんてもうオッサンやでおじいちゃん?
ゆとりなんてもうオッサンやでおじいちゃん?
165デフォルトの名無しさん (スップ Sd5a-lyLw)
2018/04/23(月) 18:38:07.42ID:BY7S8wKYd これ参考にすればいいのかな
http://ufcpp.net/study/csharp/oo_conceal.html
protected internal 同一プロジェクト内のクラス内部、または、派生クラスの内部からのみアクセス可能
private protected (C# 7.2 以降)同一プロジェクト内のクラス内部、かつ、派生クラスの内部からのみアクセス可能
こういうこと?
http://ufcpp.net/study/csharp/oo_conceal.html
protected internal 同一プロジェクト内のクラス内部、または、派生クラスの内部からのみアクセス可能
private protected (C# 7.2 以降)同一プロジェクト内のクラス内部、かつ、派生クラスの内部からのみアクセス可能
こういうこと?
166デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/23(月) 18:52:13.60ID:Xa6TKCtV0167135 (ワッチョイ 3bc3-9jjH)
2018/04/23(月) 21:02:25.52ID:wp3u/AuE0 皆様いろいろありがとうございました
>>158
書いてくださった方法が、ほぼ私が求めていたものを完璧に実現しています
抱かれてもいいくらい惚れました
ただ、試してみたところピックアップされる順番は必ずしもコントロールを配置した
順番通りではなく、はっきりした法則性も見いだせませんでした
テストプログラムを書いて、インデックスと見た目を一致させるようデザイナで
コントロールを並べ替えようかとも思いましたが、後日コントロールを追加した際
悩むことになりそうなのでやめておきました
>>153
結局この方法でコントロールを検索し、発見したコントロールをリストに追加するという
方法で対応することにしました
>>154
配列に突っ込むにも、コード上に直接 checkBox1 とか checkBox2 とかのリテラルを
埋め込みたくなかったので、検索した上で配列を作ることにしました
>>148, 150, 151
実は書いていることがわからないレベルなので、これから勉強します
「作って覚える」は一通りやったので、「独習c#」を紐解いてみます
>>166
これで解決しました
158の方法で解決するかと思っていたのですが、やってみたところバラバラの順番でした
皮肉でもなんでもなく、コントロールの座標でソートとか、なぜそういう操作をしたいのだろうと
推測したのか教えていただけると嬉しいです
今後も質問すると思いますので、疑問点がわかりやすい文章を意識する必要があるので
>>158
書いてくださった方法が、ほぼ私が求めていたものを完璧に実現しています
抱かれてもいいくらい惚れました
ただ、試してみたところピックアップされる順番は必ずしもコントロールを配置した
順番通りではなく、はっきりした法則性も見いだせませんでした
テストプログラムを書いて、インデックスと見た目を一致させるようデザイナで
コントロールを並べ替えようかとも思いましたが、後日コントロールを追加した際
悩むことになりそうなのでやめておきました
>>153
結局この方法でコントロールを検索し、発見したコントロールをリストに追加するという
方法で対応することにしました
>>154
配列に突っ込むにも、コード上に直接 checkBox1 とか checkBox2 とかのリテラルを
埋め込みたくなかったので、検索した上で配列を作ることにしました
>>148, 150, 151
実は書いていることがわからないレベルなので、これから勉強します
「作って覚える」は一通りやったので、「独習c#」を紐解いてみます
>>166
これで解決しました
158の方法で解決するかと思っていたのですが、やってみたところバラバラの順番でした
皮肉でもなんでもなく、コントロールの座標でソートとか、なぜそういう操作をしたいのだろうと
推測したのか教えていただけると嬉しいです
今後も質問すると思いますので、疑問点がわかりやすい文章を意識する必要があるので
168デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/23(月) 21:07:14.52ID:QriAiZTC0 今日からC#勉強し始めたけど、
結構ネスト深くなる言語っぽいね、これ。こんな…
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
try
{
checked
{
sbyte a = 64;
sbyte b = 65;
sbyte c = (sbyte)(a + b);
}
}
catch (OverflowException ex)
{
Console.Write(ex.Message);
}
}
}
}
結構ネスト深くなる言語っぽいね、これ。こんな…
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
try
{
checked
{
sbyte a = 64;
sbyte b = 65;
sbyte c = (sbyte)(a + b);
}
}
catch (OverflowException ex)
{
Console.Write(ex.Message);
}
}
}
}
169デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/23(月) 21:09:42.34ID:b1ST+81Ba170デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/23(月) 21:09:53.25ID:QriAiZTC0 namespaceとかcheckedがブロックなのが何かなぁ…
171デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/23(月) 21:27:15.55ID:wp3u/AuE0172デフォルトの名無しさん (ワッチョイ 9a7f-fvqh)
2018/04/23(月) 21:37:46.50ID:48XgAlPp0173デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/23(月) 21:45:21.31ID:Xa6TKCtV0 >>167
おそらく配置したコントロールから欲しい情報は座標とサイズぐらいしかない
それらの特定情報は別ファイルにある
なのでコントロールが上から
もしくは左からか順番に取得できれば
別ファイルに記述した通りの順番で情報を並べることができる
Controlsで取得できる順番はよく知らないけど
作った順かあるいわなんの特徴もなくランダムか何かを保証するものではないのかな?と
おそらく配置したコントロールから欲しい情報は座標とサイズぐらいしかない
それらの特定情報は別ファイルにある
なのでコントロールが上から
もしくは左からか順番に取得できれば
別ファイルに記述した通りの順番で情報を並べることができる
Controlsで取得できる順番はよく知らないけど
作った順かあるいわなんの特徴もなくランダムか何かを保証するものではないのかな?と
174デフォルトの名無しさん (ワッチョイ 9a7f-fvqh)
2018/04/23(月) 22:10:47.18ID:48XgAlPp0 >>173
Controlsが返す順番は保証されてないけど、自分でソートすれば良い。
(1)TabIndex順 (各CheckBoxにタブオーダー(TabIndex)を設定しておく)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.TabIndex ).ToArray();
(2)Tag順 (各CheckBoxのTagに数値を設定しておく)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Tag ).ToArray();
(3-1)Location順(左から)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Location.X ).ThenBy( x=> x.Location.Y ).ToArray();
(3-2)Location順(上から)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Location.Y ).ThenBy( x=> x.Location.X ).ToArray();
Controlsが返す順番は保証されてないけど、自分でソートすれば良い。
(1)TabIndex順 (各CheckBoxにタブオーダー(TabIndex)を設定しておく)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.TabIndex ).ToArray();
(2)Tag順 (各CheckBoxのTagに数値を設定しておく)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Tag ).ToArray();
(3-1)Location順(左から)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Location.X ).ThenBy( x=> x.Location.Y ).ToArray();
(3-2)Location順(上から)
this.checkBoxes = this.Controls.OfType< CheckBox >().OrderBy( x => x.Location.Y ).ThenBy( x=> x.Location.X ).ToArray();
175デフォルトの名無しさん (ワッチョイ 179b-Jtac)
2018/04/23(月) 22:33:20.75ID:fnmaDcrK0176デフォルトの名無しさん (ワッチョイ 73d7-TcdZ)
2018/04/23(月) 22:53:14.98ID:pYJnxPYX0 WPFのサンプルでありそうな話だ
177デフォルトの名無しさん (アウアウアー Sa06-S9Qq)
2018/04/23(月) 23:04:57.82ID:0nhwdYRFa178デフォルトの名無しさん (ワッチョイ 1781-5Fj3)
2018/04/24(火) 00:40:53.09ID:U7B9av/W0 >>168
そのtry意味ないんだけど。。
そのtry意味ないんだけど。。
179デフォルトの名無しさん (ワッチョイ 239f-xI9k)
2018/04/24(火) 00:55:02.77ID:P/LpDfjz0 >>178
ネストのイメージ書きたかっただけだろうよ
ネストのイメージ書きたかっただけだろうよ
180デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/24(火) 06:02:26.80ID:PLNFE8AC0181デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 11:44:27.10ID:MJ0NRymv0182デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 12:45:33.19ID:MJ0NRymv0 うぇぇ、C#、goto文使えるし…
183デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 13:15:16.40ID:MJ0NRymv0 うーん、string x = "10"; に対して
x.toString(); するんじゃなくて、int.Parse(x); するのか…。
xオブジェクトにintegerを吐き出させるのではなく、
integerオブジェクトにxオブジェクトを与えてintegerを吐き出させる…。
これは初めての体験だな…。
x.toString(); するんじゃなくて、int.Parse(x); するのか…。
xオブジェクトにintegerを吐き出させるのではなく、
integerオブジェクトにxオブジェクトを与えてintegerを吐き出させる…。
これは初めての体験だな…。
184デフォルトの名無しさん (ワッチョイ 4ec9-9jjH)
2018/04/24(火) 13:18:45.32ID:Ajvhvjmq0 何もかも間違っててワロタw
185デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 13:34:52.91ID:MJ0NRymv0 なにゆえ?
186デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 13:45:01.31ID:MJ0NRymv0 expression-bodied関数は、なんかエロいな…
187デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 13:46:08.52ID:MJ0NRymv0 やってる事は違うけど、考え方的にはCのマクロに近いのかな…
188デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 13:50:59.68ID:MJ0NRymv0 LINQ…、エロいな…。
189デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 13:53:53.94ID:MJ0NRymv0 関数名がアッパーキャメルなのは感心せんなぁ…
190デフォルトの名無しさん (ワッチョイ 17d3-9jjH)
2018/04/24(火) 14:00:18.73ID:a0zqzGgA0 ここ質問スレなんで日記は他所でな
191デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 14:04:20.23ID:MJ0NRymv0 なんだよ、ToString()メソッドあるじゃねぇかよ…。
192デフォルトの名無しさん (ワッチョイ 47c9-8E8L)
2018/04/24(火) 14:05:02.22ID:MJ0NRymv0193デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/24(火) 14:39:12.39ID:5gRbnpaG0 VisualStudioでC#のフォームアプリを開発するときに
プロジェクトのプロパティから
出力の種類を「コンソールアプリ」にして
デバッグ用のConsole.WriteLineを出力できるようにしてるんだけど
リリースするときは、種類を「Windowsアプリ」にするだけで
コード中のConsole.WriteLineはコメントアウトとかしなくても
大丈夫ですか?
プロジェクトのプロパティから
出力の種類を「コンソールアプリ」にして
デバッグ用のConsole.WriteLineを出力できるようにしてるんだけど
リリースするときは、種類を「Windowsアプリ」にするだけで
コード中のConsole.WriteLineはコメントアウトとかしなくても
大丈夫ですか?
194デフォルトの名無しさん (ワッチョイ 9a7f-fvqh)
2018/04/24(火) 15:12:41.47ID:aRAC41/V0 >>193
デバッグ用に文字列を出したいなら、using System.Diagnostics;して、Debug.WriteLine()とか使うべき。
これならリリースビルドにするだけで無効になるからコメントアウトも不要。
リリースビルドでも使いたいなら、Trace.WriteLine()。
デバッグ用に文字列を出したいなら、using System.Diagnostics;して、Debug.WriteLine()とか使うべき。
これならリリースビルドにするだけで無効になるからコメントアウトも不要。
リリースビルドでも使いたいなら、Trace.WriteLine()。
195デフォルトの名無しさん (ワッチョイ fac3-TcdZ)
2018/04/24(火) 17:00:53.50ID:Le/zmSZT0 >>193
パイプで繋ぐとみえちゃうよ
パイプで繋ぐとみえちゃうよ
196デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/24(火) 17:22:41.52ID:5gRbnpaG0197デフォルトの名無しさん (ブーイモ MMff-5Fj3)
2018/04/24(火) 19:15:00.82ID:QP8ofl3+M198デフォルトの名無しさん (ワッチョイ 0e8a-xhTL)
2018/04/24(火) 20:32:35.47ID:AF96232m0 引数の文字列が、データグリッドに含まれていない場合だけ追加したいんですが、追加されません。
何が原因でしょうか?
void AddToDataGrid(string[] strs)
{
bool exists = false;
foreach(string str in strs)
{
for(int i = 0; i <= view.Rows.Count; i++)
{
if(str == view[0, i].Value.ToString())
exists = true;
}
if(!exists)
{
view.Rows.Add(str);
}
}
}
何が原因でしょうか?
void AddToDataGrid(string[] strs)
{
bool exists = false;
foreach(string str in strs)
{
for(int i = 0; i <= view.Rows.Count; i++)
{
if(str == view[0, i].Value.ToString())
exists = true;
}
if(!exists)
{
view.Rows.Add(str);
}
}
}
199デフォルトの名無しさん (ワッチョイ 4ec9-9jjH)
2018/04/24(火) 20:43:20.78ID:Ajvhvjmq0200デフォルトの名無しさん (ワッチョイ 0e8a-xhTL)
2018/04/24(火) 20:48:40.81ID:AF96232m0 >>199
view.Rows.Add(str);
だけだと正常に追加されるので、条件判定かループあたりに原因があると思っています。
フラグの位置がおかしいので以下に修正してもダメでした。
void AddToDataGrid(string[] strs)
{
foreach(string str in strs)
{
bool exists = false;
for(int i = 0; i <= view.Rows.Count; i++)
{
if(str == view[0, i].Value.ToString())
exists = true;
}
if(!exists)
{
view.Rows.Add(str);
}
}
}
view.Rows.Add(str);
だけだと正常に追加されるので、条件判定かループあたりに原因があると思っています。
フラグの位置がおかしいので以下に修正してもダメでした。
void AddToDataGrid(string[] strs)
{
foreach(string str in strs)
{
bool exists = false;
for(int i = 0; i <= view.Rows.Count; i++)
{
if(str == view[0, i].Value.ToString())
exists = true;
}
if(!exists)
{
view.Rows.Add(str);
}
}
}
201デフォルトの名無しさん (ワッチョイ 3e9f-rSH3)
2018/04/24(火) 20:53:14.94ID:ZpST366k0 >>200
exist=trueでブレークポイントを置いてデバッグ実行すればわかるのでは?
exist=trueでブレークポイントを置いてデバッグ実行すればわかるのでは?
202デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/24(火) 20:54:05.17ID:UZOTbxqf0 そもそも exists = true; の行に到達してないというオチな気がする
203デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/24(火) 20:55:27.49ID:UZOTbxqf0204デフォルトの名無しさん (ワッチョイ 4e9a-9jjH)
2018/04/24(火) 21:00:23.35ID:PfeXTBpB0 >>200
for(int i = 0; i < view.Rows.Count; i++)//Rows.Count以下じゃなく未満
{
bool exists = false;//ここに移動
if(str == Convert.ToString(view[0, i].Value))//ToString()だとValueがnullのときエラー
for(int i = 0; i < view.Rows.Count; i++)//Rows.Count以下じゃなく未満
{
bool exists = false;//ここに移動
if(str == Convert.ToString(view[0, i].Value))//ToString()だとValueがnullのときエラー
205デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/24(火) 21:12:02.89ID:UZOTbxqf0 >>204はとってもそれっぽい
で、例外が握りつぶされるような場所でAddToDataGridが使われてるせいで気づけてないとか
こういう場合自分はtry{...}catch(Exception exception){throw;}で囲って
throwの直前にブレークポイントを置いたりしてるけどもっとうまい方法があったら誰か教えてちょ
で、例外が握りつぶされるような場所でAddToDataGridが使われてるせいで気づけてないとか
こういう場合自分はtry{...}catch(Exception exception){throw;}で囲って
throwの直前にブレークポイントを置いたりしてるけどもっとうまい方法があったら誰か教えてちょ
206デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/24(火) 21:26:25.44ID:UZOTbxqf0207デフォルトの名無しさん (ワッチョイ 4ee8-9jjH)
2018/04/24(火) 21:31:25.92ID:zd8+57fN0 全一
FXきた
FXきた
208デフォルトの名無しさん (ワッチョイ 4e9a-9jjH)
2018/04/24(火) 21:36:01.31ID:PfeXTBpB0 >>206
フラグよく見ていないからとりあえず
if(str == Convert.ToString(view[0, i].Value))
{exists = true;break}
に変更で
フラグよく見ていないからとりあえず
if(str == Convert.ToString(view[0, i].Value))
{exists = true;break}
に変更で
209デフォルトの名無しさん (ワッチョイ 0e8a-xhTL)
2018/04/24(火) 21:38:44.73ID:AF96232m0 みなさん本当にありがとうございます。
結局原因はわからず仕舞いでしたが、最終的に以下の方法で打開しました。
void AddToDataGrid(string[] strs)
{
foreach(string str in strs)
{
bool exists = false;
for(int i = 0; i < view.Rows.Count; i++)
{
if(Convert.ToString(view[0,i].Value) == str)
exists = true;
}
if(!exists)
{
view.Rows.Add(name);
}
}
}
結局原因はわからず仕舞いでしたが、最終的に以下の方法で打開しました。
void AddToDataGrid(string[] strs)
{
foreach(string str in strs)
{
bool exists = false;
for(int i = 0; i < view.Rows.Count; i++)
{
if(Convert.ToString(view[0,i].Value) == str)
exists = true;
}
if(!exists)
{
view.Rows.Add(name);
}
}
}
210デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/24(火) 21:49:35.82ID:UZOTbxqf0211デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 15:12:14.28ID:lzwohvOS0 オブジェクト指向のプログラミングでは
変数じゃなくてプロパティにアクセスさせるべき
みたいな事をよく聞くんだけど
・プログラムの開始時にあるフラグ(true/false)を決めて、その後一切変更されることがない
・そのフラグには、コード中の様々な所からアクセスがある
って場合は、プロパティじゃなくてpublicな変数でフラグを定義してもいいんですか?
オブジェクト指向がよくわかってないせいか
プロパティを経由するのがどうしても遠回りというか
一つ余分な作業を挟んでるように感じてしまう・・・
変数じゃなくてプロパティにアクセスさせるべき
みたいな事をよく聞くんだけど
・プログラムの開始時にあるフラグ(true/false)を決めて、その後一切変更されることがない
・そのフラグには、コード中の様々な所からアクセスがある
って場合は、プロパティじゃなくてpublicな変数でフラグを定義してもいいんですか?
オブジェクト指向がよくわかってないせいか
プロパティを経由するのがどうしても遠回りというか
一つ余分な作業を挟んでるように感じてしまう・・・
212デフォルトの名無しさん (ワッチョイ 4e80-c0HJ)
2018/04/25(水) 15:30:51.28ID:eqJJBtIM0 変数は、公開しちゃダメ
その変数に、誰かが代入するかも知れないと考えると、
その変数に代入しているか、すべての場所を確かめないといけなくなるから、
プログラミングできなくなる
だから、プロパティで代入禁止に設定する
ただし、絶対に代入できない定数なら、公開してもよい
その変数に、誰かが代入するかも知れないと考えると、
その変数に代入しているか、すべての場所を確かめないといけなくなるから、
プログラミングできなくなる
だから、プロパティで代入禁止に設定する
ただし、絶対に代入できない定数なら、公開してもよい
213デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 16:03:36.81ID:lzwohvOS0214デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 16:12:23.29ID:lzwohvOS0215デフォルトの名無しさん (ワッチョイ 4bbb-txNp)
2018/04/25(水) 16:13:38.42ID:VelEInRI0 >>211
212は読まなくていい
フィールドだってreadonly修飾子で代入禁止できるが、212はそんなことも分かってないから
プロパティがフィールドと違う点は大ざっぱに
* 派生クラスでオーバーライドできる
* プロパティから構造体を返すとコピーされる
の2点
この2つの特性が必要ない(または避けたい)場合にフィールドを選択してよい
判断できないならプロパティを選択する
212は読まなくていい
フィールドだってreadonly修飾子で代入禁止できるが、212はそんなことも分かってないから
プロパティがフィールドと違う点は大ざっぱに
* 派生クラスでオーバーライドできる
* プロパティから構造体を返すとコピーされる
の2点
この2つの特性が必要ない(または避けたい)場合にフィールドを選択してよい
判断できないならプロパティを選択する
216デフォルトの名無しさん (スプッッ Sd5a-0snq)
2018/04/25(水) 16:15:28.83ID:ym3YbVtBd IOption使っとけ
217デフォルトの名無しさん (ワッチョイ 1aa6-wlRc)
2018/04/25(水) 16:51:44.20ID:I8kFq/qw0 >>211
>>215はどこかのコピペじゃないならすごい分かりやすくて尊敬
一つだけ補足すると、↓のようなこともあるからクラスがpublicの場合は
現状だけでなく将来の変更の可能性も考えてフィールドかプロパティか判断したほうが良い
public フィールドをプロパティに変える (2016/05/16追記)
https://qiita.com/chocolamint/items/f04665ce2db211abb2d2#public-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%AB%E5%A4%89%E3%81%88%E3%82%8B-20160516%E8%BF%BD%E8%A8%98
あと>>212も善意で答えてるのは分かるんだけど
代入できるかどうかだけを判断基準にしてる時点でズレてて
定数の説明も参考にならない気がするから割と真面目に>>212は読まないほうが良いと思う
すまぬ>>212
>>215はどこかのコピペじゃないならすごい分かりやすくて尊敬
一つだけ補足すると、↓のようなこともあるからクラスがpublicの場合は
現状だけでなく将来の変更の可能性も考えてフィールドかプロパティか判断したほうが良い
public フィールドをプロパティに変える (2016/05/16追記)
https://qiita.com/chocolamint/items/f04665ce2db211abb2d2#public-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%AB%E5%A4%89%E3%81%88%E3%82%8B-20160516%E8%BF%BD%E8%A8%98
あと>>212も善意で答えてるのは分かるんだけど
代入できるかどうかだけを判断基準にしてる時点でズレてて
定数の説明も参考にならない気がするから割と真面目に>>212は読まないほうが良いと思う
すまぬ>>212
218デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 17:43:22.74ID:lzwohvOS0 >>215
>* プロパティから構造体を返すとコピーされる
これが、全然分からんのだけど
classの代わりにstructを使った場合の話であってる?
今の自分が考えたところで、どうせちゃんと理解出来ない気もするけど
>* プロパティから構造体を返すとコピーされる
これが、全然分からんのだけど
classの代わりにstructを使った場合の話であってる?
今の自分が考えたところで、どうせちゃんと理解出来ない気もするけど
219デフォルトの名無しさん (ワッチョイ 1a1e-fvqh)
2018/04/25(水) 17:44:09.08ID:EO6K8yEq0220212 (ワッチョイ 4e80-c0HJ)
2018/04/25(水) 17:48:51.21ID:eqJJBtIM0 オブジェクト指向では、変数は公開しない。
公開できるのは、処理(関数)だけ
クラス内を開発する人と、そのクラスを使う人は、別の会社・人を想定しているから、
変数にアクセスさせたら、絶対にダメ
クラス内を作っている開発者は、後で付け加えられる処理を予想できないから。
クラス内を開発した後に、別人が変数にアクセスして、動きを変えたらバグる
異なる会社間での開発を可能にする、
オブジェクト指向の大原則・カプセル化
公開できるのは、処理(関数)だけ
クラス内を開発する人と、そのクラスを使う人は、別の会社・人を想定しているから、
変数にアクセスさせたら、絶対にダメ
クラス内を作っている開発者は、後で付け加えられる処理を予想できないから。
クラス内を開発した後に、別人が変数にアクセスして、動きを変えたらバグる
異なる会社間での開発を可能にする、
オブジェクト指向の大原則・カプセル化
221デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 17:50:35.02ID:ClmIY1xNa プロパティから構造体を返すとコピーってのは意味わかんないね
コピーされるのは右辺がプロパティだろうがフィルドだろうが同じだよw
>>211
少なくともパブリックなメンバーに関しては、あえてフィールドを使う理由はないって
理解でいいと思うよ。例外はアンマネージドコードの呼び出しで使う型を定義する場合ぐらい。
フォールドのプロパティーに対して優位な点は
(1) 軽量である
(2) 簡潔に書ける
このぐらいしかない。
(1)が重要なケースなんかまずない。
(2)については、古いC#はともかく今のC#は儒分簡潔に書けるようになって来てる。
コピーされるのは右辺がプロパティだろうがフィルドだろうが同じだよw
>>211
少なくともパブリックなメンバーに関しては、あえてフィールドを使う理由はないって
理解でいいと思うよ。例外はアンマネージドコードの呼び出しで使う型を定義する場合ぐらい。
フォールドのプロパティーに対して優位な点は
(1) 軽量である
(2) 簡潔に書ける
このぐらいしかない。
(1)が重要なケースなんかまずない。
(2)については、古いC#はともかく今のC#は儒分簡潔に書けるようになって来てる。
222デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 17:59:38.62ID:ClmIY1xNa >>220
カプセル化っていのは、触る必要がないもの、触られては困るものを隠すこと。
この質問にはほとんど関係ない話w
フィールドをプロパティにしようが、触る必要がない文脈で触られることを防げるわけじゃないw
せいぜいセッターで値が適切かどうかチェックできる程度
カプセル化っていのは、触る必要がないもの、触られては困るものを隠すこと。
この質問にはほとんど関係ない話w
フィールドをプロパティにしようが、触る必要がない文脈で触られることを防げるわけじゃないw
せいぜいセッターで値が適切かどうかチェックできる程度
223デフォルトの名無しさん (ワッチョイ 1a1e-fvqh)
2018/04/25(水) 18:00:19.55ID:EO6K8yEq0224デフォルトの名無しさん (ワッチョイ 1a1e-fvqh)
2018/04/25(水) 18:04:12.14ID:EO6K8yEq0 >>222
質問者は
>オブジェクト指向のプログラミングでは
>変数じゃなくてプロパティにアクセスさせるべき
>みたいな事をよく聞くんだけど
で書いて始めてんじゃん。だから、カプセル化の説明した方がまずいいんじゃねぇか??
質問者は
>オブジェクト指向のプログラミングでは
>変数じゃなくてプロパティにアクセスさせるべき
>みたいな事をよく聞くんだけど
で書いて始めてんじゃん。だから、カプセル化の説明した方がまずいいんじゃねぇか??
225デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 18:09:53.61ID:ClmIY1xNa226デフォルトの名無しさん (ワッチョイ 1a1e-fvqh)
2018/04/25(水) 18:14:14.76ID:EO6K8yEq0 >>224
>オブジェクト指向のプログラミングでは
>変数じゃなくてプロパティにアクセスさせるべき
>みたいな事をよく聞くんだけど
を質問者が引き合いに出した以上、質問者はここからはしっかりわかってなくて、色々ごちゃ混ぜになってると
思われる。だから、そっから説明しなきゃ、おそらく習得できない。
>オブジェクト指向のプログラミングでは
>変数じゃなくてプロパティにアクセスさせるべき
>みたいな事をよく聞くんだけど
を質問者が引き合いに出した以上、質問者はここからはしっかりわかってなくて、色々ごちゃ混ぜになってると
思われる。だから、そっから説明しなきゃ、おそらく習得できない。
227デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 18:17:11.69ID:lzwohvOS0 自分はオブジェクト指向じゃない言語をちょっとだけやってたんだけど
そういう言語では、コードの最初の方に
public bool JudgFlag = true
って1行書いて、それにどこからでもアクセスするみたいな感じだと思うんだ
(全部独学だからこれも正解なのか知らんけど)
でも、オブジェクト指向ではこれやったらダメなんだよね?
ってのが知りたい
後、俺マジで初心者だから
質問文で聞きたいことが正確に表現できてる保証ないwすまん
そういう言語では、コードの最初の方に
public bool JudgFlag = true
って1行書いて、それにどこからでもアクセスするみたいな感じだと思うんだ
(全部独学だからこれも正解なのか知らんけど)
でも、オブジェクト指向ではこれやったらダメなんだよね?
ってのが知りたい
後、俺マジで初心者だから
質問文で聞きたいことが正確に表現できてる保証ないwすまん
228デフォルトの名無しさん (ワッチョイ 1a1e-fvqh)
2018/04/25(水) 18:20:06.19ID:EO6K8yEq0 >>225だった・・
229デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 18:22:03.13ID:ClmIY1xNa230212 (ワッチョイ 4e80-c0HJ)
2018/04/25(水) 18:26:03.04ID:eqJJBtIM0 >変数じゃなくてプロパティにアクセスさせるべき
これが異なる会社間での開発を可能にする、
オブジェクト指向の大原則・カプセル化
どの教科書にも書いてある
その理由は、クラス内を開発している会社・人と、
そのクラスを使う会社・人は、異なっているから
オブジェクト指向では、これらの2つの立場からの見方が大切。
君はどちらの開発者ですか?
クラスを作る方・使う方?
クラス内を開発しているのは、過去だから、
そこから未来の、クラスを使う人の動きを予測できない
だから、変数に直接触らせたらダメ。
そこまで予測して、クラス内を作れないから
これが異なる会社間での開発を可能にする、
オブジェクト指向の大原則・カプセル化
どの教科書にも書いてある
その理由は、クラス内を開発している会社・人と、
そのクラスを使う会社・人は、異なっているから
オブジェクト指向では、これらの2つの立場からの見方が大切。
君はどちらの開発者ですか?
クラスを作る方・使う方?
クラス内を開発しているのは、過去だから、
そこから未来の、クラスを使う人の動きを予測できない
だから、変数に直接触らせたらダメ。
そこまで予測して、クラス内を作れないから
231デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 18:31:21.63ID:lzwohvOS0232212 (ワッチョイ 4e80-c0HJ)
2018/04/25(水) 18:31:24.51ID:eqJJBtIM0233デフォルトの名無しさん (ワッチョイ 0bb3-x/V4)
2018/04/25(水) 18:36:43.91ID:Y4/R4Zt40 >俺が1人で小規模な開発してるだけだから
>いまいちオブジェクト指向のメリットを感じる場面が少ないのかな
まあこれだな
>>212の言ってる事は、OOPの「思想」としては間違いなく正しい
但し、単独での小規模開発という状況を前提にするなら「現実的なメリット」は無いに等しい
>いまいちオブジェクト指向のメリットを感じる場面が少ないのかな
まあこれだな
>>212の言ってる事は、OOPの「思想」としては間違いなく正しい
但し、単独での小規模開発という状況を前提にするなら「現実的なメリット」は無いに等しい
234デフォルトの名無しさん (ワッチョイ 1a1e-fvqh)
2018/04/25(水) 18:37:15.31ID:EO6K8yEq0235デフォルトの名無しさん (ワッチョイ 4703-AlOi)
2018/04/25(水) 18:47:02.51ID:yqUO4I2d0 おまえら変数は公開しちゃだめだけど、プロパティやgetter/setterなら公開してもいいって思っとるやろw
236デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 18:48:12.94ID:ClmIY1xNa >>231
どこの世界でも教条的(思い込みが激しいともいう)人はいるからねw
外部から取得/設定してもらう必要がある値をフィールドではなくプロパティにしたからって
ヒューマンエラーを減らす効果なんかないのは事実
ただ機能がより少ないフィールドをあえて使うことないでしょってだけの話
オブジェクトの公開するデータは必ずしもいつも変数に入っているわけではなく、
何らかの処理の結果を返す場合もあって、その場合はプロパティになるから、
だったら全部プロパティの方が統一感があるという考え方はあるかもしれない
どこの世界でも教条的(思い込みが激しいともいう)人はいるからねw
外部から取得/設定してもらう必要がある値をフィールドではなくプロパティにしたからって
ヒューマンエラーを減らす効果なんかないのは事実
ただ機能がより少ないフィールドをあえて使うことないでしょってだけの話
オブジェクトの公開するデータは必ずしもいつも変数に入っているわけではなく、
何らかの処理の結果を返す場合もあって、その場合はプロパティになるから、
だったら全部プロパティの方が統一感があるという考え方はあるかもしれない
237デフォルトの名無しさん (ワンミングク MM8a-Pnzf)
2018/04/25(水) 18:49:19.77ID:s99z6Kr1M >>233
嘘おしえるなよ
嘘おしえるなよ
238デフォルトの名無しさん (ワッチョイ 9a98-9jjH)
2018/04/25(水) 19:04:09.02ID:lzwohvOS0 まとめると
「1人で小規模なコード書いてるだけなら
public bool JudgFlag = true
を書き換えたらダメなことぐらい自明だから、フィールドに1行書いて終わりでいい
若干雑だけど楽」
って考え方と
「いや、自分で決めたルールを自分で忘れることもあるから
ちゃんとプロパティにして触れない様にすべき
多少面倒でもコストを払うメリットがある」
って考えの対立なのかな
get;set;とか全く意味がわからなかった頃の嫌なイメージのせいで
プロパティを書く事が、「面倒・難しい」って体が拒否反応しちゃうんだよね
自動プロパティとか実装されてる今の時代に
何言ってんだって笑われそうだけど
まあ、でも色々モヤモヤしてた所がスッキリしました
ありがとう
「1人で小規模なコード書いてるだけなら
public bool JudgFlag = true
を書き換えたらダメなことぐらい自明だから、フィールドに1行書いて終わりでいい
若干雑だけど楽」
って考え方と
「いや、自分で決めたルールを自分で忘れることもあるから
ちゃんとプロパティにして触れない様にすべき
多少面倒でもコストを払うメリットがある」
って考えの対立なのかな
get;set;とか全く意味がわからなかった頃の嫌なイメージのせいで
プロパティを書く事が、「面倒・難しい」って体が拒否反応しちゃうんだよね
自動プロパティとか実装されてる今の時代に
何言ってんだって笑われそうだけど
まあ、でも色々モヤモヤしてた所がスッキリしました
ありがとう
239デフォルトの名無しさん (スップ Sdba-BoQL)
2018/04/25(水) 19:24:43.78ID:q/XXvHKQd >>236
処理の結果を返すならメソッドにしろよ
処理の結果を返すならメソッドにしろよ
240デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 20:11:47.21ID:ClmIY1xNa241デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/25(水) 20:30:49.45ID:XWOG1WtT0 フォーム間のデータ受け渡しのやり方について教えてください
プログラムを起動して、最初にForm1でパラメータなどを設定、次にForm2で設定した
パラメータを元にデータを編集したいとします
(Form1で編集済みのデータをForm2に表示する、でもいいです)
このときにデータを受け渡すのは、program.cs で Application.Run(new Form1()); と
呼び出す前に
1. Form2 のインスタンスを作っておいて、それを Form1 の引数として与えてやる
2. 必要なデータのインスタンスを Main() 内に用意しておいて、そのインスタンスを
Form1 と Form2 のそれぞれに送る
3. どっちもダメで他の方法がある
のどれが良いのでしょうか。
Form1 の中で Form2 のインスタンスを作成して、Form2 に送るという方法も考えましたが、
そうすると Form1 が不要になったときに Dispose() すると Form2 も落ちてしまいます。
プログラムを起動して、最初にForm1でパラメータなどを設定、次にForm2で設定した
パラメータを元にデータを編集したいとします
(Form1で編集済みのデータをForm2に表示する、でもいいです)
このときにデータを受け渡すのは、program.cs で Application.Run(new Form1()); と
呼び出す前に
1. Form2 のインスタンスを作っておいて、それを Form1 の引数として与えてやる
2. 必要なデータのインスタンスを Main() 内に用意しておいて、そのインスタンスを
Form1 と Form2 のそれぞれに送る
3. どっちもダメで他の方法がある
のどれが良いのでしょうか。
Form1 の中で Form2 のインスタンスを作成して、Form2 に送るという方法も考えましたが、
そうすると Form1 が不要になったときに Dispose() すると Form2 も落ちてしまいます。
242デフォルトの名無しさん (ワッチョイ 5bd2-8E8L)
2018/04/25(水) 20:44:39.30ID:3+niHUT+0 【マイトLーヤとPS4】 FFとDQの最新作、VR開発は危険、プレーヤーの日常感覚を損なうおそれ
http://rosie.5ch.net/test/read.cgi/liveplus/1524621704/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1524621704/l50
243デフォルトの名無しさん (スップ Sdba-BoQL)
2018/04/25(水) 21:00:51.62ID:q/XXvHKQd >>240
それは右座標を計算して返しただけであって処理を実行するのとは違う
面倒だからここ読んで
https://msdn.microsoft.com/ja-jp/library/ms229054(v=vs.100).aspx
それは右座標を計算して返しただけであって処理を実行するのとは違う
面倒だからここ読んで
https://msdn.microsoft.com/ja-jp/library/ms229054(v=vs.100).aspx
244デフォルトの名無しさん (ワッチョイ e717-9jjH)
2018/04/25(水) 21:06:28.54ID:XHhjs7vi0245デフォルトの名無しさん (ワッチョイ 23ab-9jjH)
2018/04/25(水) 21:09:48.37ID:ckNZ5jJB0 メッセージキューを勉強中なんですが、
MSMQとMessageQueueクラスって何が違うんでしょうか?
MSMQとMessageQueueクラスって何が違うんでしょうか?
246デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/25(水) 21:17:11.34ID:XWOG1WtT0 >>244
ありがとうございます
この場合、もう二度と Form1 を使わないという状況であれば、Form2 の ShowDialog を
呼び出す前に this.Hide(); で隠しておいて、戻ってきたら this.Dispose(); でしょうか
Hide() だけで処理を抜けるコードを書き忘れて、いつまでもプログラムが残り続けるバグを
やったので、二度と戻ってこないフォームは Dispose() したいのです
ありがとうございます
この場合、もう二度と Form1 を使わないという状況であれば、Form2 の ShowDialog を
呼び出す前に this.Hide(); で隠しておいて、戻ってきたら this.Dispose(); でしょうか
Hide() だけで処理を抜けるコードを書き忘れて、いつまでもプログラムが残り続けるバグを
やったので、二度と戻ってこないフォームは Dispose() したいのです
247デフォルトの名無しさん (ワッチョイ 3bc3-9jjH)
2018/04/25(水) 21:18:56.58ID:XWOG1WtT0 今思ったのですが、そういう使い方だとむしろ Form2 を非表示で実行しておいて、
その中で Form1 を呼び出すべき?
で、Form1 を抜けたら this.Show(); とか
その中で Form1 を呼び出すべき?
で、Form1 を抜けたら this.Show(); とか
248デフォルトの名無しさん (アウアウエー Sa52-PKj8)
2018/04/25(水) 21:20:04.33ID:ClmIY1xNa >>243
頭悪そうだけど、単にバッキングフィールドの値をそのまま返すのではないケースを
「何らかの処理の結果を返す」と言っている。
処理 = 高価な処理ではない。
重かろうが単なる足し算だろうが処理は処理だ
頭悪そうだけど、単にバッキングフィールドの値をそのまま返すのではないケースを
「何らかの処理の結果を返す」と言っている。
処理 = 高価な処理ではない。
重かろうが単なる足し算だろうが処理は処理だ
249デフォルトの名無しさん (スププ Sdba-TcdZ)
2018/04/25(水) 22:11:10.02ID:jHFwiJ5Yd Applicationに共通のパラメータ持って、Form1とForm2で共有しちゃダメなんか
250デフォルトの名無しさん (アウアウウー Sa47-Mp6C)
2018/04/25(水) 22:17:09.52ID:fPsUNFh1a 使い方次第じゃないかなとは思う
双方で同時に書き換えたりするならやめたほうがいい
それ以前にタダクソダサイと思う
双方で同時に書き換えたりするならやめたほうがいい
それ以前にタダクソダサイと思う
251デフォルトの名無しさん (ワッチョイ b7e3-i2qG)
2018/04/25(水) 22:41:48.50ID:TqrgnB+10 シングルトンの出番だ
252デフォルトの名無しさん (ワッチョイ 1ad2-0snq)
2018/04/25(水) 23:10:10.54ID:Kx9WW2Xx0 >>216
これやろ
これやろ
253デフォルトの名無しさん (アウアウカー Sa43-AqIk)
2018/04/25(水) 23:38:15.43ID:8cfef6Y0a もう親フォーム作れば?
254デフォルトの名無しさん (ワッチョイ a1d6-c97c)
2018/04/26(木) 14:36:05.39ID:ooZK6FZP0 自作ツールをソースコード付きで公開したいのですが、
パブリックドメインソフトにするのが最善ですか?
パブリックドメインソフトにするのが最善ですか?
255デフォルトの名無しさん (ワントンキン MMd3-qfDI)
2018/04/26(木) 15:37:00.65ID:s8t3AsxEM .netで簡単に実現できる機能(メールや圧縮、画像処理等)をネイティブCのアプリで利用したいです。VC++6.0の(C++ではなく)C言語で作るコンソールアプリでです。
C#で作っでdllを作って、C++のdllでそれをコールする関数を公開すれば実現可能ですが、もっといいやり方ないでしょうか?
C#で作っでdllを作って、C++のdllでそれをコールする関数を公開すれば実現可能ですが、もっといいやり方ないでしょうか?
256デフォルトの名無しさん (ブーイモ MMab-fo8q)
2018/04/26(木) 15:39:07.13ID:B934JXdmM >>254
今のOSSはMITライセンスでGithubに晒すのが主流
今のOSSはMITライセンスでGithubに晒すのが主流
257デフォルトの名無しさん (ブーイモ MM85-MzrX)
2018/04/26(木) 16:34:09.89ID:+C2ovlRwM >>255
つ C++/CLI
つ C++/CLI
258デフォルトの名無しさん (ブーイモ MMab-fo8q)
2018/04/26(木) 17:05:43.31ID:B934JXdmM259デフォルトの名無しさん (ワッチョイ a1d7-WE9q)
2018/04/26(木) 19:19:32.70ID:leQJqI/Q0260241 (ワッチョイ 11c3-luqG)
2018/04/26(木) 20:39:08.13ID:8i3JVbEw0 皆様ありがとうございました
決まりきった定番の書き方はない、と理解すれば良さそうですね
自分で色々試してみます
決まりきった定番の書き方はない、と理解すれば良さそうですね
自分で色々試してみます
261デフォルトの名無しさん (ワッチョイ 11c3-luqG)
2018/04/26(木) 21:03:55.12ID:8i3JVbEw0 今度はインデクサについて教えてください
https://ideone.com/TlRwJS
例として上記のようなコードを書いてみました
これで、インデクサを使って例えば anml["whale"] とすれば1が返ってくるような、
そういうものを作りたいと思います
(classified, lifeの各プロパティはユニークではなく、specificのみユニークとします)
本を紐解きながら書こうとしたのですが、animalsクラスの中ではリストになっていないので
書く場所はなさそうです。でもMainメソッドでは利用したい側なので、ここに実装することも
できない気がします。
多分インデクサの考え方そのものがわかっていません。どなたか教えていただけると
嬉しいです。
https://ideone.com/TlRwJS
例として上記のようなコードを書いてみました
これで、インデクサを使って例えば anml["whale"] とすれば1が返ってくるような、
そういうものを作りたいと思います
(classified, lifeの各プロパティはユニークではなく、specificのみユニークとします)
本を紐解きながら書こうとしたのですが、animalsクラスの中ではリストになっていないので
書く場所はなさそうです。でもMainメソッドでは利用したい側なので、ここに実装することも
できない気がします。
多分インデクサの考え方そのものがわかっていません。どなたか教えていただけると
嬉しいです。
262デフォルトの名無しさん (ワッチョイ b917-luqG)
2018/04/26(木) 21:18:02.97ID:i4ujFDqn0 ListじゃなくてDictionaryを使えばOK
263デフォルトの名無しさん (ワッチョイ 19e3-luqG)
2018/04/26(木) 21:54:22.87ID:IFgymZMf0 anml.FindIndex(_ => _.specific == "whale")でよくね?
264デフォルトの名無しさん (ワッチョイ 19e3-Im5u)
2018/04/27(金) 03:52:18.55ID:3sBZO5RI0 インデクサてのは自作のクラスにつけるプロパティみたいなものだから、List<animals>を内蔵するクラス作って
public int this[string p]{
get{ /* ここに検索して結果を返すコード書く */ }
}
でおkなんじゃねか?知らんけど。
public int this[string p]{
get{ /* ここに検索して結果を返すコード書く */ }
}
でおkなんじゃねか?知らんけど。
265デフォルトの名無しさん (ワッチョイ 11c3-luqG)
2018/04/27(金) 07:42:26.78ID:vWqu6ayt0 >>262
すいません、理解のレベルが低いので、具体的にどう実装すればよいのかわかりませんでした
var anml = new Dictionary<animals, string>;
としてディクショナリは実装できたとして、要素追加の際 Add メソッドをどう書くのか、理解が
追いついていないようです
>>263
この書き方で、求めている操作は実現できそうです
ラムダ式の理解が怪しいのは勉強するとして、毎回これを書くと面倒&間違えそうなのですが、
これは「十分に簡潔な書き方」なのか、それとも「メソッド等でさらに簡潔に書ける」のか、どちら
でしょうか。
>>264
この場合、各プロパティにアクセスする際は anml[i].specific とかではなくて anml(i, specific)等
メソッドを介してアクセスすることになるのでしょうか?
すいません、理解のレベルが低いので、具体的にどう実装すればよいのかわかりませんでした
var anml = new Dictionary<animals, string>;
としてディクショナリは実装できたとして、要素追加の際 Add メソッドをどう書くのか、理解が
追いついていないようです
>>263
この書き方で、求めている操作は実現できそうです
ラムダ式の理解が怪しいのは勉強するとして、毎回これを書くと面倒&間違えそうなのですが、
これは「十分に簡潔な書き方」なのか、それとも「メソッド等でさらに簡潔に書ける」のか、どちら
でしょうか。
>>264
この場合、各プロパティにアクセスする際は anml[i].specific とかではなくて anml(i, specific)等
メソッドを介してアクセスすることになるのでしょうか?
266デフォルトの名無しさん (アウアウウー Sa45-fo8q)
2018/04/27(金) 07:59:23.04ID:Ek6IpJbsa267デフォルトの名無しさん (ワッチョイ 19e3-luqG)
2018/04/27(金) 08:18:37.17ID:3sBZO5RI0 番号が欲しいのかanimalsオブジェクトが欲しいのか
268デフォルトの名無しさん (オッペケ Sr0d-oETR)
2018/04/27(金) 12:24:44.14ID:/0qPzcyMr269デフォルトの名無しさん (ワッチョイ 93e3-cUH7)
2018/04/27(金) 23:13:48.06ID:9YiDAi7f0 Index番号が欲しいなら>>263で十分じゃないか?
見つからなかったとき例外吐くらしいから気をつけろい
見つからなかったとき例外吐くらしいから気をつけろい
270デフォルトの名無しさん (ワッチョイ 93e3-cUH7)
2018/04/27(金) 23:15:15.73ID:9YiDAi7f0 まちがえた。例外じゃなくて-1だ。すんまそ。回線で首吊ってくる
271デフォルトの名無しさん (ワッチョイ 93d2-SiOx)
2018/04/28(土) 01:50:07.49ID:E8vnEfND0 >>263
アンダーバーはやめとけ
アンダーバーはやめとけ
272デフォルトの名無しさん (ワッチョイ b3eb-cUH7)
2018/04/28(土) 01:50:20.46ID:fiFvLr6Y0 XAMLファイルからボタンを削除した場合、CSコードの方に呼び出されることのないコールバック関数の宣言が残ってしまます
こういうのを効率よく削除する方法ってないのでしょうか?
こういうのを効率よく削除する方法ってないのでしょうか?
273デフォルトの名無しさん (ワッチョイ 93d2-SiOx)
2018/04/28(土) 01:54:51.50ID:E8vnEfND0 >>272
WPF?
WPF?
274デフォルトの名無しさん (ワッチョイ b3eb-cUH7)
2018/04/28(土) 02:32:39.82ID:fiFvLr6Y0 >>273
Xamarin.Formsで使っています
Xamarin.Formsで使っています
275デフォルトの名無しさん (ワントンキン MMad-kOUo)
2018/04/28(土) 07:22:01.22ID:bL+b5OsrM >>272
XML解析とリフレクション
XML解析とリフレクション
276デフォルトの名無しさん (ワッチョイ 112d-c97c)
2018/04/28(土) 12:46:33.34ID:5pWODy2i0 ここでいいのかわかりませんが、質問させてください。
C#でフレームワーク ASP.Net MVCで作っています。
テーブルのフォームをPOSTしたいのですが、
動的に作成した行をどのようにサーバー側で受け取ればよいのかわかりません。
<td>
<input class="form-control" id="no1" name="no2" type="text" value="" />
</td>
<td>
<input class="form-control" id="no2" name="no2" type="text" value="" />
</td>
このように、複数行があって、noの後ろの数値は、行を追加したら増えるように
javascriptで制御しています。
サーバー側の処理として、引数を
(string no1, string no2, ・・・)と列挙してすべて書けば、
POSTデータを受け取れることは確認済みです。
ただ、ユーザーの操作で行を何行追加するかもわからず、あらかじめ想定する
最大数の引数を列挙するのも現実的ではありません。
すべてのフォームデータを一挙に受け取って、
サーバー内部のロジックで処理する方法はないでしょうか。
C#でフレームワーク ASP.Net MVCで作っています。
テーブルのフォームをPOSTしたいのですが、
動的に作成した行をどのようにサーバー側で受け取ればよいのかわかりません。
<td>
<input class="form-control" id="no1" name="no2" type="text" value="" />
</td>
<td>
<input class="form-control" id="no2" name="no2" type="text" value="" />
</td>
このように、複数行があって、noの後ろの数値は、行を追加したら増えるように
javascriptで制御しています。
サーバー側の処理として、引数を
(string no1, string no2, ・・・)と列挙してすべて書けば、
POSTデータを受け取れることは確認済みです。
ただ、ユーザーの操作で行を何行追加するかもわからず、あらかじめ想定する
最大数の引数を列挙するのも現実的ではありません。
すべてのフォームデータを一挙に受け取って、
サーバー内部のロジックで処理する方法はないでしょうか。
277デフォルトの名無しさん (ワッチョイ 93d2-/ky+)
2018/04/28(土) 13:53:59.42ID:Jn+S73+O0278デフォルトの名無しさん (アウアウウー Sa45-fo8q)
2018/04/28(土) 14:50:29.57ID:X/1aPQ6Ma どうせJavaScript書いてるんならJavaScript側でJSONの配列に纏めてからAJAXでポストするのもアリ
279デフォルトの名無しさん (ワッチョイ 71b3-luqG)
2018/04/28(土) 21:58:22.96ID:4vnB69wL0 [[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ]
280デフォルトの名無しさん (ワッチョイ 419f-YWv5)
2018/04/28(土) 22:36:40.95ID:vp8gWtwG0 Entity FrameworkでDBへのselectとかのリトライしたい場合ってどのようにすべきでしょうか
一時的なエラーだったりしたらもう一回トライとかしたいのです
例外全キャッチするのも無駄なのかなぁと思いまして
一時的なエラーだったりしたらもう一回トライとかしたいのです
例外全キャッチするのも無駄なのかなぁと思いまして
281デフォルトの名無しさん (ブーイモ MMb3-fo8q)
2018/04/28(土) 23:02:28.71ID:8LDPRSMfM 普通のRDBなら一時的なエラーなんか滅多にないだろ
400でいいよそんなもん
400でいいよそんなもん
282デフォルトの名無しさん (ワッチョイ 2bc9-luqG)
2018/04/28(土) 23:05:27.66ID:yGhXA9la0 Azure相手だと普通にあるで
283デフォルトの名無しさん (ワッチョイ 93d2-SiOx)
2018/04/28(土) 23:08:01.89ID:E8vnEfND0 >>280
DbExecutionStrategy
DbExecutionStrategy
284デフォルトの名無しさん (ワッチョイ 419f-YWv5)
2018/04/28(土) 23:33:01.91ID:vp8gWtwG0285デフォルトの名無しさん (ワッチョイ 71b3-luqG)
2018/04/29(日) 20:34:09.03ID:My7UiDyw0 [[[ []]]]*[[ [][] ][] } } {} [[[
286デフォルトの名無しさん (ワッチョイ a1d7-AYWH)
2018/05/02(水) 19:00:22.89ID:As5kU4Fr0 とりあえず、連休ぐらいゆっくりな
オマエラ
オマエラ
287デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/03(木) 10:44:28.97ID:9ar3mEaia 連休は機械学習でずっと計算させる予定
人間は休む
人間は休む
288デフォルトの名無しさん (ブーイモ MMef-+yEv)
2018/05/03(木) 13:02:24.11ID:Nqnp2049M 人間はILコードを覚えてハンドアセンブル出きるようになるべき
289デフォルトの名無しさん (ワッチョイ bf9e-DJjQ)
2018/05/03(木) 13:26:57.92ID:YEWKmWCr0 winformの左辺や上辺をドラッグするとフォームのサイズが変わらずにフォームが移動してしまいますが
サイズを変更するように設定するプロパティなどはありますでしょうか
コードを書く必要がありますか?
サイズを変更するように設定するプロパティなどはありますでしょうか
コードを書く必要がありますか?
290デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 14:32:14.37ID:hvfEvXXP0291デフォルトの名無しさん (ブーイモ MMef-+yEv)
2018/05/03(木) 14:41:33.60ID:Nqnp2049M >>290
情報処理試験のCASLとかも?
情報処理試験のCASLとかも?
292デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 14:46:31.58ID:hvfEvXXP0293デフォルトの名無しさん (ブーイモ MMef-hPxN)
2018/05/03(木) 14:47:30.87ID:1IvMgmqBM 次元が違うだろ
ILは高級なオブジェクト指向言語
そもそも機械語に似せることを意図されていない
ILは高級なオブジェクト指向言語
そもそも機械語に似せることを意図されていない
294デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 14:51:41.82ID:hvfEvXXP0 >>293
ハードウェアマシン語とプログラム言語との間に、なぜ仮想マシンと仮想的な言語(IL/JVM)が採用されるようになったのか?そこが今でも判然としないのです…
ハードウェアマシン語とプログラム言語との間に、なぜ仮想マシンと仮想的な言語(IL/JVM)が採用されるようになったのか?そこが今でも判然としないのです…
295デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/03(木) 15:42:16.53ID:+UDEH62l0 >>294
ドライバは何故存在するの?つってる様なもんだぞそれ
ドライバは何故存在するの?つってる様なもんだぞそれ
296デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 15:45:53.15ID:hvfEvXXP0297デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/03(木) 16:06:28.64ID:+UDEH62l0 仮想マシンに焦点を絞るなら、ハードウェアの差異を吸収する為では
(.netはJavaVMほどあちこちに移植されてないというだけで)
ILに関して言えば、複数の言語(C#、VB.net、F#、他)を共通のフレームワーク上で動かせる様にする為
(.netはJavaVMほどあちこちに移植されてないというだけで)
ILに関して言えば、複数の言語(C#、VB.net、F#、他)を共通のフレームワーク上で動かせる様にする為
298デフォルトの名無しさん (ワッチョイ 0a5d-N4mI)
2018/05/03(木) 16:13:17.79ID:ioUmuI6x0 >>297
それならハードウェアや言語の統一を目指したほうが建設的なのでは?
それならハードウェアや言語の統一を目指したほうが建設的なのでは?
299デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/03(木) 16:19:16.65ID:+UDEH62l0 >>298
不可能だろう
収斂進化により表面上似た様な機能を搭載する事はあっても、内部構造は特許なり権利なり絡んで来るから同じに出来ないし
JavaScript+CSS3ですらブラウザベンダ間で足並み揃えられないのに、言語の統一なんて出来る訳が無い
不可能だろう
収斂進化により表面上似た様な機能を搭載する事はあっても、内部構造は特許なり権利なり絡んで来るから同じに出来ないし
JavaScript+CSS3ですらブラウザベンダ間で足並み揃えられないのに、言語の統一なんて出来る訳が無い
300デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 16:37:31.89ID:hvfEvXXP0 現状、中間言語側でも少なくとも JVM/.net framework にわかれちゃっているからねえ…
301デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 18:59:07.03ID:OyWVOyw+0 >>300
LLVMの中間コードをご存知でない?
LLVMの中間コードをご存知でない?
302デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 19:06:23.30ID:hvfEvXXP0 >>301
LLVM はコンパイラの中で完結しているのではないかな?
LLVM はコンパイラの中で完結しているのではないかな?
303デフォルトの名無しさん (ワッチョイ 03c3-m5Zl)
2018/05/03(木) 19:12:34.62ID:R63QgqLH0 ?
304デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 19:15:49.37ID:OyWVOyw+0 >>302
コンパイラ開発者はとりあえずLLVM-IRに変換すればいいし最終段で機械語に変換するか直接実行するか他の言語のコードに変換するかは自由
というか最初と最後だけ作ればいいわけだから寧ろLLVM-IRが中心
コンパイラ開発者はとりあえずLLVM-IRに変換すればいいし最終段で機械語に変換するか直接実行するか他の言語のコードに変換するかは自由
というか最初と最後だけ作ればいいわけだから寧ろLLVM-IRが中心
305デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 19:22:47.84ID:hvfEvXXP0306デフォルトの名無しさん (ワッチョイ 03c3-m5Zl)
2018/05/03(木) 19:24:37.99ID:R63QgqLH0 すまん、途中から意味分からん
307デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/03(木) 19:27:41.50ID:kS9rU1V5a .netは仮想マシンなんかつかってないじゃん
308デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 19:42:37.77ID:hvfEvXXP0 >>307
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA_(%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4)
仮想マシン VES は定義されているようだ
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA_(%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4)
仮想マシン VES は定義されているようだ
309デフォルトの名無しさん (ワッチョイ 1e81-fCfW)
2018/05/03(木) 19:45:56.40ID:Vq5AVdhm0 おい!初心者の内容じゃねーぞw
310デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/03(木) 20:04:38.77ID:kS9rU1V5a >>308
VESは最終段階のコンパイラだよ
VESは最終段階のコンパイラだよ
311デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 20:12:05.92ID:OyWVOyw+0 JITコンパイルはVMとしては認めない派閥が存在することは認める
312デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/03(木) 20:31:23.35ID:GKu15pasa https://www.slideshare.net/ufcpp/ss-34533225
このスライドの67枚目の「良い例」のコードってこれで本当にいいの?
MSDNのParallel.Forの解説には
---
localFinally デリゲートはスレッドごとに 1 回呼び出され、各スレッドのローカル状態に対して最後の操作を行います。 このデリゲートは、同時に複数のスレッドで呼び出される可能性があります。したがって、共有変数へのアクセスを同期する必要があります。
---
と書いてあるから、countはアトミックに操作しないとまずい気がするんだけど
https://msdn.microsoft.com/ja-jp/library/dd783299(v=vs.100).aspx
このスライドの67枚目の「良い例」のコードってこれで本当にいいの?
MSDNのParallel.Forの解説には
---
localFinally デリゲートはスレッドごとに 1 回呼び出され、各スレッドのローカル状態に対して最後の操作を行います。 このデリゲートは、同時に複数のスレッドで呼び出される可能性があります。したがって、共有変数へのアクセスを同期する必要があります。
---
と書いてあるから、countはアトミックに操作しないとまずい気がするんだけど
https://msdn.microsoft.com/ja-jp/library/dd783299(v=vs.100).aspx
313デフォルトの名無しさん (ワッチョイ 1ec9-XJxX)
2018/05/03(木) 21:13:05.22ID:L6Rknns90314デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/03(木) 21:46:41.74ID:GKu15pasa315デフォルトの名無しさん (ワンミングク MMfa-p2tH)
2018/05/03(木) 21:48:43.65ID:ygisZEFQM そうだねだからどうしたの
資料公開してる本人に言えばいいんじゃないの
資料公開してる本人に言えばいいんじゃないの
316デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/03(木) 22:02:53.69ID:nzAwdXFB0 大して変わんねーよ
そんなに処理分けたきゃ
別exeにしてキックしろよ
後はできるならOSがうまくやるし
OSがうまくできなかったらそりゃできないんだろうよw
そんなに処理分けたきゃ
別exeにしてキックしろよ
後はできるならOSがうまくやるし
OSがうまくできなかったらそりゃできないんだろうよw
317デフォルトの名無しさん (ワッチョイ 1e81-IfVY)
2018/05/03(木) 22:05:27.65ID:WY9OnNQR0 どうした発作か
318デフォルトの名無しさん (ワッチョイ 1ec9-XJxX)
2018/05/03(木) 23:06:32.43ID:L6Rknns90319デフォルトの名無しさん (ワッチョイ 2f03-eBll)
2018/05/03(木) 23:38:41.22ID:aADwc6210 おバカwebを鵜呑みにしない有望な>>312なんやからもう少し優しくレスしてやれよw
320デフォルトの名無しさん (アウアウウー Sacf-hPxN)
2018/05/04(金) 00:16:38.85ID:Xm9CVOioa この例だとForよりAggregate使ったほうがいいな
321デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/04(金) 00:37:22.14ID:pvqh60Bra322デフォルトの名無しさん (ワッチョイ 53b3-An5J)
2018/05/04(金) 02:08:40.41ID:DbHU5BaK0 C♯でJavaScriptで生成されてるチャットサイトからコメントビューアを作りたいのですが、JavaScriptが生成したHTMLを取得するのに適したライブラリってどれでしょうか?
Formアプリで作る予定ですが
webBrowserコントロールが一番手軽でしょうか?
Formアプリで作る予定ですが
webBrowserコントロールが一番手軽でしょうか?
323デフォルトの名無しさん (ワッチョイ 53b3-An5J)
2018/05/04(金) 02:10:39.64ID:DbHU5BaK0324デフォルトの名無しさん (ワンミングク MMfa-p2tH)
2018/05/04(金) 02:53:44.45ID:JYHlDWX6M javascriptで生成といっても生成元になるデータを何処かでリクエストしてる筈
そっちを解析して直接的にHttpClientでgetしたほうがええよ
そっちを解析して直接的にHttpClientでgetしたほうがええよ
325デフォルトの名無しさん (ワッチョイ 53b3-An5J)
2018/05/04(金) 04:15:13.73ID:DbHU5BaK0 ありがとうございます
単純にセッションが必要っぽそうだったのでHttpClientでもいけそうです
使い方調べ直します
単純にセッションが必要っぽそうだったのでHttpClientでもいけそうです
使い方調べ直します
326デフォルトの名無しさん (ワッチョイ 0aa6-N4mI)
2018/05/04(金) 16:58:55.69ID:wDfbuSiA0 おバカwebと言えば↓みたいに日本語と英語で全く逆のことが書いてあったりする
基本的にwebに書いてあることは疑ってかかったほうが良さそうね
日本語
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> 比較のために文字列を正規化する場合は、String.ToUpperInvariant メソッドではなく String.ToLowerInvariant メソッドを使用します。
英語
https://docs.microsoft.com/en-us/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> Use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.
(グーグル翻訳) 比較のために文字列を正規化するときは、String.ToLowerInvariantメソッドの代わりにString.ToUpperInvariantメソッドを使用します。
基本的にwebに書いてあることは疑ってかかったほうが良さそうね
日本語
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> 比較のために文字列を正規化する場合は、String.ToUpperInvariant メソッドではなく String.ToLowerInvariant メソッドを使用します。
英語
https://docs.microsoft.com/en-us/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> Use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.
(グーグル翻訳) 比較のために文字列を正規化するときは、String.ToLowerInvariantメソッドの代わりにString.ToUpperInvariantメソッドを使用します。
327デフォルトの名無しさん (スフッ Sdaa-xC2/)
2018/05/04(金) 17:22:00.73ID:0gwAiFk4d328デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 19:43:22.77ID:RYlEGIXb0 グラフィックの扱いについて教えてください
panelに複数の画像イメージを貼り付けたいと思います
(トランプのカードを任意の枚数置くような感じです)
WidthとHeightをpanelのサイズに合わせて、Bitmapオブジェクトを
作ってそこに必要な画像を貼り付けて、最後にPaintイベントでその
ビットマップを Graphics.DrawImage で表示すれば良さそうだ、という
認識です
問題はBitmapオブジェクトに画像を貼り付けることで、メソッドを
調べても、Bitmapオブジェクトの任意の場所に任意のイメージを
貼り付けるものはなさそうです
そもそも用意した画像は Image.FromFile で準備しているのですが、
Imageオブジェクトを貼り付けられるのは Graphics.DrawImage
メソッドになるので、そもそも Bitmap オブジェクトを用意すると
いう発想が間違っているような気もします
多分いろいろ間違って認識しているので、どこから考え直せばよいか
教えていただけると嬉しいです
panelに複数の画像イメージを貼り付けたいと思います
(トランプのカードを任意の枚数置くような感じです)
WidthとHeightをpanelのサイズに合わせて、Bitmapオブジェクトを
作ってそこに必要な画像を貼り付けて、最後にPaintイベントでその
ビットマップを Graphics.DrawImage で表示すれば良さそうだ、という
認識です
問題はBitmapオブジェクトに画像を貼り付けることで、メソッドを
調べても、Bitmapオブジェクトの任意の場所に任意のイメージを
貼り付けるものはなさそうです
そもそも用意した画像は Image.FromFile で準備しているのですが、
Imageオブジェクトを貼り付けられるのは Graphics.DrawImage
メソッドになるので、そもそも Bitmap オブジェクトを用意すると
いう発想が間違っているような気もします
多分いろいろ間違って認識しているので、どこから考え直せばよいか
教えていただけると嬉しいです
329デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 19:54:32.04ID:EvkA5vHv0 >>328
ベースの画像のいくつかの任意の位置に画像を貼り付ける描画ならそれで間違っていないけど
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics.drawimage(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/558kfzex(v=vs.110).aspx
どこを勘違いして悩んでいるのかいまいちわからない
とりあえずBitmap オブジェクトはImageオブジェクトの一種
他にMetaFileとかあるから
そしてGraphics.DrawImageメソッドを使って貼り付けてもベースのBitmap オブジェクトはBitmap オブジェクトのまま
ベースの画像のいくつかの任意の位置に画像を貼り付ける描画ならそれで間違っていないけど
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics.drawimage(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/558kfzex(v=vs.110).aspx
どこを勘違いして悩んでいるのかいまいちわからない
とりあえずBitmap オブジェクトはImageオブジェクトの一種
他にMetaFileとかあるから
そしてGraphics.DrawImageメソッドを使って貼り付けてもベースのBitmap オブジェクトはBitmap オブジェクトのまま
330デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 20:25:52.55ID:RYlEGIXb0 >>329
私の認識は、最終的に描画したいビットマップを用意して、それを Paint イベントで
描画するというものです
Panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(canvas, 0, 0);
}
で、上記の例で Bitmap canvas; とでもして用意したビットマップに、任意の画像を
貼り付ける方法を知りたいのです
例えば256x256ピクセルのサイズで用意したビットマップに、32x32ピクセルの
画像を3個位貼り付けた canvas を用意したいというものです
「そうではなくて、最終的に描画したいものはGraphicsオブジェクトで用意して、
Paintイベントで毎回描画するのだ」というのが正なのかもしれません
Panel1_Paint(省略) {
e.Graphics.DrawImage(image_1, image_1_x, image_1_y);
e.Graphics.DrawImage(image_2, image_2_x, image_2_y);
...
}
といった感じで
でもなんだか、毎回Paintイベントハンドラに描画処理を全部書くのは変な感じがして、
描画したい画像を用意するのと、実際に描画するのは別の処理ではないかと思っている
次第です
私の認識は、最終的に描画したいビットマップを用意して、それを Paint イベントで
描画するというものです
Panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(canvas, 0, 0);
}
で、上記の例で Bitmap canvas; とでもして用意したビットマップに、任意の画像を
貼り付ける方法を知りたいのです
例えば256x256ピクセルのサイズで用意したビットマップに、32x32ピクセルの
画像を3個位貼り付けた canvas を用意したいというものです
「そうではなくて、最終的に描画したいものはGraphicsオブジェクトで用意して、
Paintイベントで毎回描画するのだ」というのが正なのかもしれません
Panel1_Paint(省略) {
e.Graphics.DrawImage(image_1, image_1_x, image_1_y);
e.Graphics.DrawImage(image_2, image_2_x, image_2_y);
...
}
といった感じで
でもなんだか、毎回Paintイベントハンドラに描画処理を全部書くのは変な感じがして、
描画したい画像を用意するのと、実際に描画するのは別の処理ではないかと思っている
次第です
331デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/04(金) 20:30:54.11ID:Ad2tmUBO0 描画したい画像を用意するのと、それを描画するのは当然別の処理だ。
でもアニメーションさせたいとか画像の変更を即座に描画に反映させたいとかなら、用意した足で再描画させるしかないだろ?
でもアニメーションさせたいとか画像の変更を即座に描画に反映させたいとかなら、用意した足で再描画させるしかないだろ?
332デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 20:36:30.50ID:EvkA5vHv0 >>330
何でイベントでやるのか知らないけど複数の描画を同時にやるメソッドはなかったと思うよ
https://dobon.net/vb/dotnet/graphics/index.html
Bitmap canvas=new Bitmap(x,y);
Graphics g = Graphics.FromImage(canvas);
Graphics.DrawImage(image_1, image_1_x, image_1_y);
Graphics.DrawImage(image_2, image_2_x, image_2_y);
何でイベントでやるのか知らないけど複数の描画を同時にやるメソッドはなかったと思うよ
https://dobon.net/vb/dotnet/graphics/index.html
Bitmap canvas=new Bitmap(x,y);
Graphics g = Graphics.FromImage(canvas);
Graphics.DrawImage(image_1, image_1_x, image_1_y);
Graphics.DrawImage(image_2, image_2_x, image_2_y);
333デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 20:38:50.67ID:EvkA5vHv0 あ、ごめん
Graphics g = Graphics.FromImage(canvas);
g.DrawImage(image_1, image_1_x, image_1_y);
g.DrawImage(image_2, image_2_x, image_2_y);
だった
Graphics g = Graphics.FromImage(canvas);
g.DrawImage(image_1, image_1_x, image_1_y);
g.DrawImage(image_2, image_2_x, image_2_y);
だった
334デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 20:49:55.24ID:RYlEGIXb0 >>331
アニメーションさせたいとか、そういう意図はないです
単に、描画したい画像を用意するのに、Bitmapオブジェクトにさらに画像を
貼り付ける方法がわからなくて悩んでいます
>>332
イベントでやってるのは、単に参考にしたサイトで「Paintイベントハンドラで
処理する」と書いてあったので、それを鵜呑みにしただけです
https://dobon.net/vb/dotnet/graphics/drawimage.html
これを見て気づきましたが、そもそもパネルに直接描こうとするのが間違いで、
パネルにPictureBoxを貼り付けた上でそこに置けば良いのかな?
アニメーションさせたいとか、そういう意図はないです
単に、描画したい画像を用意するのに、Bitmapオブジェクトにさらに画像を
貼り付ける方法がわからなくて悩んでいます
>>332
イベントでやってるのは、単に参考にしたサイトで「Paintイベントハンドラで
処理する」と書いてあったので、それを鵜呑みにしただけです
https://dobon.net/vb/dotnet/graphics/drawimage.html
これを見て気づきましたが、そもそもパネルに直接描こうとするのが間違いで、
パネルにPictureBoxを貼り付けた上でそこに置けば良いのかな?
335デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 20:54:32.05ID:EvkA5vHv0 >>334
どっちでも同じだと思う
Graphics g = Graphics.FromImage(panel1.BackGroundImage);
でやれば直接パネルに書き込めるし
ただ大きい画像を表示して画像の表示位置をスクロールさせたいのならパネルの上にPictureBoxが基本
とりあえず書いて動かしてみたら
どっちでも同じだと思う
Graphics g = Graphics.FromImage(panel1.BackGroundImage);
でやれば直接パネルに書き込めるし
ただ大きい画像を表示して画像の表示位置をスクロールさせたいのならパネルの上にPictureBoxが基本
とりあえず書いて動かしてみたら
336デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/04(金) 21:05:17.61ID:aP3h8uSia337デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 21:11:39.38ID:RYlEGIXb0 >>336
実現したいことは、「任意の画像を任意の場所に配置したイメージを、panelに描画したい」です
これは明確で、それを実装するための方法でどう悩んでいるかが正しく伝わらないと、答える方も
こちらのレベルがわからなくて困るかと思ってました
実現したいことがちゃんと伝わっていませんでしたか
それ以前の問題でしたね。。。
実現したいことは、「任意の画像を任意の場所に配置したイメージを、panelに描画したい」です
これは明確で、それを実装するための方法でどう悩んでいるかが正しく伝わらないと、答える方も
こちらのレベルがわからなくて困るかと思ってました
実現したいことがちゃんと伝わっていませんでしたか
それ以前の問題でしたね。。。
338デフォルトの名無しさん (ササクッテロラ Sp23-MrO9)
2018/05/04(金) 21:43:04.80ID:pJ6Zbbxdp ファイル読んでバインドするだけちゃうのか?
339デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/04(金) 22:52:54.89ID:IMcj9GIN0 >>337
dobon.netにあるじゃん
dobon.netにあるじゃん
340デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/05(土) 01:53:47.84ID:US1Viqbq0 bmp1が配置先のイメージ、
bmp2がbmp1に配置したいイメージだとしたら以下になる
Graphics g = Graphics.FromImage(bmp1);
g.DrawImage(bmp2, x, y); // bmp1の(x, y)にbmp2を書き込む
g.Dispose();
pictureBox1.Image = bmp1;
これだけでパネルにbmp1が表示される
bmp2がbmp1に配置したいイメージだとしたら以下になる
Graphics g = Graphics.FromImage(bmp1);
g.DrawImage(bmp2, x, y); // bmp1の(x, y)にbmp2を書き込む
g.Dispose();
pictureBox1.Image = bmp1;
これだけでパネルにbmp1が表示される
341デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/05(土) 01:54:36.93ID:US1Viqbq0 あ、パネルにPictureBox貼ってる前提ね
342デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/05(土) 05:38:36.94ID:LRJiKh0v0 >>340
ありがとうございます
思っていることが問題なく実現できました
できるようになってみると、一体何を悩んでいたのか、自分でもわからなくなってしまいました
多分、DrawImage で書き込む先がVRAMだと思い込んでいたのでしょう
ありがとうございます
思っていることが問題なく実現できました
できるようになってみると、一体何を悩んでいたのか、自分でもわからなくなってしまいました
多分、DrawImage で書き込む先がVRAMだと思い込んでいたのでしょう
343デフォルトの名無しさん (ワッチョイ bf9e-DJjQ)
2018/05/06(日) 01:21:02.23ID:dl2mQyCb0 private void Form1_ResizeBegin(object sender, EventArgs e)
{
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
// 処理に入らない
}
}
このコードでフォームを右上にドラッグして拡大した場合に処理に入らないのですがどこがおかしいでしょうか
{
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
// 処理に入らない
}
}
このコードでフォームを右上にドラッグして拡大した場合に処理に入らないのですがどこがおかしいでしょうか
344デフォルトの名無しさん (ワッチョイ abd2-7y2u)
2018/05/06(日) 01:31:51.93ID:HfMj07lt0 右上にってことは事後の方が top の値が小さくなってるからじゃないの?
345デフォルトの名無しさん (ワッチョイ abd2-7y2u)
2018/05/06(日) 01:32:20.44ID:HfMj07lt0 ああ、そう書いてあるのか。失礼。
346デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 01:40:54.74ID:LGFxrhOP0 >>343
イベント有効になっている?
Form1_ResizeEndのメソッドに処理が入っているかそこから確認
int leftEdge, rightEdge,topEdge ,bottomEdge;
public Form1()
{
InitializeComponent();
this.ResizeBegin += Form1_ResizeBegin;
this.ResizeEnd += Form1_ResizeEnd;
}
private void Form1_ResizeBegin(object sender, EventArgs e)
{
this.Text = "start";
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
this.Text = String.Format("{0}:{1}", (rightEdge < this.Right), (topEdge > this.Top));
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
this.Text = "OK";
}
}
これで動いた
イベント有効になっている?
Form1_ResizeEndのメソッドに処理が入っているかそこから確認
int leftEdge, rightEdge,topEdge ,bottomEdge;
public Form1()
{
InitializeComponent();
this.ResizeBegin += Form1_ResizeBegin;
this.ResizeEnd += Form1_ResizeEnd;
}
private void Form1_ResizeBegin(object sender, EventArgs e)
{
this.Text = "start";
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
this.Text = String.Format("{0}:{1}", (rightEdge < this.Right), (topEdge > this.Top));
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
this.Text = "OK";
}
}
これで動いた
347デフォルトの名無しさん (ワッチョイ 7bd6-pRpi)
2018/05/06(日) 01:45:28.35ID:mBsERy4z0 private void DataGridViewFilter()
{
BindingSource objBind;
DataTable objData;
string strFilter;
objData = (DataTable)DataGridView1.DataSource;
if (IsNothing(objData) == false)
{
objBind = new BindingSource();
objBind.DataSource = objData;
strFilter = "Color like '%" + txt_Condition.Text + "%'";
objBind.Filter = strFilter;
}
}
{
BindingSource objBind;
DataTable objData;
string strFilter;
objData = (DataTable)DataGridView1.DataSource;
if (IsNothing(objData) == false)
{
objBind = new BindingSource();
objBind.DataSource = objData;
strFilter = "Color like '%" + txt_Condition.Text + "%'";
objBind.Filter = strFilter;
}
}
348デフォルトの名無しさん (ワッチョイ bf9e-DJjQ)
2018/05/06(日) 02:05:39.13ID:dl2mQyCb0 >>346
ご回答ありがとうございます
イベントは有効です
左や上や左上への拡大縮小ドラッグは正常なのですが左下や右上がおかしいです
提供していただいたコードを試したのですが、何故かは分からないのですが rightEdge < this.Right がfalseになっています
もう少し調べてみます
ご回答ありがとうございます
イベントは有効です
左や上や左上への拡大縮小ドラッグは正常なのですが左下や右上がおかしいです
提供していただいたコードを試したのですが、何故かは分からないのですが rightEdge < this.Right がfalseになっています
もう少し調べてみます
349デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 02:22:41.56ID:xovvhFEya 申し訳ないけど、問題を再現できるそのまんまのコードを提示していない時点で
確実に原因はあなたの勘違いにあると断言できる
確実に原因はあなたの勘違いにあると断言できる
350デフォルトの名無しさん (ワッチョイ 8a98-XJxX)
2018/05/06(日) 05:58:39.10ID:CBGkbUql0 Listを値渡しすべき所が参照渡しになってたせいで
くっそハマったんだけど
こういうのって、C#の解説本1冊読めば
注意しろって書いてあるもんなの?
参照渡し云々って単語はかろうじて知ってて
↓のサイトをたまたま見つけて、偶然解決出来たけど
https://webbibouroku.com/Blog/Article/list-copy
エラーや例外にならないバグが怖すぎる・・・
くっそハマったんだけど
こういうのって、C#の解説本1冊読めば
注意しろって書いてあるもんなの?
参照渡し云々って単語はかろうじて知ってて
↓のサイトをたまたま見つけて、偶然解決出来たけど
https://webbibouroku.com/Blog/Article/list-copy
エラーや例外にならないバグが怖すぎる・・・
351デフォルトの名無しさん (ワッチョイ 0a1e-lX4z)
2018/05/06(日) 06:08:47.32ID:994JP5I00 そんなものここで聞けば3秒で解決するし
352デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/06(日) 08:39:03.59ID:j24ysXtO0 c#って物体X(?)は全部参照渡しになるよね
353デフォルトの名無しさん (ワッチョイ faa1-XFQU)
2018/05/06(日) 08:48:15.69ID:6gN3mvyQ0 >>350
それ値渡しじゃない
それ値渡しじゃない
354デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 09:09:18.32ID:9GXSG5IC0 イメージの配置はできるようになりましたが、いろいろ触っていると、チラツキが
気になるようになってきました
テストしてみたところ、下記のレベルでもチラツキが発生します
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = Graphics.FromImage(canvas);
g.FillEllipse(bg_brush, x, y, radius, radius);
x += 5;
g.FillEllipse(fg_brush, x, y, radius, radius);
count++;
g.Dispose();
pictureBox1.Image = canvas;
if (count == 10)
{
count = 0;
timer1.Stop();
}
}
timer1.Intervalは100msにしてあります
チラつきを押さえるには、フォームの DoubleBufferd を true にすると良いと見ましたが、
true にしても false にしても変わりないようです
そもそも PictureBox は内部処理でダブルバッファリングを行っているとも見ました
まだなにかできることはあるのでしょうか
気になるようになってきました
テストしてみたところ、下記のレベルでもチラツキが発生します
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = Graphics.FromImage(canvas);
g.FillEllipse(bg_brush, x, y, radius, radius);
x += 5;
g.FillEllipse(fg_brush, x, y, radius, radius);
count++;
g.Dispose();
pictureBox1.Image = canvas;
if (count == 10)
{
count = 0;
timer1.Stop();
}
}
timer1.Intervalは100msにしてあります
チラつきを押さえるには、フォームの DoubleBufferd を true にすると良いと見ましたが、
true にしても false にしても変わりないようです
そもそも PictureBox は内部処理でダブルバッファリングを行っているとも見ました
まだなにかできることはあるのでしょうか
355デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 09:36:21.79ID:9GXSG5IC0 書いてませんでしたが、bg_brushは背景色の、fg_brushは前景色のブラシです
Brush bg_brush = new SolidBrush(SystemColors.Control);
Brush fg_brush = new SolidBrush(Color.Black);
で定義しています
Brush bg_brush = new SolidBrush(SystemColors.Control);
Brush fg_brush = new SolidBrush(Color.Black);
で定義しています
356デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/06(日) 09:54:38.21ID:RTzVBomo0 canvasはどんな風に設定しているの?
357デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 10:06:54.11ID:9GXSG5IC0 canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height);
として定義しています
として定義しています
358デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/06(日) 10:36:38.03ID:RTzVBomo0 DoubleBufferdとか触らずともこっちではちらつかないけどなあ
ちらつくってのはどういうふうに見えることを言ってるの?
panelやpictureBoxのサイズやradiusの値もさらしてみては?
ちらつくってのはどういうふうに見えることを言ってるの?
panelやpictureBoxのサイズやradiusの値もさらしてみては?
359デフォルトの名無しさん (ワッチョイ 7fd3-jSUp)
2018/05/06(日) 10:50:11.40ID:IbwjU9Qn0 どこで何やってんの不明瞭だから当てずっぽうだが
下手に自前描画してるチラつくなら大体OnPaintBackgroundのせい
下手に自前描画してるチラつくなら大体OnPaintBackgroundのせい
360デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 10:55:03.54ID:9GXSG5IC0 https://ideone.com/s4ddqO
これが全コードです
空のWindowsフォームアプリケーションで生成されたフォームに、ボタンとパネル、
PictureBoxを配置しただけの状態です
パネルとPictureBoxは、DockをFillにしてウィンドウサイズに合わせてあります
これが全コードです
空のWindowsフォームアプリケーションで生成されたフォームに、ボタンとパネル、
PictureBoxを配置しただけの状態です
パネルとPictureBoxは、DockをFillにしてウィンドウサイズに合わせてあります
361デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 10:56:51.16ID:9GXSG5IC0 これで、timer1のIntervalを50msにすると、はっきり分かる程度にちらつきます
362デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 13:14:55.43ID:gzoDeGmX0 垂直同期しろ。
363デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 13:31:21.62ID:o/aLqSU5a364デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/06(日) 15:35:36.42ID:MOQB+J+Ha 解決のヒントにはならないだろうけど
ちらつきって何かということについて
すでに表示されてるものが一瞬透明に見えるから表示がおかしく見えること
たとえば半径100の円が横に5ドット動くとする
普通に考えたらほとんどの円に背景は隠れたままだけど何も考えないで適当にやると
背景が一瞬見えてしまう
一度円を消してなにもない状態を表示して
次に円を書いてるから問題がある
何もない状態を表示しなければいい
ちらつきって何かということについて
すでに表示されてるものが一瞬透明に見えるから表示がおかしく見えること
たとえば半径100の円が横に5ドット動くとする
普通に考えたらほとんどの円に背景は隠れたままだけど何も考えないで適当にやると
背景が一瞬見えてしまう
一度円を消してなにもない状態を表示して
次に円を書いてるから問題がある
何もない状態を表示しなければいい
365デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 18:19:28.93ID:9GXSG5IC0366デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 18:22:22.08ID:gzoDeGmX0 だからハードの違いだって言ってんだろw
367デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 18:25:15.44ID:w10wIaHya368デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 18:30:35.56ID:gzoDeGmX0 アホばっかり。
369デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 18:55:10.27ID:9GXSG5IC0 >>367
カクカクした動きとチラつきを同一視しているわけではありません
>>364
が書いたように、今回の例だと黒い円が一瞬消えているような感じがします
移動量の x += 10; をもっと少なくすれば目立たなくなりますが、それでも
なんとなく嫌な感じがします
でも言葉で説明するのは難しいですね
低フレームレートの認識を誤解していたようですが、インターバルを100msとか
50msとかだとディスプレイのリフレッシュレート(あるいは人間の認識力)に比べて
低すぎるので、かえって目立ってしまうということでしょうか?
確かに、インターバルを思い切って5msとかにしてみると、チラつきは軽減されてきた
気がします
カクカクした動きとチラつきを同一視しているわけではありません
>>364
が書いたように、今回の例だと黒い円が一瞬消えているような感じがします
移動量の x += 10; をもっと少なくすれば目立たなくなりますが、それでも
なんとなく嫌な感じがします
でも言葉で説明するのは難しいですね
低フレームレートの認識を誤解していたようですが、インターバルを100msとか
50msとかだとディスプレイのリフレッシュレート(あるいは人間の認識力)に比べて
低すぎるので、かえって目立ってしまうということでしょうか?
確かに、インターバルを思い切って5msとかにしてみると、チラつきは軽減されてきた
気がします
370デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 19:33:59.43ID:7/UIZFPx0 ちょっと改変して逆にチラツキをわかるようにしてみた
https://ideone.com/3X8oJh
WinFormプロジェクトを新規で作って元のソースを全部消したうえで、このソースを既存の項目として追加
上がPictureBoxで下がPanel
>>369
PictureBoxのダブルバッファがデフォルトで有効なのは知っているのを確認したので
その上でPanelはデフォルトでダブルバッファが有効だというのを念頭に入れてコードを実行してほしい
同じオブジェクトの動きだが、うちで確認する限りは下はあきらかにチラツキがあって上は目立たない
>>364
>何もない状態を表示しなければいい
というわけで先に描画して動いた部分だけを消すという動作を実現してみたつもり
だったんだけど、移動量を大きくするとカクツキがどうしても目立ってしまってうまくいかない。ギブアップw
>>369
もっとGDI+の動作を把握するとかゲームなどでの実装方法を探すかした方がいいと思う
残念ながら俺の知識ではここまで
https://ideone.com/3X8oJh
WinFormプロジェクトを新規で作って元のソースを全部消したうえで、このソースを既存の項目として追加
上がPictureBoxで下がPanel
>>369
PictureBoxのダブルバッファがデフォルトで有効なのは知っているのを確認したので
その上でPanelはデフォルトでダブルバッファが有効だというのを念頭に入れてコードを実行してほしい
同じオブジェクトの動きだが、うちで確認する限りは下はあきらかにチラツキがあって上は目立たない
>>364
>何もない状態を表示しなければいい
というわけで先に描画して動いた部分だけを消すという動作を実現してみたつもり
だったんだけど、移動量を大きくするとカクツキがどうしても目立ってしまってうまくいかない。ギブアップw
>>369
もっとGDI+の動作を把握するとかゲームなどでの実装方法を探すかした方がいいと思う
残念ながら俺の知識ではここまで
371>>370 (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 19:37:36.72ID:7/UIZFPx0 ごめん
>Panelはデフォルトでダブルバッファが有効だというのを念頭に入れて
Panelはデフォルトでダブルバッファが無効だというのを念頭に入れて
の間違い
>Panelはデフォルトでダブルバッファが有効だというのを念頭に入れて
Panelはデフォルトでダブルバッファが無効だというのを念頭に入れて
の間違い
372デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 20:17:55.74ID:LW3/RgRJa うーんw
>>360のコード自体がダブルバッファリングの実装なので、
少なくともGDI+を使う限り、これで本当にちらつくなら何をやってもちらつき回避は不可能。
何度も言うけど、少なくとも俺の環境では低フレームレート特有の不自然さはあっても
フリッカーは確認できない
しつこいようだけど、俺は質問者がちらつき(フリッカー)がどういう現象か
理解してないだけのように思う
>>360のコード自体がダブルバッファリングの実装なので、
少なくともGDI+を使う限り、これで本当にちらつくなら何をやってもちらつき回避は不可能。
何度も言うけど、少なくとも俺の環境では低フレームレート特有の不自然さはあっても
フリッカーは確認できない
しつこいようだけど、俺は質問者がちらつき(フリッカー)がどういう現象か
理解してないだけのように思う
373デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/06(日) 20:20:58.90ID:j24ysXtO0 まあ、unity使ってもDirectX使ってもスクロールとかなめらかにならないしね
グラボも汚いってのも考慮に入れる
市販のゲームでもスクロールしてるときはカクカクグシャグシャはデフォ
グラボも汚いってのも考慮に入れる
市販のゲームでもスクロールしてるときはカクカクグシャグシャはデフォ
374デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 20:21:41.45ID:9GXSG5IC0 >>370
ありがとうございます
私が確認しても、確かに上下で明らかにチラつきが違い、下ははっきりとわかります
上はほとんどわからないレベルですね
PictureBoxもPanelも、どちらも出来上がったビットマップを貼り付けているのですから
同じ表示になりそうな気がしますが違いますね
これをちゃんと理解できれば解決できそうです
ありがとうございます
私が確認しても、確かに上下で明らかにチラつきが違い、下ははっきりとわかります
上はほとんどわからないレベルですね
PictureBoxもPanelも、どちらも出来上がったビットマップを貼り付けているのですから
同じ表示になりそうな気がしますが違いますね
これをちゃんと理解できれば解決できそうです
375デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 20:36:30.01ID:LW3/RgRJa376デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 20:39:37.09ID:9GXSG5IC0377デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 20:49:20.18ID:7/UIZFPx0 https://ideone.com/PNPIlj
蛇足だろうけどnew BitmapじゃなくPictureBox.Imageを直接描き変えるもの
>>376
370で何をしたかったかというと「ダブルバッファリングではこれ以上改善できない」事の証明
>panelを置いてその上にpictureBox1を置いてます
それは多分関係ない。panelに背景を設定すると話が変わると思うけど
実際に改善するには移動量を少なくして滑らかに見せるくらいしかおもいつかない
消える側の方でなく進行方向側でカクついているんだよなあ・・・
蛇足だろうけどnew BitmapじゃなくPictureBox.Imageを直接描き変えるもの
>>376
370で何をしたかったかというと「ダブルバッファリングではこれ以上改善できない」事の証明
>panelを置いてその上にpictureBox1を置いてます
それは多分関係ない。panelに背景を設定すると話が変わると思うけど
実際に改善するには移動量を少なくして滑らかに見せるくらいしかおもいつかない
消える側の方でなく進行方向側でカクついているんだよなあ・・・
378デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 21:02:31.57ID:9GXSG5IC0 >>377
試してみました
>>370と変わらない感じですね
これまで質問してきた趣旨とは変わってしまいますが、
Graphics g = Graphics.FromImage(pictureBox1.Image);
これでビットマップを書き換えた後に pictureBox1.Image を書き換えていないと
いうことは、いちいち canvas ビットマップを用意して細工しなくてもよかったと
いうことでしょうか
で、本質ですが、ご提供いただいたテストプログラムでは明らかにチラつきの
改善が見られるということはダブルバッファリングは機能している、これ以上
気になるのであれば、それは滑らかさの問題であってチラつきの問題ではない、
と認識するのが良さそうですね
試してみました
>>370と変わらない感じですね
これまで質問してきた趣旨とは変わってしまいますが、
Graphics g = Graphics.FromImage(pictureBox1.Image);
これでビットマップを書き換えた後に pictureBox1.Image を書き換えていないと
いうことは、いちいち canvas ビットマップを用意して細工しなくてもよかったと
いうことでしょうか
で、本質ですが、ご提供いただいたテストプログラムでは明らかにチラつきの
改善が見られるということはダブルバッファリングは機能している、これ以上
気になるのであれば、それは滑らかさの問題であってチラつきの問題ではない、
と認識するのが良さそうですね
379デフォルトの名無しさん (ワッチョイ 7fd3-jSUp)
2018/05/06(日) 21:19:50.71ID:IbwjU9Qn0 下PanelはBackgroundImage使ってるのが悪いんじゃねえかなあ
canvasはPanelのPaintで描画するようにして
PanelのDoubleBufferedをtrueにするかOnPaintBackgroundの無効化でチラ付かなくなったよ
あとチラつきとは関係ないけどお行儀的には再描画はTickで
Invalidate(true)呼び出してPaintのタイミングはフレームワークに任せるべし
Tick毎に無駄にImage/BackgroundImageに突っ込んでるから結果的に自分で再描画してるけど
canvasはPanelのPaintで描画するようにして
PanelのDoubleBufferedをtrueにするかOnPaintBackgroundの無効化でチラ付かなくなったよ
あとチラつきとは関係ないけどお行儀的には再描画はTickで
Invalidate(true)呼び出してPaintのタイミングはフレームワークに任せるべし
Tick毎に無駄にImage/BackgroundImageに突っ込んでるから結果的に自分で再描画してるけど
380デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 21:52:55.18ID:LW3/RgRJa381デフォルトの名無しさん (ワッチョイ ea27-0vvG)
2018/05/06(日) 23:08:48.35ID:s/HjZ7Qd0 >>350
それは参照渡しになってたわけじゃない
C#の参照渡しはhoge(ref list)のようにrefがつく
あなたがハマったのは参照の値渡しでインスタンスは複製されないということ
ぺらぺらの入門書とかだとわからんが、ジェネリックやクラスをちゃんと学べる程度の本なら載ってるはず
それは参照渡しになってたわけじゃない
C#の参照渡しはhoge(ref list)のようにrefがつく
あなたがハマったのは参照の値渡しでインスタンスは複製されないということ
ぺらぺらの入門書とかだとわからんが、ジェネリックやクラスをちゃんと学べる程度の本なら載ってるはず
382デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 23:23:27.04ID:gzoDeGmX0 グラボの性能差だから、ちらつき。
383デフォルトの名無しさん (ワッチョイ 8a7f-NrvC)
2018/05/06(日) 23:49:17.66ID:5astaXB20 >>350
List固有の問題ではなく、classは全て参照型だからだ。
だから、=で代入しても同じオブジェクトを指すだけ。
ちなみにstructは値型。こっちなら=で代入したらオブジェクトが複製される。
List固有の問題ではなく、classは全て参照型だからだ。
だから、=で代入しても同じオブジェクトを指すだけ。
ちなみにstructは値型。こっちなら=で代入したらオブジェクトが複製される。
384デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/07(月) 01:29:04.63ID:inVQGvpaa >>360をFPSと速度を変えられるようにしてみたけど
思ったより面白くもないし動作も滑らかじゃないなw
どっちにしろやっぱりフリッカーは発生しない
https://ideone.com/E3V57h
ところで、タイトルバーをドラッグしたりすると画面の更新が止まる問題を
回避する方法ってなかったっけ?
思ったより面白くもないし動作も滑らかじゃないなw
どっちにしろやっぱりフリッカーは発生しない
https://ideone.com/E3V57h
ところで、タイトルバーをドラッグしたりすると画面の更新が止まる問題を
回避する方法ってなかったっけ?
385デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/07(月) 01:32:11.28ID:inVQGvpaa ああ、今思ったけど、FPSは本当は実測した値を表示すべきだねw
>>384はタイマーのインターバルから計算した理論値で実測値じゃない
>>384はタイマーのインターバルから計算した理論値で実測値じゃない
386デフォルトの名無しさん (ササクッテロラ Sp23-MrO9)
2018/05/07(月) 01:32:57.05ID:3karsGmmp グラボやドライバーの違いで発生する問題を自分のところじゃ発生しないからって頭ごなしに否定する奴はどうして生きてるんだろうな?
387デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/07(月) 01:42:18.83ID:inVQGvpaa >>386
それは君が勝手にそう思ってるだけw
そんな問題はWin9xの時代だって存在しなかったよ
っていうか、言っちゃわるいけどフリッカーが発生する原因を理解していればそんな間抜けな台詞は
出てこない
それは君が勝手にそう思ってるだけw
そんな問題はWin9xの時代だって存在しなかったよ
っていうか、言っちゃわるいけどフリッカーが発生する原因を理解していればそんな間抜けな台詞は
出てこない
388デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/07(月) 01:43:57.94ID:inVQGvpaa なんか垂直同期(笑)とか書いてるのもいたけど、
頭の中80年代で止まってるんじゃなかろうかw
頭の中80年代で止まってるんじゃなかろうかw
389デフォルトの名無しさん (ワッチョイ de8a-a7mP)
2018/05/07(月) 04:32:44.15ID:S2Y5gzQd0 DataGridViewで、複数のカラムを基準にソートするにはどうしたらいいでしょうか。
以下のようなイメージです。
元データ
------
4 2
1 4
2 1
5 4
6 7
1 3
1 6
これを、カラムのヘッダーセルのクリック操作だけで、以下のように出来るようにしたいです。
------
1 3
1 4
1 6
2 1
4 2
5 4
6 7
以下のようなイメージです。
元データ
------
4 2
1 4
2 1
5 4
6 7
1 3
1 6
これを、カラムのヘッダーセルのクリック操作だけで、以下のように出来るようにしたいです。
------
1 3
1 4
1 6
2 1
4 2
5 4
6 7
390デフォルトの名無しさん (ワッチョイ 1e80-pKnf)
2018/05/07(月) 06:24:03.69ID:SlIACPlK0 プロパティだけでは無理
各列のSortModeはAutomatic以外にして
ColumnHeaderClickイベントで自分でソートする必要がある
実際にどうやってソートするかはDataGridViewに表示してるデータをどうやっているか次第
ところで下の状態で1番目の方のカラムヘッダをクリックしたらどうなるの?
とか色々場合があってUIというかUX?を決定するのが結構面倒
各列のSortModeはAutomatic以外にして
ColumnHeaderClickイベントで自分でソートする必要がある
実際にどうやってソートするかはDataGridViewに表示してるデータをどうやっているか次第
ところで下の状態で1番目の方のカラムヘッダをクリックしたらどうなるの?
とか色々場合があってUIというかUX?を決定するのが結構面倒
391デフォルトの名無しさん (ドコグロ MM33-XUQH)
2018/05/07(月) 06:43:05.39ID:UbBhnDZYM さすがに垂直同期はネタだろ
釣られる奴がいるとは思わなかったけど w
釣られる奴がいるとは思わなかったけど w
392デフォルトの名無しさん (ササクッテロラ Sp23-MrO9)
2018/05/07(月) 07:18:03.31ID:3karsGmmp ググって事実を知ったんだな。そんなに悔しいのか?
393デフォルトの名無しさん (ワッチョイ 1e80-SIjl)
2018/05/07(月) 08:25:49.50ID:H7YotaIo0 >>389-390
複数列でのソートは、Kotlin なら、
配列.sortedWith(compareBy({ 列1 }, { 列2 }))
C# は、よく知らないけど、こういう感じ?
配列.OrderBy(列1).ThenBy(列2)
複数列でのソートは、Kotlin なら、
配列.sortedWith(compareBy({ 列1 }, { 列2 }))
C# は、よく知らないけど、こういう感じ?
配列.OrderBy(列1).ThenBy(列2)
394デフォルトの名無しさん (ワッチョイ 0a5d-N4mI)
2018/05/07(月) 14:38:50.30ID:iApxgodj0 教えてください
キャストが上手くできずに困っています
具体的には、VisualStudioでデバッグのウォッチウィンドウに
Enumerable.Empty<int>() is IEnumerable<object>
と入力するとtrueと表示されるので少なくとも条件が整えば
IEnumerable<int> は IEnumerable<object> に
キャストできるとおもうのですが、プログラム上で安直に
Console.WriteLine(Enumerable.Empty<int>() is IEnumerable<object>);
を実行すると画面にFalseと表示されてしまいます
ウォッチウィンドウ上とプログラム上で何か条件の違いがあって
このようなことが起こっているのだとは思いますが、理解が不十分で解決方法が分かりません
そもそもIEnumerable<T>のTは共変なのでintがobjectにアップキャストできる以上
IEnumerable<int>も無条件でIEnumerable<object>にキャストできると
思っていたのですが、この部分に何か誤解があるのでしょうか
VisualStudio15.6.7、コンソールアプリ、ターゲットフレームワーク4.7.1でテストしています
よろしくお願いします
キャストが上手くできずに困っています
具体的には、VisualStudioでデバッグのウォッチウィンドウに
Enumerable.Empty<int>() is IEnumerable<object>
と入力するとtrueと表示されるので少なくとも条件が整えば
IEnumerable<int> は IEnumerable<object> に
キャストできるとおもうのですが、プログラム上で安直に
Console.WriteLine(Enumerable.Empty<int>() is IEnumerable<object>);
を実行すると画面にFalseと表示されてしまいます
ウォッチウィンドウ上とプログラム上で何か条件の違いがあって
このようなことが起こっているのだとは思いますが、理解が不十分で解決方法が分かりません
そもそもIEnumerable<T>のTは共変なのでintがobjectにアップキャストできる以上
IEnumerable<int>も無条件でIEnumerable<object>にキャストできると
思っていたのですが、この部分に何か誤解があるのでしょうか
VisualStudio15.6.7、コンソールアプリ、ターゲットフレームワーク4.7.1でテストしています
よろしくお願いします
395デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/07(月) 18:57:27.81ID:cAXvX5WKa >>394
値型は不変だったような
http://ufcpp.net/study/csharp/sp4_variance.html#value
イミディエイトだとs演算子がtrueを返す理由は分かりませんw
何でしょうね
値型は不変だったような
http://ufcpp.net/study/csharp/sp4_variance.html#value
イミディエイトだとs演算子がtrueを返す理由は分かりませんw
何でしょうね
396デフォルトの名無しさん (ワッチョイ 0a5d-N4mI)
2018/05/07(月) 21:52:56.92ID:iApxgodj0 >>395
レスどうもありがとうございます。その後色々と試してみると、プログラムで
Console.WriteLine((Enumerable.Repeat(4649, 1) as IEnumerable<object>)?.First() ?? 184);
を実行すると画面には184と表示され、教えていただいとことと辻褄が合うように思います
また、これまでの結果から考えてウォッチウィンドウで
(Enumerable.Repeat(4649, 1) as IEnumerable<object>)?.First() ?? 184
の値を調べれば4649と表示されるのかなと思いきや「メモリを読み取ることができません」と表示されたので、
こちらの挙動はおっしゃる通り分からない(バグ?)と考えるしかなさそうです
ジェネリックでないIEnumerableはLINQが使えないのでこれまで
if (x is IEnumerable<object> enumerableObject)
{
...
}
と書く場面があったのですが、これではIEnumerable<値型>が拾えなさそうなので
if (x is IEnumerable enumerable)
{
var enumerableObject = enumerable as IEnumerable<object> ?? enumerable.Cast<object>();
...
}
とでも書いておこうかと思います(今のプログラムではxがジェネリックでないIEnumerableになることはないのですが)
もっと良い方法があれば教えてもらえると嬉しいです
レスどうもありがとうございます。その後色々と試してみると、プログラムで
Console.WriteLine((Enumerable.Repeat(4649, 1) as IEnumerable<object>)?.First() ?? 184);
を実行すると画面には184と表示され、教えていただいとことと辻褄が合うように思います
また、これまでの結果から考えてウォッチウィンドウで
(Enumerable.Repeat(4649, 1) as IEnumerable<object>)?.First() ?? 184
の値を調べれば4649と表示されるのかなと思いきや「メモリを読み取ることができません」と表示されたので、
こちらの挙動はおっしゃる通り分からない(バグ?)と考えるしかなさそうです
ジェネリックでないIEnumerableはLINQが使えないのでこれまで
if (x is IEnumerable<object> enumerableObject)
{
...
}
と書く場面があったのですが、これではIEnumerable<値型>が拾えなさそうなので
if (x is IEnumerable enumerable)
{
var enumerableObject = enumerable as IEnumerable<object> ?? enumerable.Cast<object>();
...
}
とでも書いておこうかと思います(今のプログラムではxがジェネリックでないIEnumerableになることはないのですが)
もっと良い方法があれば教えてもらえると嬉しいです
397デフォルトの名無しさん (ワッチョイ faeb-r3te)
2018/05/09(水) 00:08:06.32ID:98vw71AM0 名前空間A と名前空間A.B がある場合に、A.B内からAのクラスを扱うにはどうすればいいのですか?
398デフォルトの名無しさん (ワッチョイ 1e81-fCfW)
2018/05/09(水) 01:14:34.94ID:KTiGjU5t0 >>321
Aをusingすればよい
Aをusingすればよい
399デフォルトの名無しさん (ワッチョイ 1e81-fCfW)
2018/05/09(水) 01:15:21.71ID:KTiGjU5t0 なんかすげーレス間違えたけど
>>397宛
>>397宛
400デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/09(水) 01:47:53.29ID:lSrhXmV/0 そもそも名前空間ってどうやって扱うのが正しいの?
401デフォルトの名無しさん (ワッチョイ faeb-a7mP)
2018/05/09(水) 02:09:09.87ID:98vw71AM0 >>399
クラスとは違って、やはりそうやって使うものなのですか
クラスとは違って、やはりそうやって使うものなのですか
402デフォルトの名無しさん (ササクッテロラ Sp23-MrO9)
2018/05/09(水) 02:25:39.99ID:PD0iDBLsp 完全表記しても良いんだよ?
403デフォルトの名無しさん (ワッチョイ cf17-jSUp)
2018/05/09(水) 17:57:38.22ID:8iDq54Sd0 嫌なら全部同じ名前空間内に入れ込んでしまえ
悩まなくて済むぞ
悩まなくて済むぞ
404デフォルトの名無しさん (ワッチョイ 1fe3-XJxX)
2018/05/09(水) 18:15:06.67ID:GFIhYWfG0 別に名前空間分ける意味ないよな。
405デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/09(水) 18:19:36.14ID:nbiQ9nbF0 分業の為の仕組み
406デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/09(水) 19:48:53.19ID:lSrhXmV/0407デフォルトの名無しさん (ブーイモ MMef-fCfW)
2018/05/09(水) 19:49:33.69ID:D7X0frHnM C#好きだけどnamespaceでネスト一つ深くなるのはあかんわ
408デフォルトの名無しさん (スッップ Sdaa-xC2/)
2018/05/09(水) 20:08:50.17ID:4zjT3ksId >>406
全て自分で書くコードならいいんだけどね。サードパーティのライブラリのクラスと衝突する可能性なんていくらでもあるから。
全て自分で書くコードならいいんだけどね。サードパーティのライブラリのクラスと衝突する可能性なんていくらでもあるから。
409デフォルトの名無しさん (ワッチョイ 03e7-m5Zl)
2018/05/09(水) 20:10:07.14ID:QZYGN7xi0 >>406
書き分けのために命名が歪むのは良くない
NM1.Class/NM2.Class
NM1Class/NM2Class
単にプリフィクス付けるだけなら
名前空間があろうとなかろうとやってる事は同じ
書き分けのために命名が歪むのは良くない
NM1.Class/NM2.Class
NM1Class/NM2Class
単にプリフィクス付けるだけなら
名前空間があろうとなかろうとやってる事は同じ
410デフォルトの名無しさん (ワッチョイ 8ab3-XUQH)
2018/05/09(水) 20:22:37.87ID:SavMNDDu0 >>406
むしろ同じ名前でも被らないようにする仕組みなんだが...
むしろ同じ名前でも被らないようにする仕組みなんだが...
411デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/09(水) 20:54:59.54ID:EkWsGx0u0 やたら長い名前付けて重複を避けるのさ。
ダイビングがかったるいって?
最初のusingに書くだけだから大丈夫。
ダイビングがかったるいって?
最初のusingに書くだけだから大丈夫。
412デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/09(水) 21:00:22.54ID:EHFfoX53a >>406
自分(同じチーム)で同じ名前の違うクラスが必要になるケースは
少ないが(ないことはない)他人が書いたライブラリで既に使われているのと
同じ名前が必要になるケースなんかいくらでもあるよw
例えばSystem.Drawing.Point以外のPointが使えなかったら困るでしょ
あと、名前空間の目的は名前のバッティングの回避だけじゃない。
むしろ一番の目的は分類と整理でしょ。
名前空間が使えないライブラリは全部のファイルをデスクトップに置くできない人と同じ
適切に命名され適切な階層構造をもった名前空間は索引の機能を持つし、
コードのコンテキストを明確にする。
System.Drawing.PointがPointだけで2Dグラフィックの座標だと分かるのは、
プログラマはそれがSystem.Drawing内の型だと知っているから
自分(同じチーム)で同じ名前の違うクラスが必要になるケースは
少ないが(ないことはない)他人が書いたライブラリで既に使われているのと
同じ名前が必要になるケースなんかいくらでもあるよw
例えばSystem.Drawing.Point以外のPointが使えなかったら困るでしょ
あと、名前空間の目的は名前のバッティングの回避だけじゃない。
むしろ一番の目的は分類と整理でしょ。
名前空間が使えないライブラリは全部のファイルをデスクトップに置くできない人と同じ
適切に命名され適切な階層構造をもった名前空間は索引の機能を持つし、
コードのコンテキストを明確にする。
System.Drawing.PointがPointだけで2Dグラフィックの座標だと分かるのは、
プログラマはそれがSystem.Drawing内の型だと知っているから
413デフォルトの名無しさん (ワントンキン MMa3-k/8h)
2018/05/10(木) 00:36:27.80ID:yXMj8vMdM using エイリアス ディレクティブ でggr
414デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/10(木) 01:45:10.65ID:m/SOSTAZ0 >>412
普通にdrawingのcolorとmediaのcolorがバッティングしてるじゃん
それと自作のcolorとこれまた別の奴の作ったcolorがバッティングするだけでもう面倒臭くて死にそうになる
普通にdrawingのcolorとmediaのcolorがバッティングしてるじゃん
それと自作のcolorとこれまた別の奴の作ったcolorがバッティングするだけでもう面倒臭くて死にそうになる
415デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/10(木) 01:55:25.02ID:m/SOSTAZ0 もっというとwpfでも別のcolor作ってんじゃん
バッティングうぜぇんだよ
こんな簡単なクラスでもう再利用効かないんだから名前空間まで作って管理するなよバカっタレかよ
当のMSからもうまともなことやってねぇっていうかできないんだから
いい加減ファンタジー設計はやめるべき
いや、もうファンタジーじゃないな
メルヘンの領域まで入ってる
バッティングうぜぇんだよ
こんな簡単なクラスでもう再利用効かないんだから名前空間まで作って管理するなよバカっタレかよ
当のMSからもうまともなことやってねぇっていうかできないんだから
いい加減ファンタジー設計はやめるべき
いや、もうファンタジーじゃないな
メルヘンの領域まで入ってる
416デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/10(木) 02:19:31.02ID:di97fd/ta >>414-415
何を言ってるのか意味がわからねいよ。
何を言ってるのか意味がわからねいよ。
417デフォルトの名無しさん (ワッチョイ 237f-iSle)
2018/05/10(木) 02:30:05.52ID:yIfUPK8/0 この程度で死ぬほど面倒臭がってたら、プログラミング自体が向いてないな。
418デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/10(木) 04:06:02.42ID:R4f/WJPq0 C#8.0のpreviewきましたねえ
https://github.com/dotnet/csharplang/wiki/vNext-Preview
https://github.com/dotnet/csharplang/wiki/vNext-Preview
419デフォルトの名無しさん (ドコグロ MM93-V2If)
2018/05/10(木) 07:27:01.34ID:1WB9uyi8M >>416
バカじゃん
何でwinformにcolorあるのにwpfでも作ったの?
再利用できてないじゃん
役に立たないじゃん
名前空間分けてそれで?
新しいもの作ったら元気一杯に捨ててるじゃん
ってとこに集約する
バカじゃん
何でwinformにcolorあるのにwpfでも作ったの?
再利用できてないじゃん
役に立たないじゃん
名前空間分けてそれで?
新しいもの作ったら元気一杯に捨ててるじゃん
ってとこに集約する
420デフォルトの名無しさん (ワッチョイ 7daf-RQhD)
2018/05/10(木) 07:37:29.76ID:CKE2Ak/10 Color構造体とColorsクラスの事かな?
421デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/10(木) 07:48:33.05ID:M9xdMPFN0 こいついつものアレだろ
触るな
触るな
422デフォルトの名無しさん (ドコグロ MM93-V2If)
2018/05/10(木) 08:08:52.60ID:1WB9uyi8M >>421
反論できないならcolorクラスはもう作らせないぞ
反論できないならcolorクラスはもう作らせないぞ
423デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/10(木) 09:17:58.68ID:l4uhHAvqa 全く話題になってないけどC#7.3も正式リリースされたぞ
念願の where T : Enum
念願の where T : Enum
424デフォルトの名無しさん (ワッチョイ 2dd3-Iyo3)
2018/05/10(木) 09:36:24.91ID:EV77m/Hv0425デフォルトの名無しさん (ラクッペ MM01-nFcL)
2018/05/10(木) 09:51:09.75ID:2wmh3oy2M426デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/10(木) 10:30:56.59ID:Yjx9MaDJp つか、同じ名前で違う用途に割り当てる方が難儀だろ普通は名前変える。
427デフォルトの名無しさん (スッップ Sd43-UqMB)
2018/05/10(木) 12:33:21.16ID:kan/O/6Ed >>426
だから世の中にどんだけクラスが存在すると思ってんの?
だから世の中にどんだけクラスが存在すると思ってんの?
428デフォルトの名無しさん (アウアウウー Sa89-Iyo3)
2018/05/10(木) 12:51:46.30ID:YLAKf1v1a 普通の初心者だったらSystem.IOのPathとWPFのPathが競合することが気になると思う
429デフォルトの名無しさん (アウアウウー Sa89-Iyo3)
2018/05/10(木) 12:53:40.23ID:YLAKf1v1a イギリスだったらつづりはcolour
430デフォルトの名無しさん (ワッチョイ 23e3-Iyo3)
2018/05/10(木) 19:43:14.60ID:M5rAF93d0 コロワァ
431デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/10(木) 20:53:17.15ID:Yjx9MaDJp >>427
自前クラスを組み込むクラスの組み合わせだけ考えりゃよかんべよ。
自前クラスを組み込むクラスの組み合わせだけ考えりゃよかんべよ。
432デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/10(木) 22:10:03.44ID:R4f/WJPq0 >>431
日本語で
日本語で
433デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/11(金) 00:30:31.25ID:F4aYSsq30 >>424
WPF「WinFormなんて爺さんのクラスなんて使えるかよ」
WPF「WinFormなんて爺さんのクラスなんて使えるかよ」
434デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/11(金) 00:58:40.04ID:TW3IXpUfa >>433
WinFormsが定年間近の爺さんだとしたらWPFは35歳無職童貞だな
WinFormsが定年間近の爺さんだとしたらWPFは35歳無職童貞だな
435デフォルトの名無しさん (ドコグロ MM93-V2If)
2018/05/11(金) 13:52:55.21ID:sq5ITweXM drawimageって自分でクリッピングしないとはみ出たら遅い?
436デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/11(金) 14:13:09.38ID:NZxgVNkdp formとwpfで、似て非なる部品ってどうにかならんの?
ネットで使い方調べる時、紛らわしいんだよな。
ネットで使い方調べる時、紛らわしいんだよな。
437デフォルトの名無しさん (ワッチョイ 23ea-Ca5/)
2018/05/11(金) 14:36:21.57ID:SfoScckv0 >>433
UWP「そろそろWPFさんにはご退場願おうか」
UWP「そろそろWPFさんにはご退場願おうか」
438デフォルトの名無しさん (スフッ Sd43-RQhD)
2018/05/11(金) 15:23:07.83ID:oUtXC/5od >>437
メーカー「そろそろUWP用のコントロールつくっか?」
メーカー「そろそろUWP用のコントロールつくっか?」
439デフォルトの名無しさん (ブーイモ MMeb-GlfE)
2018/05/11(金) 16:30:16.71ID:DPTi05MZM 親フォームからnewした子フォームは親とは非同期ですか?それとも同期処理となりますか?
440デフォルトの名無しさん (ブーイモ MM43-27Jw)
2018/05/11(金) 16:50:42.60ID:Kz4/xaqBM 正しい言葉の使い方では非同期だけど、たぶん君が言ってるのは同期か非同期かではなくて同じスレッドかどうかだろう
それでいえば同じスレッド
それでいえば同じスレッド
441デフォルトの名無しさん (ワッチョイ 25b5-4FyP)
2018/05/11(金) 17:48:49.51ID:n/c4W3DX0 つか、聞きたいのは、モーダルかモードレスかじゃね?
442デフォルトの名無しさん (ワッチョイ cb9a-k37M)
2018/05/11(金) 17:56:35.27ID:+Mrz0iyE0 ここで質問するときは自分が何をやりたいかを書いてもらった方がいいな
>>439
>>441の意味なら
方法 : Windows フォームをモーダルおよびモードレスで表示する
https://msdn.microsoft.com/ja-jp/library/39wcs2dh(v=vs.110).aspx
>>439
>>441の意味なら
方法 : Windows フォームをモーダルおよびモードレスで表示する
https://msdn.microsoft.com/ja-jp/library/39wcs2dh(v=vs.110).aspx
443デフォルトの名無しさん (ブーイモ MM49-GlfE)
2018/05/11(金) 19:52:53.18ID:7YPYpwobM444デフォルトの名無しさん (ワッチョイ 4b9f-ZOQu)
2018/05/11(金) 20:39:18.87ID:A7KRRugp0 ポータブルアプリの設定ファイルを扱うなら何がスタンダードですか?
XmlSerializer使ってxmlファイルにするか
Win32API経由でレガシーなiniファイルにするか。
やっぱ前者ですかね?
XmlSerializer使ってxmlファイルにするか
Win32API経由でレガシーなiniファイルにするか。
やっぱ前者ですかね?
445デフォルトの名無しさん (ブーイモ MM19-27Jw)
2018/05/11(金) 20:42:59.37ID:H5+wAeJBM >>444
今時はJSON
今時はJSON
446デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/11(金) 21:30:53.62ID:wYle0Ioy0 >>444
セオリー通りappsettings.jsonやろ普通
セオリー通りappsettings.jsonやろ普通
447デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/11(金) 21:55:14.15ID:F4aYSsq30448デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/11(金) 21:57:27.82ID:wYle0Ioy0 >>447
キチガイ
キチガイ
449デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/11(金) 22:04:41.45ID:F4aYSsq30450デフォルトの名無しさん (ワッチョイ 2565-5o/y)
2018/05/11(金) 22:08:27.43ID:KxM4SNOx0 yamlとかtomlもまぁアリだな
jsonはtailing commaがちょっと煩い
jsonはtailing commaがちょっと煩い
451デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/11(金) 22:08:43.32ID:wYle0Ioy0 ごめんキチガイに触ってしまった
452デフォルトの名無しさん (スップ Sd43-UqMB)
2018/05/11(金) 22:09:55.64ID:o64e7/8Ad >>450
C#ならappsettings.jsonで良くね?IOptionとの相性いいし
C#ならappsettings.jsonで良くね?IOptionとの相性いいし
453デフォルトの名無しさん (ワッチョイ 2565-5o/y)
2018/05/11(金) 22:11:29.14ID:KxM4SNOx0454444 (ワッチョイ 4b9f-ZOQu)
2018/05/11(金) 23:25:00.79ID:A7KRRugp0 なるほど、今時はJSONですか。
ただ、少し調べて見たところweb系の構成ファイルとして使う?みたいで自分の思ってるのとは違うのかなと感じました。
後出しになってしまって申し訳ないんですが、自分のイメージしてるのはFormアプリで例えば「最前面に表示する/しない」だとか「昇順/降順で並べる」みたいな、チェックボックスやラジオボタンの選択内容を起動時に読み込み、終了時に書き込みする想定です。
appsettings.jsonは読み込みしかなさそうだったのですが、書き込みってありますか?自分でjson形式にコンバートしてベタに書き込みしろってことですかね?
ただ、少し調べて見たところweb系の構成ファイルとして使う?みたいで自分の思ってるのとは違うのかなと感じました。
後出しになってしまって申し訳ないんですが、自分のイメージしてるのはFormアプリで例えば「最前面に表示する/しない」だとか「昇順/降順で並べる」みたいな、チェックボックスやラジオボタンの選択内容を起動時に読み込み、終了時に書き込みする想定です。
appsettings.jsonは読み込みしかなさそうだったのですが、書き込みってありますか?自分でjson形式にコンバートしてベタに書き込みしろってことですかね?
455デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/11(金) 23:28:06.24ID:gh5GwZAv0 >>454
その用途ならアプリ外からエディタで編集させることなんて無いだろうから、正直なんでも良いと思う
その用途ならアプリ外からエディタで編集させることなんて無いだろうから、正直なんでも良いと思う
456デフォルトの名無しさん (ワッチョイ ab9f-17DL)
2018/05/11(金) 23:31:25.65ID:fVy+Ps+50 jsonならNewtonSoftがあるけどyamlシリアライザだとどれがデファクトなんだ?
457デフォルトの名無しさん (ワッチョイ ab9f-17DL)
2018/05/11(金) 23:31:53.13ID:fVy+Ps+50 jsonならNewtonSoftがあるけどyamlシリアライザだとどれがデファクトなんだ?
458デフォルトの名無しさん (ワッチョイ 2565-5o/y)
2018/05/11(金) 23:33:44.23ID:KxM4SNOx0459デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/12(土) 00:31:10.54ID:wbfjgNFba 前も書いたけど騙されたらダメwww
.NETには標準のシリアライザがいくつも存在するんだから、特に理由がないかぎり
あえて外様を使うとか頭の悪い中学生じみてる
.NETには標準のシリアライザがいくつも存在するんだから、特に理由がないかぎり
あえて外様を使うとか頭の悪い中学生じみてる
460デフォルトの名無しさん (ワッチョイ cbe8-k37M)
2018/05/12(土) 03:56:46.76ID:ek+Myn8j0 var exts = {".jpeg", ".jpg", ".png", ".gif"};
var f = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories)
.Where(c => exts.All(extension => !c.EndsWith(extension)))
.ToArray();
extsの拡張子以外のファイルを抽出したいんだけど
大文字小文字区別せずに拡張子だけを比較する方法ないですか?
もっと効率いい方法ある気が・・・
var f = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories)
.Where(c => exts.All(extension => !c.EndsWith(extension)))
.ToArray();
extsの拡張子以外のファイルを抽出したいんだけど
大文字小文字区別せずに拡張子だけを比較する方法ないですか?
もっと効率いい方法ある気が・・・
461デフォルトの名無しさん (ワッチョイ cbe8-k37M)
2018/05/12(土) 04:18:13.81ID:ek+Myn8j0 !c.ToLower().EndsWith(extension)
で対応します
で対応します
462デフォルトの名無しさん (ワッチョイ 039d-uwJI)
2018/05/12(土) 05:18:29.02ID:V3QYZkJA0 >.NETには標準のシリアライザがいくつも存在するんだから、特に理由がないかぎり
>あえて外様を使うとか頭の悪い中学生じみてる
いくつもあるの? どんなのがあるのか三つくらい教えてください。
ビルドするごとに消えるのでは使いにくいというか何度もビルドするのは普通だとおもうので
それでは使い物にならないので、ビルドしても消えないものがいい。
>あえて外様を使うとか頭の悪い中学生じみてる
いくつもあるの? どんなのがあるのか三つくらい教えてください。
ビルドするごとに消えるのでは使いにくいというか何度もビルドするのは普通だとおもうので
それでは使い物にならないので、ビルドしても消えないものがいい。
463デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/12(土) 06:12:38.61ID:Qc7Beiuka >>459
今時その認識は正直ヤバい
今の.NETの標準のシリアライザはJSON.NET
Core系では完全に標準シリアライザとしてフレームワークで使われてるし、MSDNにもJSONならJSON.NET使えと書いてる
今時その認識は正直ヤバい
今の.NETの標準のシリアライザはJSON.NET
Core系では完全に標準シリアライザとしてフレームワークで使われてるし、MSDNにもJSONならJSON.NET使えと書いてる
464デフォルトの名無しさん (ワントンキン MMa3-k/8h)
2018/05/12(土) 06:16:13.33ID:9vavBtpKM465デフォルトの名無しさん (ワントンキン MMa3-k/8h)
2018/05/12(土) 06:20:19.72ID:9vavBtpKM >>463
DataContractJsonSerializer でなくJson.net のソースは?
DataContractJsonSerializer でなくJson.net のソースは?
466デフォルトの名無しさん (ワッチョイ 3d9e-pJrV)
2018/05/12(土) 06:29:12.76ID:hwxaPbIq0 設定ファイルは、csv, yaml, json。
Java系のant, maven などは、XML。
Mac系は、property file
chef, vagrant では、Ruby。
Gradle では、Groovy
Haxe のserializer は、数個のプログラミング言語に渡って機能するし、
json, xml みたいに型情報が無くなったりしない
もちろん、Ruby, Groovy も、
プログラミング言語自体が設定ファイルだから、そのまま使える
Java系のant, maven などは、XML。
Mac系は、property file
chef, vagrant では、Ruby。
Gradle では、Groovy
Haxe のserializer は、数個のプログラミング言語に渡って機能するし、
json, xml みたいに型情報が無くなったりしない
もちろん、Ruby, Groovy も、
プログラミング言語自体が設定ファイルだから、そのまま使える
467デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/12(土) 07:13:07.72ID:Qc7Beiuka >>465
https://msdn.microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx
なんか勘違いしてるみたいだけど、DataContract系は通信に使うもので
ファイルの読み書きに使うことを想定されているもんじゃないよ
https://msdn.microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx
なんか勘違いしてるみたいだけど、DataContract系は通信に使うもので
ファイルの読み書きに使うことを想定されているもんじゃないよ
468デフォルトの名無しさん (ブーイモ MM19-27Jw)
2018/05/12(土) 07:21:14.10ID:UP+Hygq+M DataContractSerializerは絶対にファイルに書いちゃダメってわけではないけど、データのスキーマがあらかじめ決まってる場合には使えない
あくまで書く側と読む側とで解釈が共通でありさえすれればよくて、その中身を人間は気にしないよ、ってときに使う
あくまで書く側と読む側とで解釈が共通でありさえすれればよくて、その中身を人間は気にしないよ、ってときに使う
469444 (ワッチョイ 4b9f-ZOQu)
2018/05/12(土) 07:26:10.70ID:4i84e4IV0 調べが足りずすみません。
NewtonsoftのJSON.NETというのを使えばいいみたいですね。
.NET標準のXmlSerializerと同じような感じの使い方ですね。
ちなみに、XMLはやめた方が良いと意見ありましたが、
どういった理由からでしょうか?
NewtonsoftのJSON.NETというのを使えばいいみたいですね。
.NET標準のXmlSerializerと同じような感じの使い方ですね。
ちなみに、XMLはやめた方が良いと意見ありましたが、
どういった理由からでしょうか?
470デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/12(土) 07:35:16.58ID:Qc7Beiuka XMLは全世界共通の汎用データ交換フォーマットであることが採用する唯一の理由であり、
JSONが主流になった時点で既に存在意義が失われているから
JSONが主流になった時点で既に存在意義が失われているから
471デフォルトの名無しさん (ワッチョイ 3d9e-pJrV)
2018/05/12(土) 07:45:11.57ID:hwxaPbIq0 XML は、JSON よりも可読性が高いから、人が見る・書く設定ファイル。
例えば、アプリのフォームのデザインの設定ファイルに使う
人が見ない、単にコンピューター間のデータの受け渡しには、JSON
XMLを使うと、ややこしい
例えば、アプリのフォームのデザインの設定ファイルに使う
人が見ない、単にコンピューター間のデータの受け渡しには、JSON
XMLを使うと、ややこしい
472デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 07:52:19.68ID:yKmgHprg0473デフォルトの名無しさん (ワッチョイ 039d-uwJI)
2018/05/12(土) 08:08:53.44ID:V3QYZkJA0 XMLは可読性がわるい。つまり直観が効かない。機械向きで非人間的だから設定ファイルには不向き。
たしかに寄ってたかってよく考えてあるのは解る。それには感心するが、寄ってたかって考えすぎると
たいていは失敗する。その代表的な例としてはXMLもっとも良い例のひとつだろう。つまり駄作だなとおもう。
たしかに寄ってたかってよく考えてあるのは解る。それには感心するが、寄ってたかって考えすぎると
たいていは失敗する。その代表的な例としてはXMLもっとも良い例のひとつだろう。つまり駄作だなとおもう。
474デフォルトの名無しさん (ワッチョイ 2306-Iyo3)
2018/05/12(土) 08:28:20.91ID:YrlOJuyZ0 jsonはいい加減コメントの使用を本家が認めるべきだわな
475デフォルトの名無しさん (ワッチョイ 8d03-XovT)
2018/05/12(土) 08:45:40.67ID:tydT0Seq0 >>471
XMLが読みやすいってwサヴァン症候群なんおまえ?w
XMLが読みやすいってwサヴァン症候群なんおまえ?w
476デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/12(土) 08:49:00.82ID:KCIDKf2Q0 コメントがあると独自スキーマを作り始めるからわざと外したと言っているけど病的だわ
これだから実務屋でない奴は
これだから実務屋でない奴は
477デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/12(土) 08:50:11.44ID:KCIDKf2Q0 そいつC#スレとPythonスレでよく見かけるが
サヴァンかどうかはともかく発達障害は煩ってるぞ
サヴァンかどうかはともかく発達障害は煩ってるぞ
478デフォルトの名無しさん (ワッチョイ 6de3-Iyo3)
2018/05/12(土) 08:52:02.93ID:Y49XSW9o0 >>460
EndsWithの第二引数は使えない?
EndsWithの第二引数は使えない?
479デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 08:57:27.63ID:vhGL8v7ea >>476
悪名高いJSONライセンス(Good, not Evil)も作ってるからなぁ
悪名高いJSONライセンス(Good, not Evil)も作ってるからなぁ
480デフォルトの名無しさん (ワントンキン MMa3-k/8h)
2018/05/12(土) 09:22:58.61ID:9vavBtpKM >>467
THX
THX
481デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 09:36:45.26ID:15xgRckc0482デフォルトの名無しさん (ワッチョイ cb80-pME0)
2018/05/12(土) 09:37:39.20ID:btyZbm2S0 XMLのタグの対応って言うけど
JSONも例えば}が数階層のどっかで一つ消えたら人間に対応できなくなるよね
JSONも例えば}が数階層のどっかで一つ消えたら人間に対応できなくなるよね
483デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 09:45:59.03ID:iloBjJ0sM データの規模が大きくなったらXMLのほうが断然有利
JSONとXHTMLを等価変換するスクリプトを書いてJSONだけでウェブサイトを構築する実験を社内でやった事があるがJSONのスコアは酷いものだった
JSONはネストが深くなると使い物にならん
JSONとXHTMLを等価変換するスクリプトを書いてJSONだけでウェブサイトを構築する実験を社内でやった事があるがJSONのスコアは酷いものだった
JSONはネストが深くなると使い物にならん
484デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 09:49:55.91ID:15xgRckc0 >>483
どんな点で有利なのかすら書けないクズ
どんな点で有利なのかすら書けないクズ
485デフォルトの名無しさん (ワッチョイ cd17-Iyo3)
2018/05/12(土) 09:51:04.77ID:56F0arFd0 何のデータも示さずjsonは使い物にならないと言われてもねー
486デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 09:56:29.74ID:iloBjJ0sM データは自社の資産だから常識的に勝手には公表できない
実験方法は簡単にだけど示したのだからデータが欲しければ実験して検証すればいい
逆にJSONが優れていると言うなら
根拠無しではなくデータなり検証方法を示してほしいね
実験方法は簡単にだけど示したのだからデータが欲しければ実験して検証すればいい
逆にJSONが優れていると言うなら
根拠無しではなくデータなり検証方法を示してほしいね
487デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 09:58:57.02ID:yKmgHprg0488デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:00:05.00ID:vhGL8v7ea https://www.infoq.com/news/2013/08/xml-json-performance
同じくらいのパフォーマンスというならまぁ納得出来る
クソみたいなパーサ使わにゃネスト深さでパフォーマンスが悪化するわけねーだろ
同じくらいのパフォーマンスというならまぁ納得出来る
クソみたいなパーサ使わにゃネスト深さでパフォーマンスが悪化するわけねーだろ
489デフォルトの名無しさん (ワッチョイ cd17-Iyo3)
2018/05/12(土) 10:00:18.08ID:56F0arFd0490デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:00:46.67ID:My8LWy2ka XHTMLって死んだ技術だと思うが
10年ぐらい前の世界かな?
xmlが見やすいって人は初めて見た
10年ぐらい前の世界かな?
xmlが見やすいって人は初めて見た
491デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 10:08:59.85ID:iloBjJ0sM492デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:10:42.69ID:vhGL8v7ea 再現するJSONとXMLを一個ずつ用意すれば終わるのに自分以外の人間が必要か?
プログラミングやったことありますか?
プログラミングやったことありますか?
493デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 10:19:11.86ID:iloBjJ0sM >>492
あんたは論外
パフォーマンスの話なんて誰もしてない
今はみんな生産性、可読性、保守性の話をしてるんだよ
それを測るためにJSONとXHTMLを等価変換するツールを作った
グループAの人達にはJSONでタグ打ちさせてそのJSONをツールでXHTMLに変換した
グループBの人達にはXHTMLで直接タグ打ちさせた
完成するまでの時間や完成したXHTMLのバグ密度など様々なメトリクスを計測したら直接タグ打ちしたグループBのほうがスコアが高かった
グループAとグループBのスコア差はネスト数が深いほど大きくなった
そういう話な
パフォーマンス比較なんてくだらん話は他所でやってくれ
あんたは論外
パフォーマンスの話なんて誰もしてない
今はみんな生産性、可読性、保守性の話をしてるんだよ
それを測るためにJSONとXHTMLを等価変換するツールを作った
グループAの人達にはJSONでタグ打ちさせてそのJSONをツールでXHTMLに変換した
グループBの人達にはXHTMLで直接タグ打ちさせた
完成するまでの時間や完成したXHTMLのバグ密度など様々なメトリクスを計測したら直接タグ打ちしたグループBのほうがスコアが高かった
グループAとグループBのスコア差はネスト数が深いほど大きくなった
そういう話な
パフォーマンス比較なんてくだらん話は他所でやってくれ
494デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:21:37.68ID:My8LWy2ka >>493
人間のやることじゃないことを人間にさせて比較する意味がよくわからない
人間のやることじゃないことを人間にさせて比較する意味がよくわからない
495デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/12(土) 10:22:19.67ID:7mnYG5Gia496デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:22:47.54ID:vhGL8v7ea >>493
人間がやる意味が分からん
人間がやる意味が分からん
497デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/12(土) 10:25:26.75ID:FqtFYlf30 流石にこれは擁護できんわw
498デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:25:55.10ID:My8LWy2ka テキストデータをバイナリエディタで書かせるような意味不明な実験を
やって悦にいる会社に勤めてかわいそうとしか思えない
上が暗愚だと下が苦労する
やって悦にいる会社に勤めてかわいそうとしか思えない
上が暗愚だと下が苦労する
499デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 10:26:11.54ID:iloBjJ0sM 馬鹿しかいないのか
人間がやる意味がないとか言ってる連中は実験の趣旨を全く理解してない
だから思考停止してノータイムでボタン押すのやめろって言ってるんだよ
ほんと馬鹿の相手するの疲れるな
人間がやる意味がないとか言ってる連中は実験の趣旨を全く理解してない
だから思考停止してノータイムでボタン押すのやめろって言ってるんだよ
ほんと馬鹿の相手するの疲れるな
500デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:28:00.46ID:vhGL8v7ea こいつはなかなか面白いな, 素でこのコミュ力ならなかなかの逸材だし作っているならよく理解している
501デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:30:21.85ID:My8LWy2ka502デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:31:58.09ID:My8LWy2ka いや面白いな
どこかの技術系のサイトでネタにしてくれないかな
どこかの技術系のサイトでネタにしてくれないかな
503デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:32:26.46ID:yKmgHprg0 結局、手動で設定するファイルであるなら
jsonもxmlもゴミだろ?
なんの話してんの?
jsonもxmlもゴミだろ?
なんの話してんの?
504デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:36:00.72ID:My8LWy2ka505デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:37:02.56ID:vhGL8v7ea 深くて3階層程度でそんなに行数多くないならJSONは苦痛は少ないかな
506デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:37:30.03ID:yKmgHprg0507デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:38:25.47ID:15xgRckc0 >>506
それが無意味に思えるなんて幸せなやつだな
それが無意味に思えるなんて幸せなやつだな
508デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:39:01.19ID:yKmgHprg0 >>507
だってjsonもxmlもいらねーもんよ
だってjsonもxmlもいらねーもんよ
509デフォルトの名無しさん (スッップ Sd43-UqMB)
2018/05/12(土) 10:39:07.44ID:PQYWGVmCd >>506
xlsとかwwwバージョン管理システム使ったことすらなさそうだな
xlsとかwwwバージョン管理システム使ったことすらなさそうだな
510デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:39:44.13ID:vhGL8v7ea 残念だけどXMLはクソオブクソだけどXLSとかCSVはそれをはるかに上回るクソなの
511デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:39:58.36ID:yKmgHprg0 >>509
csvでもいいよ
csvでもいいよ
512デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:40:08.84ID:15xgRckc0 >>508
C#やめた方がいいよ
C#やめた方がいいよ
513デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:40:21.22ID:yKmgHprg0 >>510
理由は?
理由は?
514デフォルトの名無しさん (ワッチョイ b5c3-1lFe)
2018/05/12(土) 10:40:23.88ID:NuxM0Gnx0 せめてxlsxにしてくれ
515デフォルトの名無しさん (スッップ Sd43-UqMB)
2018/05/12(土) 10:41:06.38ID:PQYWGVmCd >>511
反論する気すら起きんわ
反論する気すら起きんわ
516デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:41:21.27ID:yKmgHprg0 db(Sqlite)もあるぞ
517デフォルトの名無しさん (ブーイモ MM19-27Jw)
2018/05/12(土) 10:41:32.86ID:wBO8DWf8M >>493の実験は「XHTMLのデータはJSONで記述するには適さない」ということを示しているだけだな
そりゃXHTMLのスキーマはXMLで表現しやすいように設計されてるんだから、
JSONだと属性とコンテンツの区別がなかったりして記述しづらいのは当たり前だ
JSONにはJSONに適したスキーマ設計がある
そりゃXHTMLのスキーマはXMLで表現しやすいように設計されてるんだから、
JSONだと属性とコンテンツの区別がなかったりして記述しづらいのは当たり前だ
JSONにはJSONに適したスキーマ設計がある
518デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:41:52.87ID:15xgRckc0 やっぱGitすら使えなさそうだな
519デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:43:33.27ID:yKmgHprg0 >>518
gitでcsvの差分見れないの?
gitでcsvの差分見れないの?
520デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:44:43.29ID:15xgRckc0 >>519
Gitでsqliteの差分見るのかい?
Gitでsqliteの差分見るのかい?
521デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:45:36.20ID:vhGL8v7ea522デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:45:58.87ID:yKmgHprg0523デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 10:46:25.99ID:iloBjJ0sM >>504
VSCodeのセッティングはネストが浅くて比較的読みやすいし、VSCodeによるコード生成がうまく機能してるからね
VSCodeのセッティングはネストが浅くて比較的読みやすいし、VSCodeによるコード生成がうまく機能してるからね
524デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:47:06.15ID:15xgRckc0 >>522
もはや何を言っているのかわからん
もはや何を言っているのかわからん
525デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:47:34.43ID:yKmgHprg0 >>521
ビジネスでExcel入ってない環境とかあるの?
ビジネスでExcel入ってない環境とかあるの?
526デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/12(土) 10:47:44.90ID:kT5GzpcRa エクセルからマスターや設定をインポートするようになってるシステムは壊しそうで怖いわ
うっかりレイアウトがズレてて正しくデータが取れなくなるとかよくある
バージョン管理の問題にも関連するけど、再現性が乏しいんだよエクセルは
うっかりレイアウトがズレてて正しくデータが取れなくなるとかよくある
バージョン管理の問題にも関連するけど、再現性が乏しいんだよエクセルは
527デフォルトの名無しさん (スッップ Sd43-UqMB)
2018/05/12(土) 10:47:54.11ID:WIOr5zBad >>522
おれsqliteのバイナリをテキストエディタで書き換える能力ないのよ
おれsqliteのバイナリをテキストエディタで書き換える能力ないのよ
528デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:48:23.30ID:yKmgHprg0 >>524
DB同士のデータの比較したことねーの?
DB同士のデータの比較したことねーの?
529デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 10:48:28.96ID:My8LWy2ka >>517
そこの会社の内部の抗争があるんだと思う
いまどきxhtmlを使ってる派閥がいて
そいつらが不利になったので意味不明なテストでxhtmlすげーをやって
何も考えないやつがそれに賛同したと
エジソンが高圧送電は危険だと言って動物を殺す実験をしたようなもの
そこの会社の内部の抗争があるんだと思う
いまどきxhtmlを使ってる派閥がいて
そいつらが不利になったので意味不明なテストでxhtmlすげーをやって
何も考えないやつがそれに賛同したと
エジソンが高圧送電は危険だと言って動物を殺す実験をしたようなもの
530デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:48:32.15ID:15xgRckc0 >>525
いくらでもあるよ
いくらでもあるよ
531デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:48:32.71ID:vhGL8v7ea >>525
開発は仮想のLinux上とか普通にあるから
開発は仮想のLinux上とか普通にあるから
532デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:49:49.02ID:15xgRckc0 >>528
json vs xmlの比較とは全く異なる次元のものを持ち込んで比較しようとするクズ
json vs xmlの比較とは全く異なる次元のものを持ち込んで比較しようとするクズ
533デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:50:39.51ID:yKmgHprg0 >>531
openoffice入れろよ
openoffice入れろよ
534デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:51:17.57ID:15xgRckc0 >>533
こいつdotnet newすら打ったことなさそうだな
こいつdotnet newすら打ったことなさそうだな
535デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:51:39.21ID:yKmgHprg0536デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:51:42.38ID:vhGL8v7ea >>533
開発用システムでXLS読むために入れるとか本末転倒
開発用システムでXLS読むために入れるとか本末転倒
537デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 10:52:47.54ID:yKmgHprg0538デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:53:32.62ID:15xgRckc0 >>535
専用ツールがないと編集できないものなんてイラネ
専用ツールがないと編集できないものなんてイラネ
539デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 10:53:45.26ID:iloBjJ0sM >>506
Excelの場合はそもそもツリーデータ構造を表現するためのスタンダードなフォーマットが無いので比較する以前の段階
まずはツリー形式のデータ構造を表現するためのフォーマットのデファクトスタンダードを業界全体で決めてくれ
比較はその後に回していいんじゃないかな
Excelの場合はそもそもツリーデータ構造を表現するためのスタンダードなフォーマットが無いので比較する以前の段階
まずはツリー形式のデータ構造を表現するためのフォーマットのデファクトスタンダードを業界全体で決めてくれ
比較はその後に回していいんじゃないかな
540デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 10:54:09.51ID:15xgRckc0 >>537
Linux使ったことないやろ
Linux使ったことないやろ
541デフォルトの名無しさん (ワッチョイ b5c3-1lFe)
2018/05/12(土) 10:55:07.24ID:NuxM0Gnx0 vscodeのsettings.jsonとか見せたら発狂しそう
542デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 10:55:50.61ID:vhGL8v7ea >>537
客は会社のシステム部門なんで別にExcel喜ばれないですむしろ殴られそうです
客は会社のシステム部門なんで別にExcel喜ばれないですむしろ殴られそうです
543デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 11:00:04.65ID:vhGL8v7ea あとXLSXはともかくXLSをC#から弄ったことないんだけどExcelなしで読めるの?
COM使って読むとか言わないよね?
COM使って読むとか言わないよね?
544デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 11:08:10.26ID:iloBjJ0sM >>517
やっとちゃんと読んでレスしてる人が来た
確かにもともとXMLをベースに考案されたデータ構造なのでXMLに有利と言えるかもしれない
しかしそれを認めると議論の発端である「jsonはxmlより優れている」という命題を「対象次第ではxmlのほうが有利である」という命題で最初から否定することになってしまう
本当に「jsonはxmlより優れている」なら対象がXHTMLだろうとなんであろうともjsonのスコアが高くなっていなければおかしい
やっとちゃんと読んでレスしてる人が来た
確かにもともとXMLをベースに考案されたデータ構造なのでXMLに有利と言えるかもしれない
しかしそれを認めると議論の発端である「jsonはxmlより優れている」という命題を「対象次第ではxmlのほうが有利である」という命題で最初から否定することになってしまう
本当に「jsonはxmlより優れている」なら対象がXHTMLだろうとなんであろうともjsonのスコアが高くなっていなければおかしい
545デフォルトの名無しさん (ワッチョイ ab9f-17DL)
2018/05/12(土) 11:23:55.86ID:P5sx5scC0 なんでもかんでもExcelでやりたいVBAer()さんはVBAスレにおかえりください
事務員さんの常識はプログラマには通用しません
事務員さんの常識はプログラマには通用しません
546デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 11:30:46.95ID:15xgRckc0547デフォルトの名無しさん (ブーイモ MM19-GlfE)
2018/05/12(土) 11:33:52.89ID:5EDA9IkjM >>465
横から失礼。マイクロソフトの人もそう言ってるよ
横から失礼。マイクロソフトの人もそう言ってるよ
548デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/12(土) 11:34:13.72ID:FqtFYlf30 >>543
OLEDB使えばExcelインストール無しでも読めるで
OLEDB使えばExcelインストール無しでも読めるで
549デフォルトの名無しさん (ブーイモ MM19-GlfE)
2018/05/12(土) 11:34:57.85ID:5EDA9IkjM >>469
一言でいえば古い。
一言でいえば古い。
550デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/12(土) 11:36:20.02ID:FqtFYlf30 この手の議論はUI入力とデータ保持を同一のものとして考えちゃうから平行線だわな
551デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 11:40:59.55ID:My8LWy2ka552デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/12(土) 12:09:17.30ID:iloBjJ0sM >>551
残念だけど君には話が通じないね
残念だけど君には話が通じないね
553デフォルトの名無しさん (ワッチョイ cbe8-k37M)
2018/05/12(土) 12:44:54.52ID:ek+Myn8j0554デフォルトの名無しさん (ワッチョイ 4b9f-BsV1)
2018/05/12(土) 12:51:51.95ID:XqIGE8bt0555デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/12(土) 13:25:14.58ID:UZR1Ryt2a >>550
それ以前の話でしょw
設定データをユーザーが編集したいなんてかなり特殊な前提でありかつ質問者も
そんな要件を一言も上げてないのにアホかと、
.NET標準のシリアライザではなくあえて外様を使う理由はと聞いて、返って来た明確な答えは
結局「そっちの方が目新しいから」だけ。
中学生じみてるよと言ってるそばからこれだ。
プログラマ板みたいな話になっちゃうけど、本当今じゃプログラマって知能指数が低い奴が
やる仕事になってることを実感するよ
それ以前の話でしょw
設定データをユーザーが編集したいなんてかなり特殊な前提でありかつ質問者も
そんな要件を一言も上げてないのにアホかと、
.NET標準のシリアライザではなくあえて外様を使う理由はと聞いて、返って来た明確な答えは
結局「そっちの方が目新しいから」だけ。
中学生じみてるよと言ってるそばからこれだ。
プログラマ板みたいな話になっちゃうけど、本当今じゃプログラマって知能指数が低い奴が
やる仕事になってることを実感するよ
556デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 13:26:52.97ID:My8LWy2ka json,.netを使うのは早くて使いやすいからだと思う
使いやすいと書くとまた難癖つけられそうだけどw
使いやすいと書くとまた難癖つけられそうだけどw
557デフォルトの名無しさん (ドコグロ MM93-V2If)
2018/05/12(土) 14:59:39.27ID:d5Fp40ymM >>556
どういう観点で見たときの使いやすいなのか説明が無いよね?
どういう観点で見たときの使いやすいなのか説明が無いよね?
558デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 15:01:04.84ID:15xgRckc0 >>555
Microsoftの基本的なライブラリもJSON.netに依存してる
https://www.nuget.org/packages/Microsoft.Extensions.DependencyModel/
Microsoftの基本的なライブラリもJSON.netに依存してる
https://www.nuget.org/packages/Microsoft.Extensions.DependencyModel/
559デフォルトの名無しさん (ワッチョイ 05d2-5xfy)
2018/05/12(土) 15:05:00.44ID:AEXJFe1f0 自分が json を使うとしたら、
・周りが使ってるから
・xml と比較して見た目が好み
って程度の理由だなあ。
どっちが優れてるかの比較なんてそれ自体がズレてるような。
・周りが使ってるから
・xml と比較して見た目が好み
って程度の理由だなあ。
どっちが優れてるかの比較なんてそれ自体がズレてるような。
560デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/12(土) 15:35:45.32ID:KCIDKf2Q0 暇そうだな
同じヒマでも俺は運動してたけど
同じヒマでも俺は運動してたけど
561デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/12(土) 15:49:43.76ID:F4kLnVK3p シリアライズ出来れば何でもいいよ。
562デフォルトの名無しさん (ワッチョイ cbe8-k37M)
2018/05/12(土) 16:47:10.12ID:ek+Myn8j0 結局Windowsのフォームアプリの設定ファイルは何が適してるんだよ
jsonでもxmlでも大差ないよ好きな方どうぞって結論でいいの?
jsonでもxmlでも大差ないよ好きな方どうぞって結論でいいの?
563デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/12(土) 16:54:33.55ID:gqffA4Jja >>562
そもそも今時フォームアプリなんか採用する時点で全力で時代に背を向けてるんだからどうでもいいよ
そもそも今時フォームアプリなんか採用する時点で全力で時代に背を向けてるんだからどうでもいいよ
564デフォルトの名無しさん (アウアウウー Sa89-bFqk)
2018/05/12(土) 17:04:25.00ID:I6pHI0GBa565デフォルトの名無しさん (ラクッペ MM01-nFcL)
2018/05/12(土) 17:37:38.32ID:AiYRYzWlM Settings使え+1
566デフォルトの名無しさん (ブーイモ MM19-GlfE)
2018/05/12(土) 17:53:54.95ID:5EDA9IkjM >>562
configファイルにjson形式で書き込む
configファイルにjson形式で書き込む
567デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/12(土) 17:58:28.95ID:UZR1Ryt2a >>564-565
質問者は「ポータブルアプリの設定ファイル」と言ってる。
ポータブルアプリがUSBメモリに入れて持ち歩くような物のことを言ってるなら、
Settingsは明らかに不適切
あと、個人的にあんまりアプリケーション設定使ったことないんで勘違いしてるかもしれんが、
これって結構制限も多いしいろいろ面倒だよね
質問者は「ポータブルアプリの設定ファイル」と言ってる。
ポータブルアプリがUSBメモリに入れて持ち歩くような物のことを言ってるなら、
Settingsは明らかに不適切
あと、個人的にあんまりアプリケーション設定使ったことないんで勘違いしてるかもしれんが、
これって結構制限も多いしいろいろ面倒だよね
568444 (ワッチョイ 4b9f-ZOQu)
2018/05/12(土) 21:13:35.08ID:4i84e4IV0 質問者ですが、こんなに荒れてしまうとは、、、申し訳ない。
おっしゃるように通常のWindowsフォームアプリならSettingsがデザイナで設定できるし楽なんですが、
ファイルの格納先がローカル(Roamingだったかな?)になるのでUSBメモリなどに持ち運んで使うポータブルアプリとしては採用できないというところでの質問でした。
特に設定ファイルの可読性を求めないようであれば、
形式としては古いが追加ライブラリ不要のXMLか、
スタンダードな形式だが別途追加ライブラリ必要なJSONか、
好きな方を選べって感じですかね。。
おっしゃるように通常のWindowsフォームアプリならSettingsがデザイナで設定できるし楽なんですが、
ファイルの格納先がローカル(Roamingだったかな?)になるのでUSBメモリなどに持ち運んで使うポータブルアプリとしては採用できないというところでの質問でした。
特に設定ファイルの可読性を求めないようであれば、
形式としては古いが追加ライブラリ不要のXMLか、
スタンダードな形式だが別途追加ライブラリ必要なJSONか、
好きな方を選べって感じですかね。。
569デフォルトの名無しさん (ワントンキン MMa3-k/8h)
2018/05/12(土) 21:31:41.93ID:9vavBtpKM ユーザー定義リソースにしてexeに直接書き込むって方法もあるよ
570デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/12(土) 21:32:18.31ID:FqtFYlf30 >>568
USBで運ぶポータブルアプリ程度ならApplicationSettings保存でもいいんじゃないの?
USBで運ぶポータブルアプリ程度ならApplicationSettings保存でもいいんじゃないの?
571デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/12(土) 21:33:56.53ID:yKmgHprg0 exeの直下でいいよな
572デフォルトの名無しさん (アウアウカー Sa11-4Ye1)
2018/05/12(土) 21:48:32.28ID:euW2BAe4a アプリケーションスコープにするとアプリから書き込みできないよ
573デフォルトの名無しさん (ワッチョイ a5d7-RQhD)
2018/05/12(土) 22:03:47.45ID:fKL1gupm0 >>571
でもアクセスの速度違うときあるからね。
でもアクセスの速度違うときあるからね。
574デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/13(日) 14:47:14.23ID:ySggkKZM0 すいません。
初心者なのでこちらに移動してきました。
MVC的な設計で
初期設定値を入力するフォーム
↓
初期設定値を格納するクラス
というのを作りたいのですが、
A.
クラス側に各変数のプロパティを作成
フォームからプロパティを介してクラスの変数に値を代入
B.
クラス側にフォームの初期値を取りに行くメソッドを作成
クラスからメソッドを実行してフォームに値を取りに行く
のどちらが良いのでしょう?
自分ではAの方がよさそうな気がするのですが、一般的な設計としてこうするというのがあったら教えてください。
初心者なのでこちらに移動してきました。
MVC的な設計で
初期設定値を入力するフォーム
↓
初期設定値を格納するクラス
というのを作りたいのですが、
A.
クラス側に各変数のプロパティを作成
フォームからプロパティを介してクラスの変数に値を代入
B.
クラス側にフォームの初期値を取りに行くメソッドを作成
クラスからメソッドを実行してフォームに値を取りに行く
のどちらが良いのでしょう?
自分ではAの方がよさそうな気がするのですが、一般的な設計としてこうするというのがあったら教えてください。
575デフォルトの名無しさん (ワッチョイ a5d7-RQhD)
2018/05/13(日) 16:02:40.98ID:GQV4/ETF0 ケツの穴から手をつっこんで奥歯をがたがたみたいなBよりA
576デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/13(日) 16:26:25.12ID:N5R39axQ0577デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/13(日) 16:39:15.74ID:i7PAGBqeM >>574
// form
void btnSaveInitialSettings_Click(object sender, EventArgs e) {
try { this.SaveInitialSettings(); }
catch(...) { ... }
}
void SaveInitialSettings() {
var initialSettings = this.GetInitialSettings();
var reaction =
this.initialSettingsController.SaveInitialSettings(initialSettings);
reaction?.Invoke(this);
}
// controller
Action<IInitialSettingsView> SaveInitialSettings(InitialSettings initialSettings) {
this.initialSettingsService.SaveInitialSettings(initialSettings);
return view => view.Refresh();
}
// form
void btnSaveInitialSettings_Click(object sender, EventArgs e) {
try { this.SaveInitialSettings(); }
catch(...) { ... }
}
void SaveInitialSettings() {
var initialSettings = this.GetInitialSettings();
var reaction =
this.initialSettingsController.SaveInitialSettings(initialSettings);
reaction?.Invoke(this);
}
// controller
Action<IInitialSettingsView> SaveInitialSettings(InitialSettings initialSettings) {
this.initialSettingsService.SaveInitialSettings(initialSettings);
return view => view.Refresh();
}
578デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/13(日) 18:54:27.05ID:kDeIpxe/p 初心者は出来上がってから検討すりゃいいんだよ。
つうか、プロ目指してるなら、先ずは完成させる癖を付けないとな。
万年アマチュアでいいのなら些末な問題で盛り上がればいいさ。
つうか、プロ目指してるなら、先ずは完成させる癖を付けないとな。
万年アマチュアでいいのなら些末な問題で盛り上がればいいさ。
579デフォルトの名無しさん (ワッチョイ 23e3-Iyo3)
2018/05/13(日) 20:18:25.58ID:QhZTiQlx0 まず終わらせろ、Facebookのにいちゃんも言ってたべな。
580デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/13(日) 20:30:10.29ID:i7PAGBqeM Facebookにいちゃんが誰かわからんがそいつが言うまず終わらせろ、とお前が考えるまず終わらせろは別物だと思うぞ
ユニットテストとリファクタリング込みでまず終わらせろ、って言ってるならマトモだけど、将来のことなにも考えずまず終わらせろって言うならただの害悪
ユニットテストとリファクタリング込みでまず終わらせろ、って言ってるならマトモだけど、将来のことなにも考えずまず終わらせろって言うならただの害悪
581デフォルトの名無しさん (ワッチョイ 25b5-4FyP)
2018/05/13(日) 20:32:15.38ID:23x2pXKw0 >>580
リファクタリングなんか完成した後にバージョンアップする機会があったらやればいいんだよ。
リファクタリングなんか完成した後にバージョンアップする機会があったらやればいいんだよ。
582デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/13(日) 20:35:20.07ID:kDeIpxe/p 将来が有るかどうかなんて、売れてから考えろw
タイムイズマネーだ。無駄なリソース費やしてる暇が会ったら次の案件片付けろ。
タイムイズマネーだ。無駄なリソース費やしてる暇が会ったら次の案件片付けろ。
583デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/13(日) 20:36:03.21ID:N5R39axQ0584デフォルトの名無しさん (ワッチョイ cd17-Iyo3)
2018/05/13(日) 20:37:25.10ID:+qfB7sI70 仕様通りの動きだけど汚いコードと
仕様通りの動きじゃないけど綺麗なコード
を同じ時間で仕上げたとして、どっちが優れているかと言えば前者だよな
仕様通りの動きじゃないけど綺麗なコード
を同じ時間で仕上げたとして、どっちが優れているかと言えば前者だよな
585デフォルトの名無しさん (ワッチョイ cbc9-k37M)
2018/05/13(日) 20:58:57.32ID:9JUaags60586デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/13(日) 21:04:34.41ID:kDeIpxe/p まあ、熟練者になれば、素早く仕様通りのコードを綺麗に仕上げて来るからな。
初心者は先ず動くコード、次に仕様通り、最後に綺麗なコードでいいよ。
時間掛かるのはこの際問題にしないw
初心者は先ず動くコード、次に仕様通り、最後に綺麗なコードでいいよ。
時間掛かるのはこの際問題にしないw
587デフォルトの名無しさん (ワッチョイ 23e3-V2If)
2018/05/13(日) 21:04:59.21ID:N5R39axQ0 リピーターが多い汚いコードと
リピーターが少ない綺麗なコード
後者はゴミだよね
リピーターが少ない綺麗なコード
後者はゴミだよね
588デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/13(日) 21:14:50.20ID:i7PAGBqeM 世の中の多くのバカが勘違いしてるんだけど
綺麗なコード==間違えやすい製造に時間がかかるコード
じゃないんだよね
綺麗なコードはバグが少ないし製造も早い
汚くても動くコードを早く書け!なんて言ってるやつは根本的に何かがズレてる
そんな方針でコーディングしたら汚くて動かないコードを時間をかけて作る羽目になる
綺麗なコード==間違えやすい製造に時間がかかるコード
じゃないんだよね
綺麗なコードはバグが少ないし製造も早い
汚くても動くコードを早く書け!なんて言ってるやつは根本的に何かがズレてる
そんな方針でコーディングしたら汚くて動かないコードを時間をかけて作る羽目になる
589デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/13(日) 21:19:44.86ID:kDeIpxe/p 洗練された華麗なコードとインデント揃っただけの綺麗なコードを混同してるばか発見
590デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/13(日) 21:22:07.78ID:asXlnx2Ka >>574
UI(Form)がモデル(何か仕事をするクラス)の参照を持つのは問題ないが、
逆は良くない。理由は、
(1) 役割分担があいまいになる
厨房の人間が1分おきにウェイターに注文を確認するのは適切な役割分担と言えるか?
(2) つぶしがきかない
Formの参照を握ってFormのメンバーを操作するクラスは、UIをWPFやUWPに
変更しても使いまわしできるか?
UI(Form)がモデル(何か仕事をするクラス)の参照を持つのは問題ないが、
逆は良くない。理由は、
(1) 役割分担があいまいになる
厨房の人間が1分おきにウェイターに注文を確認するのは適切な役割分担と言えるか?
(2) つぶしがきかない
Formの参照を握ってFormのメンバーを操作するクラスは、UIをWPFやUWPに
変更しても使いまわしできるか?
591デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/13(日) 21:59:31.92ID:ySggkKZM0592デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/13(日) 22:02:31.19ID:ySggkKZM0 >>590
UIがデータ格納用クラスのインスタンスを生成
UIがプロパティを介してデータ格納用クラスの変数に代入
UIがコントローラにデータ格納用クラスのインスタンスを渡す
みたいな感じでよろしいでしょうか?
UIがデータ格納用クラスのインスタンスを生成
UIがプロパティを介してデータ格納用クラスの変数に代入
UIがコントローラにデータ格納用クラスのインスタンスを渡す
みたいな感じでよろしいでしょうか?
593デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/13(日) 22:27:53.20ID:asXlnx2Ka >>592
>UIがデータ格納用クラスのインスタンスを生成
誰がモデルのインスタンスを生成するかはケースバイケースだしどうでもよろしい
>UIがプロパティを介してデータ格納用クラスの変数に代入
重箱の隅をつつくようだが、オブジェクトのプロパティやメソッドを操作する時に
「データ格納用クラスの変数に代入 」なんていう内部の実装を意識する必要はない。
必要はない、というか意識しなくても使えるように作るのがカプセル化。
>UIがコントローラにデータ格納用クラスのインスタンスを渡す
俺がMVCを理解してないだけの可能性もあるが、少なくともWindows Formでは
VとCを分けたりしないのが普通と思う。コントローラなんてイラネ
>UIがデータ格納用クラスのインスタンスを生成
誰がモデルのインスタンスを生成するかはケースバイケースだしどうでもよろしい
>UIがプロパティを介してデータ格納用クラスの変数に代入
重箱の隅をつつくようだが、オブジェクトのプロパティやメソッドを操作する時に
「データ格納用クラスの変数に代入 」なんていう内部の実装を意識する必要はない。
必要はない、というか意識しなくても使えるように作るのがカプセル化。
>UIがコントローラにデータ格納用クラスのインスタンスを渡す
俺がMVCを理解してないだけの可能性もあるが、少なくともWindows Formでは
VとCを分けたりしないのが普通と思う。コントローラなんてイラネ
594デフォルトの名無しさん (アウアウカー Sa11-+fqb)
2018/05/13(日) 23:13:35.13ID:TUC5Idjma 話蒸し返して悪いんだが、xmlシリアライザーって今使ってるとやばいの?業務アプリの設定ファイルほぼこれで今までやってたんだが。。
とりあえず今やってる案件JSONで見直してみるか
一人で開発やってるとついついこういうのに遅れがちになるなぁ
とりあえず今やってる案件JSONで見直してみるか
一人で開発やってるとついついこういうのに遅れがちになるなぁ
595デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/13(日) 23:15:02.41ID:F2hiJGIV0 >>594
どんな用途で?
どんな用途で?
596デフォルトの名無しさん (ワッチョイ 237f-iSle)
2018/05/13(日) 23:22:29.79ID:KKJavIw30 csvとJSONなら圧倒的に後者のがメリットあるけど、
xmlとJSONなら規模がでかくない限りどっちでも良いや
xmlとJSONなら規模がでかくない限りどっちでも良いや
597デフォルトの名無しさん (アウアウウー Sa89-27Jw)
2018/05/13(日) 23:33:10.62ID:R40HLbPBa598デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/13(日) 23:37:31.23ID:OUJCfbgi0599デフォルトの名無しさん (ワッチョイ cbe8-k37M)
2018/05/13(日) 23:38:24.99ID:PSHb3apy0600デフォルトの名無しさん (ワッチョイ 3d9e-pJrV)
2018/05/13(日) 23:40:15.36ID:u4TQvgwd0 Ant, Maven とか、Java系は、XML。
Android 画面の設定ファイルとか
Windows でも、XAML で画面設定する
プロジェクトの設定ファイルも
JSON を設定ファイルに使うのは、JavaScript を使ったもの。
例えば、Node.js を含んだ、VS Code
他には、プログラミング言語自体が設定ファイルになるもの。
Ruby, Groovy, Haxe
Android 画面の設定ファイルとか
Windows でも、XAML で画面設定する
プロジェクトの設定ファイルも
JSON を設定ファイルに使うのは、JavaScript を使ったもの。
例えば、Node.js を含んだ、VS Code
他には、プログラミング言語自体が設定ファイルになるもの。
Ruby, Groovy, Haxe
601デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/13(日) 23:48:46.83ID:i7PAGBqeM602デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/13(日) 23:57:11.22ID:F2hiJGIV0603デフォルトの名無しさん (ワッチョイ 6de3-V2If)
2018/05/13(日) 23:57:32.58ID:OUJCfbgi0604デフォルトの名無しさん (ワンミングク MMa3-2hZ9)
2018/05/14(月) 00:04:35.25ID:3eK20qHjM605デフォルトの名無しさん (ワッチョイ 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
705デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/19(土) 02:40:16.65ID:FwiHY2dca706デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/19(土) 02:40:41.00ID:6pEEqPiCM あと、仮に>>700の想定が正しいとするなら、抽象化すべきはクラスBではなくAの方でしょ
例えばAのデバイス依存部分だけをIDeviceインターフェイスとして切り出して委譲するとかね
Aにイベントを持たせるんだと、別のデバイスを監視するクラスCができたら
AのイベントとCのイベントをそれぞれ個別にイベントハンドリングしなきゃいけなくなる
ちゃんと頭使おうね
例えばAのデバイス依存部分だけをIDeviceインターフェイスとして切り出して委譲するとかね
Aにイベントを持たせるんだと、別のデバイスを監視するクラスCができたら
AのイベントとCのイベントをそれぞれ個別にイベントハンドリングしなきゃいけなくなる
ちゃんと頭使おうね
707デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/19(土) 02:47:51.94ID:6pEEqPiCM >>705
揚げ足取るようで悪いけど、Viewの参照をModelが持つこと自体は何の問題もないよ
というか、そうしないとMからVへの変化通知が実現できない
イベントを使うにしても結局参照は持ってるよ
MVPといって、IViewのようなインターフェイスを通してMからVを呼ぶパターンもあるね
なるべく疎にしたいのは型同士の依存関係の話で、参照するのがダメなわけじゃない
揚げ足取るようで悪いけど、Viewの参照をModelが持つこと自体は何の問題もないよ
というか、そうしないとMからVへの変化通知が実現できない
イベントを使うにしても結局参照は持ってるよ
MVPといって、IViewのようなインターフェイスを通してMからVを呼ぶパターンもあるね
なるべく疎にしたいのは型同士の依存関係の話で、参照するのがダメなわけじゃない
708デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/19(土) 02:58:10.85ID:FwiHY2dca709デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/19(土) 03:03:16.45ID:FwiHY2dca まあ質問者の>>697に言うけど、実際書いてみれば
イベントで実装した方がずっとコンパクトかつ可読的に書けることが分かると思うよ。
Bが仮にAでしか利用しないクラスだとしても、普通はAはイベントを発行するだけ、
Bはそのイベントを受信して何か処理をする、ってやった方がずっと分かりやすい
イベントで実装した方がずっとコンパクトかつ可読的に書けることが分かると思うよ。
Bが仮にAでしか利用しないクラスだとしても、普通はAはイベントを発行するだけ、
Bはそのイベントを受信して何か処理をする、ってやった方がずっと分かりやすい
710デフォルトの名無しさん (アウアウウー Sa39-mCTX)
2018/05/19(土) 03:21:21.26ID:ZECHChrda メソッド一つだけならイベントでもいいけど、少なくとも>>697はメソッドが複数あるときもあると言ってるんだからイベントは不適切でしょ
インターフェイスで纏めたほうが扱いやすい
あえてそこにインターフェイスを噛ませる必要があるかどうかはYAGNIの問題だが、それとはまた別の観点の判断だ
インターフェイスで纏めたほうが扱いやすい
あえてそこにインターフェイスを噛ませる必要があるかどうかはYAGNIの問題だが、それとはまた別の観点の判断だ
711デフォルトの名無しさん (ワッチョイ 9dc3-NEzo)
2018/05/19(土) 06:03:27.91ID:uNgfR/HH0 プログラムで使用するテキストデータを、excelで管理しています
closecXMLを使ってアクセスしていて、これ自体は無事に実装できました
テストが一通り終わって、テキストデータも確定したので、データの散逸や
改ざんを防ぐために実行ファイルに埋め込みたいのですが、リソースとして
取り扱うことってできないでしょうか
具体的には、
workbook = new XLWorkbook(filename);
として開いているところがあるのですが、このfilenameにリソースファイルの
名前を当てることができないのか調べています
string filename = "Properties.Resources.textdata.xlsx";
としてアクセスできれば簡単だと思っていたのですが、そうはいきませんでした
closecXMLを使ってアクセスしていて、これ自体は無事に実装できました
テストが一通り終わって、テキストデータも確定したので、データの散逸や
改ざんを防ぐために実行ファイルに埋め込みたいのですが、リソースとして
取り扱うことってできないでしょうか
具体的には、
workbook = new XLWorkbook(filename);
として開いているところがあるのですが、このfilenameにリソースファイルの
名前を当てることができないのか調べています
string filename = "Properties.Resources.textdata.xlsx";
としてアクセスできれば簡単だと思っていたのですが、そうはいきませんでした
712デフォルトの名無しさん (ブーイモ MMfa-1jw3)
2018/05/19(土) 06:14:14.58ID:gOuRua2dM ユーザー定義リソースは何でも書けるよ。
713デフォルトの名無しさん (ワッチョイ 9dc3-NEzo)
2018/05/19(土) 06:37:08.02ID:uNgfR/HH0 具体的にどういう手順を踏めばよいのでしょう?
excelデータは1,000行以上あるので、取り込みではなく手入力が必要だと
ちょっと切ないです
でももう修正しないもの(修正するとしても部分的)ですから、機械的に
データを移行できるのであればそれでも問題ありません
excelデータは1,000行以上あるので、取り込みではなく手入力が必要だと
ちょっと切ないです
でももう修正しないもの(修正するとしても部分的)ですから、機械的に
データを移行できるのであればそれでも問題ありません
714デフォルトの名無しさん (ブーイモ MMfa-1jw3)
2018/05/19(土) 07:47:44.04ID:gOuRua2dM 静的に呼びだすなら5つのAPI
FindResource()
LoadResource()
SizeofResource()
LockResource()
FreeResource()
動的に更新するなら更に3つ
BeginUpdateResource()
EndUpdateResource()
UpdateResource()
FindResource()
LoadResource()
SizeofResource()
LockResource()
FreeResource()
動的に更新するなら更に3つ
BeginUpdateResource()
EndUpdateResource()
UpdateResource()
715デフォルトの名無しさん (ワントンキン MMea-wqAz)
2018/05/19(土) 07:53:26.18ID:z3BmCHYgM >>701
こういう奴が頻繁に現れるのを見るとYAGNIの罪は大きいなって思う
こういう奴が頻繁に現れるのを見るとYAGNIの罪は大きいなって思う
716デフォルトの名無しさん (ワッチョイ 5a1e-XbkE)
2018/05/19(土) 07:55:26.69ID:7BFPa/Jf0 別に複数でもそんな多くなければイベントでも問題ないんじゃねぇかな
717デフォルトの名無しさん (ワッチョイ 9dc3-NEzo)
2018/05/19(土) 08:03:52.08ID:uNgfR/HH0 >>714
ありがとうございます、それぞれのAPIについて調べてみます
ありがとうございます、それぞれのAPIについて調べてみます
718デフォルトの名無しさん (ワッチョイ 5a1e-XbkE)
2018/05/19(土) 08:13:32.92ID:7BFPa/Jf0 結局バランスの問題だな。もちろん人によってバランス違うけど。
イベントによって結果再利用性あがるけど、
>イベントで実装した方がずっとコンパクトかつ可読的に書けることが分かると思うよ。
の通り、可読性の観点からしてもイベントの方が分かりやすいと思う。
これぐらいもYAGNIとかいってるようじゃ、極端すぎてバランス感覚おかしいんじゃねぇかな。
イベントによって結果再利用性あがるけど、
>イベントで実装した方がずっとコンパクトかつ可読的に書けることが分かると思うよ。
の通り、可読性の観点からしてもイベントの方が分かりやすいと思う。
これぐらいもYAGNIとかいってるようじゃ、極端すぎてバランス感覚おかしいんじゃねぇかな。
719デフォルトの名無しさん (アウアウウー Sa39-mCTX)
2018/05/19(土) 09:36:48.03ID:ZECHChrda720デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 10:02:26.30ID:35k9lSzB0721デフォルトの名無しさん (アウアウカー Sa4d-5W05)
2018/05/19(土) 10:47:04.32ID:zmVeGZ3Ia >>697です
みなさん色々なご意見ありがとうございます
基本的にはイベント等で疎結合にしたクラス作りが望ましいが、ケースバイケースで状況に応じてどちらの実装でも問題はないといったところでしょうか
レスして頂いた内容は非常に参考になり、まさにその両者のいい分で自分もどちらが最適解なのか悩んでいましたが、結局状況を判断出来る私が決めて実装するしかないのかなと思いました
途中インターフェースをかましてすれば良いとのレスがありましたが、どういった実装をすればいいのか全くわかりませんでした。この方法でも検討してみたいので、すみませんが具体的な実装を教えて頂けないでしょうか
みなさん色々なご意見ありがとうございます
基本的にはイベント等で疎結合にしたクラス作りが望ましいが、ケースバイケースで状況に応じてどちらの実装でも問題はないといったところでしょうか
レスして頂いた内容は非常に参考になり、まさにその両者のいい分で自分もどちらが最適解なのか悩んでいましたが、結局状況を判断出来る私が決めて実装するしかないのかなと思いました
途中インターフェースをかましてすれば良いとのレスがありましたが、どういった実装をすればいいのか全くわかりませんでした。この方法でも検討してみたいので、すみませんが具体的な実装を教えて頂けないでしょうか
722デフォルトの名無しさん (アウアウウー Sa39-mCTX)
2018/05/19(土) 11:44:50.68ID:mNRmauI8a >>721
interface IAlert {
void Set(Severity severity);
void Unset();
}
たとえば、あるアラートに対してこういうインターフェイスを定義する
クラスAはこれをコンストラクタで受け取り、温度センサーの値が閾値を超えたら危険度に応じた引数でSetメソッドを呼ぶ
温度が低下して閾値を割ったらUnsetを呼んで解除する
このIAlertインターフェイスを、具体的な実装、たとえばパトランプを操作するクラスが実装するわけ
こうしておけば、
パトランプじゃなくて画面でアラート状態を表示したくなったときにAに手を入れずにIAlertを実装するだけで済む
もちろん、パトランプしか想定しなくていいなら直接パトランプクラスのメソッドを呼んでもいいし、Unsetが必要ないならイベントでもいいかもね
ただしイベントの場合はBからAへの密結合が発生するとか、それを避けるなら追加で橋渡しのコードが都度必要になるといった懸念点もある
interface IAlert {
void Set(Severity severity);
void Unset();
}
たとえば、あるアラートに対してこういうインターフェイスを定義する
クラスAはこれをコンストラクタで受け取り、温度センサーの値が閾値を超えたら危険度に応じた引数でSetメソッドを呼ぶ
温度が低下して閾値を割ったらUnsetを呼んで解除する
このIAlertインターフェイスを、具体的な実装、たとえばパトランプを操作するクラスが実装するわけ
こうしておけば、
パトランプじゃなくて画面でアラート状態を表示したくなったときにAに手を入れずにIAlertを実装するだけで済む
もちろん、パトランプしか想定しなくていいなら直接パトランプクラスのメソッドを呼んでもいいし、Unsetが必要ないならイベントでもいいかもね
ただしイベントの場合はBからAへの密結合が発生するとか、それを避けるなら追加で橋渡しのコードが都度必要になるといった懸念点もある
723デフォルトの名無しさん (ワッチョイ 7680-zp6D)
2018/05/19(土) 11:49:58.15ID:F9kKaYLV0 >>695
拡張メソッドでも定義すれば
拡張メソッドでも定義すれば
724デフォルトの名無しさん (アウアウカー Sa4d-5W05)
2018/05/19(土) 12:01:43.59ID:hl18fyg5a725デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 12:20:10.98ID:35k9lSzB0 BASICしか経験がないど素人がC#始めたんだけど、
クラス間の参照の受け渡しというのが難しいです・・・。
クラスの参照を配列に入れて、それを受け渡しするとか動くコードはなんとかかけてるんだけど、
自分で一体何をしているのか分からなくなる時がある。
クラス間の参照の受け渡しというのが難しいです・・・。
クラスの参照を配列に入れて、それを受け渡しするとか動くコードはなんとかかけてるんだけど、
自分で一体何をしているのか分からなくなる時がある。
726デフォルトの名無しさん (ワッチョイ 75eb-/w+O)
2018/05/19(土) 13:04:35.48ID:uWI+Vuzc0 >>725
真っ先に直さなきゃならないのは、「スコープの広い配列にインスタンスを入れておけば、どこからでも全てのデータにすぐにアクセスできていいじゃん!」と思っちゃう点でさあ
C#のスキルの無さから設計までメチャクチャにしてるんじゃないのかねえ
真っ先に直さなきゃならないのは、「スコープの広い配列にインスタンスを入れておけば、どこからでも全てのデータにすぐにアクセスできていいじゃん!」と思っちゃう点でさあ
C#のスキルの無さから設計までメチャクチャにしてるんじゃないのかねえ
727デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 13:15:00.73ID:m/ZPa8pNM BASIC系って悪い習慣を覚えちゃうよね
特にVBAはひどい
特にVBAはひどい
728デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 13:27:26.49ID:m/ZPa8pNM >>722
それだと温度センサーがアラートをコントロールしているように解釈される
常識的に考えてアラートのコントロールは温度センサーの仕事ではないだろう
これは名前の問題であってインターフェースよりイベントを使えと言ってるわけではない
それだと温度センサーがアラートをコントロールしているように解釈される
常識的に考えてアラートのコントロールは温度センサーの仕事ではないだろう
これは名前の問題であってインターフェースよりイベントを使えと言ってるわけではない
729デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 14:08:44.26ID:35k9lSzB0 >>726
その通りです。
すべての変数をどこからでもアクセスしたい衝動にかられます。
Aのクラスの機能がA1とA2に分化できるから分けようと思うと、
AはCを参照してたからA1とA2両方にCのインスタンス参照を渡そうとなり、
結局機能は分けれたものの、どのクラスがどのクラスを参照してるのかがよくわからなくなってきました。
その通りです。
すべての変数をどこからでもアクセスしたい衝動にかられます。
Aのクラスの機能がA1とA2に分化できるから分けようと思うと、
AはCを参照してたからA1とA2両方にCのインスタンス参照を渡そうとなり、
結局機能は分けれたものの、どのクラスがどのクラスを参照してるのかがよくわからなくなってきました。
730デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 14:11:58.71ID:35k9lSzB0 値1、2個を渡すのは簡単なんですけど、
クラスのインスタンスを100個つくるためにその参照を配列にいれる
参照の入った配列をreturnで返す
とかしてるとなんの値をいじってるのかわけわかめです。
これまで値と参照の区別をして思考してこなかったからなのかなぁ。
クラスのインスタンスを100個つくるためにその参照を配列にいれる
参照の入った配列をreturnで返す
とかしてるとなんの値をいじってるのかわけわかめです。
これまで値と参照の区別をして思考してこなかったからなのかなぁ。
731デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 14:31:05.11ID:m/ZPa8pNM >>730
オブジェクト指向で参照を共有することは少ない
共有するとしてもイミュータブル、ステートレスにして共有によるデメリットを消した上で共有する
長時間生存するインスタンスがあちこち参照しあって状態を刻々と変化させていくような設計が最悪のパターン
オブジェクト指向で参照を共有することは少ない
共有するとしてもイミュータブル、ステートレスにして共有によるデメリットを消した上で共有する
長時間生存するインスタンスがあちこち参照しあって状態を刻々と変化させていくような設計が最悪のパターン
732デフォルトの名無しさん (ワッチョイ 5a1e-XbkE)
2018/05/19(土) 15:29:17.89ID:7BFPa/Jf0733デフォルトの名無しさん (ワッチョイ 7681-0XvN)
2018/05/19(土) 16:13:13.77ID:t/qQFhE80 休みだってのに暇な奴ら
734デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 16:13:20.90ID:35k9lSzB0 >>731
なるほどCを参照しているA1、A2はCと独立したオブジェクトじゃなくなってしまいますものね。
なるほどCを参照しているA1、A2はCと独立したオブジェクトじゃなくなってしまいますものね。
735デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 16:20:14.69ID:35k9lSzB0 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;
target[i].y = 100;
}
}
こういうふうにForm1のクラスでターゲットの座標100個発生させて表示させます。
public Target[] InitializeTarget()
{
for (int i = 0; i < Constants.MaximumNumberOfTarget; i++)
{
target[i] = new Target();
target[i].x = 100;
target[i].y = 100;
}
}
こういうふうにForm1のクラスでターゲットの座標100個発生させて表示させます。
736デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 16:23:28.77ID:35k9lSzB0 ターゲットをクリック出来たら消す
一定時間クリックできなかったら点滅させる
ゲーム終了後にターゲットの座標をテキストファイルに書き出す
などの処理がすべてForm1上に存在することになるのですが、
それでもいいのでしょうか?
これらの作業を無理にクラスに分けようとすると
ターゲットクラスインスタンスの参照100個を渡さなくてはいけなくなります。
一定時間クリックできなかったら点滅させる
ゲーム終了後にターゲットの座標をテキストファイルに書き出す
などの処理がすべてForm1上に存在することになるのですが、
それでもいいのでしょうか?
これらの作業を無理にクラスに分けようとすると
ターゲットクラスインスタンスの参照100個を渡さなくてはいけなくなります。
737デフォルトの名無しさん (ワッチョイ 91e3-/zvX)
2018/05/19(土) 16:41:59.05ID:H4w+h7ji0 そんなミニゲームどう組んだっていいよ
738デフォルトの名無しさん (ワッチョイ 559a-NEzo)
2018/05/19(土) 16:44:12.66ID:5aQMcYYW0739デフォルトの名無しさん (ワッチョイ 75eb-/w+O)
2018/05/19(土) 16:55:29.90ID:uWI+Vuzc0 どうせこの人は一生治んないよ
ただプログラムなんてちゃんと動けば目的達成できるんだし、まあ、これでも良いんじゃないの
ただプログラムなんてちゃんと動けば目的達成できるんだし、まあ、これでも良いんじゃないの
740デフォルトの名無しさん (アウアウウー Sa39-HRP5)
2018/05/19(土) 16:56:47.37ID:F+BrwfqWa listやdictionaryを使ってないのかな
だったらまだそのアプリを作る段階まで届いてない
だったらまだそのアプリを作る段階まで届いてない
741デフォルトの名無しさん (ワッチョイ 5ad2-PioB)
2018/05/19(土) 17:10:27.25ID:UwdEx54W0 まあ普通はエンジン部分だけ切り離すわな
742デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 17:20:42.40ID:35k9lSzB0 target class
にx,y,timeなどメンバ変数7個程度を入れてます。
このターゲットを表示するためForm1上にクラスのインスタンスを参照する配列を置くと、
表示とゲームのコントロールすべてがForm1上におくことになって見苦しいのかと思いました。
でもテトリスとか他のミニゲームみても同じような設計になってるんですね。
無理して別クラスにするよりもtargetクラスの配列に関連した、表示、ゲーム処理はForm1上に置いてみます。
(というか実際に配列を別クラスに切り分けたら、余計読みづらくなった・・・)
にx,y,timeなどメンバ変数7個程度を入れてます。
このターゲットを表示するためForm1上にクラスのインスタンスを参照する配列を置くと、
表示とゲームのコントロールすべてがForm1上におくことになって見苦しいのかと思いました。
でもテトリスとか他のミニゲームみても同じような設計になってるんですね。
無理して別クラスにするよりもtargetクラスの配列に関連した、表示、ゲーム処理はForm1上に置いてみます。
(というか実際に配列を別クラスに切り分けたら、余計読みづらくなった・・・)
743デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 17:22:57.84ID:35k9lSzB0744デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 17:23:58.19ID:35k9lSzB0745デフォルトの名無しさん (ワッチョイ 469f-gO2p)
2018/05/19(土) 17:27:35.68ID:9OoA3M8l0 >>736
何故そのような結論になるかわからない提示された仕様からだとテキスト出力クラスを作ろうって気になるかな
targetの渡し方はコンストラクタやメソッド引数にするかは自由
Hoge hoge = new Hoge();
bool Output(){
hoge.Set(target);
return hoge.Output();
}
何故そのような結論になるかわからない提示された仕様からだとテキスト出力クラスを作ろうって気になるかな
targetの渡し方はコンストラクタやメソッド引数にするかは自由
Hoge hoge = new Hoge();
bool Output(){
hoge.Set(target);
return hoge.Output();
}
746デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 17:28:05.32ID:m/ZPa8pNM747デフォルトの名無しさん (ワッチョイ 7681-0hVM)
2018/05/19(土) 17:30:56.31ID:TbcarOIZ0 >>729
貴様にはpublicを禁止する呪いを掛ける
貴様にはpublicを禁止する呪いを掛ける
748デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 17:45:50.05ID:m/ZPa8pNM それは呪いではなく祝福であった
749デフォルトの名無しさん (アウアウウー Sa39-HRP5)
2018/05/19(土) 17:52:30.85ID:F+BrwfqWa そしてinternalを使い始めた!
ゴミグラマの出来上がり
ゴミグラマの出来上がり
750デフォルトの名無しさん (ワッチョイ 4103-y+IU)
2018/05/19(土) 18:14:06.88ID:RoboUWmL0 と、すでに出来あがったゴミグラマが申しておるようですが
751デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 18:20:19.09ID:35k9lSzB0 >>746
はい。
それやってみたのですが、フォーム2から初期設定値を初期値格納クラスに入れていて、
初期値格納クラスの参照、Targetクラスの参照、Targetクラス管理クラスの参照が入り乱れて書いている自分でもわけわかめになりました。
二つのプログラムを見比べた結果Form1でTarget管理させたほうがまだましなのかと・・・。
もっと規模の大きなプログラムだと違ってくるのかもしれないのですが。
はい。
それやってみたのですが、フォーム2から初期設定値を初期値格納クラスに入れていて、
初期値格納クラスの参照、Targetクラスの参照、Targetクラス管理クラスの参照が入り乱れて書いている自分でもわけわかめになりました。
二つのプログラムを見比べた結果Form1でTarget管理させたほうがまだましなのかと・・・。
もっと規模の大きなプログラムだと違ってくるのかもしれないのですが。
752デフォルトの名無しさん (ワッチョイ 91e3-/zvX)
2018/05/19(土) 18:39:40.28ID:H4w+h7ji0753デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 18:44:17.10ID:m/ZPa8pNM >>751
入り乱れないよ
入り乱れないよ
754デフォルトの名無しさん (ワッチョイ 7681-0XvN)
2018/05/19(土) 18:44:51.84ID:t/qQFhE80 素人が責務に応じたクラスの分割を理解するなんて
一朝一夕どころか数ヶ月単位の時間が掛かると思うが、このやり取りそこまで続けるの?
一朝一夕どころか数ヶ月単位の時間が掛かると思うが、このやり取りそこまで続けるの?
755デフォルトの名無しさん (ワッチョイ 4103-y+IU)
2018/05/19(土) 18:46:55.05ID:RoboUWmL0756デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/19(土) 18:48:37.83ID:m/ZPa8pNM >>754
理解しやすい構造になるわけだから素人も安心
理解しやすい構造になるわけだから素人も安心
757デフォルトの名無しさん (ワッチョイ 7681-0XvN)
2018/05/19(土) 18:49:08.43ID:t/qQFhE80 >>755
猿には聞いてねえから飼育員さんとママゴトしてな
猿には聞いてねえから飼育員さんとママゴトしてな
758デフォルトの名無しさん (ワッチョイ 7681-0XvN)
2018/05/19(土) 18:51:06.08ID:t/qQFhE80759デフォルトの名無しさん (ワッチョイ 4103-y+IU)
2018/05/19(土) 18:54:14.32ID:RoboUWmL0 バカ、スレ潰し宣言wwwww
これはさすがの俺も意表をつかれた度と超えたバカwwwww
これはさすがの俺も意表をつかれた度と超えたバカwwwww
760デフォルトの名無しさん (ブーイモ MMa1-+Nwo)
2018/05/19(土) 20:59:50.70ID:gCADl0W/M C#のスレだと思ったのに。
761デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 21:13:55.60ID:35k9lSzB0 リストボックスの値を取得するのって
string Gender = this.Gender.SelectedItem.ToString();
の一文だけじゃだめなの?
なぜか値が取得できない。
string Gender = this.Gender.SelectedItem.ToString();
の一文だけじゃだめなの?
なぜか値が取得できない。
762デフォルトの名無しさん (アウアウウー Sa39-RYnA)
2018/05/19(土) 21:17:27.89ID:BEl4Etk9a あたまがくらくらする
763デフォルトの名無しさん (ワッチョイ 769a-NEzo)
2018/05/19(土) 21:28:02.54ID:sYzD4mGA0 >>761
まず「Gender」が2つ出てくることに違和感はないのか
ListBoxは使ったことないけど
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.listbox.selecteditem(v=vs.110).aspx
string GenderStr = this.Gender.SelectedItem.ToString();
にでも変えれば動かないか?
まず「Gender」が2つ出てくることに違和感はないのか
ListBoxは使ったことないけど
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.listbox.selecteditem(v=vs.110).aspx
string GenderStr = this.Gender.SelectedItem.ToString();
にでも変えれば動かないか?
764デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 21:30:21.29ID:35k9lSzB0765デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/19(土) 21:32:29.68ID:35k9lSzB0 >>763
すいません。
ご親切にありがとうございます。
値を出力するクラスにwriteline書き忘れてました・・・。
値の取得は上のコードでOKでした。
朝から一日プログラミングして悪い頭が限界を超えているようです。
今日はもう寝ます。
すいません。
ご親切にありがとうございます。
値を出力するクラスにwriteline書き忘れてました・・・。
値の取得は上のコードでOKでした。
朝から一日プログラミングして悪い頭が限界を超えているようです。
今日はもう寝ます。
766デフォルトの名無しさん (ワッチョイ 4103-y+IU)
2018/05/19(土) 21:34:12.28ID:RoboUWmL0 教えたがりのバカ>>763の立場wwww
767デフォルトの名無しさん (ワッチョイ 9dc3-NEzo)
2018/05/20(日) 16:52:01.54ID:O/HF5kqh0 >>714
いろいろ調べてみましたが、私が探している解決策とは異なったようです
一番知りたいのは、埋め込みリソースに対し、通常のファイルアクセスのように
アクセスする方法はないのか、という点です
(XLWorkbookのコンストラクタには、ファイルパスを与えますので)
今回のデータは参照のみ必要ですので、リソースとして埋め込んだ場合に
変更が効かなくなっても問題ないと考えました
712で書かれた内容は、「自分でファイルフォーマットを定義して、それを読んで
切り貼りするコードを自分で書くべし」、ということでしょうか
そのために有用なのが714のAPIということですか
いろいろ調べてみましたが、私が探している解決策とは異なったようです
一番知りたいのは、埋め込みリソースに対し、通常のファイルアクセスのように
アクセスする方法はないのか、という点です
(XLWorkbookのコンストラクタには、ファイルパスを与えますので)
今回のデータは参照のみ必要ですので、リソースとして埋め込んだ場合に
変更が効かなくなっても問題ないと考えました
712で書かれた内容は、「自分でファイルフォーマットを定義して、それを読んで
切り貼りするコードを自分で書くべし」、ということでしょうか
そのために有用なのが714のAPIということですか
768デフォルトの名無しさん (ワンミングク MMea-wqAz)
2018/05/20(日) 18:41:56.82ID:9fk8EC6VM ないよ
一回テンポラリファイルに出力すればいい
使いたいライブラリがストリームを受け取るバージョンをサポートしてるならそっちを使ってテンポラリファイルは要らない
一回テンポラリファイルに出力すればいい
使いたいライブラリがストリームを受け取るバージョンをサポートしてるならそっちを使ってテンポラリファイルは要らない
769デフォルトの名無しさん (ワッチョイ 91e3-/zvX)
2018/05/20(日) 19:32:08.73ID:QOdmSKaj0770デフォルトの名無しさん (ワッチョイ 9dc3-NEzo)
2018/05/20(日) 19:59:07.95ID:O/HF5kqh0771デフォルトの名無しさん (ワッチョイ aa9d-/w+O)
2018/05/21(月) 08:06:02.24ID:yxdsvVjy0 Json保存すると漢字が化ける。なぜばけるの? Jsonの問題なのか、StrreamReader
の問題なのか、StrreamWriterのもんだいなのか? 取り合えず、Read、Writeともに
shift_jisでEncode指定したら化けないようになったが、意味がよくわからない。
普通に考えるとStringにShift_JIsが入っていて、それを認識しているなら、Read
WirteにShift_jisを指定する必要はないと思うのだ。だからStringにはそういう情報は
入ってない筈だ。ファイルにSHiftJIsの属性がはいっているなら、Write側だけに指定
すればよいはずだ。ReadにもSHIFT_JISを指定しなければならないということはファイルにも
その属性は保存されていないということだ。Stringに属性を保存しておけばすべて丸く
収まるとおもうのだが、なぜそうしないのだろうか?
の問題なのか、StrreamWriterのもんだいなのか? 取り合えず、Read、Writeともに
shift_jisでEncode指定したら化けないようになったが、意味がよくわからない。
普通に考えるとStringにShift_JIsが入っていて、それを認識しているなら、Read
WirteにShift_jisを指定する必要はないと思うのだ。だからStringにはそういう情報は
入ってない筈だ。ファイルにSHiftJIsの属性がはいっているなら、Write側だけに指定
すればよいはずだ。ReadにもSHIFT_JISを指定しなければならないということはファイルにも
その属性は保存されていないということだ。Stringに属性を保存しておけばすべて丸く
収まるとおもうのだが、なぜそうしないのだろうか?
772デフォルトの名無しさん (アウアウウー Sa39-NTEn)
2018/05/21(月) 09:30:17.64ID:HN6x0Zrba 文字列の実装には内部的にUnicodeで扱うものとバイト列として扱うものとがある。
前者は入出力時にそれぞれバイト列->UnicodeとUnicode->バイト列をどのようにマッピングするか(i.e. エンコーディング)を指定する必要がある。
後者であればその必要はない。
一方で前者は外部から文字列を読み込んでも内部的にはUnicodeだから読み込んだ文字列に対して処理を行う際に文字コードに悩む必要はない。
後者はプログラムを書いている時の文字コード, 入力された文字コードを常に意識せねばならん。
一長一短だからどっちの実装もあり得るが.NETは内部Unicodeが標準的だということだ
文字列自身に自分のエンコーディング情報を埋め込むのはやめておけ
禄でもないことにしかならん
前者は入出力時にそれぞれバイト列->UnicodeとUnicode->バイト列をどのようにマッピングするか(i.e. エンコーディング)を指定する必要がある。
後者であればその必要はない。
一方で前者は外部から文字列を読み込んでも内部的にはUnicodeだから読み込んだ文字列に対して処理を行う際に文字コードに悩む必要はない。
後者はプログラムを書いている時の文字コード, 入力された文字コードを常に意識せねばならん。
一長一短だからどっちの実装もあり得るが.NETは内部Unicodeが標準的だということだ
文字列自身に自分のエンコーディング情報を埋め込むのはやめておけ
禄でもないことにしかならん
773デフォルトの名無しさん (ワッチョイ 899e-S6G8)
2018/05/21(月) 10:54:12.62ID:wG0UA8oX0 JSON はJavaScript だから、UTF-8
Ruby, Python もそう。
ネット上に流れるテキストも同じ
SHIFT_JIS を使う言語は、まずない。
PowerShell も、UTF-16
ここ数年は、Unicode に統一された。
それ以外の、SHIFT_JIS, EUC-JP は使わない
Ruby, Python もそう。
ネット上に流れるテキストも同じ
SHIFT_JIS を使う言語は、まずない。
PowerShell も、UTF-16
ここ数年は、Unicode に統一された。
それ以外の、SHIFT_JIS, EUC-JP は使わない
774デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/21(月) 12:22:48.67ID:ZMitaTGGM >>773
何言っても通じないとは思うが、お前の愛するRubyの文字列の扱いは他と異なっている
Rubyの文字列は内部的にはエンコーディング情報を持ったバイト列だ
特にWin環境では非常にトラブルの原因になりやすいゴミ仕様である
何言っても通じないとは思うが、お前の愛するRubyの文字列の扱いは他と異なっている
Rubyの文字列は内部的にはエンコーディング情報を持ったバイト列だ
特にWin環境では非常にトラブルの原因になりやすいゴミ仕様である
775デフォルトの名無しさん (ワッチョイ 899e-S6G8)
2018/05/21(月) 12:34:00.26ID:wG0UA8oX0 Ruby は各文字列に、エンコードを持てるから、すごい
例えば、文字列a がSHIFT_JIS で、b がUTF-8 として、
a + b
みたいに、文字列を連結すると、エンコードエラーになる
例えば、文字列a がSHIFT_JIS で、b がUTF-8 として、
a + b
みたいに、文字列を連結すると、エンコードエラーになる
776デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/21(月) 12:36:23.24ID:ZMitaTGGM >>775
うん。何一つメリットのないカス仕様だね。
うん。何一つメリットのないカス仕様だね。
777デフォルトの名無しさん (ワキゲー MM42-wBtv)
2018/05/21(月) 12:50:56.22ID:0W5b/XyUM >>770
ClosedXML.Excel.XLWorkbookコンストラクタにはStream取るのもあるんだけど
ClosedXML.Excel.XLWorkbookコンストラクタにはStream取るのもあるんだけど
778デフォルトの名無しさん (ワッチョイ aa9d-/w+O)
2018/05/21(月) 13:22:41.39ID:yxdsvVjy0 >SHIFT_JIS を使う言語は、まずない。
エクセルファイルをCSVにEportしたファイルだけど、
var sr = new StreamReader(fs, Encoding.GetEncoding("shift_jis"))
これでなら正常に読める。ということはエクセルはshift_jisだと思うが、、
エクセルファイルをCSVにEportしたファイルだけど、
var sr = new StreamReader(fs, Encoding.GetEncoding("shift_jis"))
これでなら正常に読める。ということはエクセルはshift_jisだと思うが、、
779デフォルトの名無しさん (ラクッペ MMa5-0XvN)
2018/05/21(月) 14:04:00.83ID:hRf5uVYXM とりあえずそのRubyアスペに触るのを止めて
780デフォルトの名無しさん (ワッチョイ aa9d-/w+O)
2018/05/21(月) 15:12:20.28ID:yxdsvVjy0 >一方で前者は外部から文字列を読み込んでも内部的にはUnicodeだから読み込んだ文字列に対して処理を行う際に文字コードに悩む必要はない。
>後者はプログラムを書いている時の文字コード, 入力された文字コードを常に意識せねばならん。
前者はDefault unicode
後者はDefault bytecode
ということであれば、shift_jisなど他にもたくさんの文字コードが来る可能性があるのだから、コードを意識することにあまり違いはない
と思うが、、
>>775
その考え方の方が正しいと思う。
そもそもunicoeをディフォールトにするんだったら、漢字はそのまま表示できるんじゃないの?
其れなのにXcelは何でわざわざSHIFT_JISをつかうんだろ。
>後者はプログラムを書いている時の文字コード, 入力された文字コードを常に意識せねばならん。
前者はDefault unicode
後者はDefault bytecode
ということであれば、shift_jisなど他にもたくさんの文字コードが来る可能性があるのだから、コードを意識することにあまり違いはない
と思うが、、
>>775
その考え方の方が正しいと思う。
そもそもunicoeをディフォールトにするんだったら、漢字はそのまま表示できるんじゃないの?
其れなのにXcelは何でわざわざSHIFT_JISをつかうんだろ。
781デフォルトの名無しさん (ワッチョイ 899e-S6G8)
2018/05/21(月) 15:24:30.40ID:wG0UA8oX0 Windows も内部的には、UTF-16 だろ。
PowerShell, ブラウザも、UTF-8
保守費用が掛かるから、MS も、SHIFT_JIS を辞めたいはず
Excel など、長年使っている人が多いから、やめられないだけ
PowerShell, ブラウザも、UTF-8
保守費用が掛かるから、MS も、SHIFT_JIS を辞めたいはず
Excel など、長年使っている人が多いから、やめられないだけ
782デフォルトの名無しさん (アウアウウー Sa39-mCTX)
2018/05/21(月) 15:43:54.89ID:s3jYOwAha >>780
Stringのエンコーディングが固定なら、IOのときだけ文字コードを意識すれば済む
素人のちょっとしたツールのレベルならともかく、一般的にはIとOの間(P)の部分がプログラムの殆どを占めるんだよ
Dictionaryのキーの文字コードが混在してて、存在するはずのキーの検索に失敗するとか悪夢だろ
Stringのエンコーディングが固定なら、IOのときだけ文字コードを意識すれば済む
素人のちょっとしたツールのレベルならともかく、一般的にはIとOの間(P)の部分がプログラムの殆どを占めるんだよ
Dictionaryのキーの文字コードが混在してて、存在するはずのキーの検索に失敗するとか悪夢だろ
783デフォルトの名無しさん (オイコラミネオ MM7e-4Ee6)
2018/05/21(月) 21:17:05.23ID:83cG7/bYM ビルドしても、ファイルできなくて意味わかんねえ
784デフォルトの名無しさん (ワッチョイ 55da-XbkE)
2018/05/21(月) 22:02:39.74ID:o82N7H0r0785デフォルトの名無しさん (アウアウウー Sa39-HRP5)
2018/05/21(月) 22:04:28.66ID:ZCJ7EsPBa 漢字が文字化けするのは保存した文字コードと読み込んだ文字コード指定が違うから
それだけ
つまりやった側の間違い
どこで間違えたか手順を順に見直すべし
それだけ
つまりやった側の間違い
どこで間違えたか手順を順に見直すべし
786デフォルトの名無しさん (ワッチョイ 4103-y+IU)
2018/05/21(月) 22:11:44.14ID:KnpxsRSU0 やった側ってどの側だよw
787デフォルトの名無しさん (ワッチョイ 898a-6aKC)
2018/05/22(火) 00:01:50.29ID:1gACj0o60 sqliteとの連携に関して質問です
なんらかのクライアントで先にテーブルを作り、レコードもinsertしておいて、それを読み込むプログラムを作りたいのですが、既存のdbファイルはどこに配置すればよいのでしょうか
デバッグしてみたらno such tableと言うようなエラーが出たので、どうやら実行時に新たにdbファイルを作ってそれを読もうとしてしまっているようです
なんらかのクライアントで先にテーブルを作り、レコードもinsertしておいて、それを読み込むプログラムを作りたいのですが、既存のdbファイルはどこに配置すればよいのでしょうか
デバッグしてみたらno such tableと言うようなエラーが出たので、どうやら実行時に新たにdbファイルを作ってそれを読もうとしてしまっているようです
788デフォルトの名無しさん (アウアウウー Sa39-mCTX)
2018/05/22(火) 00:20:52.78ID:V2R/cizEa >>787
どこもクソも決めるのはお前
SQLiteはDBのファイルパス指定して開けるだろ
SQLiteは普通のDBMSと違って、システムのどこかに共通のデータストアがあるみたいな考え方をしないんだよ
ファイルを名指しするのが基本
どこもクソも決めるのはお前
SQLiteはDBのファイルパス指定して開けるだろ
SQLiteは普通のDBMSと違って、システムのどこかに共通のデータストアがあるみたいな考え方をしないんだよ
ファイルを名指しするのが基本
789デフォルトの名無しさん (ブーイモ MMa1-+Nwo)
2018/05/22(火) 03:32:12.88ID:MRvdbbs3M Accessのmdbみたいな感じかいな?
790デフォルトの名無しさん (ワッチョイ ae9d-/w+O)
2018/05/22(火) 06:38:16.66ID:GCRmPVlZ0 >>785
「文字コードなんて意識する必要はない。機械に任せたほうがいい。」とは考えないのだろうか?
そもそもテキストとは文字コードによって表現された文字の集合体だ。テキストを保存するIOに
たいしてわざわざ文字コードの情報を削除して保存するのは何故なのだ。正気の沙汰とは思えんな。
「文字コードなんて意識する必要はない。機械に任せたほうがいい。」とは考えないのだろうか?
そもそもテキストとは文字コードによって表現された文字の集合体だ。テキストを保存するIOに
たいしてわざわざ文字コードの情報を削除して保存するのは何故なのだ。正気の沙汰とは思えんな。
791デフォルトの名無しさん (ワッチョイ ae9d-/w+O)
2018/05/22(火) 06:43:45.86ID:GCRmPVlZ0 >Dictionaryのキーの文字コードが混在してて、存在するはずのキーの検索に失敗するとか悪夢だろ
文字コードなんて本質的なことじゃない。だから混在してもかまわない。
それを人手でやろうとするから「混在する悪夢」が発生する。
そういう場合にこそ機械に自動的にやらせるべきだろう。
文字コードなんて本質的なことじゃない。だから混在してもかまわない。
それを人手でやろうとするから「混在する悪夢」が発生する。
そういう場合にこそ機械に自動的にやらせるべきだろう。
792デフォルトの名無しさん (ワッチョイ ae9d-/w+O)
2018/05/22(火) 06:51:24.64ID:GCRmPVlZ0 >日本語版のExcelのCSV出力時の文字コードがShiftJISなのは単に過去との互換性のため。
>ちなみにBOMが付いていればUTFのCSVでも読み込める。
互換性のためならもっとほかの方法がある。アプリのためにコードを弄るなんて最悪の方法だろう。
>ちなみにBOMが付いていればUTFのCSVでも読み込める。
互換性のためならもっとほかの方法がある。アプリのためにコードを弄るなんて最悪の方法だろう。
793デフォルトの名無しさん (スップ Sdda-6aKC)
2018/05/22(火) 07:58:03.61ID:j6MjsmBId >>788
あざすぅ
あざすぅ
794デフォルトの名無しさん (ワッチョイ fac3-adpQ)
2018/05/22(火) 09:20:46.86ID:uYoKmc1Q0 ここにきて.NET CoreがWPF, Windows Formsを救済ってか
795デフォルトの名無しさん (ブーイモ MMa1-RYnA)
2018/05/22(火) 09:31:30.78ID:7LgkrdmnM796デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 10:37:32.58ID:svO22mue0 public double Re { get; set; }
ってプロパティを省略して書くと見やすくていいんですが、
他クラスから参照するだけの変数だと、
Reは使用されていませんって警告がずっと出てうっとうしい。
何かいい手はないでしょうか?
ってプロパティを省略して書くと見やすくていいんですが、
他クラスから参照するだけの変数だと、
Reは使用されていませんって警告がずっと出てうっとうしい。
何かいい手はないでしょうか?
797デフォルトの名無しさん (アウアウウー Sa39-NTEn)
2018/05/22(火) 10:37:46.91ID:np9ncSKga 別に文字列を文字セット/エンコーディングごと抽象化するライブラリとか作ってくれて良いのよ?
既存文字列と互換性があって使い勝手, 拡張性と統一性と性能が担保されるなら普及もするだろう
でも曲がりなりにもそれ続けられてるのってRubyくらいで他に思い浮かばない
なんで無いのかと言うけど試されてないわけないんだよ, 現実的じゃないから普及してない
既存文字列と互換性があって使い勝手, 拡張性と統一性と性能が担保されるなら普及もするだろう
でも曲がりなりにもそれ続けられてるのってRubyくらいで他に思い浮かばない
なんで無いのかと言うけど試されてないわけないんだよ, 現実的じゃないから普及してない
798デフォルトの名無しさん (ワッチョイ 91e3-HRP5)
2018/05/22(火) 10:58:36.99ID:sxJmXMb80799デフォルトの名無しさん (ワッチョイ b6ed-RYnA)
2018/05/22(火) 11:14:09.28ID:7Riaak3V0 WPFで
WindowStyle="None"
AllowsTransparency="True"
Background="#01FFFFFF"
でほぼ透明だけどマウスイベントを受け取るウィンドウを作ったのですが
これとおなじことをFormでやりたいのですがやりかたがわかりません
どのようにすればいいですか?
WindowStyle="None"
AllowsTransparency="True"
Background="#01FFFFFF"
でほぼ透明だけどマウスイベントを受け取るウィンドウを作ったのですが
これとおなじことをFormでやりたいのですがやりかたがわかりません
どのようにすればいいですか?
800デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 11:23:07.15ID:svO22mue0 >>798
できると思います。
データ格納フォルダB:Aフォームから値を取得
Cクラス:Bから値を取得
となってるのでsetもpublicでないと困るんですよね。
データ格納フォルダBの値はAから値取得した後なにも処理がないので、
「Reは使用されていません」って正しい警告なんですけどねぇ。
格納しているデータが10個あって警告10個もでるとさすがにうっとうしい。
できると思います。
データ格納フォルダB:Aフォームから値を取得
Cクラス:Bから値を取得
となってるのでsetもpublicでないと困るんですよね。
データ格納フォルダBの値はAから値取得した後なにも処理がないので、
「Reは使用されていません」って正しい警告なんですけどねぇ。
格納しているデータが10個あって警告10個もでるとさすがにうっとうしい。
801デフォルトの名無しさん (ブーイモ MMa1-9Jwc)
2018/05/22(火) 12:14:32.87ID:CqasDiEMM802デフォルトの名無しさん (ブーイモ MMde-+Nwo)
2018/05/22(火) 12:16:10.65ID:O9GDwfVPM BのコンストラクタにAからの値を受け付けて
public readonly double Reに渡すとかじゃだめなんね?
public readonly double Reに渡すとかじゃだめなんね?
803デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/22(火) 12:36:59.84ID:2EZjLjzja >>799
Formはウィンドウ全体のアルファはOpacityで指定できるけど、
背景だけ透過させるとかは簡単にはできなかったような
http://yellow.ribbon.to/~azumaya/doc_dotnet_uplayeredwnd.php
>>800
そもそも>>796みたいな告なんか出ないと思うけど...
何か盛大に勘違いしてる予感...
Formはウィンドウ全体のアルファはOpacityで指定できるけど、
背景だけ透過させるとかは簡単にはできなかったような
http://yellow.ribbon.to/~azumaya/doc_dotnet_uplayeredwnd.php
>>800
そもそも>>796みたいな告なんか出ないと思うけど...
何か盛大に勘違いしてる予感...
804デフォルトの名無しさん (ワッチョイ b6ed-RYnA)
2018/05/22(火) 13:05:58.78ID:7Riaak3V0805デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 13:21:14.65ID:svO22mue0806デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 13:55:20.14ID:svO22mue0 もともとスタートアップだったform1からform2にスタートアップを変更したいと考えています。
Program.csの
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new InitialSettingForm1());
}
のForm1をForm2に変更したのですがどうもうまくいきません。
Program.csの
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new InitialSettingForm1());
}
のForm1をForm2に変更したのですがどうもうまくいきません。
807デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 14:00:09.60ID:svO22mue0 form1が出てからform2が表示されているような…。
試しに
public ExaminationForm1()
{
InitializeComponent();
MessageBox.Show("a");
}
と入れてみると
メッセージボックスが表示→okをクリック→form2が表示
となります。
他にも設定しなければいけないところがあるのでしょうか・・・。
試しに
public ExaminationForm1()
{
InitializeComponent();
MessageBox.Show("a");
}
と入れてみると
メッセージボックスが表示→okをクリック→form2が表示
となります。
他にも設定しなければいけないところがあるのでしょうか・・・。
808デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 14:01:17.37ID:svO22mue0 また変なことやってるのかなぁ・・・。
809デフォルトの名無しさん (ワキゲー MM42-wBtv)
2018/05/22(火) 14:48:09.94ID:oCYWBo6GM InitialSettingなのかExaminationなのかどっちだよ
ExaminationForm1のコンストラクタにブレークポイントおいて実行
ブレークしたら呼び出し履歴を確認する
ExaminationForm1のコンストラクタにブレークポイントおいて実行
ブレークしたら呼び出し履歴を確認する
810デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 17:11:30.57ID:svO22mue0 >>809
Debugで確認していったらどうもインスタンスの参照を渡せていないようです。
Debugで確認していったらどうもインスタンスの参照を渡せていないようです。
811デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 17:12:13.75ID:svO22mue0 public partial class Form1 : Form
{
Form2 form2;
Class1 class1;
public Form1()
{
InitializeComponent();
form2 = new Form2();
form2.Show();
class1 = new Class1();
form2.Pointer = class1;
}
}
{
Form2 form2;
Class1 class1;
public Form1()
{
InitializeComponent();
form2 = new Form2();
form2.Show();
class1 = new Class1();
form2.Pointer = class1;
}
}
812デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 17:12:47.68ID:svO22mue0 public partial class Form2 : Form
{
Class1 class1;
public Class1 Pointer
{
set
{
class1 = value;
}
}
public Form2()
{
InitializeComponent();
int i = class1.fuga();
MessageBox.Show(i.ToString());
}
}
{
Class1 class1;
public Class1 Pointer
{
set
{
class1 = value;
}
}
public Form2()
{
InitializeComponent();
int i = class1.fuga();
MessageBox.Show(i.ToString());
}
}
813デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 17:13:21.01ID:svO22mue0 public class Class1
{
public int hoge = 2222;
public int fuga()
{
return hoge;
}
}
{
public int hoge = 2222;
public int fuga()
{
return hoge;
}
}
814デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/22(火) 17:16:54.99ID:svO22mue0 Form2で
int i = class1.fuga();
みたいなclass1のメソッドを使う命令を書くと、実行時にForm1もForm2も表示されずに終了になります。
Form2にclass1の参照をきちんと渡せていないようなのですが、どこが悪いんでしょう・・・。
int i = class1.fuga();
みたいなclass1のメソッドを使う命令を書くと、実行時にForm1もForm2も表示されずに終了になります。
Form2にclass1の参照をきちんと渡せていないようなのですが、どこが悪いんでしょう・・・。
815デフォルトの名無しさん (アウアウエー Sa02-vTsT)
2018/05/22(火) 17:33:33.27ID:2EZjLjzja816デフォルトの名無しさん (ワキゲー MM42-wBtv)
2018/05/22(火) 17:34:55.39ID:oCYWBo6GM 806から811で全然別物の質問になってるんだけど
Form1のコンストラクタの先頭とForm2のコンストラクタの先頭にそれぞれブレークポイントおいて
ブレークしたらF10キー1行ずつステップオーバーしていって
どういう順番で実行されてるか確認
Form1のコンストラクタの先頭とForm2のコンストラクタの先頭にそれぞれブレークポイントおいて
ブレークしたらF10キー1行ずつステップオーバーしていって
どういう順番で実行されてるか確認
817デフォルトの名無しさん (ラクッペ MMa5-0XvN)
2018/05/22(火) 20:59:34.16ID:36NNq4u4M うるせーな一度答えると決めたら最後までニコニコヅラで相手しろよクソハゲ
818デフォルトの名無しさん (ワッチョイ 9dc3-NEzo)
2018/05/22(火) 21:22:06.95ID:sZHy65Kr0819デフォルトの名無しさん (ワッチョイ 55da-XbkE)
2018/05/22(火) 21:56:59.84ID:nVwte2qB0820デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/23(水) 00:14:46.31ID:IEWpo6Tg0 >>819
ありがとうございます。m(__)m
その通りでした。
一個づつ追っていけば分かるはずなんですけど、
自分では思い込みがあって気づきませんでした。
本当に助かりました。
ありがとうございました。
ありがとうございます。m(__)m
その通りでした。
一個づつ追っていけば分かるはずなんですけど、
自分では思い込みがあって気づきませんでした。
本当に助かりました。
ありがとうございました。
821デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/23(水) 00:17:07.19ID:IEWpo6Tg0 >>815
すいません。
文章の書き方が悪かったです。
812の下から4行目のように
Form2で
int i = class1.fuga();
class1のメソッドを使う命令を書くと、実行時にForm1もForm2も表示されずに終了になります。
と書くべきでした。
すいません。
文章の書き方が悪かったです。
812の下から4行目のように
Form2で
int i = class1.fuga();
class1のメソッドを使う命令を書くと、実行時にForm1もForm2も表示されずに終了になります。
と書くべきでした。
822デフォルトの名無しさん (ワッチョイ 7696-NEzo)
2018/05/23(水) 00:18:47.23ID:IEWpo6Tg0 >>816
これまたすいません、ブレークポイントで見て言ったら画面の生成順は問題ないことが分かって、
インスタンスの参照が渡っていないことが原因と分かり。811-813みたいな最小コードで実験してました。
これまたすいません、ブレークポイントで見て言ったら画面の生成順は問題ないことが分かって、
インスタンスの参照が渡っていないことが原因と分かり。811-813みたいな最小コードで実験してました。
823デフォルトの名無しさん (ワッチョイ 75eb-/w+O)
2018/05/23(水) 10:08:41.93ID:N3UaVe1J0 中学生ぐらいだったら教えてやってもいいけど、あんたいくつよ?
824デフォルトの名無しさん (ワッチョイ 76e8-HRP5)
2018/05/23(水) 10:10:09.13ID:QWeWgJFJ0 不安なメソッド内じゃ全部TryCatchで囲っちゃった方が良いです?
825デフォルトの名無しさん (ワッチョイ 91e3-HRP5)
2018/05/23(水) 10:18:50.74ID:Mh8q82UX0 catch内で例外を握りつぶせば完璧
826デフォルトの名無しさん (ワッチョイ 05b5-+lsE)
2018/05/23(水) 13:00:21.42ID:mO/AejLg0 メインの処理全体をtry〜catchで括るだけさ。
827デフォルトの名無しさん (バットンキン MMea-AGvl)
2018/05/23(水) 18:48:37.98ID:hVcgEIrnM ジェネリクスのListやHashSetを良く使うのですが、これで用が足りてしまうので自作までしたことありません
出来る企業や個人はバリバリ自作するのでしょうか
出来る企業や個人はバリバリ自作するのでしょうか
828デフォルトの名無しさん (ブーイモ MMa1-mCTX)
2018/05/23(水) 19:00:48.43ID:iQ1n/QEKM829デフォルトの名無しさん (ブーイモ MMfa-RkHC)
2018/05/23(水) 23:29:00.27ID:l9NA/114M ありもの使う方が良いと思うよ
830デフォルトの名無しさん (ワッチョイ c9b3-Ga4E)
2018/05/24(木) 00:22:57.92ID:Pwy3p0jE0 ありものでどうしても駄目な理由がある場合のみ、仕方なく自作だわね
831デフォルトの名無しさん (アウアウウー Sadd-GmoF)
2018/05/24(木) 00:28:40.71ID:crQGHj+ea >>830
それも注意が必要だけどね
視野狭窄な小手先の技術に拘るプログラマは、くだらない問題に拘って「どうしても駄目だ」と思い込む(思い込もうとする)傾向がある
大抵そういうケースでは、視野を広げるとそもそも無理に手間をかけてまで解決する必要のない問題であることが多い
それも注意が必要だけどね
視野狭窄な小手先の技術に拘るプログラマは、くだらない問題に拘って「どうしても駄目だ」と思い込む(思い込もうとする)傾向がある
大抵そういうケースでは、視野を広げるとそもそも無理に手間をかけてまで解決する必要のない問題であることが多い
832デフォルトの名無しさん (ワッチョイ d9d2-2rS7)
2018/05/24(木) 00:36:35.91ID:O9jHVcOl0 Dictionary クラスを継承して使いたくて、
これの各種インターフェイスを実装した中身 Dictionary クラスのラッパーを作った事あるなあ。
今思えば若かった。
これの各種インターフェイスを実装した中身 Dictionary クラスのラッパーを作った事あるなあ。
今思えば若かった。
833デフォルトの名無しさん (スププ Sd33-l+s8)
2018/05/24(木) 07:54:06.51ID:YzRB3Rzod834デフォルトの名無しさん (ワッチョイ 39b5-cBpb)
2018/05/24(木) 14:34:00.01ID:q7DgX+HL0 たいていは英語力の無さに原因があるんだよな。
その機能を見つけられないとかだからさ。
その機能を見つけられないとかだからさ。
835デフォルトの名無しさん (ワンミングク MMd3-oiRH)
2018/05/24(木) 15:02:55.06ID:AHiLgPdDM コンソールアプリです。
今までに自分が吐き出した標準出力を自分で取得する事は可能でしょうか?
このアプリ(A)は主に他のアプリ(B)から実行されることを想定しています。Aは普通にConsole.WriteLineで出力し、BがProcess.StandardOutput.ReadToEndで取得、ログを残します。
A単体で実行してログも残したい要求があります。 Console.WriteLineと同時にファイルに出力すればいいのですが、最後に一括で取得できればスマートかなと思ったのですが、いかがでしょうか?
今までに自分が吐き出した標準出力を自分で取得する事は可能でしょうか?
このアプリ(A)は主に他のアプリ(B)から実行されることを想定しています。Aは普通にConsole.WriteLineで出力し、BがProcess.StandardOutput.ReadToEndで取得、ログを残します。
A単体で実行してログも残したい要求があります。 Console.WriteLineと同時にファイルに出力すればいいのですが、最後に一括で取得できればスマートかなと思ったのですが、いかがでしょうか?
836デフォルトの名無しさん (ドコグロ MM15-PUmD)
2018/05/24(木) 16:59:57.59ID:B2m5C+ouM >>835
ウィンドウアプリです
ウィンドウアプリです
837デフォルトの名無しさん (ワッチョイ 39b5-cBpb)
2018/05/24(木) 17:02:19.57ID:q7DgX+HL0 両方に出力する関数作って、その関数に置き換える事すら出来ない無能に何をアドバイスしろと?
838デフォルトの名無しさん (ワッチョイ 8b81-sRwd)
2018/05/24(木) 17:11:45.68ID:iQu+wqIP0 Windowsで使えるteeコマンド探した方が早いんじゃねえか
839デフォルトの名無しさん (ワキゲー MM63-A1Qr)
2018/05/24(木) 17:19:25.14ID:EdBeTbDkM PowerShellならデフォルトで用意されてるよ!>tee
840デフォルトの名無しさん (ワンミングク MMd3-oiRH)
2018/05/24(木) 17:19:52.49ID:AHiLgPdDM841デフォルトの名無しさん (スップ Sd33-/UMR)
2018/05/24(木) 19:35:28.68ID:MnVBsXE4d TraceSource
842デフォルトの名無しさん (アウアウオー Sa63-9v30)
2018/05/24(木) 20:33:40.60ID:hof73DG2a 正直何言ってるのかよく分からんけど、普通にリダイレクトするだけのような...
っていうか、普通はコマンドライン引数で出力先を切り替えるように作ると思うんだけど...
っていうか、普通はコマンドライン引数で出力先を切り替えるように作ると思うんだけど...
843デフォルトの名無しさん (ワッチョイ 8b81-sRwd)
2018/05/24(木) 23:35:59.30ID:iQu+wqIP0 >>839
へえ知らなかったな
へえ知らなかったな
844デフォルトの名無しさん (ワッチョイ c9b3-Ga4E)
2018/05/25(金) 00:27:44.75ID:j/dB1L1+0 PowerShellはもっと流行るべき
845デフォルトの名無しさん (アウアウウー Sadd-GmoF)
2018/05/25(金) 00:39:09.38ID:N3c6aWbUa PowerShellとか罰ゲームだろ
インタラクティブシェルとしては悪くないけど、まとまったスクリプト書こうとすると大嫌いになる
Add-TypeでインラインでC#書いたほうがマシだわ
特にC#erはソースの見た目がなんとなく似てるだけに地獄を見るんだよ
インタラクティブシェルとしては悪くないけど、まとまったスクリプト書こうとすると大嫌いになる
Add-TypeでインラインでC#書いたほうがマシだわ
特にC#erはソースの見た目がなんとなく似てるだけに地獄を見るんだよ
846デフォルトの名無しさん (スププ Sd33-l+s8)
2018/05/25(金) 12:59:33.01ID:RzxaIECOd >>842
名前付パイプでOkだよな
名前付パイプでOkだよな
847デフォルトの名無しさん (ワッチョイ 39b5-cBpb)
2018/05/26(土) 00:52:48.69ID:grpyMBkE0 アプリ側で完結してないと、スクリプト操作とか変なバッチ叩かせてアプリ起動とか怪し過ぎるだろ。
業務アプリじゃねーんだw
業務アプリじゃねーんだw
848デフォルトの名無しさん (ワッチョイ 8b96-vxiR)
2018/05/28(月) 00:24:44.02ID:2eqT73MR0 if (-100 <= clickPointXTemp && clickPointXTemp <= 100)
{
clickPointX[clickNumber] = clickPointXTemp;
MessageBox.Show(clickPointX[clickNumber].ToString() + "%");
MessageBox.Show(clickPointX[0].ToString() + "%");
MessageBox.Show(clickPointX[1].ToString() + "%");
MessageBox.Show(clickPointX[2].ToString() + "%");
clickNumber++;
}
{
clickPointX[clickNumber] = clickPointXTemp;
MessageBox.Show(clickPointX[clickNumber].ToString() + "%");
MessageBox.Show(clickPointX[0].ToString() + "%");
MessageBox.Show(clickPointX[1].ToString() + "%");
MessageBox.Show(clickPointX[2].ToString() + "%");
clickNumber++;
}
849デフォルトの名無しさん (ワッチョイ 8b96-vxiR)
2018/05/28(月) 00:29:53.74ID:2eqT73MR0 クリックしてカーソルが-100<=clickPointXTemp<=100の位置にあるときに配列にその値を代入させているのですが、
クリックするとその場で配列に代入できても次のクリックで0になってしまいます。
1回目クリック
clickPointXTemp=10
[0]=10
[1]=0
[2]=0
2回目クリック
clickPointXTemp=30
[0]=0
[1]=30
[2]=0
2回目クリック
clickPointXTemp=100
[0]=0
[1]=0
[2]=100
なんでだろ・・・。
クリックするとその場で配列に代入できても次のクリックで0になってしまいます。
1回目クリック
clickPointXTemp=10
[0]=10
[1]=0
[2]=0
2回目クリック
clickPointXTemp=30
[0]=0
[1]=30
[2]=0
2回目クリック
clickPointXTemp=100
[0]=0
[1]=0
[2]=100
なんでだろ・・・。
850デフォルトの名無しさん (ワッチョイ 8b96-vxiR)
2018/05/28(月) 00:30:12.40ID:2eqT73MR0 5時間ぐらい悩み中。。。
851デフォルトの名無しさん (アウアウカー Sa95-9DOT)
2018/05/28(月) 00:33:24.89ID:SRIgyUF4a データベースを使わないで、インデックスが共通する複数のデータ配列を作りたいときってどういう風な実装が最適なんでしょうか
var A = new int[x]
var B = new int[x]
var C = new int[x]
・
・
・
var E = new int[x]
みたいな感じです
var A = new int[x]
var B = new int[x]
var C = new int[x]
・
・
・
var E = new int[x]
みたいな感じです
852デフォルトの名無しさん (ワッチョイ 8bc9-vxiR)
2018/05/28(月) 00:33:25.48ID:MfVpzBU40 スコープが原因だろうから全体のソース出さないとエスパーだらけの回答になるよ
853デフォルトの名無しさん (アウアウオー Sa63-9v30)
2018/05/28(月) 01:08:05.78ID:dlEIDhlNa >>851
struct Hoge
{
int A;
int B;
int C;
int D;
int E;
}
....
var hogeArray = new Hoge[100];
struct Hoge
{
int A;
int B;
int C;
int D;
int E;
}
....
var hogeArray = new Hoge[100];
854デフォルトの名無しさん (アウアウカー Sa95-9DOT)
2018/05/28(月) 07:52:50.79ID:Mf7CKKuIa855デフォルトの名無しさん (オッペケ Sr05-cS+N)
2018/05/28(月) 12:27:04.88ID:YifI+gJdr 誰か>>852のエスパーたのむ
856デフォルトの名無しさん (ワキゲー MM63-A1Qr)
2018/05/28(月) 13:02:33.05ID:PWPrnTKxM >>848-849へのレスだろ
857デフォルトの名無しさん (ワントンキン MMd3-RIxT)
2018/05/28(月) 13:47:49.05ID:i/nkRhbIM858デフォルトの名無しさん (ブーイモ MMcb-hdXW)
2018/05/28(月) 15:55:38.64ID:W2eXy6T5M エスパー能力ないと5chはこなせない
859デフォルトの名無しさん (スッップ Sd33-FAoy)
2018/05/28(月) 20:32:45.18ID:0z7zyrSed 複数のクラスで共通の変数定数を外出しして、
その変数クラスを継承するのって良し悪しで言うとどうでしょうか
is aなのかちと微妙な感じです
内臓名クラスを継承して動物クラスを作ってるような
has aなのでオブジェクトとして渡すべきですか?
その変数クラスを継承するのって良し悪しで言うとどうでしょうか
is aなのかちと微妙な感じです
内臓名クラスを継承して動物クラスを作ってるような
has aなのでオブジェクトとして渡すべきですか?
860デフォルトの名無しさん (ブーイモ MM33-GmoF)
2018/05/28(月) 21:46:19.79ID:rs0fZbm/M >>859
共通の変数などという低い抽象度でクラス設計を考えるのがそもそも間違ってる
実装からクラスを考えると必ず破綻するから、君の今の考え方のまま進む限りはいかなる選択肢も不正解
とはいえ最初から抽象度を上げて設計しろといっても初心者には無理な話だから、気にせず自分の思うように作ればいい
一通りモノ作れるようになったらオブジェクト指向モデリングの書籍を読むことをお勧めする
共通の変数などという低い抽象度でクラス設計を考えるのがそもそも間違ってる
実装からクラスを考えると必ず破綻するから、君の今の考え方のまま進む限りはいかなる選択肢も不正解
とはいえ最初から抽象度を上げて設計しろといっても初心者には無理な話だから、気にせず自分の思うように作ればいい
一通りモノ作れるようになったらオブジェクト指向モデリングの書籍を読むことをお勧めする
861デフォルトの名無しさん (ワッチョイ 13e3-xvti)
2018/05/28(月) 21:51:33.12ID:I0m/gtVC0 オブジェクト指向プログラミングしない方がいいもの作れるよ
関数で組む方法を極めた方がいい
関数で組む方法を極めた方がいい
862デフォルトの名無しさん (ワッチョイ d360-Ockd)
2018/05/28(月) 21:56:33.33ID:dVAXJXVu0863デフォルトの名無しさん (ブーイモ MM33-GmoF)
2018/05/28(月) 22:18:11.40ID:rs0fZbm/M864デフォルトの名無しさん (ワッチョイ d360-Ockd)
2018/05/28(月) 22:21:17.59ID:dVAXJXVu0 >>863
キーワード提供、感謝しています
キーワード提供、感謝しています
865デフォルトの名無しさん (ブーイモ MMcd-DqgS)
2018/05/29(火) 12:48:47.90ID:dUPfr/v4M どのプログラム言語を選ぶかでオブジェクト指向モデルの実現方法がかなり違う
866デフォルトの名無しさん (アウアウウー Sadd-GmoF)
2018/05/29(火) 12:57:47.07ID:Xt8fAcdVa >>863の本くらいの抽象度になると実装方法にはほとんど依存しないよ
それどころかオブジェクト指向モデルすらも方法論全体の中では下層の方に位置付けられる
それどころかオブジェクト指向モデルすらも方法論全体の中では下層の方に位置付けられる
867デフォルトの名無しさん (ワッチョイ 13e0-SoOk)
2018/05/29(火) 19:04:25.63ID:QoecqRn60 とりあえず入門レベルが終わったんだけど次はeffective c#4.0っての読めばいいですか?
868デフォルトの名無しさん (ワンミングク MMd3-q2Ej)
2018/05/29(火) 19:05:12.69ID:upesQ40yM 6.0 7.0のでてるからそっちでいいよ
869デフォルトの名無しさん (ワッチョイ 13e0-SoOk)
2018/05/29(火) 19:28:28.39ID:QoecqRn60 more effective C# 6.0 7.0ですか?
moreとついてるので前の本を読む必要があるかと思っていたんですが大丈夫そうならそちらを購入しようかと思います
moreとついてるので前の本を読む必要があるかと思っていたんですが大丈夫そうならそちらを購入しようかと思います
870デフォルトの名無しさん (ワッチョイ fb8a-HY9j)
2018/05/29(火) 21:07:37.85ID:FUNbZ4ty0 フォーム間でのデータのやりとりはどうするのが一般的なのでしょうか?
例えば、Form2の表示と同時に、Form1に入力済みのデータをForm2に表示させる場合、今は以下のようにしています。
class Form1
{
public object Data{get; set;}
var form2 = new Form2();
form2.Parent = this;
}
class Form2
{
public Form Parent{get; set;}
Load()
{
this.Data = Parent.Data;
}
}
例えば、Form2の表示と同時に、Form1に入力済みのデータをForm2に表示させる場合、今は以下のようにしています。
class Form1
{
public object Data{get; set;}
var form2 = new Form2();
form2.Parent = this;
}
class Form2
{
public Form Parent{get; set;}
Load()
{
this.Data = Parent.Data;
}
}
871デフォルトの名無しさん (ワッチョイ 8b9a-vxiR)
2018/05/29(火) 21:31:23.00ID:T0OOxyUA0 >>870
一般的とかいいやりかたって聞かれると逆に難しいんで自分のやりやすい形で
https://dobon.net/vb/dotnet/form/accessanotherformdata.html
コンストラクタやメソッドの引数でも渡せるし
一般的とかいいやりかたって聞かれると逆に難しいんで自分のやりやすい形で
https://dobon.net/vb/dotnet/form/accessanotherformdata.html
コンストラクタやメソッドの引数でも渡せるし
872デフォルトの名無しさん (ワッチョイ 518a-RIxT)
2018/05/29(火) 22:26:37.07ID:LfCUNSAB0 >>869
Apressお勧め
Apressお勧め
873デフォルトの名無しさん (ワッチョイ 13d2-XWWR)
2018/05/29(火) 22:58:12.01ID:G7p9dius0874デフォルトの名無しさん (ワッチョイ 39b5-cBpb)
2018/05/29(火) 23:11:52.08ID:5CF0lkGw0 ビジュアルスタジオでC#使ってると、どんどんコードスタイルが簡略化されていくんだよな。
875デフォルトの名無しさん (ワッチョイ 1311-Du++)
2018/05/30(水) 13:41:56.71ID:Bf3z8rw50 SocketクラスのBeginConnectとかBeginReceiveとかに渡すコールバック関数を
staticで書いてあるのとそうでないのと両方見かけるんですけど
どっちが良いんでしょう?
staticで書いてあるのとそうでないのと両方見かけるんですけど
どっちが良いんでしょう?
876デフォルトの名無しさん (ワッチョイ 39b5-cBpb)
2018/05/30(水) 14:44:18.44ID:LltEUg5c0 まあ、C#ならコールバックは登録解除を明示的に行うからスタティックである必要は無いけどな。
でもこれがイベントハンドラからのデリゲートなら話は別だ。
でもこれがイベントハンドラからのデリゲートなら話は別だ。
877デフォルトの名無しさん (ブーイモ MM33-GmoF)
2018/05/30(水) 14:47:38.89ID:WVM+AecNM >>875
そのSocketオブジェクトに合わせるのが正解
Socketを生で使うサンプルってスキルの低い業務ドカタが書いてたり書かれた時代が古かったりすることが多いので、
C#をよく理解してなくてCやVBの感覚でstaticにしないといけないと思ってるようなのが多い
そのSocketオブジェクトに合わせるのが正解
Socketを生で使うサンプルってスキルの低い業務ドカタが書いてたり書かれた時代が古かったりすることが多いので、
C#をよく理解してなくてCやVBの感覚でstaticにしないといけないと思ってるようなのが多い
878デフォルトの名無しさん (ワッチョイ 1311-Du++)
2018/05/30(水) 15:03:40.50ID:Bf3z8rw50879デフォルトの名無しさん (ワッチョイ 4e57-msj4)
2018/05/31(木) 15:19:11.21ID:AbqPsR3A0 TextBoxか、MaskedTextBoxに単位をつけたい。
小数点有りや無し、-の数値を入力できたりするものってできますか?
-2℃
14℃
25.5℃
2.5℃
小数点有りや無し、-の数値を入力できたりするものってできますか?
-2℃
14℃
25.5℃
2.5℃
880デフォルトの名無しさん (ドコグロ MM19-5Q+M)
2018/05/31(木) 18:15:14.92ID:Zw7Yk0+cM テキストボックスの横にラベルで単位でも書いておこうぜ
□㌕
□㌕
881デフォルトの名無しさん (ドコグロ MM19-5Q+M)
2018/05/31(木) 18:16:46.93ID:Zw7Yk0+cM 小数点は
□.□㌕
な
□.□㌕
な
882デフォルトの名無しさん (アウアウカー Sa5d-GynM)
2018/05/31(木) 19:19:02.19ID:0ajP7AA9a >>879
TextBoxクラスを継承
TextBoxクラスを継承
883デフォルトの名無しさん (ワッチョイ d69a-msj4)
2018/05/31(木) 20:26:49.48ID:9/5XjJFR0884デフォルトの名無しさん (ブーイモ MMf1-CKCa)
2018/05/31(木) 21:28:20.09ID:ygkZdVXVM885デフォルトの名無しさん (ワッチョイ 4e57-msj4)
2018/06/01(金) 09:05:55.18ID:azdekr4p0 説明不足ごめんなさい。
出力ですが、最終的にはTextBoxの枠ごと印刷したいと考えております。
883の言う単位の入力補完だと思います。
MaskedTextBoxのマスクに####℃と記入し、
「-24.4」等のデータをデータベースから取り出して、入れたところMaskedTextBox.Textが244℃となってしまいました。
このテキストボックスを小数点有りの場合、なしの場合、負の符号が有りの場合なしの場合、「----」の場合、
1桁から5桁+「℃」としてTextBox.Textに出力したいと考えております。
できますか?
出力ですが、最終的にはTextBoxの枠ごと印刷したいと考えております。
883の言う単位の入力補完だと思います。
MaskedTextBoxのマスクに####℃と記入し、
「-24.4」等のデータをデータベースから取り出して、入れたところMaskedTextBox.Textが244℃となってしまいました。
このテキストボックスを小数点有りの場合、なしの場合、負の符号が有りの場合なしの場合、「----」の場合、
1桁から5桁+「℃」としてTextBox.Textに出力したいと考えております。
できますか?
886デフォルトの名無しさん (ラクッペ MM35-gTal)
2018/06/01(金) 09:13:09.12ID:gkm5sPLjM TextBoxクラスを継承して自前で実装すればできる
887デフォルトの名無しさん (アウアウカー Sa5d-GynM)
2018/06/01(金) 09:47:05.22ID:czZmZo8za TextBoxクラスを継承してTextプロパティを上書き
書式とか単位を属性に持たせれば汎用的に使える。
コピペされたときの場合も考慮すること
書式とか単位を属性に持たせれば汎用的に使える。
コピペされたときの場合も考慮すること
888[879] (ワッチョイ 4e57-msj4)
2018/06/01(金) 09:58:02.26ID:azdekr4p0 ありがとうございます。
なんとなく、それっぽいものが作れそうです。
なんとなく、それっぽいものが作れそうです。
889デフォルトの名無しさん (ワキゲー MM62-03s2)
2018/06/01(金) 10:22:08.86ID:XLd38QjBM ユーザーコントロールでボーダーなしテキストボックスとラベル並べた方が楽な気がする
890デフォルトの名無しさん (ワッチョイ b117-NLsb)
2018/06/01(金) 18:06:59.69ID:TnI3eVXu0 テキストボックスの描画や挙動を弄るの面倒くさいから汎用性を求めるんなら InputMan 買った方がいいよ
891デフォルトの名無しさん (ブーイモ MM9a-dURk)
2018/06/01(金) 18:10:44.74ID:UBye49NJM ライセンスとかテクリスとか面倒だから買わない
892デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/01(金) 18:21:51.24ID:S7DUtxKdM NuGetで参照できるオープンソースのWinFormsリッチコンポーネントって何が有名なの?
893デフォルトの名無しさん (ドコグロ MM19-5Q+M)
2018/06/01(金) 20:17:26.63ID:dZV2tAFxM nugetは俺の鬼門
894デフォルトの名無しさん (ワッチョイ 018a-75sl)
2018/06/01(金) 21:28:02.83ID:naL+ZRGN0 僕の半蔵門
895デフォルトの名無しさん (ワッチョイ fae3-mRcc)
2018/06/01(金) 23:18:54.61ID:fWGAwsr30 前門の虎 肛門の狼
896デフォルトの名無しさん (ワッチョイ d103-Y2aB)
2018/06/02(土) 00:25:46.86ID:A4SZL/oE0 寒っ
897デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 10:06:40.82ID:QJbZaU5f0 c#で穴ぼこメモリにしないように組むのって不可能?
898デフォルトの名無しさん (ワッチョイ 5db3-7ot6)
2018/06/02(土) 10:27:51.87ID:nL4AUV2I0 可能だが、規模によっては現実的でない
パフォーマンスを気にするなら、別にボトルネックが存在していないかを見直す方が先
パフォーマンスを気にするなら、別にボトルネックが存在していないかを見直す方が先
899デフォルトの名無しさん (アウアウウー Sa09-667V)
2018/06/02(土) 10:30:12.89ID:rvy10L9Oa OSの仕事
どうしても嫌でデカいbyte配列確保して中に文字や数字全部入れても無駄
どうしても嫌でデカいbyte配列確保して中に文字や数字全部入れても無駄
900デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 10:40:30.36ID:QJbZaU5f0901デフォルトの名無しさん (ブーイモ MMf1-CKCa)
2018/06/02(土) 10:42:11.98ID:1ZPJADB4M GCが勝手に詰めてくれるから気にしなくていい
ただし巨大なオブジェクトは専用の領域があって移動されないので断片化されやすいから注意
ただし巨大なオブジェクトは専用の領域があって移動されないので断片化されやすいから注意
902デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/02(土) 11:05:50.81ID:msgJi+IZM Spanとstackallocで我慢しなさい
903デフォルトの名無しさん (アウアウウー Sa09-667V)
2018/06/02(土) 11:10:29.54ID:rvy10L9Oa904デフォルトの名無しさん (ワッチョイ 018a-75sl)
2018/06/02(土) 11:12:27.29ID:msBkLZBc0 DMAが僕を呼んでいるから
905デフォルトの名無しさん (JP 0H89-C2Ni)
2018/06/02(土) 11:18:59.70ID:J1HVezEsH906デフォルトの名無しさん (アウアウウー Sa09-667V)
2018/06/02(土) 11:42:21.94ID:gRqFSsBQa OSでメモリはブロックなどで管理されていて要求があったら
要求サイズに合わせてそのブロックの中のさらに細かいブロックなどを払いだしてる
こっちがどうしようとOSでブロックを作ってその中でやりくりしてる
例えそのブロックの中で断片化していて何か不都合あるのか?
要求サイズに合わせてそのブロックの中のさらに細かいブロックなどを払いだしてる
こっちがどうしようとOSでブロックを作ってその中でやりくりしてる
例えそのブロックの中で断片化していて何か不都合あるのか?
907デフォルトの名無しさん (ワッチョイ d5b5-wk7t)
2018/06/02(土) 14:08:09.74ID:65ghWvPg0 使う予定の最大量の倍の空きメモリーあれば大体は気にならない。
いまどきのパソコンはアプリが使いたいメモリーサイズの数百倍は有るから気にするな。
いまどきのパソコンはアプリが使いたいメモリーサイズの数百倍は有るから気にするな。
908デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 14:25:15.68ID:QJbZaU5f0 リークしてると1ヶ月ぐらいで死ぬじゃん
現状自分でメモリ管理しないとどこで何が確保されてるのかわからないわけで
そういうの確実に管理したいときはc言語のがいいのかなぁ?と
現状自分でメモリ管理しないとどこで何が確保されてるのかわからないわけで
そういうの確実に管理したいときはc言語のがいいのかなぁ?と
909デフォルトの名無しさん (ワッチョイ d55d-C2Ni)
2018/06/02(土) 14:34:09.78ID:gayBoTaI0 極めて厳密に管理したいならC/C++でアロケータを自前で書くというのはあり得る
しかしリークという点ではC#よりC/C++の方が遥かにやっちまい易いので, メモリ安全を確保する目的でC/C++で書くのは本末転倒のように思う
しかしリークという点ではC#よりC/C++の方が遥かにやっちまい易いので, メモリ安全を確保する目的でC/C++で書くのは本末転倒のように思う
910デフォルトの名無しさん (ワッチョイ b117-NLsb)
2018/06/02(土) 14:39:58.23ID:I3vJQFJE0 リーク前提とかバカでしょ
911デフォルトの名無しさん (ワッチョイ 7a8a-sZ2J)
2018/06/02(土) 15:01:44.21ID:fV6b9MUi0 List#Containsの重複判定基準をEquals以外にすることはできないでしょうか?
ListにしたいクラスのEqualsが、別の目的用にオーバーライドされている為、Equalsを使うことができません。
ListにしたいクラスのEqualsが、別の目的用にオーバーライドされている為、Equalsを使うことができません。
912デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 15:43:20.19ID:QJbZaU5f0 >>909
c#は現在実行中のアプリのインスタンスを確認する方法はあるの?
c#は現在実行中のアプリのインスタンスを確認する方法はあるの?
913デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/02(土) 15:47:01.32ID:XUNevU9ma914デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/02(土) 15:54:54.04ID:XUNevU9ma まあ、Exists使うだけだよね
915デフォルトの名無しさん (ワッチョイ 5db3-7ot6)
2018/06/02(土) 16:03:39.22ID:nL4AUV2I0 >>908
Webサービスか何かを想定してる?
だったらコーディングで対応するんでなく、ロードバランサで複数のアプリケーションサーバに振り分けて
サービスが止まらない様にしつつ、一部のサーバをオンメンテでリブートすべし
Webサービスか何かを想定してる?
だったらコーディングで対応するんでなく、ロードバランサで複数のアプリケーションサーバに振り分けて
サービスが止まらない様にしつつ、一部のサーバをオンメンテでリブートすべし
916デフォルトの名無しさん (ササクッテロラ Sp05-wk7t)
2018/06/02(土) 16:05:51.99ID:wt7oIb0Vp C#スレでメモリーリークを心配するとか、どんだけ無能なんだよ。
917デフォルトの名無しさん (ワッチョイ d6c9-msj4)
2018/06/02(土) 16:12:14.89ID:5ltA6BNw0 普通はリークで死ぬ前にGen2GC連発して性能ガタ落ちになるんじゃ
どんだけ握ってんだよと
どんだけ握ってんだよと
918デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 18:04:04.45ID:QJbZaU5f0 実際にメモリリークが起こらないように気をつける術は昔ながらの方法しかない?
プロジェクトでnewするときはインスタンスマネージャー的なのを通して
可能な限りインスタンスを監視するとかそんなの?
プロジェクトでnewするときはインスタンスマネージャー的なのを通して
可能な限りインスタンスを監視するとかそんなの?
919デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/02(土) 18:17:48.36ID:msgJi+IZM マトモなコードを書くだけ
920デフォルトの名無しさん (スッップ Sd9a-L98v)
2018/06/02(土) 19:01:19.50ID:pCnJrSzQd メモリリークさせようと思わないとなかなかできんよ
921デフォルトの名無しさん (ブーイモ MMf1-CKCa)
2018/06/02(土) 19:11:03.61ID:1ZPJADB4M >>918
一時的なオブジェクトはもう必要ないなら握りっぱなしにしないで即座に使い捨てること
中途半端に握りっぱなしにしてるとGCの世代か昇格してメモリ使用量の増加やGCのパフォーマンス低下の原因になる
一方、単寿命オブジェクトのGCは爆速なので、newしたら積極的にすぐ放置すべき
一時的なオブジェクトはもう必要ないなら握りっぱなしにしないで即座に使い捨てること
中途半端に握りっぱなしにしてるとGCの世代か昇格してメモリ使用量の増加やGCのパフォーマンス低下の原因になる
一方、単寿命オブジェクトのGCは爆速なので、newしたら積極的にすぐ放置すべき
922デフォルトの名無しさん (ブーイモ MMf1-CKCa)
2018/06/02(土) 19:16:06.36ID:1ZPJADB4M >>911
Any
Any
923デフォルトの名無しさん (ワッチョイ b117-NLsb)
2018/06/02(土) 19:21:44.73ID:I3vJQFJE0 C#でメモリリークさせるコード書く奴がC/C++で無くせるとは到底思えないわ
924デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 19:25:12.19ID:QJbZaU5f0 >>921
うーん
爆速ではないなぁ
3分に1回動かしてる処理があるんだけど
強制GCせずにずっと動かしてるとき
メモリ使用量がかなりあがった状態でGCが動くと
3分に一度の処理のタイミングがズレちゃうんだよね
そこで強制GCも十分に一度ぐらいの頻度で動かしてる状態
うーん
爆速ではないなぁ
3分に1回動かしてる処理があるんだけど
強制GCせずにずっと動かしてるとき
メモリ使用量がかなりあがった状態でGCが動くと
3分に一度の処理のタイミングがズレちゃうんだよね
そこで強制GCも十分に一度ぐらいの頻度で動かしてる状態
925デフォルトの名無しさん (スッップ Sd9a-L98v)
2018/06/02(土) 19:29:07.89ID:pCnJrSzQd だめだこいつ
926デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/02(土) 19:31:42.56ID:QJbZaU5f0 >>925
なんかいい方法あるんですか?
なんかいい方法あるんですか?
927デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
2018/06/02(土) 19:37:34.74ID:KX6MAuAea ちゃんと設計してればC#でメモリーリークなんて気にすることなんてあるか?
そんなガバガバ設計してるやつがCだったら大丈夫なんだけど、って馬鹿な話誰が信じるよ
そんなガバガバ設計してるやつがCだったら大丈夫なんだけど、って馬鹿な話誰が信じるよ
928デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/02(土) 19:45:14.53ID:msgJi+IZM929デフォルトの名無しさん (ワッチョイ d681-gTal)
2018/06/02(土) 20:14:13.22ID:fh+k246w0 以降放置でお願いいたします
930デフォルトの名無しさん (ワッチョイ 21e3-/vbK)
2018/06/02(土) 20:28:22.93ID:iRadbqpq0 >メモリーリークなんて気にすること
ページフォルトを気にしないヴァカっていたな。
リークしていないが累積しすぎたページフォルトがOSを殺す
ページフォルトを気にしないヴァカっていたな。
リークしていないが累積しすぎたページフォルトがOSを殺す
931デフォルトの名無しさん (アウアウウー Sa09-C2Ni)
2018/06/02(土) 20:30:41.21ID:+/nRHGaPa C#でリークやらかす奴がC/C++でやらかさない道理がない
932デフォルトの名無しさん (ラクッペ MM35-gTal)
2018/06/02(土) 20:31:22.14ID:eSvYHUXNM こいつもトンチキなので放置でいいです
933デフォルトの名無しさん (ササクッテロラ Sp05-wk7t)
2018/06/02(土) 20:50:00.44ID:wt7oIb0Vp まあ、でもC#はメモリー管理を隠蔽しちゃったから、実はCやC++よりメモリー管理しにくいんだよな。
934デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/02(土) 20:58:18.57ID:msgJi+IZM C++出身のC#初心者にありがちだね
935デフォルトの名無しさん (ワッチョイ 4a15-ZeuL)
2018/06/02(土) 21:10:12.98ID:u/NNd5OV0 未確認飛行のSpan説明みてサンプルコード動かそうとしたんだけど
using System.Memory;すると
CS0305ジェネリック種類 'Memory<T>' を使用するには、1 型引数が必要です。
って叱られるのなんで?
VSもCoreも最新
using System.Memory;すると
CS0305ジェネリック種類 'Memory<T>' を使用するには、1 型引数が必要です。
って叱られるのなんで?
VSもCoreも最新
936デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/02(土) 21:20:59.23ID:msgJi+IZM SpanはSystem.Spanだ
937デフォルトの名無しさん (ワッチョイ 4a15-ZeuL)
2018/06/02(土) 21:33:12.83ID:u/NNd5OV0 System.Spanにしてもでてきおる
using static System.Memory<string>;
ってするとエラーは消えた
using static System.Memory<string>;
ってするとエラーは消えた
938デフォルトの名無しさん (ワッチョイ d696-NLsb)
2018/06/03(日) 17:57:54.97ID:nwnHFAsS0 フォームアプリでマウスクリックでイベントをはっせいさせているのですが、
ある処理ループの実行中はこのクリックイベントの割り込み発生を禁止させたいです。
マウスクリック割り込みイベントを無効化、有効化する方法ってないでしょうか?
ある処理ループの実行中はこのクリックイベントの割り込み発生を禁止させたいです。
マウスクリック割り込みイベントを無効化、有効化する方法ってないでしょうか?
939デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/03(日) 18:03:05.41ID:acSSis/XM >>937
そうじゃないusing System;ってこと
そうじゃないusing System;ってこと
940デフォルトの名無しさん (ワッチョイ 259a-msj4)
2018/06/03(日) 18:05:10.81ID:5sPxkTAt0941デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
2018/06/03(日) 18:07:49.08ID:qpwWeWwga942デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/03(日) 18:08:39.42ID:imVGa92Ya943デフォルトの名無しさん (アウアウウー Sa09-NLsb)
2018/06/03(日) 18:26:12.78ID:y7bK61pJa 処理中フラグ持っておいて
クリックイベントの入り口で処理中ならreturnするのでよくない?
bool 処理中=false;
クリックイベントの頭
if(処理中)return;
クリックイベントの入り口で処理中ならreturnするのでよくない?
bool 処理中=false;
クリックイベントの頭
if(処理中)return;
944デフォルトの名無しさん (ワッチョイ 018a-75sl)
2018/06/03(日) 18:33:27.61ID:3EuqECGs0 lockで囲めば
945デフォルトの名無しさん (ワントンキン MMb5-67BG)
2018/06/03(日) 18:43:15.37ID:acSSis/XM ボタンからしか起動しない処理だと保証されてるなら-=+=でもフラグでもいいが
そうでないなら真面目に並列処理管理しないとね
そうでないなら真面目に並列処理管理しないとね
946デフォルトの名無しさん (ササクッテロラ Sp05-wk7t)
2018/06/03(日) 18:59:01.85ID:4vwgZnFjp はあ?
クリックイベント自体を抑止したのか?
意味あるの?
クリックイベント自体を抑止したのか?
意味あるの?
947デフォルトの名無しさん (アウアウカー Sa5d-GynM)
2018/06/03(日) 19:18:23.10ID:bhcyF/oUa 処理ループの中でメッセージループを実装してGetMessage()でマウスイベントをフィルターかな?或いは読み捨てる
948デフォルトの名無しさん (ワッチョイ d5b5-wk7t)
2018/06/03(日) 20:09:50.51ID:pjD3SZS60 え、連打対策してないの?
949デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
2018/06/03(日) 20:15:38.36ID:OWt1glR4a 非同期で実行した場合とかの抑止とか?とエスパー
950デフォルトの名無しさん (ワッチョイ 4a15-ZeuL)
2018/06/03(日) 20:19:01.20ID:S4J0YpoT0 >>939
つまりSpanを使うのにusing System;さえすればいいってこと?
ごめんな、クソ素人過ぎて質問がまずいのか
http://ufcpp.net/study/csharp/resource/span/の
var s = "abcあいう亜以宇";
var sub = s.Substring(3, 3);
var span = s.AsReadOnlySpan().Slice(3, 3);
for (int i = 0; i < 3; i++)
{
Console.WriteLine((sub[i], span[i])); // あ、い、う が2つずつ表示される
}
を試したいんだけど、できないって話なんだ
つまりSpanを使うのにusing System;さえすればいいってこと?
ごめんな、クソ素人過ぎて質問がまずいのか
http://ufcpp.net/study/csharp/resource/span/の
var s = "abcあいう亜以宇";
var sub = s.Substring(3, 3);
var span = s.AsReadOnlySpan().Slice(3, 3);
for (int i = 0; i < 3; i++)
{
Console.WriteLine((sub[i], span[i])); // あ、い、う が2つずつ表示される
}
を試したいんだけど、できないって話なんだ
951デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/03(日) 20:26:16.06ID:klvCZP9p0952デフォルトの名無しさん (ワントンキン MM8a-67BG)
2018/06/03(日) 20:50:59.76ID:H2Gh+VvdM >>950
現時点ではAsReadOnlySpanが存在しないっぽいね
Stringはもともと読み取り専用だからAsSpanでReadOnlySpanになるってことだと思うけど
過渡期の記事はそのまま鵜呑みにしない方がいいぞ
現時点ではAsReadOnlySpanが存在しないっぽいね
Stringはもともと読み取り専用だからAsSpanでReadOnlySpanになるってことだと思うけど
過渡期の記事はそのまま鵜呑みにしない方がいいぞ
953デフォルトの名無しさん (ワッチョイ d696-NLsb)
2018/06/03(日) 21:25:48.86ID:nwnHFAsS0954デフォルトの名無しさん (ワッチョイ d696-NLsb)
2018/06/03(日) 21:26:28.88ID:nwnHFAsS0955デフォルトの名無しさん (ワッチョイ d696-NLsb)
2018/06/03(日) 21:27:58.09ID:nwnHFAsS0 >>948
おっしゃる通りで、連打対策必要だったんですね。
フォームアプリだと必須の対策なんですね。
他で少し変な挙動してたのは連打対策してなかったことが原因のようです。
連打対策してみます。
というか、どうやればいいんだろ。
また、お勉強しなければ。
おっしゃる通りで、連打対策必要だったんですね。
フォームアプリだと必須の対策なんですね。
他で少し変な挙動してたのは連打対策してなかったことが原因のようです。
連打対策してみます。
というか、どうやればいいんだろ。
また、お勉強しなければ。
956デフォルトの名無しさん (ワッチョイ d69a-msj4)
2018/06/03(日) 21:42:26.87ID:0r68Qt9D0957デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/03(日) 21:51:01.95ID:imVGa92Ya958デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/03(日) 21:56:36.02ID:imVGa92Ya そもそもUIのデザイン論なんて大げさな話じゃなくても、
ユーザーの捜査に反応できない文脈では何らかの方法(通常はグレイアウト)でそれを
ユーザーに対して明示しないUIは問題あるでしょうww
そんなことにも思い至らない回答者は無視していいよw
ユーザーの捜査に反応できない文脈では何らかの方法(通常はグレイアウト)でそれを
ユーザーに対して明示しないUIは問題あるでしょうww
そんなことにも思い至らない回答者は無視していいよw
959デフォルトの名無しさん (ワッチョイ 4a15-ZeuL)
2018/06/03(日) 22:53:07.14ID:S4J0YpoT0 >>952
ありがとう、そういうこともあるんだな
勉強になった
10Gくらいの固定長テキストファイルから一行ずつ読み取って
最初の1-10文字はUSER ID、11はSEX・・・って分けてdbに突っ込んでるんだけど
StringBuilderでLength=0しつつappendするくらいじゃ、stringでsubstringするのとあまり変わらなかったんで
Span使えばマシになるのかなと思ったんだ
ありがとう、そういうこともあるんだな
勉強になった
10Gくらいの固定長テキストファイルから一行ずつ読み取って
最初の1-10文字はUSER ID、11はSEX・・・って分けてdbに突っ込んでるんだけど
StringBuilderでLength=0しつつappendするくらいじゃ、stringでsubstringするのとあまり変わらなかったんで
Span使えばマシになるのかなと思ったんだ
960デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/03(日) 23:00:15.10ID:8gLBE5WNa そんなもん丸ごとDBにロードしたほうが速いだろ
固定長ファイルのロードはどのDBMSでもコマンド一発でできる
固定長ファイルのロードはどのDBMSでもコマンド一発でできる
961デフォルトの名無しさん (ワッチョイ 4a15-ZeuL)
2018/06/03(日) 23:12:33.52ID:S4J0YpoT0 >>960
それなw
tempのカラムに一行まるごと突っ込んで、クエリでsubstrするやり方やってみる
https://stackoverflow.com/questions/12423991/import-fixed-width-text-file-into-sqlite
それなw
tempのカラムに一行まるごと突っ込んで、クエリでsubstrするやり方やってみる
https://stackoverflow.com/questions/12423991/import-fixed-width-text-file-into-sqlite
962デフォルトの名無しさん (ワッチョイ d6c9-msj4)
2018/06/03(日) 23:35:40.25ID:iikfdxhC0 10GBのデータだと読取よりDBMSへの書き込み方法がネックになりそう
963デフォルトの名無しさん (ワッチョイ 4a15-ZeuL)
2018/06/04(月) 06:33:56.69ID:mxEQUVjg0 >>962
細かくなるとdbスレ行きなんだろうけど
実際に書くところはC#なわけで、どこがボトルネックになってるのかザコ過ぎてわからんw
とりあえずsqliteつかってメモリ上dbにinsertでトランザクション管理しっかりやってってして30分くらいだったからまーいいかと
sql server expressだとbulk insertはわからんけどselectで並列処理されるみたいだから乗り換えてみる予定
細かくなるとdbスレ行きなんだろうけど
実際に書くところはC#なわけで、どこがボトルネックになってるのかザコ過ぎてわからんw
とりあえずsqliteつかってメモリ上dbにinsertでトランザクション管理しっかりやってってして30分くらいだったからまーいいかと
sql server expressだとbulk insertはわからんけどselectで並列処理されるみたいだから乗り換えてみる予定
964デフォルトの名無しさん (アウアウウー Sa09-NLsb)
2018/06/04(月) 11:04:17.43ID:MivBMbBxa sql server expressはひっくるめたDBサイズが最大10 GBまでだったと思うが
965デフォルトの名無しさん (ワッチョイ 018a-75sl)
2018/06/04(月) 11:06:49.27ID:UeJV2JW90 メモリしこたま積んでRedisかな
966デフォルトの名無しさん (ブーイモ MM9a-CKCa)
2018/06/04(月) 14:26:59.71ID:pPavJvQvM Postgresでいいよ
ロード時に固定長レコードのフォーマットを指定できるから一時テーブルもC#もいらん
ロード時に固定長レコードのフォーマットを指定できるから一時テーブルもC#もいらん
967デフォルトの名無しさん (ワッチョイ cd24-sZ2J)
2018/06/04(月) 16:33:35.32ID:7NrmQXKK0 MonoのLinux版のインストールの仕方、ご教示いただけますと有難いです。宜しくお願い致します。
968デフォルトの名無しさん (ワッチョイ d6e8-NLsb)
2018/06/04(月) 16:48:48.54ID:aK/XyO250 米Microsoftが米GitHubを買収することで合意
http://www.itmedia.co.jp/news/articles/1806/04/news058.html
http://www.itmedia.co.jp/news/articles/1806/04/news058.html
969デフォルトの名無しさん (ワッチョイ 018a-75sl)
2018/06/04(月) 20:38:58.19ID:UeJV2JW90 >>967
ちょまど神を信仰すると天啓が降るぞよ
ちょまど神を信仰すると天啓が降るぞよ
970デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/04(月) 20:43:37.91ID:CVKZewtza971デフォルトの名無しさん (ワッチョイ 45eb-sZ2J)
2018/06/04(月) 20:52:46.96ID:spHrXgPF0 UbuntuでもCentOSでもコマンド一発で入るがな
972デフォルトの名無しさん (ワッチョイ fad2-L98v)
2018/06/04(月) 21:35:01.82ID:ztrCxIDM0 >>970
何言ってんの?
何言ってんの?
973デフォルトの名無しさん (ワッチョイ 4aeb-xcqf)
2018/06/04(月) 21:48:02.60ID:9+XsYcyB0 Windows.Forms で WndProc を override して自分のコードを加えているのですが
デバッガで進めていくと、その中に突入してしまいます。
InitializeComponent の中みたいに、デバッガが入らなくする宣言みたいなものなかったですか?
デバッガで進めていくと、その中に突入してしまいます。
InitializeComponent の中みたいに、デバッガが入らなくする宣言みたいなものなかったですか?
974デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/04(月) 21:49:06.62ID:BHtXacEqa >>973
debuggerstepthrough
debuggerstepthrough
975デフォルトの名無しさん (ワッチョイ b117-NLsb)
2018/06/04(月) 21:56:07.60ID:Uz3WpYRO0976デフォルトの名無しさん (ワッチョイ 4e8b-fUxx)
2018/06/04(月) 23:32:00.59ID:054Q3E4O0 メインクラスとシリアル通信クラスの2つを使っています
シリアル通信の受信完了でイベントをメイン側に発生させることら可能でしょうか。受信完了したらメイン側から受信データを取りに行くようにしたいのですが。
シリアル通信の受信完了でイベントをメイン側に発生させることら可能でしょうか。受信完了したらメイン側から受信データを取りに行くようにしたいのですが。
977デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/05(火) 00:07:28.69ID:jE9yEXCCa >>976
何でそうなるのw
発想が逆だってw
そのシリア通信を担当するクラスSがデータ受信を通知するイベントを発生させて
受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw
ついでに言えば受信データもEventArgs使って渡してしまえばいい
何でそうなるのw
発想が逆だってw
そのシリア通信を担当するクラスSがデータ受信を通知するイベントを発生させて
受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw
ついでに言えば受信データもEventArgs使って渡してしまえばいい
978デフォルトの名無しさん (ワッチョイ d681-gTal)
2018/06/05(火) 00:33:25.52ID:liKML/cX0 しょうがねえだろ初心者なんだから
979976 (ブーイモ MMbe-fUxx)
2018/06/05(火) 07:18:51.35ID:ByFVOB9IM >>977
やりたいのことはそれなんですよw
説明が下手ですいません
厳密にはデータを受けた事が分かったらメイン側は受信データの内容を解釈するクラスに送って処理分岐という形にしようかと思ってます。
用語や処理の知識がおいついてきてないので、あれを応用しようという感じにならず、調べるためのキーワードも出てこないです。
>>クラスSがデータ受信を通知するイベントを発生させて受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw
ここが具体的にどういう構文になるのでしょうか。
やりたいのことはそれなんですよw
説明が下手ですいません
厳密にはデータを受けた事が分かったらメイン側は受信データの内容を解釈するクラスに送って処理分岐という形にしようかと思ってます。
用語や処理の知識がおいついてきてないので、あれを応用しようという感じにならず、調べるためのキーワードも出てこないです。
>>クラスSがデータ受信を通知するイベントを発生させて受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw
ここが具体的にどういう構文になるのでしょうか。
980デフォルトの名無しさん (アウアウカー Sa5d-GynM)
2018/06/05(火) 08:07:17.14ID:D4M8TybKa Signalを使っても作れるな。
981デフォルトの名無しさん (ワッチョイ fa11-W/zB)
2018/06/05(火) 09:11:21.09ID:GjVlFAo70 >>958
PCをあまり使い慣れてない人とか、ボタンはシングルクリックでいいのをダブルクリックしちゃったりとかあるんだよなこれが・・・
PCをあまり使い慣れてない人とか、ボタンはシングルクリックでいいのをダブルクリックしちゃったりとかあるんだよなこれが・・・
982デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
2018/06/05(火) 09:29:57.56ID:nr/+sOXHa 非同期じゃないならボタンイネーブル切ればいいだけじゃね
983デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
2018/06/05(火) 09:32:16.99ID:nr/+sOXHa すまん。忘れてくれ
984デフォルトの名無しさん (アウアウウー Sa09-NLsb)
2018/06/05(火) 10:35:58.82ID:l/0/VM/ma 状態をGUIだけに持たせておくのはおかしいといつか思うはず
985デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/05(火) 12:11:20.04ID:vCTdp4Eha >>979
class FrameReceivedEventArgs:EventArgs
{
public byte[] Frame{get; private set;}
....
}
class CommunicationPort
{
public even EventHandler<FrameReceivedEventArgs> FrameReceived;
....
}
class FrameDecoder
{
public FrameDecoder(CommunicationPort c}
{
c.FrameReceived += CommunicationPort_FrameReceived;
}
private void CommunicationPort_FrameReceived((object sender, FrameReceivedEventArgs e)
{
....
}
....
}
class FrameReceivedEventArgs:EventArgs
{
public byte[] Frame{get; private set;}
....
}
class CommunicationPort
{
public even EventHandler<FrameReceivedEventArgs> FrameReceived;
....
}
class FrameDecoder
{
public FrameDecoder(CommunicationPort c}
{
c.FrameReceived += CommunicationPort_FrameReceived;
}
private void CommunicationPort_FrameReceived((object sender, FrameReceivedEventArgs e)
{
....
}
....
}
986デフォルトの名無しさん (ブーイモ MMbe-CKCa)
2018/06/05(火) 12:44:05.86ID:eGZjT6RJM987デフォルトの名無しさん (ブーイモ MMbe-CKCa)
2018/06/05(火) 12:51:41.81ID:eGZjT6RJM988デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/05(火) 12:55:30.14ID:vCTdp4Eha 何言ってるのかさっぱりわからん
よくわからん思考回路だな...
よくわからん思考回路だな...
989デフォルトの名無しさん (ワッチョイ fa11-W/zB)
2018/06/05(火) 13:09:28.12ID:GjVlFAo70 言い回しがようわからんが
>>985みたいなのするのが解放されないオブジェクトを量産するっていうのはなんとなくわかる
>>985みたいなのするのが解放されないオブジェクトを量産するっていうのはなんとなくわかる
990デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/05(火) 13:11:38.32ID:vyKZFDS5a >>988
分からないならイベントというものを正しく理解してないんじゃないかな
ボタンのクリックイベントをフォームが受け取れるのは、ボタンがフォームへの参照を(実際には間にデリゲートが入るので間接的にだが)持ってるから
基本的に、引数に渡ってきたものに自分自身を登録するのは避けたほうがいい
オブジェクトのライフタイムが非常に分かりにくくなるから
分からないならイベントというものを正しく理解してないんじゃないかな
ボタンのクリックイベントをフォームが受け取れるのは、ボタンがフォームへの参照を(実際には間にデリゲートが入るので間接的にだが)持ってるから
基本的に、引数に渡ってきたものに自分自身を登録するのは避けたほうがいい
オブジェクトのライフタイムが非常に分かりにくくなるから
991デフォルトの名無しさん (ワントンキン MM8a-67BG)
2018/06/05(火) 13:53:28.61ID:UBCugO63M reactive extensionsって.NET発祥なのに使う人少ないよね
992デフォルトの名無しさん (ワッチョイ cd24-lkdC)
2018/06/05(火) 15:23:49.06ID:n583dJR10993デフォルトの名無しさん (ワッチョイ cd24-lkdC)
2018/06/05(火) 15:24:19.24ID:n583dJR10 >>970
そうなんですか。。。
NET Coreっての調べてみます。どうも有難う御座います。
ちょど昨日 GUI って何だ??って検索したばかりでした。
3日前からプログラムの勉強をはじめたばかりで。。。
そうなんですか。。。
NET Coreっての調べてみます。どうも有難う御座います。
ちょど昨日 GUI って何だ??って検索したばかりでした。
3日前からプログラムの勉強をはじめたばかりで。。。
994デフォルトの名無しさん (ワッチョイ cd24-lkdC)
2018/06/05(火) 15:24:34.93ID:n583dJR10995デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/05(火) 16:15:32.44ID:vCTdp4Eha996デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/05(火) 16:16:25.51ID:vCTdp4Eha あ、
× イベントの購読解除
〇 イベントの購読解除忘れ
× イベントの購読解除
〇 イベントの購読解除忘れ
997デフォルトの名無しさん (ワッチョイ d69a-msj4)
2018/06/05(火) 19:31:17.11ID:70UTtyrn0 次スレたててみる
998デフォルトの名無しさん (ワッチョイ d69a-msj4)
2018/06/05(火) 19:33:22.39ID:70UTtyrn0999デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/06(水) 00:18:56.95ID:+J9HGVUKa >>995
想像力のない人だなあ
>>985だと、イベントハンドラの登録を解除しない限り、FrameDecoderが不要になっても
登録先のCommunicationPortよりも先にGCされることは絶対にない。
じゃあ不要になったらイベントハンドラを登録解除できるようにしよう。いつ解除する?
それはFrameDecoder自身には分からない。知っているとしたら、それは>>976のいうメインクラスだろう。
登録解除するにはFrameDecoderクラスのDisposeメソッドを呼べ、という仕様にするか?
結局、985のFrameDecoderを正しく扱うには、メインクラス側がそういうクラス外から見ただけでは想像できないFrameDecoderの気難しい仕様を理解した上で、
必要に応じて明示的な解放を行わなくてはならない。
そんなことをするくらいならメインクラス側で明示的に登録・登録解除をやったほうが遥かに素直で分かりやすい。
想像力のない人だなあ
>>985だと、イベントハンドラの登録を解除しない限り、FrameDecoderが不要になっても
登録先のCommunicationPortよりも先にGCされることは絶対にない。
じゃあ不要になったらイベントハンドラを登録解除できるようにしよう。いつ解除する?
それはFrameDecoder自身には分からない。知っているとしたら、それは>>976のいうメインクラスだろう。
登録解除するにはFrameDecoderクラスのDisposeメソッドを呼べ、という仕様にするか?
結局、985のFrameDecoderを正しく扱うには、メインクラス側がそういうクラス外から見ただけでは想像できないFrameDecoderの気難しい仕様を理解した上で、
必要に応じて明示的な解放を行わなくてはならない。
そんなことをするくらいならメインクラス側で明示的に登録・登録解除をやったほうが遥かに素直で分かりやすい。
1000デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
2018/06/06(水) 00:26:33.34ID:D75pa1n0a 質問いいですか?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 6時間 46分 14秒
新しいスレッドを立ててください。
life time: 60日 6時間 46分 14秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 清涼飲料水から麻薬成分東京都が注意喚起 [おっさん友の会★]
- 生活保護廃止、公務員の給与に最低賃金を適用⇦これをやるだけで国民の9割の不満が解消されるのにやらない理由 [218488394]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 【動画】男女混合レスリングのガチ試合の様子がこちら [738130642]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
