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


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

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



1 名前:デフォルトの名無しさん [2018/12/15(土) 11:07:07.89 ID:0aSEF/I+0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1538646998/
■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

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

60 名前:デフォルトの名無しさん mailto:sage [2018/12/18(火) 22:13:13.75 ID:BVyzn4SQr.net]
ブラウザなんか下位互換してるから大丈夫

61 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 23:04:17.95 ID:1+OCaMKe0.net]
C#のコンソールアプリから、
毎日指定した時刻に何らかのプログラムを実行したいのです。
例えば毎日朝10時に実行するなど。
あるいは、1時、2時、3時、、、に実行するなど。
実行時間の誤差は±10分くらいあっても構いません。
どんな手法がお勧めですか?

62 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 23:13:17.65 ID:6d4NDMwEa.net]
C#で完結させようなどという愚かな考えは捨ててタスクスケジューラを使う
ローカルで動かす必要がない物ならAWS LambdaにデプロイしてCloudWatchのスケジュールで動かすなんてのも手軽で良い

63 名前:デフォルトの名無しさん [2018/12/19(水) 23:20:08.96 ID:DnYaqc+Z0.net]
>>60
無限ループ(=常駐)PGを作って
適当な間隔でシステム時刻と比較して
実行したい時刻を過ぎていたら
Processkクラスを使ってでキックとかが一般的だと思うが
https://dobon.net/vb/dotnet/process/shell.html
その常駐PGが落ちた時に実行できないから
結局>>61の話になるな

64 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 23:23:11.44 ID:9dM2T/kK0.net]
そもそもログインしてなかったらどうなる?でサービス化するもんだと思っていた

65 名前:デフォルトの名無しさん mailto:sage [2018/12/19(水) 23:23:32.76 ID:fC5Hz5dL0.net]
>>60
bbs.wankuma.com/index.cgi?mode=al2&namber=40926&KLOG=71

66 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 08:16:06.80 ID:As7dWUw1M.net]
>>63
ログインしてない時まで実行したいとなるとサービスにして自前でやるかタスクスケジューラに起動してもらうかの2択だわな

67 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 10:09:55.46 ID:tgiqyGLQ0.net]
まぁc#によるサービス作成はNTや2000時代から見れば、
すんげー楽になってるので、余裕が出来れば挑戦お勧め

68 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 11:20:35.24 ID:0U5kGgIsa.net]
スケジュール変えたくなったらソース弄るの?自前で独自cronみたいな設定を実装するの?その使い方サービスごとに覚えなきゃいけないの?
運用が面倒だから安易なサービス化はやめなさい



69 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 11:35:36.11 ID:NvcSX/Wl0.net]
サービスはサービスにしかできないものに限定して、やったとしてもタスクスケジューラに登録するソフトのみかなぁ。

70 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 12:10:54.56 ID:uRkd43kpd.net]
タスクスケジューラに一票。
もしサービス化するとしても、サービスは蹴られるの待つようにして、タスクスケジューラに蹴らせたほうが良い。
どうせ「今すぐもう一度走らせたい」がそのうち出る案件な気がする。

71 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 12:18:04.50 ID:7E7fQupi0.net]
Microsoft自身もWindows Defenderとかタスクスケジューラ依存だから、たぶんこれが一番簡単で安定した方法なんだろうな

72 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 12:26:42.26 ID:As7dWUw1M.net]
>>66-69
まずはケースバイケースという言葉を覚えような
自分の狭い範囲で語られても困る

73 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 12:45:20.47 ID:04IBENLFM.net]
>>71
ここは初心者スレ
どうせ何が善い方法かなんて本人に判断つかないんだから、余計な選択肢は質問者を混乱させるだけ
ベストプラクティスさえ示してやればよい

74 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 13:03:15.38 ID:IXBzuTcop.net]
初心者スレだが初心者以外の人の方が見てるようなスレ

75 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 14:44:10.36 ID:uRkd43kpd.net]
>>71
ケースバイケースを考えられる奴は質問なんかしないだろう。
まずはタスクスケジューラ、
サービス化するとしてもタスクスケジューラから蹴った方がいい、
そんなに変な事言ってるか?2択と対して変わらん事言ってるつもりだが。

76 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 15:02:05.47 ID:VX0mwZrMM.net]
あーはいはい、永遠の初心者はC#なんか使わずに一生javaでもやってろ

77 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 18:31:34.13 ID:As7dWUw1M.net]
>>72, >>74
自称玄人の狭い世界を押し付ける方が混乱するわ
タスクスケジューラからサービス蹴るとかを初心者に薦めるとかバカすぎる

78 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 19:28:02.27 ID:7wwBVLN+0.net]
>自分の狭い範囲で語られても困る
ブーメラン



79 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 19:38:18.98 ID:m/IwfhEsM.net]
大抵の人は最初なんでもモノリシックに作ろうとして、スケジューリングと処理は分けたほうがよいことに自分なりに気付くもんだよね
分けるのダサいと思ってた時期は俺にもあったわ

80 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 20:16:11.98 ID:hwNgEKL00.net]
>>77
俺は押し付けなんてしてないけど?
またバカ晒しちゃったね w

81 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 20:40:15.88 ID:uRkd43kpd.net]
>>76
玄人だって言った?
ってかタスクスケジューラからサービス蹴るってそんなにハードル高くないでしょ。
メッセージ送るなり、サービスでFileSystemWatcherでフォルダ監視して、投入はキューファイル作ってでも良いし。
後者は初心者でもすぐ思いつくし実装できる話だと思うけど。

もしかして自分が出来ないから初心者に勧めるなとか言ってる?

82 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 21:03:45.16 ID:6fpTh5DCa.net]
何を争ってるのかさっぱり分からんけど、双方とも少しも
建設的な意志がないことだけは確実に分かるねw

83 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 21:05:21.53 ID:tgiqyGLQ0.net]
OSに近い所まで楽チンに触れるのがC#の利点の一つ
だと思うけどな。
タイマー使って指定ディレクトリの監視とかはすぐ思い付くでしょ

84 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 21:40:42.01 ID:hwNgEKL00.net]
>>80
> 玄人だって言った?
ひょっとして揶揄って言葉を知らんのか? w

> ってかタスクスケジューラからサービス蹴るってそんなにハードル高くないでしょ。
ハードル以前に送出側も作れとかアホすぎる…

85 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 21:48:42.95 ID:uRkd43kpd.net]
>>83
玄人だって言った?って揶揄なんだけど。
馬鹿すぎてブーメランまた投げてるよ?

送出側って簡単だよね。FileSystemWatcherならファイル置くだけだし。バッチファイルでも良いじゃん。

自分が思いつかなかっただけならそろそろ黙ったら?

86 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 22:12:15.97 ID:hwNgEKL00.net]
せめて揶揄の意味ぐらい調べてこいよ…
マジで恥ずかしすぎる

87 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 22:27:04.44 ID:6LmbwAzu0.net]
お前らなにカリカリしてんの?

88 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 22:34:02.07 ID:uRkd43kpd.net]
>>85
で、送出側作るのは難しいの?
恥ずかしいね。



89 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 22:46:47.72 ID:hwNgEKL00.net]
>>87
日本語理解できないの?
ハードル以前の話って書いてあるんだけど?
なぜそんな面倒なことを初心者にさせようとするのか意味不明なんだが

90 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 23:07:10.16 ID:7wwBVLN+0.net]
>>86
いつものキチガイだからNGしとこう
ほら早速ワッチョイが役に立ったぞ

91 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 23:43:42.93 ID:uRkd43kpd.net]
>>88
無意味だと思ってるのはお前ができないからかつやる必要があるパターンが頭に浮かんでないかだろw
意味不明なのはお前が低レベルだからだよ。

92 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 05:06:11.42 ID:PkTs+Gix0.net]
>>90
初心者にとってそれがベストプラクティスだと言い張るなら根拠書けばいいんじゃね?
書けるならね w

93 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 20:36:29.06 ID:ulAOiHZ/0.net]
便乗で質問です。
ログインしてない状態で指定時間になったら指定のユーザーでログインしてブラウザでスクレイピングしたいです。
サービスやタスクから適当なユーザーでログインするにはどうしたらいいでしょうか?

94 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 20:59:56.18 ID:rOLcewoyM.net]
もっと具体的でないと回答しようがないかな
ログイン認証はWebサーバー側の話ならローカルアカウント
関係ないし
ローカルアカウントの話ならグループポリシーでサービス起動
出来るようにするのが一般的だったけど
OSのバージョンやADが有効なら出来ない場合もあるよ

95 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 21:01:24.25 ID:ZKr5QUU1a.net]
>>92
どうもこうも、それ最初からタスクスケジューラーのオプションに入ってるんじゃないの?
www.atmarkit.co.jp/ait/articles/1307/08/news101.html

96 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 11:16:46.77 ID:GEVjlJLSd.net]
>>92
タスクスケジューラで、誰として実行するか決めれる。

タスクスケジューラ否定してる奴らは、タスクスケジューラ使って言ってるんだろうか?

97 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 11:47:17.60 ID:h0Ytd2ZqM.net]
誰も否定してないと思うが?
どれをそう感じたんだろう?

98 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 13:29:07.95 ID:MYt604IR0.net]
3日間もこの話を続けてるのか

よく飽きないねーガイジか?



99 名前:デフォルトの名無しさん [2018/12/22(土) 15:43:19.97 ID:UXm6+Rqz0.net]
こういう質問者って解決の道筋を知りたいんじゃないんだよ
WindowsのこともC#も学習する気はまったくなくて、代わりにコードを提示して欲しい人なんだ
なので、「タイムスケジューラ+コードは自分でかけ」とか「自分で書いたコードをサービス化しろ」と回答しても無駄なんだな
誰かが代わりに希望のツールを作ってあげるまで延々と同じ質問をすることになっちゃう

100 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 16:05:02.26 ID:3FbstdN40.net]
今回のは質問者そっちのけで外野が暴走しただけだろ

101 名前:デフォルトの名無しさん [2018/12/22(土) 16:17:42.75 ID:iZWJkg8TF.net]
いつもだな

102 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 16:45:04.92 ID:8eMfHdb50.net]
いつも同じなのは、問題起こすのが特定の一人なんだろうね

103 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 16:48:01.85 ID:ejexDqVG0.net]
特定の二人の間違いでは?

104 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 16:59:24.98 ID:Bf3FfKs00.net]
昔はそういうの参戦してたけど
俺が最強だとわかってからは興味がなくなった

105 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 17:01:56.44 ID:h0Ytd2ZqM.net]
そろそろ魔板でやって欲しい今日この頃

106 名前:デフォルトの名無しさん [2018/12/22(土) 17:19:54.74 ID:UXm6+Rqz0.net]
え?これ、便乗を装った本人じゃねえの?

107 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 18:58:25.03 ID:8REvBzyR0.net]
一つのメソッドに処理A、処理B、処理Cがあるんだけど、処理〇と区別できる時点でメソッドとして扱うべきなんかね?

108 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 19:03:13.59 ID:RR6G3DDfa.net]
やってることに意味があり、それに名前が付くなら分ける
個人的には〇〇処理と名前が付くのはメソッドの単位としてはむしろ大きめ
単独で意味のある最小単位まで分けるのが理想



109 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 19:59:35.81 ID:Bf3FfKs00.net]
何を言ってるのかさっぱりわかりませんから設計書を書いてください

110 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 21:08:41.95 ID:la2rnvqna.net]
>>106
馬鹿の一つ覚えの教条主義はよくない

分けた方がそのメソッドの可読性が上がるなら分ける。
可読性に寄与しないなら無理に分けちゃダメ。
なぜならクラス全体の視点ではメンバーは少ない方がいい。

111 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 23:25:46.03 ID:RR6G3DDfa.net]
メソッドの可読性ってセンスが求められるからなあ
端的に言えば、そのメソッド呼び出しを見たときに、その中身をいちいち見に行かなくてもコードを理解できるかどうか、が全てだ
それができるならどこまで細かく分けてもいいし、できないなら分けないほうがマシ
処理の流れがわからんからサブプロシージャやめろおじさんの言い分も、低レベルな現場なら極めて正しい

112 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:20:31.69 ID:pgnM6zpMM.net]
そうだよな。calcって名前のメソッドがあれば計算していることはわかる。

113 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:30:49.90 ID:iOIA70EQ0.net]
とは言え、ループが把握できる大きさに抑えるのは大事
メソッドの処理の流れが見える範囲に大きさコントロールするように心がけているな

114 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:40:03.70 ID:THpahYm7M.net]
>>111
場合によるだろ
「多角形の面積」クラスのcalcメソッドを呼び出してたら面積を計算してるのは明らかであり、面積の計算方法に関心がない限りは中を見る必要はない
それが「多角形」クラスのcalcメソッドだったら意味不明だろう
極端な例だけど、そういうのってセンス無い奴は本当にセンスないから

115 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:44:44.37 ID:744F4yO+0.net]
まあそういうところに日本語のコメント書いとけばすむ話だな。
命名センスないからな。自分。。

116 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:55:46.55 ID:iOIA70EQ0.net]
メソッド名はわかり易さより英語として恥をかかない程度の単語かどうかってのを気にするな
後で見られたときに笑われたくはない
簡単な単語でもスペルはチェックする

117 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 08:07:40.95 ID:Qo063XKD0.net]
日本語でも良いよ

118 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 08:42:15.02 ID:+g/rmc35M.net]
全角文字でもOK



119 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 09:14:34.28 ID:Ap3NimBD0.net]
絵文字もok

120 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 19:57:25.95 ID:6n30X/gf0.net]
おかわりもOK

121 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 01:28:35.64 ID:bmrfjFY/0.net]
長さが10,15と異なるList<string>が2つあって10のListの値を15のListに先頭から埋めていきたいんだけど、ListでArray.Copyメソッドみたいなのないのかな?

122 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 01:53:50.78 ID:JltPtxYxa.net]
>>120
a10 = a15.GetRange(0, a10.Count);
ボトルネックでないならこんなんで十分

123 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 02:02:57.20 ID:Z+6dfbfKa.net]
120がやりたいのは要素の置換じゃないの?
まあ、組み込みの方法は用意さえてないので自分で書くしかないよね

124 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 02:11:14.58 ID:Gf2UgbH0M.net]
インプレースで置換する必要があるなら a10.Clear(); a10.AddRange(a15.Take(a10.Count)); でいいよ
少々非効率だがどうせこんなもんボトルネックにはならん

125 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 02:17:03.76 ID:+5I2QCyu0.net]
15の方にコピーしたいって言ってるのに逆ばっかじゃねーか
偉そうに答える前に日本語の読み方を覚えろよ

126 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 07:24:20.71 ID:zs7tYDO50.net]
ワラタ

127 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 07:24:47.31 ID:zs7tYDO50.net]
ガイジばっかだな

128 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:28:00.92 ID:KFYgg8m6M.net]
よく見ると逆ですらない
121はa15の先頭から10要素のリストだし
123はa10.Clear()後にa10.Countを参照してるので、実行後のa10は空だ



129 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:30:42.16 ID:zs7tYDO50.net]
ガイジの宝石箱かよ

130 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:35:25.17 ID:APgc2n6m0.net]
>>123
Clearしていいの?

131 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:42:01.70 ID:APgc2n6m0.net]
>>120は、こういうことなんだよな??

https://ideone.com/IBD8SG

132 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 17:58:02.29 ID:0GmOXyNR0.net]
>>127
うける

133 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 21:29:07.13 ID:wShZDi2Q0.net]
a15=a10.AddRange(a15);
で良くね?

134 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 22:49:22.82 ID:kvP3AY+C0.net]
a15は.Skip(a10.Count)が必要だしAddRangeは返値voidだし
a10が破壊されるのは気持ち悪すぎる せめて.Concatでやって

135 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 23:00:49.18 ID:BVW7JO960.net]
a10.Select((v, i) => i).ToList().ForEach(p => a15[p] = a10[p])

136 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 05:37:13.78 ID:o3bLdzU90.net]
質問です
applicationSettingsBaseを使って設定を保存したソフトのフォルダを移動したところ
設定がすべて消えてしまいましたが仕様でしょうか。
これを回避するためにはソフトと同じフォルダにiniを作るなどして設定を保存しないといけないでしょうか。

137 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 08:31:43.73 ID:Pk7gkPrC0.net]
SettingsProviderを自作すれば保存場所は変えられなかったか

138 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:19:27.12 ID:H2h1tiNca.net]
>>135
ApplicationSettingsBaseなんて使ったことないのでいい加減に言うけど、
普通に考えれば保存場所は起動したバイナリのパスになんか依存しないはずだと思うけど

www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
ここにも書いてあるけど、バージョンとか製品名とかアセンブリの属性を何か変更したから
保存場所も変わったんじゃないの?



139 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:21:30.96 ID:H2h1tiNca.net]
ごめん>>137は訂正
俺の記憶違いで、記事にはバイナリのパスにも影響されると書いてあるねw

140 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:25:14.95 ID:yMEv05zrd.net]
>>137
いいえexeの絶対パスが変わると保存先も変わります
知らないなら適当に答えるなよ

141 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:49:04.91 ID:H2h1tiNca.net]
いいえ私はさそり座の女〜

142 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 20:05:08.93 ID:C73Cga6+0.net]
C#スレが伸びてるけど、unityのおかげ?

143 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 20:36:10.99 ID:bRmFmcZ5r.net]
いいえ

144 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 20:49:56.13 ID:wyvxpdNe0.net]
設定の保存ならjson.net使ったほうが幸せになれるね

145 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:00:49.69 ID:nl4zamMYa.net]
>>143
保存時のフォーマット?

146 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:03:32.60 ID:cYaw21oJ0.net]
イニファイルにしとけ
イニファイルにな

147 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:20:50.60 ID:NRydG5TY ]
[ここ壊れてます]

148 名前:M.net mailto: Windows用語ではプロファイル []
[ここ壊れてます]



149 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:21:37.22 ID:m1C7tGngd.net]
>>145
老害おつ

150 名前:デフォルトの名無しさん [2018/12/26(水) 06:18:38.10 ID:1oivSykz0.net]
課題で10進数を2進数の文字列に変換したいのですが、これだとびっくりすくらい遅いです。
速くするにはどうしたらいいでしょうか。

class Program
{
public static void Main(string[] args)
{
string input = Console.ReadLine();

int i = Convert.ToInt32(input);

string output = "";

while(i >= 1)
{
output = output.Insert(0,(i % 2).ToString());
i >>= 1;
}

Console.WriteLine(output);
Console.ReadLine();
}
}

151 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 07:14:08.48 ID:H45VhGP50.net]
>>148
stringはほとんどの場合毎回新しいインスタンスが作られるから、代わりにStringBuilder使ってみ

152 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 07:18:31.50 ID:H45VhGP50.net]
あとたぶん普通はこれ
https://dobon.net/vb/dotnet/programing/converthex.html#section7

153 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 07:35:37.09 ID:gklwQdG7M.net]
遅いっつっても一瞬じゃない?
たかが32bit整数くらいで。
試してないけど

154 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 09:33:17.59 ID:Ts4c5NN9M.net]
Stringは吃驚するほど遅いよ

155 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 10:28:31.49 ID:yGWBBV+aM.net]
遅いっつっても一瞬じゃない?

156 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 11:19:21.70 ID:pZkVuIQAd.net]
>>153
ループ一回ならね

157 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 12:39:12.50 ID:UFWOb61Ja.net]
>>150
Convertのそんなのあったな感w
でもこれゼロサプレスされるみたいだな。
まあリーディングゼロ付けるのは簡単だけども

158 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 19:06:58.35 ID:Dcs5aUpT0.net]
Windowsフォームアプリケーションで、
「ボタン上をドラッグしてる間(左クリック押下中、かつボタン上にカーソルがある時)」に音を鳴らしたいんだけど

Button1.MouseDownで再生、Mouseupで停止させるまでは出来ても

MouseLeaveに停止処理書いて、クリックしたままボタンからカーソル外したときには音がなり続けてしまいます

どういう記述がいいんでしょうか?



159 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 20:13:17.23 ID:/gJf0JvK0.net]
>>156
クリックしたままだとMouseLeaveが動かないみたいだな
https://ideone.com/c67R3i
これは音を鳴らす代わりにフォームのタイトルにMouse On/Offと表示する
MouseDownとMouseMoveでカーソルの場所を見てボタンの範囲外だと無条件でOffにする
イベントとしてのMouseLeaveは外せそうな気がするしフラグ作ってもっと作りこめると思うけど面倒だからここまで

160 名前:156 mailto:sage [2018/12/26(水) 21:13:57.82 ID:0HU+mpFl0.net]
ありがとうございます!
入門したて故コード読んでも理解できないけど、丸写しからの改変で勉強しながらやってみます

161 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 21:40:59.20 ID:sOj8GKWaa.net]
>>156
やらずに適当に言うけど、MouseDownのイベントハンドラか何かで
Captureの値をfalseにしてやったら望んでるような動作になるんと違う?

162 名前:デフォルトの名無しさん [2019/01/03(木) 03:05:05.68 ID:2jZ78iU60.net]
dotnet new webapp コマンドでプロジェクト生成した時に Controllers も Models も Views も作られないので、ちょっと面食らっています。
ASP.NET Core で Razor Page を使ったアプリを作る際は、ASP.NET でいう Controllers と Models に該当するフォルダはどこに作ったらいいんでしょうか?
特にビジネスロジック部分はどこにまとめるの

163 名前:がいいのでしょうか? []
[ここ壊れてます]

164 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 05:32:43.60 ID:ZmWGvR5ia.net]
splitcontainerのpanel1に30個程度のボタンを設置し、それらは一つのイベントハンドラにまとめてて
押したボタンの色を変えるということをしようとしています

splitContainer1.Panel1.Controls[●].backColor = Color.Red ;


●の位置に入る数字はどのボタンと対応しているかがイマイチわかりません。
タブインデックスの数値とは別のようですし、どの数値の事を言っているのでしょうか。

165 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 06:22:31.48 ID:2jZ78iU60.net]
>>161
期待通りの回答じゃないかもしれないけど、これでもいいんでは?
protected void button_Click(object sender, EventArgs e)
{
((Button)sender).BackColor = Coler.Red;
}

166 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 09:33:34.04 ID:mzbwP5/d0.net]
>>160
dotnet new

167 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 09:49:03.47 ID:92o1UEKg0.net]
>>160
dotnet new mvc
ASP.NET Coreは3.0以降でfull .NET Frameworkを切り捨てるから、必ず.NET Coreを使うように

168 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 07:48:04.81 ID:ys0B5FJg0.net]
>>148
遅い原因は
>string input = Console.ReadLine();
じゃね?
ユーザーが全文字入力するのをぼんやり待ってないで
1文字でも入力された時点でその桁に関する処理を開始しとかないと



169 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 10:33:12.47 ID:ijGp0fE40.net]
>>165
>>149で解決すると思ったけど、その最後の行の実装例出せる?

170 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 10:50:54.92 ID:SZQOw9ve0.net]
>>166
件のプログラムで一番処理時間が長いのは起動だと思うから
実際にはその程度やっても変わらんでしょ

171 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 13:46:05.21 ID:s+NsL/70M.net]
>>165てネタじゃなかったのか?

172 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 15:10:03.44 ID:yoKg5XOLM.net]
何でもかんでもまずネタだと考えるのやめた方がいいですぞ

173 名前:デフォルトの名無しさん [2019/01/06(日) 16:43:50.05 ID:Dx0jhieJ0.net]
ASP.NET Coreを使う練習してるんだけどさあ
実機で動かしてみるに当たって、手元のVisualStudioやVSCodeからLAN上にあるサーバ(Ubuntu)に配置して実行するまでって結構面倒に感じてしまう・・・・
これってなにかVisualStudioに配置実行を楽にする手段があるのかな?
それとも楽をしたければJenkinsかなにか勉強しなきゃあかんのかな・・・・

174 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 16:54:31.32 ID:YMMAI1S40.net]
今はどんな手順でやってるん?

175 名前:デフォルトの名無しさん [2019/01/06(日) 18:18:02.00 ID:Dx0jhieJ0.net]
今のところ、「手元でビルド→SCPコマンドで転送→SSHで実行」みたいにしてるんだけど・・・・やっぱもっといい方法あるよな

176 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 18:22:43.98 ID:SgRztK6B0.net]
LINQの質問です
list1とlist2はList<int>型だとして

foreach(var value1 in list1) {
foreach(var value2 in list2) {
Console.WriteLine(value1 * value2);
}
}


これと同じことをLINQを使ってやるとしたらどう書けばいいですか?
Zipを使ってみたのですが同じインデックス同士しか掛け合わせてくれませんでした

177 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 20:09:56.59 ID:NF88G39c0.net]
linqでブロードキャストできたっけ?

178 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 20:11:35.37 ID:YeoWOZf6a.net]
>>173
メソッド構文ならSelectManyを使う
foreach (var v in list1.SelectMany(v1 => list2, (v1, v2) => v1 * v2))
{
Console.WriteLine(v);
}

この場合はクエリ構文の方が分かりやすいかも
var q = from v1 in list1
from v2 in list2
select v1 * v2;
foreach (var v in q)
{
Console.WriteLine(v);
}



179 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 20:13:20.52 ID:NF88G39c0.net]
>>173
ttps://dobon.net/vb/dotnet/programing/arraymap.html
これでいけんじゃね?
ConvertAll

180 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 21:11:45.37 ID:iQ1zVEqTM.net]
>>170
AWSとか使えば簡単だよ
MSの推奨はもちろんAzureだけど、単なるVMのホスティングサービスとして使う以上のことを期待すると正直ゴミカスなので全くお薦めできない

181 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 21:17:12.87 ID:iQ1zVEqTM.net]
>>176
今時ConvertAllとか紹介してるゴミサイトはさっさと閉鎖すべき

182 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 00:48:07.98 ID:voJmrOTp0.net]
>>178
今だと何がベスト?

183 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 09:13:26.65 ID:yGBdcOaa0.net]
>>175>>176
いけました!
ありがとうございます
今回はSelectManyを使おうと思います

184 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 09:34:56.37 ID:z57KVTQ70.net]
>>166
考え方としては、例えば「3」が入力された時点で
次の入力結果は「3」か「30」〜「39」しかありえないから
11通りの2進数表示を用意しておいて次のキーが押されたらそこで合うものを選んで表示する
どんなに10進数の入力桁数が増えても毎回11通り用意すればいいのは一緒なのと
10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる

この処理がユーザーのキー入力速度より早くCPUが処理できれば多少意味がある程度だろうけど

185 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 10:20:00.74 ID:e8LT8JMZa.net]
>>181
そのためにReadKeyを繰り返してたらそのオーバーヘッドの方が効果を圧倒的に上回ります
出直してきてください

186 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 10:28:19.23 ID:3j9bnJUUM.net]
>>181について更にツッコむと、1文字ずつ処理するなら単に入力されたキーの値を普通に反映させていけばよい
わざわざ候補を事前に用意してGCに負担をかける意味は全く無い

187 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:22:57.85 ID:Nhl1xZLpa.net]
チラシを見てキャベツが1円安いからと電車賃300円払って遠くのスーパーまで買いに行くような無駄な努力に思える。

188 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:03:54.28 ID:RNZAQQS50.net]
ネタを元にボケてるだけかと思ったら



189 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:56:07.52 ID:ukOyD8nn0.net]
Json.NETを使ったデシリアライズについて教えてください。
以下のようなJsonファイルを読み込んで、リストにデシリアライズをしたいです。

[
{
"email": "foo.example.com",
"active": true,
},
{
"email": "bar.example.com",
"active": false,
}
]

しかし、デシリアライズ時に、オブジェクトが2つ以上会い場合に例外が発生します。
using ( var sr = new StreamReader( @".\accounts.json" ) )
{
var accounts = JsonConvert.DeserializeObject<List<Account>>( sr.ReadToEnd() );
}

例外
Newtonsoft.Json.JsonSerializationException

エラーの原因はわかるのですが、解決策が思いつきません。
よろしくお願いします。

190 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:12:15.21 ID:RNZAQQS50.net]
デシリアライズではまる前に
オブジェクトをシリアライズして、どういうjsonが出来るか確認することを勧める

191 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:34:39.02 ID:ukOyD8nn0.net]
>>187
オブジェクトが単体の時は[]で囲まれていなかったので、
配列として認識されないような気がします。

もう一度考え直してみます。
ありがとうございました。

192 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:52:50.47 ID:voJmrOTp0.net]
parser通さずに自力解析した方が早そうw

193 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 21:41:14.56 ID:EmaCRb9M0.net]
>>186
うちの環境ではそのままで読み込めた。w
ああ、json ファイルのパスや、クラスをフルパスで書くように直したりはしたけど。
あと List<Account> を Account[] に変えてみても動作した。

json パーサは Newtonsoft.Json でいいんだよね?
ひょっとして json ファイルの文字コードや改行コードの問題だったりして。VS2017 で試した。

194 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 22:00:13.12 ID:RNZAQQS50.net]
まあ結論としては只の配列よねw
List<>が勝手に出てくる訳もなく

195 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 22:27:36.78 ID:LR2ZtPQc0.net]
>>181
「10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる」
の意味がわからない。

196 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 22:49:30.37 ID:ZGeLga+2M.net]
BCD?

197 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 23:07:28.05 ID:7iifCEQOa.net]
>>191
アホ?
デシリアライズ先の型としてList<>を指定してるんだからどう見ても勝手に出てきてはいないでしょ
普通にデシリアライズできるよ

198 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 23:26:43.60 ID:PUyuVhSj0.net]
>>192
単純に勘違いだろ。16進数から2進数への変換なら成立するけど
例えば251と256の2進数の下4桁が違うのはすぐわかる
質問引っ張るのもまずいけど元の質問者もフィードバックくらいしてほしいな



199 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 23:45:26.56 ID:RNZAQQS50.net]
json.netはList指定いけたわ
低速過ぎて最近使ってなかった
失礼した

200 名前:デフォルトの名無しさん [2019/01/08(火) 01:42:19.06 ID:+TBsMqqs0.net]
9時と13時に定期的に作業を実行させたいので、タイマーを使ってプログラムを書きました。
似た部分が多いのでタイマー自体を配列化したのですが、「動作を停止しました」とエラーが出て動きませんでした。
タイマーの配列化って無理なんでしょうか?

System.Windows.Forms.Timer[] timerOnce = new System.Windows.Forms.Timer[2];
public GetControlsList()
{
myTimerOnce(timerOnce[0], "9:00");
timerOnce[0].Tick += new EventHandler(timerOnce_Tick);
}

// 指定時刻までの時間を計算して、Intarvalにセット
private void myTimerOnce(System.Windows.Forms.Timer thisTimer, string setTime)
{
//現在の時刻から、ターゲット時刻までのインターバルを算出
TimeSpan mySpan = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd ") + setTime) - DateTime.Now;
int sleepSec = (int)mySpan.TotalMilliseconds;
thisTimer.Enabled = true;// タイマ ON
thisTimer.Interval = sleepSec; // 更新間隔
}

// 指定時刻になったらmethodを実行
void timerOnce_Tick(object sender, EventArgs e)
{
//実行したいメソッド
}

201 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 06:44:44.69 ID:dT41V3TC0.net]
アドバイス頂いた通りシリアライズを見直したところ解決しました。

var account = new Account { Email = "hogehoge.example.com", Active = true, };
using ( StreamWriter sw = File.CreateText( @".\accounts.json" ) )
{
var jw = new JsonTextWriter( sw ) { Formatting = Formatting.Indented };
new JsonSerializer().Serialize( jw, account );
}

このように書いていたので、accountをリストに変換してから行うようにしました。
new JsonSerializer().Serialize( jw, new List<Account> { account } );

レスくれた皆さん、ありがとうございます。
こちらもVS2017なのできっと文法違いが原因です。
Json形式を勉強し直します。

202 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 08:12:51.74 ID:mtJIt88ca.net]
>>197
そもそもWinFormsのタイマーは精度や信頼性がとても低く、時間の計測に使ってはいけない
あくまで「時々処理をさせたい」だけのときに使うもの
あなたのケー

203 名前:Xならタスクスケジューラを使うのが定石です []
[ここ壊れてます]

204 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 09:49:22.14 ID:Sw3FA19SM.net]
>>197
配列をnewしただけで中身のTimerをnewしてないからじゃないの

205 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 09:53:57.24 ID:Sw3FA19SM.net]
まずデバッグ実行することを覚えた方がいい気がしないでもない

206 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 12:12:53.32 ID:+TBsMqqs0.net]
>>200
まさにそれでした。
1行加えただけで解決しました。ありがとうございました。

207 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 07:23:03.10 ID:fI4baLQf0.net]
本当に初心者質問ですが、ライブラリはimportとnamespaceから書いていくのと、どちらが良いのでしょうか

もしくは使い分けがあるのでしょうか

208 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 07:48:48.51 ID:c4aAB3Aqd.net]
>>203
ここC#スレやで



209 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 12:18:51.14 ID:fI4baLQf0.net]
>>204
C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました

なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして

210 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 12:21:16.40 ID:c4aAB3Aqd.net]
>>205
c#にもimportはあるから余計混乱するだけ

名前空間とusingsは全然用途違うでしょ?

211 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 12:21:41.32 ID:c4aAB3Aqd.net]
C#というかMSBuildだけど

212 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 14:41:58.83 ID:2h2JyjUc0.net]
>>203
名前空間の全表記は可読性下げるので使ってないな
VSでカーソル当てれば名前空間表示されるし、今時テキストエディタでゴリゴリ書いている人でもなければ全表記する必要ないと思う

213 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 14:52:14.20 ID:TKkGGOqYM.net]
>>208
MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる

214 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 14:55:45.81 ID:TKkGGOqYM.net]
pathってファイルパスじゃなくて
曲線かよ死ねよとか
省略形でも違いがあったほうが絶対いい

215 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:11:30.62 ID:5txyXp0A0.net]
>>203
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive
usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている
一般的な呼び名を使わないと調べることすらできなくなるよ

216 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 13:13:55.78 ID:lMztlpGar.net]
>>209
そういうの他にもある

217 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 20:09:22.40 ID:9xQ4gBbQa.net]
P/InvokeやCOM相互運用を書くときに
System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど
System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ
.Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない

218 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 12:39:13.44 ID:qc15f1nfD.net]
>>211
その名前を知る事が大変ですよね
沢山本読むしかないんでしょうけど



219 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 12:57:28.29 ID:RbVY6SmB0.net]
>>214
この話はusingの話で質問した人もわかっているし
わからないなら分からないなりに説明したらいいだけ
オレオレ用語使ってこんなところで質問するのは普通におかしい

220 名前:デフォルトの名無しさん [2019/01/11(金) 13:29:58.48 ID:5RUmP2fm0.net]
スレ間違えたことを嘘に嘘を塗り固めるのは朝鮮人の始まり

221 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 14:37:44.48 ID:225AU0sE0.net]
ちょっと教えろください。
int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、
@decimalに

222 名前:Lャストして足し算した結果がintの範囲に収まっているかif文で判断
Atry catchで例外をつかまえる
どっちがいいのでしょう?
[]
[ここ壊れてます]

223 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 14:40:44.08 ID:86XGb19RM.net]
>>217
Bdecimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断

224 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 15:54:41.82 ID:r18fheRy0.net]
>>217
int_max - a < bなら
a + b < int_maxが成り立つ
でも>218のほうがわかりやすいとは思う

225 名前:203 mailto:sage [2019/01/11(金) 17:49:49.09 ID:1orv+xc30.net]
俺がjavaerという事がバレちまったらしょうがねえ

なんだよusingってよ
vb如きだってjavaリスペクトしてんぞ

226 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:29:52.22 ID:KWycMyC0a.net]
>>217
オーバーフローは同じ符号の値を足した時にしか起こらず、起こった場合は前後で符号が変わる。
他の人が見ても何やってるか分かることが重要ならそれで判定するのが一番だと思う

227 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:33:43.65 ID:KnmjjSvJM.net]
ラップアラウンドとサチュレーションって学生のときに聞いたのが最後だ

228 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:40:14.66 ID:fFtOgUz40.net]
すみません、初めて見る構造体が出て来たのですが

[StructLayout(LayoutKind.Sequential)]
struct INITCOMMONCONTROLSEX
{
public int dwSize;
public uint dwICC;
}

これは何構造体と読むのですか?



229 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:45:24.19 ID:1+lzGhU1M.net]
つまらん!

お前の話はつまらん!

230 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:46:13.28 ID:eF6moy/g0.net]
>>223
https://ufcpp.net/study/csharp/interop/memorylayout/
>Sequentialレイアウトでは、複合型のフィールドは宣言した順序通りにレイアウトされます。

231 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:49:12.65 ID:1+lzGhU1M.net]
イニシャライズコモンコントロールズイーエックス構造体

232 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:51:24.03 ID:zVvjOIcHa.net]
>>223
構造体名で検索したらInitCommonControlsEx関数が出てくるじゃろ

233 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:09:08.43 ID:iaJ8ArIE0.net]
VS2017でC#のプログラムを組んでます。

はじめてVS2017を使うのですが、画面の下に


準備完了 ↑ソース管理に追加

という邪魔なバーが表示されてます。
VS2010にはありませんでした。目障りなのでこれを消したいのですが何か方法はありますか?

234 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:20:55.22 ID:Fl9Ups4U0.net]
>>228
ツール->オプション、環境->全般、ステータス バーを表示するのチェックを外す

235 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:21:44.23 ID:iaJ8ArIE0.net]
>>229
ありがとうございます!!目障りだったんですよね。

236 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 01:04:45.40 ID:CChJ5ept0.net]
色々迷ったけど
オートフォーマットはOFFにした

237 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 03:22:33.67 ID:S1bCJ3S10.net]
例外処理(に限らず、エラー処理)ってどこまで徹底して行うべきなんでしょうか?
下みたいに、使うインスタンス片っ端から毎回nullチェックとかしてたら、凄まじいコード量になるんですが・・・・・
if(obj == null)
{
return msg;
}

238 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 03:53:00.80 ID:ejfouP+Ya.net]
>>232
さあ。
でもバグと例外は区別した方がいいんじゃないか。

そのコードは多分バグを想定してるんだよね?
絶対にとは言い切れないが、バグを想定してそれを検出するifは書かないのが普通じゃないか
いやライブラリみたいなものを作ってるならバグを想定して例外を投げるのは普通だけど



239 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 03:58:46.63 ID:ejfouP+Ya.net]
最後の行は引

240 名前:数のチェックの話ね []
[ここ壊れてます]

241 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:03:08.28 ID:2xT9w9620.net]
return msg
してるから まず例外をちゃんと使えてないんじゃ疑惑

242 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:04:51.50 ID:DC6KrvaN0.net]
デザインパターンでnullオブジェクトパターンみたいの参考にするのは?

243 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:12:05.96 ID:DC6KrvaN0.net]
nullが入るケースがあることを想定している場合にnullチェックを全部書くのがめんどいならnullオブジェクトパターン適用すればいいし
本来はnullが入ってたらおかしいケースならエラーを起こして拾わせるのが正しい構造って回答でいいのかな?

244 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:17:50.15 ID:2xT9w9620.net]
・nullが来ない想定ならチェック不要
・nullケース考慮したくないならnullオブジェクトパターン
・null来た場合にぬるり以外で知らせるならチェックする
・nullのネスト面倒ならnull条件演算子

こんな感じやろか
null非許容参照型使うという手もあるが

245 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 08:05:30.51 ID:VHzQIvd20.net]
読んでる入門書のLINQとラムダうんたらってのが分からなくて
手がstopしてしまっているのですが入門者向けに分かりやすく解説されてるページなど教えていただけないでしょうか?
メソッドの使い方はある程度分かったのですがそれじゃ駄目なんすかね…

246 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 08:39:26.90 ID:0dPYYJK00.net]
>>239
LINQやらラムダ使えなくても動くものはつくれるからまぁまずは作ってみよう

247 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 10:13:12.90 ID:iaJ8ArIE0.net]
最近は、自分でプログラム組まずにランサーズでハイスキルな奴に外注してるわw
中抜きでうま〜〜〜

248 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 10:35:45.31 ID:e9xF8Gpoa.net]
>>232
チームの方針次第
うちの場合は

nullを許可しない引数と返り値は基本的に全てチェックして例外を投げてる
めんどくさいと思うかもしれないがFluentAssertionのようなライブラリを使えばそこまで大きな負担にはならない

nullオブジェクトパターンはやればわかるがチェックするよりも手間がかかる
また必ずしもnullの場合の適切な動作を定められるとは限らない
適切でない場合にパターンを適用するとそれがnullオブジェクトかどうかチェックするといった本末転倒なことになりかねない
なのでこれが最も適切と確実に判断できる場合を除いて使用しない

C# 8.0が待ち遠しいね



249 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 10:44:33.52 ID:CChJ5ept0.net]
>>232
仕様と設計で解決する問題
エラーが出たときどうしたいの?
エラー出たときに別に原因とかわからんでええなら一連の処理をtrycatchで囲ったらええやん
なんか起きたらcatchに入ってくるで

250 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 17:18:08.40 ID:XDHakXaX0.net]
>>232
外部とのやりとりの場所は結構厳重にチェックを入れる。
自分で書いているところは適当に流す。

外部とは当該館数のパラメータや、呼び出す関数とかの戻り値ね。
try catch で囲んで、チェックして例外発行して、catch 内でまとめてトレース情報込みでログ出してスローするくらいなら大した手間じゃないじゃない。
その例なら if( obj == null ) throw new ArgumentNullException("ぼーっと生きてんじゃねーよ!"); で済む話じゃん。

>>239
コピペでもいいからたくさん書いてみる。で解決するよ。
やってるうちに理屈が分かるようになる。

251 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 17:23:52.90 ID:iaJ8ArIE0.net]
昔は開発現場でこっそりExcel型の2chブラウザでネットサーフィンばかりしてたな〜
座ってるだけで月70万むっちゃらくやった

252 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 00:23:58.00 ID:X0+RFgX60.net]
>>239
駆け出し時代オー

253 名前:vンソース改造してた時にLINQはパフォーマンス悪いと思って見つけ次第foreachに手直しするという逆工程でLINQとラムダ式マスターした []
[ここ壊れてます]

254 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 00:46:53.42 ID:IIPQpabmp.net]
使えば勝手にlinqの快感にハマって抜け出せなくなる

255 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 04:21:19.42 ID:qwE0jZig0.net]
麻薬のような機能だなw

256 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 09:07:48.83 ID:Xn8IPTP50.net]
LINQもRxも使いだすと元に戻れなくなる

でも性能気にしてstructとforeachに書き直し始めると時間足りない

257 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 09:32:12.32 ID:Z+h8nfOL0.net]
>>246
パフォーマンスのためならなんでforにしなかったん?

258 名前:デフォルトの名無しさん mailto:sage [2019/01/13(日) 18:27:15.40 ID:X0+RFgX60.net]
>>250
Listはしてたよ
あとラムダ式はLINQ→foreachより行数減らす意識持って1行メソッドを見つけ次第ラムダ式に直す工程で習得したな



259 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 23:20:39.35 ID:3wGjtMyb0.net]
ComboBoxに例えばA〜Dと4つ項目が入っていて、A〜Cは同一計算方法でDのみ特別な計算方法でコード内容が異なり且つ色んな計算をする為コードが長くなる場合の見やすくする為の最初の分岐方法とか書き方とかありませんか?
今はifで分岐した中にあれこれ結果を取ってきて結果を出してるのでifがやたら長く見辛いです。なんかいい方法があれば教えて頂きたいです。

260 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 23:31:33.99 ID:CBheeOs80.net]
LINQ使うと元に戻れなくなるのはわかるんだけどデバッグしづらくね?
デバッグを想定する時点で初心者なのかな...教えてエロい人

261 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 00:45:24.53 ID:DUfu4s9fa.net]
>>252
4っつぽっちの分岐で何がそんなに見づらくなるのかちょっと理解できんよ。
いや、煽ってるわけじゃなく本当に

各分岐先のコードが長くなるっていうのならそれぞれメソッドに切り分けるだけじゃないの?

262 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 02:09:17.70 ID:gvlEsXBIp.net]
>>252
if(value == d){
d用処理またはメソッド
}else {
a〜c用処理またはメソッド


これじゃダメなの?

263 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 04:09:30.23 ID:Vsgk6Uc3K.net]
>>252
ComboBoxにブチ込むためのクラスを書いてDは継承

264 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 06:09:12.86 ID:rjgxVR8i0.net]
LINQはなかなか身につかんなあ。
とりあえずforで書いといて見直してこれLINQで一行になるんじゃね?と気付いたらいそいそと書き直す感じ。
LINQ脳になってない

265 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 06:39:49.84 ID:OSSPo6bD0.net]
例えば処理順を意識しなくて良い場合、通常のforまたはforeachで処理するのと、Parallel.ForEachで並列処理するのはやはり並列処理の方が早い?

266 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 07:24:38.34 ID:ohj/8QmzM.net]
>>255
質問者の意図とは違うかもしれんがそういうコード書くと怒るやつがいた職場がある
わざわざ継承してうにゃうにゃやらんと怒る
んでできたコードが何がいいのか考えてもさっぱり意味がわからん
本人にメリットを聞いてもさっぱり理解できんというかメリットの話になると必ずボケた返しをする
ありもしない改修を想定してキチガイとしか思えない発言を連発する
そもそも仕様書や設計書に処理がその数で分岐するってあるのに
なんで普通に書いたら怒るんだよ
もうお前とはやってられん
ってとこまでいって仕様書や設計書通りに組んでるのに工数が増えてるのはあんたのせいだ
って会社間の会議になってもまだグチグチ言ってる
その場にいる全員?な状態だった

267 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 08:37:28.18 ID:biF ]
[ここ壊れてます]

268 名前:9zsRRd.net mailto: 環境次第 []
[ここ壊れてます]



269 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 08:41:56.04 ID:AEHaNlhRa.net]
>>259
条件分岐が減るとかじゃないの?
それだけ不具合が減る理屈だが、工数が増えてるんじゃ意味ないな

270 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 08:50:45.78 ID:OahWWfOzM.net]
普通のケースでは継承にしても
条件分岐が別の場所に移動するだけだべ

271 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 09:24:06.17 ID:n85zJfLmM.net]
>>258
Parallel.ForEachはオーバーヘッドが大きい
一周に数百ミリ秒かかるくらいの粒度の大きなループでない限りは普通のforeachより確実に遅くなる

272 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 10:26:04.16 ID:fix0rts+0.net]
多態性は手間がかかる割に恩恵が少ないよな

273 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 16:18:48.41 ID:R0UqBAnw0.net]
>>257
foreachならともかくforで書いているなら苦労するだろう

274 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 16:22:04.50 ID:R0UqBAnw0.net]
>>259
逆のパターンなら数多見てきたけど、そのパターンは珍しいな
if分岐が10以上になるからなんとかしてと言われて継承使ったプロトタイプ渡したら、なぜか基底クラスでif文復活してたことならあるけど

275 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 16:36:00.01 ID:0qvQfApDM.net]
C#のforeachってpythonみたいに定義しないでindex取得出来ませんか?forにするしかないでしょうか?

276 名前:デフォルトの名無しさん [2019/01/15(火) 16:37:26.00 ID:Oh+57Mh2M.net]
[_]

277 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 16:53:35.12 ID:XrO54/Dg0.net]
>>267
foreach単体じゃ無理

Enumerable.Select Method
https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.select?view=netframework-4.7.2

278 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 17:42:13.30 ID:AbSveg4gd.net]
>>267
上のSELECT使った実装例はこんな感じ

foreach (var x in items.Select((item, index) => new { item, index }))
{
Console.WriteLine($"index: {x.index}, value: {x.item}");
}

Listか配列かIEnumerabelどれでやってるかは知らないけどもこれで行けるはず



279 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 17:49:07.53 ID:u2JtKhAa0.net]
forが完全上位互換なのになんで
foreach使うのか?
って今でも思ってるよ俺は
ループにインデックスが必要になったというただそれだけで変更するんだぜ

280 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 17:55:58.21 ID:AbSveg4gd.net]
indexが必要でCountもできる時はわざわざindex生成してforeach使う必要無いと思うけどもLinq使いたい時とかIEnumerabelに実装してるものにわざわざfor使わない派

281 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 17:58:55.44 ID:AbSveg4gd.net]
というか戻り値をIEnumerabelにして抽象化しておく事が多いから余計にforeach使うのはあるかもしれない
Linq拡張メソッド作る時とか諸々

282 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 19:24:57.54 ID:Kk36dR3w0.net]
とりまLINQ使って富豪的に組むだろ

283 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:11:07.93 ID:LAAyKIEna.net]
>>252
int CalcDefault();
int CalcSpecial();
int Calc() {
if (IsSpecialCase()) return CalcSpecial();
else return CalcDefault();
}
bool IsSpecialCase() => combo.SelectedValue == "D";

とりあえず最初はこれでいいよ
似たような条件分岐が増えてきたらリファクタリングしてポリモー対応できないか検討
最初からポリモーは大げさだからやらなくていい
でも後でリファクタリングしやすいように責務指向でメソッドを切っておくぐらいはやっておいたほうがいい
このへんのさじ加減は経験則だな

284 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:18:43.20 ID:ToRrrvnYa.net]
switchを無くすのに多態

285 名前:なんか使う必要ないね。
すくなくともC#にはデリゲートがあるんだから多態使うぐらいならComboBoxのアイテムに
デリゲート持たせた方がいいよ。

個人的にはこれも本当に可読的か疑問だけど。
分岐素直に分岐で書いた方が分かりやすいって
[]
[ここ壊れてます]

286 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:29:43.48 ID:u2JtKhAa0.net]
テストするときに圧倒的にわかりにくいコードになんの意味があるの?
バカのやることは本当にわからない

287 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:31:56.84 ID:LAAyKIEna.net]
確かに
分岐が多いとテストしにくい
少しならいいけど限度がある

288 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:50:47.00 ID:u2JtKhAa0.net]
設計書で分岐が100個あったらswitchcaseかifで100個書けよ
それが気に入らないなら設計書直せよ

そういう当たり前の手続きを無視してコード書いてる雑魚に俺は超えられねぇ



289 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:54:23.73 ID:ShjRgn6y0.net]
switch vs 多態って結局プログラムがDRY & SOLIDになってるかどうかって問題に帰着すんだよな

>>255はDRYでもSOLIDでもない
>>275はSOLIDではあるがDRYではない
多態までいけば完全にDRYでSOLIDなプログラムになる

そのコードが一回こっきりで重複がないという前提だと、DRYのありがたみを実感しにくい
だからswitch派が一定数居るのだろうね

290 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 20:58:26.66 ID:AbSveg4gd.net]
インターフェイス厨だから似たような分岐はインターフェイスで分けて個別実装か本当に共通してるなら継承でなんとかしたくなる
それと見返したら俺酷いスペルミスしててワロタ

291 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 22:25:49.08 ID:rPJfKlkHp.net]
cしか知らないのです
vsをダウンロードして独学でc#勉強し始めたのですが、どうにもなりませんです
オブジェクトだのラムダ式だのデザインパターンだの文法的な要素以外に勉強しないとなにを言ってるのかわからない事が多くて、勉強の進め方が間違ってるのだろうと思いました。
初心者丸出しの質問で恐縮ですが、どんな順で何を勉強したら良いでしょう?
また、良書、良いウェブページなどご存知でしたら、ご教示いただければ幸いです
よろしくお願いします。

292 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 22:32:18.90 ID:2N1r/ZHN0.net]
>>282
物まねでもなんでもいいから何か作りまくれ
用語とかから勉強しなくていい。色々調べるうちに覚える
わからなくなったらやりたいことの頭にC#+スペース入れて検索

293 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 22:33:11.37 ID:p93FMJH30.net]
必要性がわからない概念を理解するのは難しい
それはコード書いた経験が少なすぎるから
Cもほぼ入門書読んだだけでしょ
とりあえず自分が理解できる範囲の知識でなにか作りたい物つくった方がいい

294 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 22:52:10.98 ID:qux9+5740.net]
>>282
主にオブジェクト指向関係が分からないみたいだから
オブジェクト指向入門系の本やウェブサイトを探せばいいんじゃないか?

あるいはC#にこだわらないのであればC++の入門書はC言語との違いとして
オブジェクト指向向けの機能に触れているものが多いと思う

実際にプログラム作ってオブジェクト指向の感覚掴みたいなら
個人的にはちょっとしたゲーム作ってみるのもオススメだな 
UnityならC#使えるし

295 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:25:56.04 ID:Zm1dLYXR0.net]
>>282
勉強の進め方というか基本的な理解が浅いのでは
Cでも構造体ネストして疑似継承くらいするだろうし
ラムダにしてもクロージャ要素はともかく匿名関数

とりあえずクラスは関数を纏めているのではなく
型を作りデータと結び付けているという事だね
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/index
翻訳が割と酷いが公式にもドキュメントはあるよ

296 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:31:48.76 ID: ]
[ここ壊れてます]

297 名前:grH+sReD0.net mailto: ご教示ありがとうございます
いわゆるコンソール用のアプリケーションなら、cで充分私が必要とする程度のものは作れるので、わざわざ新しい言語なんか習得したいとは思わないんですが。
やっぱり、GUIのアプリケーションの方が使うとき楽だとら思いまして、なんとかc#勉強して作れるようになりたいなと言うのが発端なんです

vsで参考になるようなところを参照してつまみ食いで作ったのですが、少しでも自分で機能を追加しようとすると、マイクロソフトのクラスライブラリなんか知らないので、なかなか困難で。
おまけにクラスというかオブジェクト指向って奴だと、無闇矢鱈と真似すれば良いという手法が私では通用しなかったのです。

どのようにクラスを作って良いのか基準もわからないですし。
オライリーのc++の本があるので読んだのですが、そこでは電子レンジをモデルにしてオブジェクトの説明をしてくれたのですが、なかなか良く分からず

デザインパターンとやらを先に勉強しておくべきなのかとチラホラ読んだのですが、これもまた実装とは程遠い座学の世界でピンと来なくて泣きそうです。

みなさん、ある程度使えるようになるまでどんな順序でなにを学んだのか、ご教示いただければたすかります
[]
[ここ壊れてます]

298 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:33:48.23 ID:grH+sReD0.net]
図々しいお願いで恐縮です



299 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:35:09.56 ID:opRVBBPd0.net]
デザパタは経験積まないと有り難味が判らないから放置でいいよ
作りたいものを完成させるにはどうすれば近道かだけ考えろ

300 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:40:43.54 ID:grH+sReD0.net]
>>289
デザイパターンはある程度蓄積が出来てないとありがたみがわからない、だから、後回しでも良いと言う意見ですね
クラスを作る定石集のようなものだと思ったので、先に勉強した方が良いのかとも思っておりました
定石知らなくても、楽しく将棋はできるのだから、後回しでも良さそうですね

ご意見ありがとうございます

301 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 23:50:54.16 ID:u2JtKhAa0.net]
vector3Dクラスの内部に
vector2Dクラスは普通は作らないんだぞ
知ってた?
しかし、両クラス共にメンバx,yを保持する
そう、お前らの大っっっっっっっ嫌いな重複だw
しかし、極上のバカでもない限り
vector3Dをvector2D+zで作るやつなんてこの世にいないんだよ
わかるな?

この例ではわかりやすく
XYZで説明してやったが
世の中ってのはこういうもので満ち溢れてるんだよ
xyでもyzでも計算するときがあるのさ
わかりにくいだけで
xyをvector2Dで作ってしまったオブジェクトのyzの計算は不格好なのさ
オブジェクト指向は破綻している
そこをわかった上で付き合うんだ

302 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 00:03:56.21 ID:9UhWNW230.net]
>>287
物に例えるってのは常々ダメだと思うわ、関係ない要素が絡んできて
人に依ってはマイクロウェーブとか出るの?とか思うだろうし
クラス設計としちゃフィールドは構造体と一緒だけどメソッドは…
うん、とりあえず手続き型っぽく作っても良いだろう\(^o^)/
多態性は+演算子の数値なら加算が文字列だと連結になるとかね

C経験はCUIのみという事かな?.NET Frameworkなんか知らん!という事であれば
Visual C++ Windows デスクトップアプリを従来通りWin32で作っても良いと思うけど
手っ取り早くダイアログベースで作成してメッセージハンドラに渡ってきたIDで振り分ける

ぶっちゃけ.NET FrameworkもWin32 APIをラップしてるだけなのでC#も基本は変わらない
フォームデザイナーで弄くってコントロールにイベントハンドラ割り当てるだけ

303 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 00:44:36.48 ID:RsJGf8R10.net]
>>292
制御系のプログラムばかり書いているのです
どうかするとロジアナ見てる方が多いかもしれませんが
パソコンの世界はほとんどわからないです

304 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 01:02:27.00 ID:NripHWV9a.net]
>>293
制御系ならCでも自然とオブジェクト指向的な設計でコード書いてたはずだと思う。

「キーをスキャンしてデバウンス処理を担当するコード」とか「LCDドライバーへの表示データの転送を担当するコード」
とか、そういう仮想機械をコード上にいっぱい作ってたはず。

オブジェクト指向のオブジェクトって要はこの仮想機械のこと。
クラスはそれを書きやすくするための仕組みに過ぎん。
だからたぶん心配してるよりずっと簡単な話だと思うよ

305 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 01:07:11.33 ID:RsJGf8R10.net]
>>294
私の頭の中はオブジェクト指向とは無縁です。

設計そのものに、そんな考え方を取り入れていないので、どこまでも手続き型で考えてしまうのです。
強いて言えば、状態遷移を作るときに少し似たような考え方になるだろうか、という程度ですね

なにをクラスとすれば良いのか、そういうところがピンとこないので、わからないのです。

306 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 01:13:49.60 ID:9UhWNW230.net]
いわゆる組み込み系か、それだと逆にこっちが経験乏しいけど、Cライブラリなら馴染みはあるのかな
するとまずはVisual C++からWindowsコンソールアプリをC/C++ライブラリで作ってみるとかかねぇ?
APIとかはC#にしろMSDN…今はMicrosoft Docs?を見るしかないね、C#ならIntelliSenseにも詳細出る

でもC#からなんか制御するとかだと結局プラットフォームのネイティブAPIや専用ライブラリになるか?
とりあえずオブジェクト指向とかを学びたいのであればC++や他スクリプト言語とかでも良さそうな

307 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 01:15:08.32 ID:NripHWV9a.net]
>>295
でもキュー(リングバッファー)ぐらい実装したことあるでしょ?
端的に言えばあれがオブジェクトの一例っすよ。

データ(配列 + 読み出しポインタ + 書込みポインタ)と、
それをリングバッファーに見せかけるコードの組み合わせ

簡単でしょ

308 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 01:30:35.70 ID:RsJGf8R10.net]
>>296
言語そのものはどれでも良いと考えています
vsのヘルプを読む限り、同じことができてるようですから
どうせなら、c#を勉強してみたいなと考えております



309 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 01:36:56.53 ID:RsJGf8R10.net]
>>297
リングバッファがオブジェクト指向の考え方なのですか。
なるほど。
仮装化したデバイスのようなもの、ということなのでしょうか。ハードディスクのドライバやNICのドライバは確かにアプリケーションからみると仮想的で、実際のハードウェアの持つ機能とは関係なくつかえるようにしますね
少し例えがわかった気がします

ありがとうございました
今日は遅いので、この辺で失礼します

310 名前:デフォルトの名無しさん [2019/01/16(水) 02:56:08.32 ID:JSfUU2TA0.net]
private Task<int> hoge{....}
というメソッドがあって

var t=hoge();
でタスク走らせた後、ちょっと別の処理してから
t.ContinueWith(()=>...);
と継続タスクを付け足した場合、
付け足した時点でhogeが終わってれば
すぐ継続タスクの処理を開始してくれますか?

311 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 08:32:38.24 ID:vAlWKxD3a.net]
>>300
はい

312 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 09:09:41.77 ID:CvIYGZ/W0.net]
なんならTask.CompletedTaskからでもContinueWithできる

313 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 11:29:57.72 ID:O5e9hp9mM.net]
>>299
オライリーのヘッドファーストオブジェクト指向がおすすめ

314 名前:デフォルトの名無しさん [2019/01/16(水) 16:28:16.62 ID:UcQqPOFa0.net]
ついでに、ユニットテストを身につける本をだれか教えてくれんかな
どの入門書もテストについて全く教えてくれんがどうなってんだ・・・・

315 名前:デフォルトの名無しさん [2019/01/16(水) 16:40:21.97 ID:vTKVQdGXF.net]
そのうちテストのテストも書きたくなってくる

316 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 18:30:37.61 ID:rdmn+dmd0.net]
なかなかゲームの自動プレイを実装するの難しいな〜

317 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 19:00:09.87 ID:uHZTYjv/a.net]
>>241 >>245 >>306
>>1

318 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 19:04:33.77 ID:rdmn+dmd0.net]
1は俺の書き込みちゃうでぇ



319 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 20:32:03.28 ID:LiM0dr73p.net]
>>303
どうもありがとうございます
java c#を習得している人が前提の書籍のようですね
オブジェクト指向の勉強には良さそうな本で助かります
javaも知らないので、今度丸善にでも行って太刀打ちできそうか、少しみてから判断しようと思います

320 名前:デフォルトの名無しさん [2019/01/16(水) 21:05:07.42 ID:wbo0XsPzd.net]
>>301
>>302
ありがとうございました

321 名前:デフォルトの名無しさん [2019/01/18(金) 05:08:46.83 ID:bjcECFHM0.net]
すまんが、VisualStudio2017についてる.NET Core2.1って、2.2にするにはどうすればいいの?
勝手に入ったんだからVisualStudio周りからアップグレードする方法があって良いような気がするものの・・・・どこにあるんだろ!?
https://dotnet.microsoft.com/download
それともこっからダウンロードしてきて入れちゃえば良いのかな?

322 名前:203 mailto:sage [2019/01/18(金) 07:03:56.21 ID:3+zdHjT80.net]
>>287
動物スーパークラス作って猫クラスと犬クラス作って猫にニャーニャー 犬にワンワンと鳴かせるプログラム作りな
完成したらオブジェクト指向習得

これで月18万の8次請非正規になれるよ
面談では経験8年で勘定系COBOLの経験有りと答えてね

323 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 07:26:09.39 ID:UV6kIYNk0.net]
>>311
VSのインストーラから入れられるのはLTSだからか知らんが今のところ2.1まで
2.2はSDKで入れてプロジェクト毎にターゲットとして指定すればおk

324 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 07:46:49.16 ID:tSI143EMa.net]
>>312
意地が悪いな

325 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 09:51:47.00 ID:LKOsIFRz0.net]
オブジェクト指向は色々勉強するより
ちょっとしたゲームでも作ったほうが分かりやすいと思うわ

モンスターとヒーローを作って相手を攻撃するメソッドと攻撃を受けたときにダメージを受けるメソッドを書いて 終わり

326 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 11:05:46.51 ID:OxZoH0bi0.net]
非同期のファイル検索処理を途中でキャンセルしたいのですが
時間がかかる処理はDirectory.GetFilesなので
CancellationPendingをどこに書いても処理が終わるまでキャンセルされないのですが
どう書けばよいでしょうか
https://dotnetfiddle.net/xYNYrk

327 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 12:09:48.64 ID:FhyCLWa9d.net]
>>316
こういうやつ?
https://qiita.com/Kosen-amai/items/20868649f10b119ceb40

328 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 12:11:43.78 ID:70siMoMg0.net]
>>316
Directory.GetFiles()の代わりにDirectory.EnumerateFiles()を使う



329 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 13:00:12.01 ID:Xg90leRQM.net]
>>315
ゲームはオブジェクトと環境との間のインタラクションが多すぎるからオブジェクト指向を学ぶには適さない
プロでも結局全部グローバルスコープでアクセスできるようにしとけみたいな設計にしかならん

330 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 14:06:54.39 ID:LKOsIFRz0.net]
じゃあやっぱ>>312がベストアイディアだな

331 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 17:53:25.90 ID:3+zdHjT80.net]
俺が先輩なら新人に自動車クラスとタイヤクラス作らせて型継承でタイヤ交換

332 名前:は容易にするようにと課題出す

出来たら6年選手として売る
[]
[ここ壊れてます]

333 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 17:56:23.24 ID:3+zdHjT80.net]
新人言うても30歳超えの中途ね
コスパ良いんだわ
年食ってると従順でパワハラにも耐える

そう言えば20代新人とか見たことない

存在するのかね

334 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 18:53:47.09 ID:LKOsIFRz0.net]
すまんがIT企業の闇と経験年数詐欺の手法はマ板でやってくれんか?
ム板は数年後のプログラミング教育必修化に向けてフレッシュでさわやかな若者向けの板に改装する予定なんだが

335 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 19:22:42.59 ID:LUo6T6YMr.net]
おまえが改装するの?

336 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 19:45:43.10 ID:adSAogxL0.net]
マ板話をム板でするなハゲ

337 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 19:57:21.94 ID:zUd1LnnRd.net]
>>325
ハゲ・ヅラ板の話をム板でやるなよ

338 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 20:48:28.34 ID:LKOsIFRz0.net]
早いところプログラミング必修化してほしいもんだぜ
会社の愚痴とブラック会社アピールが「プログラミングのお話」だと思ってるオッサン多すぎ



339 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 21:54:37.77 ID:v/mpstOM0.net]
IT業界の非正規形態に未来がなさ過ぎて辛い

いかんいかん 楽しい気持ちでラムダ練習せねば

340 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 22:02:21.54 ID:BJ9hxZ250.net]
↓プログラミングを必修化した結果
ttps://pbs.twimg.com/media/DwtF98FUwAIU166.jpg

341 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 22:16:50.60 ID:v/K+38IX0.net]
なんかちがう

342 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 22:41:31.47 ID:yv7JhRUX0.net]
そもそも資格試験は政治家の天下り先がつくってる
いみない

なぜなら資格を作ってるところの役員事態は
知識がないのだから。

343 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 22:57:58.37 ID:1ZiD/8V00.net]
文字列から数字をtmpWとtmpHに抜き出すクラスを作りたいのですがどうしたらいいですか?
演算子記号は+−もある、数字の桁数は不明で小数点もあり、数字が入るときは小文字一字始まり、引数はw or hで抜き出す戻り値を示す。


対象文字
@w900×HH
AWW×h1000
BWW×HH
Cw900/h100
結果 引数がwなら左  hなら右
@tmpW=900 tmpH=WW
AtmpW=WW tmpH=1000
BtmpW=WW tmpH=WW
CtmpW=900 tmpH=1000

344 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 23:04:40.52 ID:qic/InUuM.net]
数字文字列は尻からスキャンが定石か

345 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 23:09:53.93 ID:FQpSYkdr0.net]
正規表現で抜けば?

346 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 23:11:37.85 ID:OxZoH0bi0.net]
>>317
ありがとうございます。調べてみます
>>318
ありがとうございます。しかし同じくキャンセル出来ませんでした

347 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 23:58:07.57 ID:JDQsFvp5a.net]
フォルダの中に万単位でファイル作ってGetFiles()テストしたことがあったけど
10年以上前のPCでも非同期にしなきゃならんほど遅くなかったと思ったけどなあ

普通に遅い原因はユーザーコードの方にあるんじゃないの

348 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 00:06:23.94 ID:h3VcH88n0.net]
10年前のPCはそこまで性能悪くないだろ



349 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 00:41:04.18 ID:pEXPsY3Y0.net]
>>332
文字列を×/区切りの前後でsplit
それぞれの先頭がwhなら以降を戻り値

350 名前:デフォルトの名無しさん [2019/01/19(土) 01:20:56.46 ID:2Tiw7zAQa.net]
>>336
誰と話してるの

351 名前:デフォルトの名無しさん [2019/01/19(土) 05:18:33.12 ID:M8Q3zGyy0.net]
>>332
今ちょうど過疎ってるお題スレにちょうど良さげなのでお題スレにコピペさせてもらおう。

352 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 07:28:05.47 ID:+IqL7b8U0.net]
>>334に一票

353 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 08:43:09.59 ID:hupcYVyzM.net]
>>332
Cが難題だな。どうやって実現しようかなぁ

354 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 08:48:50.91 ID:Oo+kKfbG0.net]
indexOfとLowerでイケるんちゃうか?

355 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 08:49:22.84 ID:Oo+kKfbG0.net]
あとsplit

356 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 14:47:58.46 ID:+IqL7b8U0.net]
>>342
確かに w
まあtypoだろうからスルーしてやれよ

357 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 17:07:22.10 ID:FJgPPckz0.net]
脊髄反射で書いたので添削頼む。

public static string[] GetHW(string input)
{
string[] returnval = new string[2];
string[] temp = input.Split('+','-','*','/');

if (temp[0].StartsWith("w", StringComparison.Ordinal))
temp[0] = temp[0].TrimStart('w').Insert(0, "tmpW=");
else if (temp[0].StartsWith("WW", StringComparison.Ordinal))
temp[0] = "tmpW=\" \"";
else
temp[0] = "それ以外の何か";

if (temp[1].StartsWith("h", StringComparison.Ordinal))
temp[1] = temp[1].TrimStart('h').Insert(0, "tmpH=");
else if (temp[1].StartsWith("HH", StringComparison.Ordinal))
temp[1] = "tmpH=\" \"";
else
temp[1] = "それ以外の何か";

return temp;
}

358 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 17:11:32.02 ID:FJgPPckz0.net]
あ、Replaceでよかった。
returnvalも無意味。



359 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 17:39:42.56 ID:FJgPPckz0.net]
1文で
public static string GetHW(string input)
{
return input.Replace("w", "tmpW=",StringComparison.Ordinal)
.Replace("h", "tmpH=", StringComparison.Ordinal)
.Replace("WW", "tmp=\" \"", StringComparison.Ordinal)
.Replace("HH", "tmp=\" \"", StringComparison.Ordinal)
.Replace("+", " ", StringComparison.Ordinal)
.Replace("-", " ", StringComparison.Ordinal)
.Replace("*", " ", StringComparison.Ordinal)
.Replace("/", " ", StringComparison.Ordinal);
}

360 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 18:47:09.81 ID:jmND9WvPa.net]
>>332
質問内容はともかく、プログラマならもうちょっと読み手が推測で補完しなくても
内容を過不足なくきっちり読み取れるような文章を書いた方がいいと思う。

ってういか、率直に言って日本語変だよw

361 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 18:53:12.69 ID:+IqL7b8U0.net]
文章はともかくサンプルデータと結果を書いてるのは褒めてもいいと思うよ
他の質問者もぜひ見習って欲しい

362 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 19:00:37.08 ID:ov6XiAZ2M.net]
競技プログラミングの問題文よりましだろ

363 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 19:36:35.93 ID:PaRH8QDQF.net]
独学手探りで勉強しながら作っていたアプリケーションが一応形になったので
折角だから公開してみようと思っているんですが、
デバッグやライセンス確認など、リリース前に確認する事、の知識が全くないことに気づきました
少額ながら有料公開にしようと考えている為、
最低限これとこれは確認しないと、って物を教えて頂きたいです

364 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 19:39:05.53 ID:9NMu+pMT0.net]
>>352
なんのアプリケーションかも分からないし、答えようがない

365 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 19:41:36.75 ID:FJgPPckz0.net]
有料ってことは、不具合に対する改善要求が来る可能性もあるので、責任の範囲(逃げ道)を明確にしておく。

366 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 19:42:32.49 ID:XwZdf3VkM.net]
>>349
そこは、「あなた、日本語お上手ですね!」で煽らないと

367 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 19:53:49.36 ID:oPTngqYr0.net]
煽ってどうすんだよガイジ

368 名前:デフォルトの名無しさん [2019/01/19(土) 20:31:17.01 ID:h4R+weTi0.net]
>>313
今の所、普通に使っていて2.2にはならないのか
ありがとう



369 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 21:00:12.97 ID:jmND9WvPa.net]
>>332
まあ、適当に忖度して書いてみた
普段正規表現あんまり使う機会がないんでどっかおかしいかもしれん
https://ideone.com/b9pjrG

370 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 21:02:54.87 ID:BW5TF7JUa.net]
>>352
ヘタしたら訴訟沙汰になりかねないからやめとけ
まずはベータ版

371 名前:として無料で配るとかして様子を見るべき []
[ここ壊れてます]

372 名前:デフォルトの名無しさん [2019/01/19(土) 21:59:06.23 ID:+chQE6yt0.net]
>>352
・C#で作ってるならデコンパイルされても大丈夫か確認しておく
・GPL汚染に注意する

373 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 23:51:42.85 ID:NEqE5pSC0.net]
ソフトで商売って労力に見合わないな
キラーソフトでも作れればそれだけで暮らせるんだろうけど

374 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 00:00:18.20 ID:lx5Y5NZb0.net]
ニッチな分野か、あるいは既存ソフトより高性能であれば有料でも売れる可能性はある

375 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 01:05:58.77 ID:+LWwKYuDa.net]
業務アプリなら大したスキル無くてもやってることがビジネスとして正しくてちゃんと営業すれば売れるよ
今時ツール系で稼ぐのはまあ無理

376 名前: mailto:sage [2019/01/21(月) 05:02:51.88 ID:BX1YVz9RH.net]
>>362
業務にての使用を公認されるためには、有料(シェア)ソフトの方が有利なようですよ、秀丸とか

377 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 07:23:38.48 ID:EWbXmLTJ0.net]
ASPばかりしてたらWinFormの作り方忘れた
つか今だにWinFormの案件あるのかね
小ツールはコンソールアプリで作っちゃうから勝手が思い出せない

378 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 07:27:48.21 ID:V744VEzgd.net]
>>346
>>348
ありがとうございます!調べてやってみます!



379 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 07:41:57.18 ID:A1e+SXhY0.net]
ASPの案件がある方が驚きだわ

380 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 07:46:49.66 ID:1hBKI8k2D.net]
>>367
大手はWindowsServer入れてる率が多い気がする

381 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 07:54:57.12 ID:BPZ4z+V2d.net]
>>368
ASP.NET(かもしくはASP.NET Core)やろってツッコミじゃね?

382 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 08:07:17.42 ID:pqXwpH4cd.net]
ASPはもうASP.NETに移行済んでるものと思ってた

383 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 08:20:46.33 ID:V744VEzgd.net]
>>358
わざわざ有難うございます!
これも書いて勉強してみます!

384 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 10:03:06.25 ID:HJdNRmJRM.net]
開発マシン XP32bitでVS2005で作ったC++のdllを同じくVS2005で作ったC# WinFormアプリでDllImportを使って利用しています。

Win10 64bitで実行するとC++の関数をコールすると
間違ったフォーマットのプログラムを読み込もうとしました。(HRESULTからの例外: 0x8007000B)
となります。

同じ事をwin7 64bitのVS2013で作ったアプリでしても(当然)問題なく動きます。

VS2005で作ったアプリで動かす方法はないでしょうか。

385 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 10:21:26.36 ID:yj1nRareM.net]
プロジェクト設定でany cpu になっている部分をx86にしなされ

386 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 11:03:04.79 ID:HJdNRmJRM.net]
>>373
ありがとうございます!
無事動作しました!

387 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 12:12:30.14 ID:1DQQx7qk0.net]
新規プロジェクトをVBでやりたがるPMにC#をオススメしたいのですが、C#が決定的に優れてる点はあるでしょうか?
VB読みにくいなんて言っても苦しむのはお前だろ関係ないという雰囲気で

388 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 12:30:08.86 ID:eMR7WidkM.net]
ループの評価とコーディング量かな

手持ちプロジェクトをSharpDevelopで変換してみなされ



389 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 12:44:54.58 ID:9okmCQOjM.net]
プログラマの品質
実際にC#使うかVB使うかはどうでもいいが、要員をC#経験者に限定することでリスクは格段に下がる

390 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 12:55:35.86 ID:qfMy6igJ0.net]
ネットに転がってるサンプルコードの量
(ちょっと慣れればすぐに読み替えられ

391 名前:驍謔、になるってのは秘密) []
[ここ壊れてます]

392 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 13:14:20.48 ID:dccJtP51d.net]
>>377
担当PGは決まってるんだからそんなこと言っても説得力なし

393 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 13:48:30.91 ID:NM3vIbDMa.net]
日本人を説得するのはこれが一番
yellow.ribbon.to/~joke/tobikome.html

実際問題.NETの世界ではC#が標準で「みんな」が使ってる。
逆にあえて非標準のVBを使う理由って何なんですかと聞いてやればいい

もう少し合理的な人なら、ラムダ式とか、デリゲートのadd/removeに演算子が使えることとか、
三項演算子とか、null合体演算子とか、代入演算子が右辺の値を返す式であるとか、
プロパティーのいろんな省略記法とか、C#ならいかに簡潔にかけて同じことをVBでやるといかに冗長になるか
具体例を見せてやればいいよ

394 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 14:10:03.70 ID:NbFzEAOW0.net]
>>380
> ラムダ式とか、デリゲートのadd/removeに演算子が使えることとか、
> 三項演算子とか、null合体演算子とか、代入演算子が右辺の値を返す式であるとか、
> プロパティーのいろんな省略記法とか、
単なる印象だけど>>375のところのPMはそう言うのを嫌いそうな気がする

395 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 16:35:43.35 ID:trZhU3Ina.net]
Labelを貼って、そのTextを空白にしたらデザイン画面でクリックできなくなってしまったのですが
どうやって選択状態にしたらいいのでしょうか

396 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 17:01:29.53 ID:NM3vIbDMa.net]
>>382
デザイナで以下のどれかの操作をする
(a) [ctrl] + z
(b) マウスでそのラベルがあったあたりをドラッグ
(c) [ctrl] + [alt] + t
(d) プロパティウィンドウの上部のドロップダウンで選択

397 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 17:54:05.53 ID:trZhU3Ina.net]
>>383
ありがとうございます
C案でやらせていただきました

398 名前:375 mailto:sage [2019/01/21(月) 18:26:05.83 ID:1DQQx7qk0.net]
PM的にはVBのが簡単で人員の確保が容易との理由ですが、イベントリスナにクラスレスで全処理書くベテランエンジニアの意向を汲んでるんだと思います

自分はサンプルの多さとC系で無い記述に不慣れという理由でC#を希望しましたが、ベテランに寄せられるんだろうなと諦めムードです

ちなみにベテランのスマートUIは芸術の域で若輩の自分には追従不可です

コード量も多く見積りが高く出来るとPMからも信頼されています



399 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 18:37:52.16 ID:PrrgsGFM0.net]
今2019年やぞ……。
生産性を上げる技術を入れる気が無い、そのPMにはC#のメリットはメリットに見えないだろうなぁ。
ベテランは古い技術と心中できるけども……

400 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 19:12:08.60 ID:R3pW/ayE0.net]
ループ内で一時変数宣言したらコストが増えるってのを知って
新しいブロック作って変数宣言してみたけどなんか見た目がすっきりしない
ループ内の変数宣言の新機能とかないのかな

401 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 19:14:47.05 ID:FhYMYDcaa.net]
>>386
生産性って言葉は立場や状況によって指してるものが変わるんやで

402 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 19:26:17.46 ID:tYy/rBPTM.net]
ソフトウェア作れると言うとソフト作って売って大儲けできるんじゃないかと
よく言われる

世間はそういう感じで見てる

403 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 19:27:19.80 ID:0j7Aeluod.net]
権力持ってる人がVB推しなら決定でしょ
できることはほぼ同じだし諦めな

404 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 19:36:49.44 ID:lF845d4L0.net]
>>387
コストが増えるってローカル変数が増える事?
初期化するスタックの増加

405 名前:やレジスタに乗りづらくなるとか?
さほど気にするもんでも…とりあえずAnyCPUで64bit優先オヌヌヌ
[]
[ここ壊れてます]

406 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 19:59:33.83 ID:2/OM9doDa.net]
>>386
意識高めても虚しいだけだよ
10年この仕事して啓蒙もしたけどなにも変わらなかった
9割5分の人材はそもそもシステム開発に興味ないから啓蒙しても無駄
転職するか割り切るかどちらかしかない
環境を変えようと思ったら負け

407 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 05:26:41.64 ID:1xYsQegz0.net]
正規表現パズルやってたのか・・・参加したかった

408 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 12:26:50.15 ID:vFo5wc3/a.net]
パズル言うほど難しい問題出てない気が...
どっちかっていうと質問自体の方がハズ(

正規表現便利だけど他人の書いたの読むのキツいよねw
しょっちゅう使ってれば違うのかもしれんが



409 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 15:21:12.16 ID:pHhZylOrM.net]
ややこい正規表現の場合
コメントで想定okパターンくらいは書くようにしてる

410 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 15:22:14.22 ID:pHhZylOrM.net]
あとテストコード入れとく場合も

411 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 17:14:18.11 ID:4H8Bkb5P0.net]
フォームアプリケーションにtrackbarを2つ用意して、
pcに接続されたモノラルマイクの音量(感度?)とパンニングをそれぞれ操作したいんですが
適当な検索ワードがわからずにたどり着けませんでした
できるだけシンプルに、どう書けば可能でしょうか?

412 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 17:49:02.10 ID:vFo5wc3/a.net]
ググったらこんなのが出てきた
読んでないけどなんかすごい面倒くさそう...
https://web.archive.org/web/20060712054058/www.terra.dti.ne.jp/~vivas/delphi/mixerapi.html

413 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:36:37.95 ID:NN+MTXVc0.net]
質問です
ファイルの移動を扱う自作メソッドの結果を扱うクラス(Aとする)を作りました
このクラスに
class A{
...
public static A Output_IsCanceled(string 元のファイル) {
//引数を受けて動作をキャンセルしたことを示す結果を返す。
}
}

のように典型的な結果を出力するメソッドを追加したのですが、
このAを継承したクラスBにこのメソッドもこのメソッドを上書きしたメソッドも実装させたくありません。
なにかスマートな解決方法はあるでしょうか。

私には大人しく別のクラスに移すくらいしか思いつかないのですが。

414 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:49:41.50 ID:P5rqpQdz0.net]
>>399
そのメソッドを外したクラスを作ってクラスAとクラスBに継承させる

415 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:49:53.30 ID:lqDMGVH00.net]
親作って別々に継承

416 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 19:00:35.92 ID:NN+MTXVc0.net]
なるほど 言われてみれば簡単でしたね
ありがとうございます

417 名前:デフォルトの名無しさん [2019/01/22(火) 22:12:29.98 ID:ttdon+q40.net]
object型の変数に入れた匿名クラスのプロパティを取得する方法で
詰まっております。

object hoge = new { fuga = 1 };
int a = hoge.fuga ←こういうイメージで取得したかったのですが。。。

ご教授よろしくお願いいたします。

418 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 22:19:56.81 ID:bu0N7pF20.net]
>>403
なんでそんなことしたいの?



419 名前:デフォルトの名無しさん [2019/01/22(火) 22:25:46.51 ID:ttdon+q40.net]
>>404
Dapperの引数がobject型だったのですが、Dapperに渡す前の
匿名クラスのプロパティの値を元に一つ条件式を作りたかったんです
object型の匿名クラスからどうやって値を取るのか興味もありまして

420 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 22:26:33.77 ID:qwoCd5dDa.net]
ほら宇宙刑事ギャバンの必殺技みたいなあれだよ

421 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 22:39:23.63 ID:g3EQ5hiYa.net]
>>405
無理
渡す先の引数がobject型だからって変数の型をそれに合わせる必要はないだろ
var使えよ

422 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 22:41:18.57 ID:0fUOX4Xc0.net]
>>403
リフレクションを使った力業
var a = ( int )hoge.GetType().GetProperty( "fuga" ).GetValue( hoge );

423 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 22:45:23.28 ID:UB+BgHs40.net]
>>403
int a = ((dynamic)hoge).fuga;
てしたら取れた。なおインテリセンスはきかない。

424 名前:デフォルトの名無しさん [2019/01/22(火) 22:47:54.29 ID:N3agGC610.net]
>>409
これは全く頭になかったわ

425 名前:デフォルトの名無しさん [2019/01/22(火) 23:01:01.54 ID:ttdon+q40.net]
>>409
値が取れました。ありがとうございます。
結構トリッキーになるみたいなので
多用は避けた方が無難かと学びました

しかし、Dappreはさらにプロパティ自体も自前で取得するので
手練れの外人は違うなと

426 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 23:21:33.35 ID:0fUOX4Xc0.net]
>>411
Type.GetProperties()でプロパティの一覧が取得出来るよ。
foreach ( var propertyInfo in hoge.GetType().GetProperties() )
{
var value = propertyInfo.GetValue( hoge );
Debug.WriteLine( $"{propertyInfo.Name}={value}" );
}

427 名前:デフォルトの名無しさん [2019/01/22(火) 23:32:00.27 ID:ttdon+q40.net]
>>412
なるほどそうやるのですね
知らないことが多いので参考になります

428 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 00:01:29.03 ID:n+ibBTmv0.net]
Androidの実機持って無いんだけど、もし、完成したC#のアプリが有った場合、
DownLoad から、実行まではどうすればいい?
.Net のインストールから始まるの?
C#アプリはGooglePly からDLするの? それとも自前のWebサイト?



429 名前:デフォルトの名無しさん [2019/01/23(水) 03:41:42.64 ID:g/jeFpr60.net]
WPFって、最初のGUIデザインはデザイナで出来ますが、ユーザーの入力に応じてGUIを変化させたい場合
(例えば、テキストボックスに3と入力したらラベルを3つ追加するとかの場合)
xamlではなくC#のソースコードでコントロール追加せざるを得ないのでしょうか?

430 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 04:35:34.67 ID:OkP0wizv0.net]
>>411
匿名クラス使わなきゃいいやん

431 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 07:17:48.93 ID:bZ1m5CuBM.net]
>>415
wpf xaml 条件分岐
でググレ

432 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 08:30:39.69 ID:YOQQL4jNa.net]
>>415
よく考えよう
その例の場合、お前はコントロールを追加したいんじゃなくて表示対象の文字列を増やしたいんだろ?
C#からは「表示対象の文字列を追加する」操作だけをして、コントロールを追加するのはバインディングに任せるのがWPFの思想だ
>>417は間違いで、ググるべきキーワードは DataTemplate
コレクションに文字列を追加するだけで勝手にコントロールが追加されるようになる

433 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 08:36:51.99 ID:YOQQL4jNa.net]
ちなみにWebなら上記のようなまどろっこしいことをしなくてもRazorテンプレートの中に直接forループを記述するだけだ
WPFの難解なバインディングは概念ばかりが先行してユーザーを置き去りにする典型的なMSの失敗作

434 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 09:43:36.18 ID:qi0lTRAT0.net]
上の人はワケワカラン書き方しているが、wpfではListBoxのItemは自由にかけるから、そこにLabelを配置して追加削除をやるってのが定番ね

435 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 09:47:33.21 ID:NxchbiGLM.net]
>>420
間違い
Itemsには文字列のコレクションをバインドする
でItemsTemplateでDataTemplateを適用させてLabelを生成させる

436 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 11:55:57.45 ID:tAarVqiS0.net]
WPF は知らないけど、一般的に、JavaScript の状態管理なら、

Vue.js, Nuxt.js など、状態管理用のフレームワークを使う

437 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 12:40:46.32 ID:x96ZzLYOr.net]
ここは今からjavascriptのスレになりました

438 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 14:43:06.09 ID:PhLCwjBwd.net]
>>422
ウゼーーーー



439 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 17:42:05.37 ID:yPNynzM60.net]
最近、業務システムはデータベースとデータ操作言語が8割でC#はさほど重要じゃないんじゃ。。。

と疑うようになってきました

C#が主役の開発って、ゲームくらいですかね

440 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 17:50:21.87 ID:qdiHHHQi0.net]
>>425
それも統計に嘘がある可能性あり。以下、各社各様、自分に都合の良いことを行っている:

一般人:「Androidのアプリの大部分は Java である」
Unity:「百万種類以上あるゲームアプリの半数が Unity(C#)製である」
Adobe:「Flash製ゲームが、100万種類を超えた。」
日本人:「日本の歴代で一番売れたゲームは、Final Fantasy xx で、700万本(売り上げにして500億円程度)」
外人:「MineCraft というゲームの売り上げが一兆円越えた。」

441 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 19:31:40.08 ID:qdiHHHQi0.net]
誤: 外人:「MineCraft というゲームの売り上げが一兆円越えた。」
正: 外人:「MineCraft というゲームの売り上げ本数が一億本越えた。」

Flash に関しては、「one million games」みたいな言葉を使って、
Adobe が「自慢」していたんだそうだ。

442 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 20:40:29.23 ID:2LIdCPNFa.net]
>>425
ミクロサービス開発するとデータベース殆ど触らなくなる
EF便利

443 名前:デフォルトの名無しさん [2019/01/23(水) 21:24:52.01 ID:xzA+L1aD0.net]
SQL手書き最高ひゃっはp

444 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 22:51:20.49 ID:xSBZbPpe0.net]
C#のデバッグ画面の診断ツールについて質問です

メモリ使用量のプロファイルはデフォルトで無効だと思うんですが、いつの間にかクリックしてしまって
有効になったまま無効に戻せません

VCの場合はクリックすると元に戻す出来る場所があるのですが

レジストリをいじらないと駄目なんでしょうか?

445 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 18:07:50.56 ID:+k418LkV0.net]
とりあえずVisual Studio Community 2017だと
診断ツールウィンドウの左上の歯車クリックで出るドロップダウンの
メモリ使用量のチェック外したら次のデバッグから消える
つかデフォルト有効じゃなかったっけ オンにした記憶ないし

446 名前:デフォルトの名無しさん [2019/01/24(木) 22:08:23.88 ID:nbtsb27b0.net]
C#の話じゃないのかもわかんないけど、ちょくちょく出てくる「コンテキスト」ってのが何者なのか未だに理解できん
プログラムの単位で!?処理の中断・継続等を担ってる!?!?とかなんとか説明されてるけど意味がわからん
こいつは一体どういうもんなんじゃい?

447 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 22:17:59.01 ID:Io4qrCW00.net]
>>432
何年もC#使っているけど「コンテキストメニュー」しかわからん
またJavaの話じゃないだろうな

448 名前:デフォルトの名無しさん [2019/01/24(木) 22:23:04.95 ID:nbtsb27b0.net]
>>433
ASP.NETでもEFでもXamarinでのモバイル開発でも、何しててもコンテキストが出て来まくるじゃない



449 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 22:34:05.54 ID:KQvEosKo0.net]
>>432
「文脈」という意味で、例えば、Graphic の Context の場合なら、
・現在の foreground color
・現在の background color
・現在の font
・「カレント座標」 (MoveTo() などで

450 名前:設定する LintTo() の開始座標)
・現在の Clipping 領域。
・現在の 原点の位置。

などを記録しているオブジェクトのようなこと。だから、もし、同じ
Window に対して 2つの Graphic Context を持てば、それぞれで別々の
カレント座標や、foreground color、Clipping Region を持つことが
できて、瞬時に切り替えたりできる。これが、Win32 の Device Context
に相当する。

---------------------------------------
CPU の Cotext の場合、IA32BIT の場合なら、
汎用レジスタ: EAX, EBX, ECX, EDX, ESI, EDI、EBP
命令ポインタ: EIP
スタックポインタ: ESP
フラグ: EFALGS
セグメントレジスタ: CS, DS, ES, FS, GS
浮動小数点レジスタ: ST0〜ST7

などが該当する。この Context を細かく時間を区切って切り替えることで、
MultiTask が実現できる。MultiCore CPU の場合は、それぞれの Core が
別々の Context を同時に持っていることになる。
[]
[ここ壊れてます]

451 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 22:36:47.07 ID:/05KE7l40.net]
>>435
ただし、JS の canvas の context は、1つの canvas に対しては、1つしか
持つことが出来ないとされており、
var ctx1 = canvas.getContext("2D");
var ctx2 = canvas.getContext("2D");
のようにしても、ctx1 と ctx2 は同じ値が返ってくることになっているらしい。

452 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 22:38:30.97 ID:/05KE7l40.net]
>>435
誤:CPU の Cotext の場合、IA32BIT の場合なら、
正:CPU の Context の場合、IA32 の場合なら、

453 名前:デフォルトの名無しさん [2019/01/24(木) 23:11:19.24 ID:nbtsb27b0.net]
ふえるわけわかめ

454 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 23:34:17.52 ID:9ks/14Qta.net]
>>432
コンテキストの意味はコンテキストに依存するのでまずはどんなコンテキストで話してるのかはっきりしてくれ

455 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 23:41:41.55 ID:ykheMFGu0.net]
Xamarinって言ってるからAndroidのContextクラスもありそう

456 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 06:33:11.37 ID:58XK3b4v0.net]
>>438
紙に絵を書く場合に、色んな筆に予め色を載せておいて、必要なときにすぐに
目的の筆を選べるようにしておくと便利。その筆が context。
これだけだと単なる「brush」に過ぎないという突っ込みも有り得る。
実際のcontextは筆だけでなく、場所まで覚えてくれていたりする。

457 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 08:19:04.26 ID:VVNAHEZ90.net]
DCの話し?

458 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 08:57:13.43 ID:58XK3b4v0.net]
>>442
まあ、そうなんだけど、プログラミングにおける「context」というのは、
HDC と大体似たようなニュアンスを持ってると思う。



459 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 09:01:53.98 ID:58XK3b4v0.net]
日本語で、「この文脈では」「文脈をわきまえて」というものがあるけど、
直前に直線の描画を終えたばかりの「最後の座標」を覚える、っていうのが
それに近い。最後に使った色を今後も使う、最後に使った座標から、
また、直線を描き始める・・・。

お葬式では暗い顔して暗い服を着る、結婚式では明るい顔する・・・。
悪いニュースは暗い顔で読み、良いニュースは楽しそうに読む・・・。
それが文脈、context。

460 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 09:13:33.36 ID:58XK3b4v0.net]
それはそうと、.Netで書かれてるらしい MasterSeeker.exe と HNXgrep.exe
がWin7で劇遅になった。特に起動。XPではとても快適だったのに。
起動速度が多分、3〜5倍くらいになった気がする。

Win32/MFCで書かれたアプリでは経験したことの無い現象だと思う。

461 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 12:14:00.12 ID:qfUC5qIOa.net]
>>432
そんなこと考えても時間の無駄。
contextの意味もcontext依存だから。
その文脈でどういう意味で使われてるか読み取るしかない。
英語ってそういう言葉でしょ?

コンピュータプログラムのcode、暗号のcode、符号のcode、
これらから還元してcodeが何を意味してるのか考えても意味ないのと同じ

462 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 12:55:33.13 ID:YHYKY/Dsd.net]
fixtureもピンとこなかった

463 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 14:04:22.53 ID:HDgzt9Ph0.net]
管理者権限を必要としないで動作するソフトを作成しました、。
仮にバグがあったとして、そのバグを突かれて攻撃された場合に権限昇格等の事態は発生しますか?

464 名前:デフォルトの名無しさん [2019/01/25(金) 14:31:21.79 ID:NjeEwFLO0.net]
アプリケーション1とアプリケーション2の間でメッセージをやり取りする必要が出てきたので、SendMessageを使ってもう一方のテキストボックスに
メッセージを送り、TextChangedのイベントで受け取りを判断するようにしました。
ところが、アプリケーション1→2は成功するのに、2→1はうまく動作してくれません
(テキストボックスに送られたメッセージは表示されますが、テキストボックスがChangeしたとは判断されていないようです)。

原因がわかる方いらっしゃったら教えてください。

465 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 16:06:37.52 ID:ihVRaCqt0.net]
formにフォーカスしたときにスペースキーを押すとkeydownで拾って処理ということをやってるけど
スペースを押すタイミングでform内のチェックボックスがチェックされたり消したりするけど止めることは出来ますか?
ヒントを教えてください。

466 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 16:24:22.19 ID:VVNAHEZ90.net]
メッセージ捨てている?

467 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 16:35:10.05 ID:cY+a6SZrM.net]
>>448
所詮ローカルアプリだろ?
そんなもんにセキュリティの考慮なんぞ要らん
正当なユーザーに悪意があれば自分のPCの権限制御なんぞどうとでもなるし、
権限のない第三者が悪戯できない程度には今のWindowsのセキュリティは堅固だ

468 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 19:10:00.05 ID:+fHR2Vfoa.net]
>>449
MQ使っちゃいなよ



469 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 20:12:53.90 ID:GQtzdg+pM.net]
>>452
ClickOnce…一般ユーザーがインストール…悪意があったら…

うっ…頭が

470 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 20:21:06.45 ID:9dAxHT9C0.net]
ClickOnceはホリエモンが作ったらしいで

471 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 21:40:49.02 ID:lgKiVxcFr.net]
ホリエモンは天才だからな

472 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 21:50:17.27 ID:VVNAHEZ90.net]
Microsoftで仕事していたの?

473 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 22:02:24.78 ID:RIyzEPA40.net]
>>450
・KeyDown用のコントロールを設定しForm全体でキーを受けるのをやめる
・別のコントロールに常にフォーカスが当たるようにする
 具体的にはクリックイベントやForm.Shownのイベントメソッドを全部作ってControl.Select()かControl.Focus()を入れる
・Formからチェックボックスを無くす
下に行くほど下策。他にもあるだろうけど他の人に任せる

474 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 22:36:20.38 ID:0+JzU8ara.net]
>>450
基本的にはそれあなたの仕様そのものがバグってる。
WindowsのUIのお約束に反するようなUIを作ったらあかん。
どうしてもならSetStyleを呼んでCheckBoxが入力フォーカスを持たないようにするのが筋だと思う。

475 名前:デフォルトの名無しさん mailto:sage [2019/01/26(土) 09:41:45.11 ID:0YlzP7hG0.net]
>>458 >>459
フォーカスを何とかすることを考えます。とても為になりました。ありがとうございました。

476 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 16:07:38.67 ID:4O8CfcWu0.net]
>>449
こういう名前付きパイプとかいうのは使えないの?
https://docs.microsoft.com/ja-jp/dotnet/standard/io/how-to-use-named-pipes-for-network-interprocess-communication

477 名前:デフォルトの名無しさん [2019/01/28(月) 16:43:45.23 ID:ji//xT0NF.net]
TCPsocketとか使う

478 名前:デフォルトの名無しさん [2019/01/29(火) 18:28:09.44 ID:lSFWGay90.net]
質問です
100msとかの短い間隔で繰り返す場合、
Systems.Timers.Timerを使って処理を繰り返すのと
while中にSleepかTask.Delayで間隔をとって繰り返すのとでは
どっちが処理がはやくて負荷が少ないですか?

またそれぞれのメリット・デメリットがあれば教えて欲しいです



479 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 18:32:52.89 ID:KZd0CVbOa.net]
回答待つ間にやってみたらいい

480 名前:L mailto:sage [2019/01/29(火) 18:47:23.89 ID:8rAEnTT80.net]
>>463
Sleep() 自体はそんなに積極的に使うべきものではない。ただし、
「逐次処理」で書いたほうが書きやすいような場合に使うと便利
な場合がある。例えば、単なる繰り返しではない、以下のように順にコードを
実行していくような場合:
(処理1)
(何かのフラグが変化するか、または単に時間が経つまで待機)
(処理2)
(何かのフラグが変化するか、または単に時間が経つまで待機)
(処理3)
・・・

ここで、処理1、処理2・・・の内容がほとんど同じような場合は、Timer を
使うべきだが全く違うようなものが10個も並ぶような場合だったら、Sleep()
を使うと楽。

SetEvent() などの同期オブジェクトを待つ WaitForSingleObject() などがサポート
されてない環境において、何かのフラグが立つのをポーリングして待たざるを得ない
ような時に、間に何も「はさまない」でループするとCPUがフルパワー状態で回って
しまって電気の無駄使いになるのが、Sleep() を「はさむ」と、Sleep()に指定する
待ち時間がたとえ短時間であっても、Sleep() の中で待ってる間は CPU が HLT 状態
になるので、電力消費を劇的に抑えることが出来る。
WaitForSingleObject() などが存在する環境では、Sleep() は余り使わないで良い。

481 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 18:47:44.92 ID:aKVTslCz0.net]
>>463
役割が全部違う
Sleep
指定時間の間は同じスレッドでのGUI等の入力が停止する
Sleep/Task.Delay
(実行後に)確実に指定した時間が停止する
Timer
指定した間隔で実行される

482 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 18:59:35.28 ID:8rAEnTT80.net]
【参考】
Sleep() の意味は、待つときに、HLT 命令を使うこと。HLT 命令は、特権命令なので
ユーザーランド(一般アプリ)のプロセスでは実行できないため、OSのAPIで実行して
貰うしかない。なお、マルチタスクOSで、HLT 命令を実行すると、他のプロセスに実行が
移ることが多い。

多くのアーキテクチャに置いて、HLT 命令は、「busy wait」で待つよりも、
劇的に電力消費と熱の発生を抑えることが出来る:

https://en.wikipedia.org/wiki/HLT_(x86_instruction)

Almost every modern processor instruction set includes an instruction or
sleep mode which halts the processor until more work needs to be done.
In interrupt-driven processors, this instruction halts the CPU until an
external interrupt is received. On most architectures, executing such
an instruction allows the processor to significantly reduce its power
usage and heat output, which is why it is commonly used instead of
busy waiting for sleeping and idling.

483 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 19:19:24.76 ID:BTNuwc+5a.net]
>>463
どっちにしろそんな違いがプログラムのパフォーマンスに影響なんかしないw
そもそも可読性よりパフォーマンスを優先する時代じゃない。
つまりより可読的な方法を選択すべき。

一定間隔で処理を繰り返すなら普通はタイマーを使った方が可読的でしょう、
繰り返し終了後に別の処理を継続させたい、みたいな事情があればあえてループ(つまりSleep)を
選択する場合もあるかもしれない

484 名前:デフォルトの名無しさん [2019/01/29(火) 20:17:02.92 ID:lSFWGay90.net]
>>465-468
みなさまありがとうございます。
特にSleepの解説は勉強になりました。

パフォーマンスも特に影響無いようで、
一定間隔で処理するのでTimerを利用することにします。

485 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 21:31:43.87 ID:ftdCQ0WJa.net]
this.Close()でアプリを終了させた時、
デバッグモードだとProgram.csの方でエラーが表示されますがこれは気にしなくていいエラーでしょうか?

486 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 22:05:21.74 ID:JPJ1HyJa0.net]
気にしなはれ

487 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 01:49:16.67 ID:DZ6eQREq0.net]
WinFormsのデスクトップアプリでVSyncを待つコードを教えてください
Unityなとのフレームワークやゲームエンジ、DirectXラッパーを
使うことは許されていません

488 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 04:02:46.09 ID:/8sJMxSkM.net]
>>472
無理に100ペリカ



489 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 07:29:11.42 ID:foE0k69S0.net]
>>472
P/Invoke禁止とは言われてないのだな

ではD3DKMTWaitForVerticalBlankEventを使いましょう
名前はD3Dとありますがgdi32にある関数なのでDirectXではないと
糞ルールを決めた上司に主張しましょう

490 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:12:13.35 ID:/B2wAYnE0.net]
>>468
可読性という理由でラムダ式の表記禁止して5,6段のネストは許されている俺社

491 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:37:51.08 ID:/+A/bmbGa.net]
可読性も人それぞれ

492 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:46:16.74 ID:hYqQd3E1d.net]
あるフォルダ(A)内に不定期に作成されるファイルを、ローカルのフォルダ(B)に一定間隔でコピーします(フォルダ内全てではなく、前回からの差分ファイルをコピー)。

今回コピーしたファイルを使って後続処理をしたいのですが、どのようにしたら今回コピーしたファイルだと判別できますか?ファイル名にはタイムスタンプが入っています。
コピー後にA内のファイルを削除などできず、コピーのみ可能です。

493 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:49:12.12 ID:/+A/bmbGa.net]
>>477
データベースにヒストリを保存すればよろしいかと

494 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 09:59:39.11 ID:E37rjQ75a.net]
>>477
別のフォルダに "<ファイル名>.trigger" みたいな一時ファイルを作って処理後に消せばいい

495 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 18:35:51.42 ID:hYqQd3E1d.net]
>>477
ありがとうございます。
コピー済みのファイル名をDBに保存しておき、そこにないファイルは新規ファイルとして処理する。
こんな判断になりそうです。

496 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 15:06:18.62 ID:k6O3ixIF0.net]
Unsafe.の質問ってここじゃ不適切だよね
と言ってもここ以外にまともなC#スレはないようだけど

497 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 16:28:47.69 ID:wgv6NCGX0.net]
相談室スレでもいいよ 多分回答者はこのスレと共通だけど

498 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:28:39.66 ID:hO+r/SI90.net]
Dictionary 型の自動ってないですか。

とあるキーに対してInsert/Updateするとき、
いちいち ContainKeys してから Add するかしないか、ってのがイケてないと思うのですが

dicHoge["Key"] = "hoge";

ってしたとき、Key がなかったら Add して、あったら値を差し替える、みたいな動きする標準クラスないですか?



499 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:42:31.36 ID:06DUsvP/ ]
[ここ壊れてます]

500 名前:0.net mailto: 何の話? []
[ここ壊れてます]

501 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:44:45.57 ID:KzsKuKr5M.net]
>>483
ConcurrentDictionaryのTryAddとかTryUpdateとか

502 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:46:25.97 ID:+2lIT2P6a.net]
>>483
自動って表現が新しいw

確かにそんなメソッドがあってもよさそうだけど、
たぶん分かりやすい命名がしづらい割には単純にRemove後のAddで
実現できちゃうから用意されてないんじゃないかなと想像

503 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:07:55.31 ID:zfSfgMG3d.net]
多分無いのかな?
「dictionary 拡張」で調べると拡張コードが出てくるからこの辺りから必要なのコピペして関数増やした方が早いかも

504 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:34:02.36 ID:wmh3wxbj0.net]
dicHoge["Key"] = "hoge";
これの何がダメなの?

505 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 19:16:07.42 ID:Is8hbjin0.net]
>>483
> dicHoge["Key"] = "hoge";
> ってしたとき、Key がなかったら Add して、あったら値を差し替える、みたいな動きする標準クラスないですか?
Dictionary<TKey, TValue>はまさにその挙動だが

506 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 19:16:34.95 ID:nQoHUWUF0.net]
何か別の言語と勘違いしてんのかな
C++のmapみたいに存在しないキーにアクセスしたら自動的に初期値が入ればいいなと思ったことはある

var d = new Dictionary<string, int>();
d["a"]++;

こういうのできたら楽

507 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 21:30:37.03 ID:yHmpMqGVM.net]
>>483
var

508 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 21:46:52.01 ID:2xzbyMOq0.net]
hashset



509 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 00:06:39.55 ID:1o0umz0dp.net]
拡張メソッド作ればええんちゃうか

510 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 00:37:05.77 ID:SfS6VrgI0.net]
そーいえば、ちょっと便利な Dictionary を作りたくて、これの完全ラッパーなクラスを作ったことあったな。
いまから考えれば無駄な労力だと思うが。w

511 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 00:46:34.52 ID:Lo/lI1+50.net]
そんでDictionaryのインデクサが要求そのまんまの挙動であることについてはどういう見解なのだ
なんでそんな質問したんだ
気になるだろ

512 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 01:27:01.49 ID:Melu7CRC0.net]
.Addメソッドも存在してるから
初見だと[]=valueがAddOrUpdateだとは思えないのはまぁ分かる

513 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 03:22:41.97 ID:V0cnsy7O0.net]
質問する前にちょこっと作って見ればすぐ分かるのに

514 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 12:54:05.03 ID:hIHuQnKx0.net]
>>474
ありがとうございます
D3DKMTWaitForVerticalBlankEvent に渡す
D3DKMT_WAITFORVERTICALBLANKEVENT の
以下の3つはどのように取得すればよいのでしょうか
D3DKMT_HANDLE hAdapter;
D3DKMT_HANDLE hDevice;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;

515 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 17:55:46.18 ID:mF+gwDus0.net]
var dicHoge = new Dictionary<string, string>();
dicHoge["Key"] = "hoge";

って、いきなり出来ちゃうんですか。
ダメと思って試しもしなかったです。

516 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:45:15.00 ID:9eIyz51RM.net]
System.Data.DataTable なんて使ったら悶絶しちゃうかもな

517 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 19:27:14.70 ID:Lo/lI1+50.net]
>>498
そのくらい自分でぐぐって調べろ
と突き放そうと思ったけど要望そのまんまのコードが出てきたのでまあええわ

https://github.com/fuse-open/fuse-studio/blob/master/Source/Fusion/Windows/VerticalSynchronization.cs

素直にIDXGIOutput::WaitForVBlank辺り使った方が良いと思うけどネ

518 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 12:37:02.16 ID:ZxPovaO5M.net]
>>495
俺も最近似たようなもんが欲しくなったときがある

・重複したときに別の処理が必要
・登録した順番が重要

ってときにDictionary自体使わんで
KeyValuePairのListばっかり使うようになった
つーのはログの出力まで出したいときに登録した順に出したいから
ログ出力するもんにはDictionary使わなくなった



519 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 15:42:40.54 ID:jpAIKS8U0.net]
ログ取ってるなら逆にDicで困らんと思うけど

520 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 15:49:56.24 ID:IKDI2S7C0.net]
>>503
入れたときじゃなくて別のタイミングで出したい
順番に保証がないと困る
って場面

521 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 15:58:01.30 ID:7GVwTPrN0.net]
ログ出力する時に並び替えるだけで済むのでは?

522 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 16:04:15.94 ID:IKDI2S7C0.net]
>>505
どうやって?

523 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 16:18:53.59 ID:LOT7/zBp0.net]
つかそれKeyは何なんだよ
それがキー項目である必要あるのか?

524 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 17:01:46.98 ID:cLU3XamPa.net]
>>504

dict[key] = value;
mySpecialLogger.Log($"dictに追加したぞ: {key}, {value}");

----

mySpecialLogger.Flush();

525 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 17:56:25.94 ID:EhLznF4nM.net]
SortedListやSortedDictionaryでいいだろ

526 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 19:21:16.88 ID:ZOlWRYsg0.net]
登録順ならOrderedDictionary

527 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 11:39:31.27 ID:2YxD3k7B0.net]
>>501
できました、ありがとうございました
IDXGIOutput::WaitForVBlankは呼び出すまでがよくわからないし
P/Invokeだけでできるのかもわからないのでやめておきます

528 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 13:36:44.96 ID:AKeTBC2ia.net]
ReadOnly=trueのテキストボックスをクリックしてしまった時に
フォーカス映ってカーソルがチカチカしないようにしたいのですがプロパティ上で設定できないのでしょうか?



529 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 13:48:21.68 ID:B1LZYLJj0.net]
GotFocusのたびにWindowsAPIのHideCaretの呼び出しが必要じゃないかな

530 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 14:07:22.27 ID:/rUNKcNUa.net]
>>512
コピーを想定してそうなってるので、TextBoxを使うならその仕様は買えない方がよいのでは。
コピーなんかできなくてもいいなら素直にLabelを使いましょう。
BorderStyleやBackColorをいじればTextBoxに近い外見にも出来る

531 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 15:54:30.95 ID:AKeTBC2ia.net]
テキストボックスの上に後付けでボタン配置したので、ポインタずれて押しそこなった時にそんな感じになってしまったのです
まあ動作的にはなんの問題もないのではあるけど>>513のイベントハンドラ作ってみます
ありがとうございました

532 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 08:55:05.54 ID:3J1ruy+d0.net]
rar5をオンメモリで解凍、ストリーム取得できるライブラリは無いですか?

533 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 10:59:50.41 ID:svez8hxC0.net]
>>516
sharpcompressでそれっぽいことできてるな

https://www.nuget.org/packages/sharpcompress
https://github.com/adamhathcock/sharpcompress/blob/master/tests/SharpCompress.Test/Rar/RarReaderTests.cs

534 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 11:07:59.15 ID:svez8hxC0.net]
すまんrar5は未対応みたいなこと言ってるわ

535 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 11:21:25.96 ID:svez8hxC0.net]
ほんならこっち
7z.dllのラッパー
https://www.nuget.org/packages/SevenZipExtractor/
https://github.com/adoconnection/SevenZipExtractor/blob/master/README.md

536 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 12:48:55.07 ID:cT2SE72s0.net]
web上の画像をダウンロードせずに
高さと幅を取得する方法があれば教えてください

537 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 13:03:57.50 ID:GPC4C0Pm0.net]
電話で聞く

538 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 13:37:05.03 ID:RjbzZp8x0.net]
>>520
先頭だけ取得して解析するくらいが関の山じゃない?
https://developer.mozilla.org/ja/docs/Web/HTTP/Range_requests



539 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 15:25:13.53 ID:cT2SE72s0.net]
>>522
ありがとうございました

540 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 15:40:50.37 ID:3J1ruy+d0.net]
>>519

541 名前:
回答ありがとうございます。

SevenZipExtractorですが、プロジェクトにNugetで取り込んでも正常に認識してくれず使えませんでした。
SharpCompressですが、(まだファイルの一覧だけしか試していませんが)RAR5での圧縮ファイルを扱えました。
SharpCompressは前に使っていたことがあるので(当時はRAR5が使えなかった)、こちらを使おうと思います。
[]
[ここ壊れてます]

542 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 17:04:13.00 ID:CPjaAgWSM.net]
vs2013なんですけど、バーコードを作るメジャーな方法って何があるでしょうか?無料がいいです。

543 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 17:23:07.87 ID:jB1piIf60.net]
無料ならGPLv3でもええんか

544 名前:デフォルトの名無しさん [2019/02/05(火) 17:28:38.13 ID:dQJUt0gZF.net]
ライブラリいっぱいあるで

545 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 18:20:58.39 ID:C5l7MRqld.net]
>>525
メジャーなのはZXing

546 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 21:05:22.94 ID:XsUhL+1b0.net]
何かライブラリ無いかなと思ったらまずNuGet見てみる

547 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 12:34:37.03 ID:ymLQaaTBd.net]
C#で書いたコードをVBAから呼び出す際のC#でのやり方を教えてください。

例えば、MessageBoxで「Hello!」と表示するには何をどうすれば出来ますか?
使ってるのはVisualStudio2017です。

548 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 12:38:03.13 ID:ymLQaaTBd.net]
>>530
引数でHelloを持ちかえる方法です。



549 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 13:05:34.43 ID:pq3DhSMgM.net]
日本語でOK!

550 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 13:11:17.81 ID:/72vyC150.net]
>>530
ググレカス

C#で実装したコードをVBAとかVBから使う方法 : 実験ぶろぐ(仮)試供品
https://needtec.exblog.jp/21522702/

551 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 16:15:23.61 ID:sqv9vum40.net]
https://gist.github.com/katabamisan/5231237

上記サイトのIniFileクラスでBufferExpandingSizeを小さくしてから
GetSectionNamesを呼び出すとループ2回目のGetPrivateProfileString呼び出しのタイミングで
例外も発生せずにプログラムが異常終了してしまうのですが何が問題なんでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:20:24.61 ID:ymLQaaTBd.net]
>>533
書いてるコードの意味がよくわからないので単純なコードが知りたいんです。

553 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:30:37.80 ID:1DcU3Gnhp.net]
コードコピペして自分の使ってるクラスに直せば出来ると思うけど
インターフェース作ってなければクラスから作って置き換えればサンプルコード通りに動くはず

554 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:54:31.06 ID:cXGNS95ra.net]
>>535
C# メインルーチンからメッセージボックスを表示
VBA shellを使って↑を起動

555 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 21:20:24.24 ID:SSakxrcH0.net]
>>534
GetPrivateProfileStringの定義がCharSet.Unicode指定してるから
第5引数のnSizeはwchar_tの個数を指すことになる
wchar_tは2バイトだからnSizeに16指定したらlpReturnedStringは32バイトあることになる
でも実際にはその半分の16バイトしか確保してないから
GetPrivateProfileStringが17バイト目以降に書き込もうとしてヒープ破損する

556 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 10:39:20.42 ID:BTY8+ybz0.net]
>>538
文字セットのことがすっかり頭から抜けてました
WinAPIを使うなら真っ先に気を付けないといけない部分なのになあ

・ReAllocCoTaskMemで確保するサイズをlength*2に

557 名前:変更
・GetPrivateStringのCharSetをAnsiに変更、文字列への変換をPtrToStringAnsiに変更

上記2通りの修正でどちらも正常動作することが確認できました
回答ありがとうございました
[]
[ここ壊れてます]

558 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 18:21:29.96 ID:yK9ubdQXd.net]
VS2017使用。
ADOを使ってエクセルのシート名を読んだりセルのデータを読み取りたい。
対象エクセルブックは〇〇.xlsのみ

ネットのサンプルコードをコピペして使ってもエラーでさっぱりです。
何かインストールが必要なんですか?それとも参照設定とか必要なんですかね?

なんか雛形のコードでもあればいただけませんか?



559 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:01:48.27 ID:l2uiBAtS0.net]
具体的にどのサイトのコードを試したら
どんなエラーメッセージが出たのかを書いてくれ

560 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:28:54.09 ID:yK9ubdQXd.net]
https://qiita.com/OneK/items/c3077aea595635f40ee5
このサイトの下のコードです。

adp.Fill(dt);←ここでエラーです。

return dt;
}

今パソコンから離れたのでエラー内容は忘れましたが何かがないぞみたいな感じでした。

561 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 20:24:29.71 ID:3NiqE0/P0.net]
>>540
https://csharp.keicode.com/topics/how-to-use-exceldatareader.php
これじゃあかんの?

562 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:34:46.19 ID:FLUWNW3J0.net]
>>543
これも明日試してみます。
でもいろいろとコードの引き出しがあったらいいなって

563 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:37:56.26 ID:FLUWNW3J0.net]
>>543
速度はどうなんですか?早いですか?

564 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:02:28.76 ID:O0GaOve00.net]
>>545
ウゼェ、やる気がねーなら
エロゲでもやってろ

565 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:23:39.18 ID:iyj2o48P0.net]
こんばんはよければ教えてください
c#で社内用のソフトをしこしこ作っているものなのですが、同じ境遇の方ヘルプファイルはどの形式で
作っていますか? chmファイルは今時便利なツールもないので作りにくいのですが、pdfではなんか味気ない

今回新たなソフトを社内でリリースするので悩んでいます。

あ、ちっちゃい会社です。

566 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:28:55.73 ID:CKGjxJfq0.net]
もしかしてc#全く関係ない話?

567 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:35:04.98 ID:VZhzokSX0.net]
> pdfではなんか味気ない

その謎の価値観を改めればすべて解決です

568 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 23:39:26.83 ID:Q7Nq6LQdd.net]
>>547
sandcastleでchmやHTMLのヘルプを簡単に生成できるよ



569 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 23:40:23.99 ID:Q7Nq6LQdd.net]
>>548
C#のコメントからヘルプを生成する話だよ

570 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 23:47:55.01 ID:O0GaOve00.net]
doxygen的なのって新しいの出た?

571 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:00:34.72 ID:JeOi55qM0.net]
sandcastleなつかしい

572 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:09:17.11 ID:yxq5pHtX0.net]
>>553
今でもメンテしてる人いるし!
https://github.com/EWSoftware/SHFB

573 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:42:26.66 ID:zMW+eOHy0.net]
markdownで書いてhtml出力

574 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:59:36.44 ID:wLiZux8Md.net]
>>555
ソースコードから生成しないのは非効率でしょ

575 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:02:48.69 ID:kZW3St4e0.net]
ソースコードから設計書出すならわかるけど、今回の質問はヘルプファイルでしょ?

576 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:18:59.44 ID:e7pcoQvna.net]
社内ならConfluenceみたいなwiki的なサービス使えば?
ファイルで配ると後でメンテに苦労することになるよ

577 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:22:13.31 ID:yxq5pHtX0.net]
>>557
C#のスレなんだからヘルプと言えばクラスリファレンスだろ

578 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:45:40.32 ID:NCJ1sppLp.net]
ユーザー向けのヘルプファイルだろ
質問した本人出てこないから結論出ないけど



579 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 06:02:12.24 ID:86VvLP3ma.net]
簡単なゲーム作ってみたのだけど仮にこれを配布するとしたら
動作環境は何を基準にして明記したらいいのでしょうか

Windowsの人なら特になにか入れてもらわなくてもだいたい動くってことでしょうか

580 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 07:19:45.32 ID:en2thcC6M.net]
>>555に一票
俺はAsciiDocだけど

581 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 07:20:35.11 ID:Weq4zX9xd.net]
対処にした.netでしょう。

win7はデフォだと3.5
win8がデフォだと4.5
win10はデフォ4.6がはいってる。
win8とwin10は3.5系はデフォでは入ってない。
一般的には、4.5で作っておけばトラブルは少ない。
async awaitも使えるし、入ってることが期待できる。

.net coreは開発者でないと、入れてることは期待できないので、入れてもらう形かね。
一般の非開発者は、.net framework と .net coreの二系統に大きく別れてるとか
知らないので、coreは注意が必要かもねぇ

582 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 07:33:47.03 ID:JXgoNARF0.net]
むしろCoreはランタイムをSelf-containedにできるから実行環境の状況を気にせず済むでしょ
(まだデスクトップアプリの開発環境として整ってるとは言えないけどそれはそれ)

583 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 07:37:27.34 ID:N+zrhIiBd.net]
>>563
4.5はもうサポート切れだからだめやろ

584 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 14:02:16.37 ID:wLzz2paeM.net]
今更新規でFull .NET使うのはお勧めできないな
結局.NET standardはMSが早くも投げ出して崩壊し、今後は.NET Coreに一本化される
既存の.NETアプリは全てレガシーの産廃だ

585 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 14:09:17.61 ID:N+zrhIiBd.net]
>>566
ASP.NET Coreも、3.0からは.NET StandardじゃなくてCore3.0だけをターゲットにするしねw

586 名前:デフォルトの名無しさん [2019/02/08(金) 16:42:05.01 ID:DCBa2RJt0.net]
指定のdatetimeまで待つ処理はどのように書けばよいでしょうか?
GUIアプリケーションで出来れば待っている間も操作可能
なるべくcpuの負担が軽くなる方法が良いです
よろしくお願い致します。

587 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 16:47:22.48 ID:xI0+6qTx0.net]
>>568
それは、まず、タイマーを起動して、1秒間に一回程度、自前の関数が
呼び出されるようにしておく。そして、その自前の関数で現在の日時を
取得して、条件に合う日時になっているか調べる。そして、条件に合って
いれば、好きな処理をする。そうすればいい。

588 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 16:58:08.14 ID:hTn4Mfg30.net]
>>569
Thread.Sleepの方がいいんじゃね?



589 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:08:32.00 ID:wLzz2paeM.net]
>>568
タスクスケジューラ

590 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:20:02.58 ID:xI0+6qTx0.net]
>>570
それだと GUI の処理がほぼ完全に止まってしまい、アプリがほとんど操作不能
になるハズ。

591 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:23:59.58 ID:T5iT/olM0.net]
>>568
アプリが起動しっぱなしなら指定日時から現在日時を引いて
await Task.Delay()等でタイムアウト待つとか、他は>>571かね

592 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:28:55.52 ID:1w1isakW0.net]
do-whileもいいと思う

593 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:33:15.83 ID:hTn4Mfg30.net]
>>572
待つロジックをThreadにすればいいだけじゃね?

594 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:48:48.00 ID:xI0+6qTx0.net]
マルチ・スレッドというのは、プログラミング経験を沢山積んだ人が使うもので、
非常に原因の特定が難しいバグを引き起こすことがあるので、初心者には
お勧めできない。同期オブジェクトや atomic アクセス、volatile などを
正しく

595 名前:理解してからでないと危険を伴うことがある。

async も独特で複雑なことをやっているので、プログラミング初心者が、何が起きて
いるのかを理解するのは難しい。なんとなく動くかもしれないがうかつに使うのは
やめたほうがいいと思う。
[]
[ここ壊れてます]

596 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 17:50:59.48 ID:xI0+6qTx0.net]
async は、↓のような複雑な control flow になる。
それを全部理解してから出ないと危険。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/media/navigationtrace.png
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/

597 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 18:11:51.00 ID:JXgoNARF0.net]
GUIちゅーてんだから普通にWinforms/WPFのTimer/DispatcherTimerを紹介すりゃええんでないの
数日間待機させたいとかになるとまた話が違ってくるしもうちょい質問の要件をハッキリさせて欲しいけど

598 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 18:25:10.33 ID:ccTwL3cjM.net]
指定日時後の起動はタスクスケジューラに任せた方が良いと思う
GIU側の仕事はスケジューラヘの登録と指定日時にスケジューラが起動したプロセスとの通信



599 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 18:28:22.25 ID:xI0+6qTx0.net]
C#も汚い言語になってきたなー

600 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 18:32:16.25 ID:xI0+6qTx0.net]
なんか、JavaScript そっくりになってきる。JavaScript は汚いのにな・・・。

601 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 18:49:11.69 ID:5c9t7/Awd.net]
汚いとは?

602 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 18:56:00.90 ID:wLzz2paeM.net]
JavaScriptそっくりもクソも、JavaScriptのasync/awaitはC#が発祥だぞ
それをJavaScriptもPythonもKotlinもそっくりそのまま真似した
汚い機能だと感じる君の感覚は否定しないが、好みは別にして非同期プログラミングのデファクトスタンダードであるのは事実だ

603 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 19:49:11.94 ID:lL88DpXz0.net]
割り込んですまない。
SolrNet を使ったことあるヤツがいたら知恵を貸して欲しい。

SolrNet を使ってこんなことをやってみた。

Startup.Init<[適当なモデルクラス]>( [SolrのサーバーURL] );
var solr = ServiceLocator.Current.GetInstance<ISolrOperations< [適当なモデルクラス] >>();

まあごく当たり前の初期処理なのだが、実行すると2行目の Current の中身が null でヌルポエラーになる。

原因がわからなくてしばらく悩んで、GitHub にあるサンプルコードをダウンロードしてきてコピペしても同じだったのだが、
ダウンロードしたソリューションをビルドして実行するとこの部分を問題なく通過する。
またしばらく悩んで、nuget でダウンロードしてくる SolrNet のバージョンに違いがあることに気がついた。
どうやらバージョンが 0.5 以下だと通過し、それ以降のバージョンだとヌルポエラーになるようだ。

最新のは 1.0.1 だったか、このバージョンで上の部分を通過させるに必要な事はなんだろう。心当たりがあったら教えて欲しい。
0.5 の辺りって、その辺りを境に他のパッケージを参照するようになってるぽいのだけど関係があるだろうか。
これを使えってご指定なんだよな。。

604 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 20:41:31.54 ID:OM4aCJGta.net]
>>568
一応これでできるけど、これがベストかどうかは知らん
private static async Task WaitTillAsync(DateTime dt)
{
  var now = DateTime.Now;
  var span = dt > now ? dt - now : TimeSpan.Zero;
  await Task.Delay(span);
}

private async void button1_Click(object sender, EventArgs e)
{
  await WaitTillAsync(DateTime.Now.AddSeconds(10));
  MessageBox.Show("10秒後にこんにちは");
}

>>566
マジですかw

605 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 2 ]
[ここ壊れてます]

606 名前:1:46:41.47 ID:tTA+g4g80.net mailto: >>585
それだとNTPで時計合わせが発生したらズレる
素直にSystem.Timers.Timerで500ms位ごとにElapsedさせて、
指定時刻を過ぎてないか見るのが簡単。

マイクロ秒まで精度出したいっていうのなら、そもそも使うOS間違ってる。
[]
[ここ壊れてます]

607 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 22:17:53.01 ID:uDI35RTx0.net]
>>583
Rustは結局どうなったんだっけ?

608 名前:デフォルトの名無しさん [2019/02/08(金) 22:27:25.20 ID:DCBa2RJt0.net]
みなさんありがとうございます。
一応自分で書いていたのは>>585さんに近くて設定時刻前ならそのまま、設定時刻を過ぎてたら一日足して現在時刻との差をawait Task.Delayしました。
タイマーの精度はそんなに必要なく1分間隔で大丈夫で、24時間起動で毎日朝8時から夕方17時までプログラムを止めるみたいな感じです。
同じプログラムを大量に起動するので処理はなるべく軽いのが希望で
ループ処理で毎分チェックするようなのは重いイメージがあるのですが大丈夫でしょうか?
また、時計合わせが発生したらズレるというのはどういうことでしょう?



609 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 22:30:54.02 ID:wLzz2paeM.net]
>>588
ポーリングが嫌ならタスクスケジューラを使えばいい
プログラムから簡単に登録できる

610 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 22:53:24.62 ID:OM4aCJGta.net]
>>586
えらい重箱の隅だけどまあそうだねw
private static async Task WaitTillAsync(DateTime dt)
{
  await Task.Run
  (
    () => { while (dt > DateTime.Now) Thread.Sleep(500); }
  );
}

611 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:23:03.92 ID:wLzz2paeM.net]
>>590
プロセスが落ちることを想定せよ
NTPなんかより遥かに影響を受ける可能性の高い事象である
やり直し

612 名前:デフォルトの名無しさん [2019/02/08(金) 23:32:28.45 ID:Waqd0NNdr.net]
どのへんでプロセス落ちるの?

613 名前:デフォルトの名無しさん [2019/02/08(金) 23:33:09.16 ID:DCBa2RJt0.net]
>>590
Thread.Sleepの所Task.Delayにしても大丈夫でしょうか?

614 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:42:34.81 ID:wLzz2paeM.net]
>>592
どこでも
質問者は24時間起動って言ってるんだから当然想定すべきだよ

615 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 00:44:22.99 ID:jhOjUKEBa.net]
>>593
もちろんいいと思うけど、

() => { while (dt > DateTime.Now) Thread.Sleep(500); }

async () => { while (dt > DateTime.Now) await Task.Delay(500); }

に文字数が増えて、使うTaskも増えて、かといってメリット無いような気が

616 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 00:46:47.47 ID:3dJvh84X0.net]
await, async は、簡単なことを難しくしてしまう。

617 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 00:52:22.81 ID:8aikkfMy0.net]
C#は、もはや、C++やCとは似ても似つかなくなってしまってる。
control flow がめちゃくちゃ複雑で、何をやってるのかわからなくて
生ポインタの1,000倍危険。

618 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 00:58:38.23 ID:jhOjUKEBa.net]
() => { while (dt > DateTime.Now) Task.Delay(500).Wait(); }
の方が素直か。
何かTask.Delay使った方がいい理由ってあるかな



619 名前:デフォルトの名無しさん [2019/02/09(土) 01:13:05.43 ID:dvMZ7Shb0.net]
PDFファイルからテキストを抽出する方法でオススメはありますか?
調べたところiTextSharpとPDFBoxは見つかりましたが、たまに読めないPDFがあるのが残念です。

620 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 01:45:47.26 ID:8aikkfMy0.net]
C# の async, await を開発したのはこんな人。写真付き:

https://www.orioninc.com/c-async-and-await-programming-model-from-scratch-introduction/

621 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 01:49:31.12 ID:kYloXoqBd.net]
>>599
一番確実なのは製品版のAcrobatを使うことではないでしょうか

622 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 01:49:48.79 ID:U3ljW3xz0.net]
>>598
この流れでもう二回書かれてるけどawaitしないとその間メッセージキュー処理できないでしょ
あとTimer使えば済むロジックを自分で書かないの

623 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 01:55:33.22 ID:dvMZ7Shb0.net]
>>601
私の技術力が低いので初心者用スレで質問させていただいたのですが、それを購入したとして初心者でもネットで調べる程度で可能ですか?
上に書いたiTextSharpとPDFBoxは、ネットに転がってたソースを丸パクリでやりました。

624 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 02:16:09.35 ID:UMSUoHVI0.net]
>>595
後者はTask.Run()が不要だから、むしろタイプ量は減るよ。

await Task.Run( () => { while (dt > DateTime.Now) Thread.Sleep(500); } );

while ( dt > DateTime.Now ) { await Task.Delay(500 ); }

625 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 02:39:48.15 ID:U3ljW3xz0.net]
ん? Task建ててる部分見てなかった、俺のレスのは忘れて

626 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 02:40:17.09 ID:UMSUoHVI0.net]
後、細かいことを言うと、
Task.Run()でThread.Sleep()だとSleep()してる間もThreadPoolのThreadを1つ占有してしまうが、
Task.Delay()ならその間はThreadPoolのThreadが開放される。

627 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 02:47:07.48 ID:jhOjUKEBa.net]
>>602
スリープするのはUIスレッドじゃないのでそれはありませんよw

これ、ちょっと前にも書いたけど、Timerを使った方が可読的になる場合ももちろんあるし、
そうでない場合もある。

つまり、別に車輪を再発明してるんじゃありません。

質問者がどっちのケースかは分からない

628 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 02:54:59.91 ID:jhOjUKEBa.net]
>>604
ああ、なるほど。
正直非同期メソッドって書きなれてないから目からうろこ



629 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 03:02:23.38 ID:zy9w8qc80.net]
>>603
SDKは自由にダウンロードできるからドキュメント見て自分で判断しておくれ
https://helpx.adobe.com/jp/acrobat/kb/2558.html

630 名前:デフォルトの名無しさん [2019/02/09(土) 07:11:19.34 ID:Bzu1ndzH0.net]
待つだけの処理で1スレッド消費しちゃうのは良くないな
かといって単純にAwaitを使っただけのコードだと、どこかでデッドロックが生まれる可能性が増えたり、待てずにメインスレッドが抜けてしまったりする危険が出てくる
ここはコルーチンしか無いでしょ!!コルーチン最高!!!!

631 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 07:16:35.24 ID:rkd3w/wq0.net]
タスクスケジューラにしとけよ

632 名前:デフォルトの名無しさん [2019/02/09(土) 07:35:28.00 ID:Bzu1ndzH0.net]
タスクスケジューラはC#自体の機能じゃないからな、漢は黙ってコルーチン!!!

633 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 07:42:48.42 ID:onf/I33CM.net]
私、待つわ〜何時までも待つわ〜
例え対象スレッドが落ちていても〜

634 名前:デフォルトの名無しさん [2019/02/09(土) 08:32:22.73 ID:6iVlgEPUr.net]
>>594
それ非同期関係なくない?

635 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 08:45:27.49 ID:O6W3Dl2k0.net]
>>583
kotlinはそっくりそのままと言えるものではなく
奇怪な何かになってる

636 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 08:47:26.04 ID:O6W3Dl2k0.net]
>>614
次はWindowsが落ちることを想定しよう

637 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:10:00.80 ID:YnD8XTKW0.net]
c++はc#の何倍難しいですか?

638 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:13:22.03 ID:onf/I33CM.net]
C# → C++/MFC なら大して変わらないかも



639 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:13:26.70 ID:902JN4xl0.net]
256バイ

640 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:17:48.96 ID:k8PbCSORM.net]
言うほど難しくはない
同じものを作るために3倍程度の工数がかかるだけ

641 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:24:28.88 ID:YnD8XTKW0.net]
個人で使うものではない感じですか?
openglを扱うためには裂けては通れないようですが

642 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:31:34.31 ID:k4TwxJVN0.net]
>>621
opengl c# でググったらいろいろヒットするが
DllImportがめんどくさいのはわかるが避けて通れない理由があるのか?
C++でやらなきゃって思うのならC++のスレへどうぞ

643 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:35:32.77 ID:YnD8XTKW0.net]
ラッパーのほうが情報すくなくて難しそうなので

644 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:39:46.24 ID:U3ljW3xz0.net]
>>621,623
> 個人で使うものではない感じですか?
個人で使うのになんら障害はない

> openglを扱うためには裂けては通れないようですが
OpenTKとかあるし別に必須じゃない

> ラッパーのほうが情報すくなくて難しそうなので
じゃあC++で学習すれば?

645 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:41:56.63 ID:O6W3Dl2k0.net]
このレベルでOpenCVに手を出して何ができるんだって感じもある
チュートリアルを通してやるのがせいぜいか

646 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 12:15:17.08 ID:yiDYsHnZ0.net]
>>625
OpenCVとOpenGLは別物だよ

647 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 12:25:47.28 ID:6TG0Gkwea.net]
>>617
テンプレートの深みにはまらなければC++のほうが素朴で簡単

648 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 12:37:08.87 ID:PsW6cRYq0.net]
この人3ヶ月前からこういう質問ばっかしてる
一体いつになったら手を動かすんだろう



649 名前:デフォルトの名無しさん [2019/02/09(土) 13:27:48.74 ID:Bzu1ndzH0.net]
やっぱコルーチンだわ
コルーチン質問がいくらあっても全くロックが起きとらん!スレッドを丸々潰してもいない!最強!!

650 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 14:30:31.24 ID:8aikkfMy0.net]
>>620
そんなかからん。せいぜい 2割り増し程度。
でも、ブラックボックスが少なくて何やってるのか分かりやすいので、
はまりにくいかも。

C#のasync, awaitなんて初心者が理解できるものではない。

651 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 14:37:30.48 ID:O6W3Dl2k0.net]
>>626
ごめん
俺の目が悪かった

652 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 15:30:22.75 ID:zy9w8qc80.net]
C#はクラスライブラリも簡単に逆アセンブルできるからブラックボックスは少ないよな

653 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 16:47:05.41 ID:dvMZ7Shb0.net]
>>609
ありがとうございます。

654 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 22:52:17.77 ID:5t5ZiBxh0.net]
WPF, Windows Form の二種類があったり、Xamarineを使うかどうかが
あったり、C#も複雑極まりないんだね。GDI がセンスがない関数群だったので
嫌われたこと、MFCが汚かったこと、Direct3Dが汚かったこと、COMが
汚かったこと、ActiveX がさらに訳分からなかったこと、の再来を感じる。
「非同期処理」もスレッドをいくつでも起こすタイプや、Poolみたいな
ことをやるタイプ、以外にいくつもあって、さらに最後に async, await
が Synax Suger になっているんだね。なんという複雑さ・・・。
また、スレッドを起こすのに 1MB もメモリが必要・・・・。
なんという無駄使い。

655 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 22:54:12.95 ID:5t5ZiBxh0.net]
結局、.Net Standard が破棄されて、.Net Core だけが残るといううわさを聞いた
けど、やっぱり Xamarine が捨てられていくのかな。買収時点で最初から
予想されたことだけど。

656 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 22:59:09.93 ID:VPSQr41Ud.net]
またC#嫌いのお前か

657 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 23:07:49.24 ID:HZrCyM150.net]
>>634
> 「非同期処理」もスレッドをいくつでも起こすタイプや、Poolみたいな
> ことをやるタイプ、以外にいくつもあって
具体的には?
いくつもあるなら2,3挙げてみてよ

658 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:07:00.86 ID:P1Q5YmOJ0.net]
>>637
↓ ここを読んでくれ
www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/masterasync_01_02.html

数え方にもよるが、恐らく6〜8種類くらいあると思う。



659 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:09:30.45 ID:P1Q5YmOJ0.net]
多分、
1. Thread
2. ThreadPool
3. Event-based
4. Async Programming Model
5. Reactive Extensions
6. Task-based
7. async/await

の 7種類だと思う。もっとあるかも知れないけど。

660 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:09:35.84 ID:XpZrG1uz0.net]
APM、EAP、TAPなんかを言ってるのかね? 単に時代の流れじゃないの
レガシーをタスクにする方法もあるし、.NETはネイティブスレッドではなかろう
開始元へ差し戻しが多いからawaitがあるだけで結局Task推奨になってると思うけど

議論が活発なのは結構だが、ぽこぽこ増えていく言語

661 名前:バージョンを見てると不安は抱く []
[ここ壊れてます]

662 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:32:53.23 ID:c9rRoNSM0.net]
時代の流れだねぇ。
今ならTaskとasync/awaitだけ覚えておけば事足りる。
Rxも場合によってはあれば便利だけど。

663 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:46:35.13 ID:P1Q5YmOJ0.net]
それは言い訳で、見通しが悪かったって事なんだ。

664 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:53:56.42 ID:Mw20IJUM0.net]
まあXamarin用済みなのは確か

665 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:58:27.31 ID:AzzfBWDja.net]
async/awaitの効率は最近は大幅に改善されつつあるよ
ただし.NET Coreに限る

666 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:03:53.77 ID:P1Q5YmOJ0.net]
効率以前に、訳分からん。
設計した人が実は能力が足りないんだって。

667 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:05:47.39 ID:P1Q5YmOJ0.net]
アメリカ人はなめ過ぎてる。
独占的地位を利用して。
こんなくそ設計しやがって。

668 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:12:55.80 ID:ys0otiK+0.net]
(ワッチョイ 8261-VUEs)
この人、年中非同期処理が理解できないと繰り返し言ってんな
いい加減理解しろよw



669 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:25:57.34 ID:bwecUq1Z0.net]
良かったな
訳わからんものが他の言語にも波及したぞ


※非同期プログラミングの次回作にご期待ください

670 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:38:14.50 ID:P1Q5YmOJ0.net]
C# は VB と似ており、C++ とは似ても似つかない。

671 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:38:53.56 ID:c9rRoNSM0.net]
>>642
17年の歴史があって、技術的トレンドを比較的積極的に取り込んできてる言語に
それを言うのは言いがかりというかお門違いだろうw

672 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 02:34:19.06 ID:98Upnegk0.net]
>>647
そいつにとっては、ぼくの理解できないもの=設計が悪い、だからな。
自分がバカだとは認められないんだろう。

673 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 02:52:23.04 ID:LkwxzeRxd.net]
>>635
破棄される?ソースは?

674 名前:デフォルトの名無しさん [2019/02/10(日) 08:46:39.23 ID:uz05qYWIr.net]
c#にはあってVBにはないものってないんだよな
.net CoreでもVB採用されてるし

675 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 08:54:49.60 ID:fHBGeROaM.net]
for文の挙動が違うだろ

676 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 09:08:02.67 ID:YTe/5aEc0.net]
>>651
スパゲッティーなアルゴリズムを作ってしまっただけなのに気付いてない。
理解できないのではなく、馬鹿馬鹿しくて腹が立つだけ。
頭のいい人は、もっと良い方法がすぐにひらめくから。

677 名前:デフォルトの名無しさん [2019/02/10(日) 09:09:03.29 ID:o5rWkmWO0.net]
>>653
unsafe

678 名前:デフォルトの名無しさん [2019/02/10(日) 09:21:34.97 ID:0K2cdDeF0.net]
>>655
君は「高卒の天才」ってやつかい?



679 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 09:24:33.66 ID:YTe/5aEc0.net]
C# のこの書き方は、35年前の Microsofot の N88-BASIC の
def fn にそっくり

[C#]
int f(int n) => n >= 1 ? n * f(n - 1) : 1;

[N88-BASIC]
DEF FN名前 [ ( 引数名 { , 引数名 } ) ] =式

10 DEF FNZEIKOMI(P)=P*1.08
20 INPUT "zeinuki kakaku";KAKAKU
30 PRINT "zeikomi kakaku";FNZEIKOMI(KAKAKU)

680 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 09:51:24.70 ID:Ah0fiaOg0.net]
ま、作ったアプリではなくソースコードを自慢するようになったらプログラマは引退したほうが良い

681 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 12:59:28.51 ID:7jl+t3as0.net]
キブハブとかいう謎の団体に監視されてるからソースのエレガントさにも気が抜けない時代

682 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 13:18:41.19 ID:YTe/5aEc0.net]
アメリカって、バイナリだと信用されないんだろうか。
アメリカは悪い人だらけなので武器を持たなきゃならないのが、それが安全な日本にまで波及していて、
セキュリティーソフトのせいでPCの能力は結構落ちるし、自作プログラムが誤検出されて
風評被害は出るしでいやな時代になったな。

683 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 13:20:59.07 ID:YTe/5aEc0.net]
アメリカじゃ、大手企業から以外はバイナリが信用できないから、
無料ソフトのバイナリが入手できない。それで日本まで生産性が下がって来た。
いつのまにか、そんな必要のない日本まで巻き添えになってる。
それに日本人は気づいてない。

684 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 13:24:11.85 ID:HlV4ZEIt0.net]
頭やべぇのが居るぞ

685 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 13:24:46.11 ID:O8DkeQeoM.net]
バイナラ

686 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:04:14.11 ID:AojW1eCFa.net]
何作るか思い浮かばん
こんなときどうすれば

687 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:11:09.31 ID:ys0otiK+0.net]
>>665
寝たらいい

688 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:13:22.67 ID:T7WkpnKgM.net]
>>665
持ってる技術に対して歩んできた人生がクソ過ぎてバランスが悪い



689 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:17:09.65 ID:0+1G/wKUa.net]
>>659
ソースの綺麗さはプロダクトの品質、価値に大きな影響を与える
君はなにもわかってない

690 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:22:24.87 ID:T7WkpnKgM.net]
>>668
具体的な数字あるんですか?

691 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:31:40.45 ID:0+1G/wKUa.net]
>>669
ありますがどこの企業も社外秘でしょう
あなたの会社のコードを計測してみてください
話はそれからです

692 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 14:36:01.60 ID:T7WkpnKgM.net]
>>670
そうですか?
じゃあ、有名なオープンソースとか参考にしてやってみますね

693 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 16:14:54.28 ID:98Upnegk0.net]
>>670
ソースの綺麗さを計測する定量的な評価方法を示してくれ。話はそれからだ。

694 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 16:17:08.69 ID:0+1G/wKUa.net]
>>672
ググれ
コードメトリクスを測定する手段は無数にある

695 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 16:45:07.74 ID:VHz3VazZ0.net]
>>672
品質=(売上-コスト)÷行数

696 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:17:02.13 ID:6Yt6QBhU0.net]
ツリーを表示する部分はtreeviewですが、treeviewの中身を表示する領域はどのツールを使う運でしょうか
エクスプローラのメイン画面のことですね

697 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:42:16.76 ID:96GWWqq3M.net]
>>675
そんなものはない
何を表示したいかなんてアプリ次第だろ
要件に応じて自分で作るんだよ

698 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 19:41:33.15 ID:ys0otiK+0.net]
>>675
エクスプローラのメイン側はリストビューだよ



699 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 05:09:40.45 ID:Q8pHabNH0.net]
回答有り難うございます。
wpfテンプレートを使っているのですが、リストビューというツールは存在しないようですが、wpfにありましたか?

700 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 05:15:04.04 ID:Q8pHabNH0.net]
ありました
ごめんなさい

701 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 08:30:23.01 ID:sPHRyGkO0.net]
textBoxコントロールでスクロールバーが表示されている状態で
スクロールバー上で右クリックするとスクロールバーのコンテキストメニューが出ますが
richTextBoxコントロールだと出ません。textBoxでは出る標準の右クリックメニューも同様に出ません。
どうすればrichTextBoxで標準コンテキストメニューとスクロールバーのコンテキストメニューを出せるでしょうか

702 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 11:37:16.74 ID:XJjA7d5g0.net]
サーバサイドで使えるword操作用ライブラリってありますか?
ExcelにはPOIとかあるのですがwordは探しきれず

703 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 11:45:15.95 ID:uhV1eG5ea.net]
Google Docsで作ってWordにエクスポートしたら

704 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 12:49:33.20 ID:MkFOBvt90.net]
>>681
Apache POIはExcel専用じゃないけど?
https://qiita.com/mine820/items/e1022ac51466bb34186d

705 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 20:34:36.03 ID:Q8pHabNH0.net]
listviewの使い方について、超初心者向けに解説してるサイトを教えてください
vs2017を使用しています
いろんなサイトやyoutubeで調べてたんですが、わからないです

706 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 20:50:22.35 ID:Y0EVtjJ+0.net]
>>684
ナンシークラッツ本を買うべし

707 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 21:09:13.65 ID:+GND3QEg0.net]
>>684
知りたいのこの辺りじゃない?
ListViewコントロールへ項目を追加するには?
www.atmarkit.co.jp/ait/articles/0502/04/news121.html
ListViewのアイテムがポイントで選択、シングルクリックでアクティブにできるようにする
https://dobon.net/vb/dotnet/control/lvpointselection.html
Drag drop ListView Item from one listView to another
https://stackoverflow.com/questions/38162479/drag-drop-listview-item-from-one-listview-to-another

708 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 22:18:17.86 ID:tPbyrG7A0.net]
Q8pHabNH0がやってるのは多分WPFだよ〜



709 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 22:29:40.86 ID:sHYekHyG0.net]
いつも思う
そんなクソみたいな動作しかしない
コントロールなんてやめて
いい感じに動作するもん自分で作ればいいのに

710 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 22:33:23.81 ID:TJZlmbA+0.net]
WPFは最低でも標準でWinFormと同等のコントロール用意しておけよと

711 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 01:11:37.33 ID:VJfrEW+T0.net]
>>688
いつも思う
初心者用スレで初心者向けではないアドバイスなんてやめて
適切なスレで持論を展開すればいいのに

712 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 01:22:15.30 ID:B1oV2gIZ0.net]
>>690
それがそーでもねーと思うんだよね
使いにくいコントロールを客に納品できるレベルに持っていくって
割りと無理ゲーじゃね?

713 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 03:08:49.84 ID:0nHRi8Dw0.net]
>>690
いつも思う
バカをスルーできる耐性がいつになったら身に付くのかと

714 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 03:12:17.30 ID:VJfrEW+T0.net]
>>691
標準コントロールで実現困難なことをそれで無理に実現しようとしてるならそのアドバイスでいいだろうが、
今回の質問者は(今のところの情報では)標識コントロールで不足している訳ではなく、ありものを使うことすらやっとのレベルなのだから、自分で作れというのは無茶な要求だろう。

715 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 03:12:52.20 ID:VJfrEW+T0.net]
>>691ではなく>>692でした

716 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 05:53:58.40 ID:DAeR3Vqi0.net]
そうです、wpfです
これってwinformよりも良くないんでしょうか?
見た目が良くて新しいものというイメージなんですが

717 名前:デフォルトの名無しさん [2019/02/12(火) 05:58:34.55 ID:SvKCMiwAa.net]
めくそはなくそ

718 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 06:07:05.14 ID:DAeR3Vqi0.net]
var.blog.jp/archives/69202816.html
どのテンプレートを選べばいいんでしょうか
wpf使われているソフトはほぼないと書いてあります



719 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 06:33:52.77 ID:0tNvI9Ip0.net]
WPFは専用スレがあるよ

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
https://mevius.5ch.net/test/read.cgi/tech/1513175747/

720 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 06:43:57.01 ID:0tNvI9Ip0.net]
さくっと作りたいならWinForm
見た目にこだわって、今後も続けていきたいならWPF

まぁ今からやるならWPFだと思うよ。
DPIスケーリングとか今どきの地味でめんどくさい部分の対応はやってくれている。
WinFormはさくっと作れるけど、自分でUIの部品画像つくれないなら見た目は古臭くなるし、
UIとビジネスロジックの分離も大変。

721 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 06:50:44.92 ID:n9nKxlWwM.net]
一年で600レスしかつかない専用スレ

722 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 06:55:56.97 ID:wGJ5rzVe0.net]
C#がニッチだからな
プレイヤーはjavaと一桁違うんじゃね

723 名前:デフォルトの名無しさん [2019/02/12(火) 07:07:37.35 ID:IZHpfaFj0.net]
数倍は違っても桁は違わないんじゃないのかな

724 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 07:43:09.55 ID:HQcd2HqP0.net]
5chのWPFスレとSwingスレを比較すればええのか? ええのんか?

725 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 10:49:53.10 ID:dWGWBM0h0.net]
C#で書いていると、急にLinuxみたいなのが流行りだした場合、手間が増える
だろう。この業界は、今後どうなるか分からん。

726 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 11:03:40.30 ID:GttB/eDsd.net]
>>704
そんなこと言ってたらどんな言語でもリスクあるだろwww

727 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 11:09:45.74 ID:LAva8DO10.net]
C++だと大丈夫だろうよ。

728 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 11:11:43.96 ID:DAeR3Vqi0.net]
>>699
速度も遅くて使い物にならないと効いたのですが、そんなこともないですか?



729 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 11:41:24.36 ID:VerJGrBEM.net]
>>707
それ以前に、WPFは未完成のまま既にメンテナンスモード入りしたから新規での利用はお勧めできない
MS自身がVSの開発に使うためだけにメンテされてるフレームワークだよ

730 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 11:44:21.97 ID:DAeR3Vqi0.net]
>>708
そうなんですね、c#の場合、選択肢はwindowsフォームアプリケーションしかない感じですか?
これはwin32といわれているものでしょうか?

731 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 12:22:47.98 ID:9UpkeXwQa.net]
WPFの問題点は

(1) 学習コストが高い
(2) 即時モードの描画が使えない

だと思うので、これらを気にしなきゃ、相対的に新しいWPFの方がいいんだろうけどね。
レイアウトやバインディングの柔軟性が魅力的なのは否定できない。
これは意見が分かれるけど、

(3) イベントハンドラだらけになってコードが読みづらいWindows Formの問題点の
解消を目指したはずなのに、結局かえってWPFのコードの方が分かりづらい

これもWPFが好きになれない大きな理由

732 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 12:53:00.05 ID:IcQdq56o0.net]
WPF敷居高いのは初めてづくしだからだろ。
データバインディングからレイアウトをxmlで書いて(デザイナーも使えるが)で、更にMVVMのお勉強。
だから、しんどい。

733 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 12:59:12.71 ID:IcQdq56o0.net]
wpfでもmvvmとバインディング使わなくてもいけるけど、listviewの仮想化とか使えなくなったりするが、mvvmとかも強制見たいな風潮がwpfの敷居を上げてる

734 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 13:02:29.67 ID:DAeR3Vqi0.net]
winformでやってみます

735 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 13:02:49.08 ID:IcQdq56o0.net]
androidは最初標準でデータバインディングとかなく途中で登場してMVVMっぽく作れるようになったが、
こういう風に段階を踏んで1個ずつ学び安い環境があったから良かった。

その違いだな。

736 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 13:47:31.84 ID:BXjjeidx0.net]
>>709
UWPってのもある

737 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 13:58:06.30 ID:FIdhys7p0.net]
>>689
UWP「せやな」

738 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 15:41:39.27 ID:rOtwyWX5d.net]
Xamarin.Forms+UWPならついでにiOSやAndroidにまあまあ対応できたりする



739 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 17:33:01.90 ID:DAeR3Vqi0.net]
>>715
formでやってみます
もうc++のほうがいいですか?

740 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 18:14:08.19 ID:3x+OYT1Q0.net]
好きにしろ

741 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 19:10:05.32 ID:B1oV2gIZ0.net]
>>704
c#、linuxで動くらしいぞ

742 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 19:11:51.93 ID:B1oV2gIZ0.net]
winformもlinuxで動くみたいなことも誰か言ってなかったっけ?

743 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 19:20:48.95 ID:a/nbvL/tM.net]
WPFでしんどい

744 名前:のはMVVMという宗教。
自分で新しい宗派を名のる位のずうずうしさか他人の教義にひれ伏すか
[]
[ここ壊れてます]

745 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 19:21:39.94 ID:KFZGfstbM.net]
ザマリンで鬱陶しいのは信者

746 名前: mailto:sage [2019/02/12(火) 22:02:44.11 ID:afakhEje0.net]
>>715-716
UWP のいい教科書/チュートリアルはありませんか?

747 名前:デフォルトの名無しさん [2019/02/12(火) 23:28:53.73 ID:TGYKDn8Ur.net]
UWPアプリなんて誰も使ってないのに

748 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 23:39:52.22 ID:HQcd2HqP0.net]
>>724
o https://github.com/Microsoft/Windows-universal-samples
o Windows Template Studioの吐いたひな形を眺める
o ストアにあるXAML Control Gallery



749 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 23:48:41.39 ID:mBIHBqGr0.net]
>>725
嘘をおっしゃい

750 名前:デフォルトの名無しさん [2019/02/13(水) 00:04:01.52 ID:sgtLrhrBr.net]
>>727
いやマジでしょ

751 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 00:08:16.61 ID:C9BSnIId0.net]
>>725
俺は使ってるが

752 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 00:26:20.99 ID:VGvE+KfY0.net]
>>728
Windows10使ってる人は全員使ってるやろ

753 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 04:20:16.35 ID:9xiZOSOZ0.net]
wpf使うとエディタ自体重くならないですかね

754 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 08:22:31.97 ID:9xiZOSOZ0.net]
win form=win 32ということなんでしょうか
また、これは見た目はきれいにできないんですか?

755 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 08:35:14.74 ID:9xiZOSOZ0.net]
winformってデザイナー画面のズームできないんですか


756 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 08:37:37.78 ID:hwjiROfk0.net]
>>732
WinFormでファイラー作ると、XPのエクスプローラーもどき程度しか作れないのが問題だな
見た目のカスタマイズが困難だからね

ただWin32のコンポーネントを直に使うように作れば速度は本物と遜色ない物ができる
リストビューとか使わずにエクスプローラーの部品を引っ張ってくるなら

757 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 08:45:15.81 ID:9xiZOSOZ0.net]
>>734
見た目まで自由に作る場合はC++のほうがいいのでしょうか?
面倒そうではありますが
c++でもインターフェースは何らかのライブラリを使うと聞きますが

758 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 08:57:22.13 ID:hwjiROfk0.net]
>>735
C++でもWinFormsでも頑張れば見た目を変更できないこともない
ただ、素人が一人で片手間でやる作業量じゃすまないんだわな

簡単に見た目を変えたいのならWPFがお薦め



759 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 09:06:36.72 ID:9xiZOSOZ0.net]
↑わかりました

760 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 11:27:04.45 ID:9xiZOSOZ0.net]
>>736
それなりに使いこなせるように慣れば見た目を変えるのは容易ですか?

761 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 11:44:42.10 ID:l4vsLjs90.net]
スレチだけど、WPFはMahApps.Metroがあるからな。
メトロデザイン風なら楽できる

762 名前:デフォルトの名無しさん [2019/02/13(水) 11:49:24.81 ID:sgtLrhrBr.net]
>>730
画像ビューワとか?
ExcelとかWinFormで作られているじゃん

763 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:08:48.71 ID:ARXdU5axd.net]
>>740
設定アプリ

764 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:17:19.46 ID:C9BSnIId0.net]
>>740
電卓

765 名前:デフォルトの名無しさん [2019/02/13(水) 12:19:31.62 ID:sgtLrhrBr.net]
>>741
>>742
そういうのはさ、Windows10に標準でインストールされてるやつだけど
自分で作ったUWPアプリなんか誰にも使われることはないよね
そもそもアプリストアなんか見ることは一切ないし

766 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:24:36.18 ID:tFsdkf9td.net]
>>743
ストア見てるよ
Ubuntuとかダウンロードしたもん

767 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:26:05.04 ID:e0d6KWciM.net]
ダウンロードをストアから行うことはあるが、ストアでアプリを探すことは一度もやったことないな

768 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:33:48.97 ID:EW0X8toeF.net]
当初のUWPアプリなんて誰も使ってないという主張からどんどん特定条件が増えていくなw



769 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:34:12.66 ID:2XDMMrj30.net]
>>740
スタート画面

770 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:41:07.09 ID:ARXdU5axd.net]
>>743
>>725

771 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 14:03:56.48 ID:jF7nIOB90.net]
>>739
っMaterial Design In XAML Toolkit
マテリアルデザイン風もあるよ
MahApps.Metroとの連携も用意されてる

772 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 18:31:28.53 ID:OfMy+HAU0.net]
派遣先の組込上がりのPMがWinFormでタブレット対応アプリ作れと言ってくる

せめてWPFと言ったんだけどオナニーエンジニアうぜーと言われた

773 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 19:00:57.32 ID:ixNjFQqZ0.net]
説得できないんなら諦めろ

774 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 19:09:55.36 ID:e0d6KWciM.net]
>>750
勘違いするな
お前の仕事はモノを完成させることではなく労働力の提供なんだから黙って従えばよい
お前だって成果物責任を負う立場になれば多少なりとも保守的になるさ

775 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 20:02:03.05 ID:NZaXG+jY0.net]
>>750
俺にもお前がオナニーエンジニアにしか見えないんだが。

776 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 20:19:25.70 ID:T+klQ57Ga.net]
>>750
変な言い掛かりつけてる奴は恐らくWPFだけが
今時のタッチ操作をサポートしていることも知らないだけだから相手にすることない

777 名前:デフォルトの名無しさん [2019/02/13(水) 21:17:02.96 ID:sgtLrhrBr.net]
前も言ったけどさ、ガワはブラウザで作ればいいじゃん
WinFormもWPFもUWPもいらん

Windowsアプリだがブラウザで操作する
ASP.Net Coreでもできそうだが

778 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 22:08:44.72 ID:kXEWJhMu0.net]
web cad な OSSのlibってあるのけ?



779 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 22:33:58.03 ID:luVawDgcd.net]
>>755
オナニー書き込みやめろ

780 名前:デフォルトの名無しさん [2019/02/14(木) 05:20:39.39 ID:MlsuSDTjr.net]
エレクトロンみたいな感じでいいんだよ
裏側はc#、表側はhtml, css, js
.Net CoreならMacでもLinuxでも動くし
これが一番いい

781 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 07:46:22.81 ID:Dp0xuhxW0.net]
( ´_ゝ`)フーン
好きにすれば

782 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 08:16:35.34 ID:GFNptSHh0.net]
>>758
エレクチオンみたいな感じ?

783 名前:デフォルトの名無しさん [2019/02/14(木) 11:28:10.10 ID:MlsuSDTjr.net]
バカどもには理解できないらしい

784 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 11:37:55.91 ID:SFw402Pv0.net]
ファイラを作成しているのですが、ツリービューでPC内のフォルダを検出する方法について、
どのあたりを調べたらいいか教えてください

785 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 12:34:57.27 ID:tlcLfILV0.net]
>>762
SYSTEM.IO

786 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 15:12:27.60 ID:Q59BY7+Wp.net]
>>760
こういうレスすごい好き
どうしてエレクチオンしないんだろうな

787 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 16:05:20.61 ID:SFw402Pv0.net]
>>763
ありがとぅ

788 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 20:27:11.25 ID:SFw402Pv0.net]
ソフト上でファイルにアクセスして、フォルダの中身などを表示したいのですが、まず何のフォームを使えばいいんでしょうか?



789 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 20:28:26.38 ID:e1Z71hhf0.net]
>>766
picturebox

790 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 20:37:17.42 ID:SFw402Pv0.net]
↑ありがとうございます
表示を切り替えたい場合などは、listviewなど別のものを使う感じですね

791 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 20:54:47.71 ID:KyyLfHej0.net]
質問があやふやで回答が無茶苦茶なの続いているけど遊んでいるのか?

792 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 21:19:13.61 ID:m8w/NK2F0.net]
あ?ころころすっぞ

793 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 21:27:08.41 ID:4V+YrcT70.net]
ワッチョイ変わったけど同一人物っぽいね
ソフト完成するまでずっと質問してそう

794 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 23:37:18.13 ID:Dp0xuhxW0.net]
>>771
そういうスレでしょ?

795 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 02:03:45.64 ID:olENi3qW0.net]
ある要素の中で2番目に高い数値を選ぶエレガントなlinqを教えて下さい

796 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 03:00:48.77 ID:ehpwnyaM0.net]
sortedData[1]

797 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 04:23:42.06 ID:lsxqATYQ0.net]
Distinct().OrderBy().Skip(1)
とか?
全部同じ値の可能性があるなら知らん。

798 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 04:28:01.15 ID:lsxqATYQ0.net]
エレガントとは言えない上に間違ってたorz



799 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 05:03:20.06 ID:a5xYZsMx0.net]
Distinct().OrderByDescending().ElementAt(1)
でしょ

800 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 07:02:27.81 ID:olENi3qW0.net]
>>774
その2番じぁねーw

801 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 07:03:18.02 ID:olENi3qW0.net]
>>777
ありがとうございます。

802 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 09:07:12.92 ID:joZk3VJy0.net]
>>777
だいたい良いと思うが、データが2個以上無いと落ちるよね

803 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 10:33:16.88 ID:QcXsKv+O0.net]
2番じゃ駄目なんですか

804 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 11:41:11.71 ID:a5xYZsMx0.net]
>>780
そんなもん例外キャッチすればいいでしょ

805 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:42:08.68 ID:VCl1o3iCa.net]
>>782
ArgumentException系をcatchするのは悪手だと思う

.Distinct().OrderByDescending(x => x).Cast<int?>().ElementAtOrDefault(1)
とするのはどうだろう

806 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:53:25.53 ID:Qph8FA2WM.net]
>>780
そういう状態を想定するならそもそも2番目が無い時の要件書いてないやつが悪い

807 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:56:57.66 ID:dZvrqvyod.net]
>>780
ちょっとしたQAにあらゆる異常系処理にまで対応したコードまで求めるのは違うと思う

808 名前:デフォルトの名無しさん [2019/02/15(金) 13:01:49.14 ID:tYLxs8Yjr.net]
みんなLinkつこてるの?



809 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 13:02:20.42 ID:juddEHEPp.net]
二番目に高い要素を取得っちゅーてんのに二番目が無い場合に
例外じゃなく勝手に既定値を返す方がよほど悪手じゃね?

810 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 13:04:27.67 ID:Ayyf6Kdi0.net]
c#で作られているソフトって何があるのですか

811 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 13:18:02.81 ID:VCl1o3iCa.net]
>>787
強調し忘れてたから念の為書いておくと
Null許容型にしているから「二番目に高い要素が0」の場合と「二番目が無い場合」は区別できる
それを踏まえた上で指摘してくれているなら……Null許容型使ってたらnullチェックしてくれると信じてるんだがどうだろう

812 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 13:44:54.78 ID:juddEHEPp.net]
>>789
正直そのへんは踏まえずケチつけたけど
結局エラー分岐が戻り値か例外かって話になるなら
質問者そっちのけでどちらがスマートか殴りっこしても不毛だなあ

813 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 17:22:07.61 ID:Ayyf6Kdi0.net]
vs2017でただの波括弧で特定部分を囲うと、インデントされますが、これはどのような意味を持ちますか?

814 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 17:37:00.14 ID:l6xRE0dp0.net]
超かっこいい

815 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 17:54:08.50 ID:VXffwVEC0.net]
>>791
ブロックという意味です

816 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 18:14:31.02 ID:Ayyf6Kdi0.net]
>>793
if{}
みたいな条件がない
{}
だけの状態でもエラーとはなりませんが、何の意味があるのですか?
見た目を整えるだけですか?

817 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 18:34:36.59 ID:QcXsKv+O0.net]
>>788
nikon の現像ソフト

818 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 18:35:17.81 ID:T7xyRbUnM.net]
>>794
一時変数を何度も使うときに便利



819 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 18:54:51.21 ID:Qph8FA2WM.net]
>>794
C# ブロックスコープ
でぐぐれ

820 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 18:57:50.87 ID:Ayyf6Kdi0.net]
↑ありがとう

821 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 19:10:43.29 ID:A45VNw280.net]
>>794
スコープを制限するからその中で宣言したローカル変数は外

822 名前:ナ使えない
たぶん、それ以外に違いはない
[]
[ここ壊れてます]

823 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 20:08:29.07 ID:Ayyf6Kdi0.net]
c#のwinformのmenustripの背景というのは変更できないのでしょうか
この辺はそれぞれのPCに依存してるのかなーと思います

824 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 20:12:53.72 ID:gfFuWLI70.net]
>>800
BackgroundImageのプロパティに設定

825 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 21:35:27.37 ID:jCkiam8S0.net]
>>792
俺の事か?

826 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 05:07:55.77 ID:d5pUUzr/0.net]
>>801
ありがつぅ

827 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 05:57:51.57 ID:d5pUUzr/0.net]
c#でスクリーンショット撮影するソフトは不可能ですか?

828 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 07:29:21.89 ID:+4z8MAVsd.net]
いいえ



829 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 11:13:44.16 ID:I7KLi1I90.net]
>>804
検索すればすぐわかる

830 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 11:55:58.09 ID:mmBt6tnL0.net]
>>804
MessageBox.Show("PrintScreenボタンを押せろください");

831 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 16:07:58.46 ID:n2t8JUOl0.net]
Cでは数値型変数を複数の場所から参照するためには、変数のポインタ得てそれを使いますが
C#ではポインタ無いんで、数値フィールド持つクラスを作って
そのインスタンスから参照するしか無いんですか?

832 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:01:04.63 ID:dfsqwbBrd.net]
別にポインタはあるぞ。
行儀わるいから、使うべきかよくかんがえたほうがいいだけ。

833 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:01:47.04 ID:mSWYdTC80.net]
>>808
スカラー型なら直接読み書きすれば良いのでは無いかと思いますが…配列なら参照型です
変数参照を扱うなら強化されたrefやoutを使えます、またunsafeだとポインタも使えます
TypedReferenceというのも有りますがコレを扱うための__makerefなどは些かアレなので…

.NETには値参照用のSystem.Runtime.CompilerServices.StrongBox<T>などジェネリック既存型も有ります

834 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:09:27.87 ID:eqms90yHd.net]
定数参照的な話?

835 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:11:36.23 ID:PR5Tb5Rba.net]
>>808
Cでもスコープ内の変数は普通に読み書き可能。
スコープ外の変数でもその値を引数として関数に渡すことができる
ポインタが必用になるのは変数を書き換える汎用的な関数を書く場合だけ
C#の場合、同じことはrefやout付きの引数で実現できる

836 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:20:05.45 ID:d5pUUzr/0.net]
nn-hokuson.hatenablog.com/entry/2017/08/17/200918#%E3%83%9C%E3%83%BC%E3%83%AB%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B
個々のサンプル通りにゲームを作成中なのですが、paintイベントハンドラってなんでしょうか
paintというイベントは何によって発生するのかよくわかりません

837 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:27:37.84 ID:NXeshUsvp.net]
>>813
> paintイベントハンドラってなんでしょうか
描画をするためのハンドラです

> paintというイベントは何によって発生するのかよくわかりません
描画をしたい時に発生します

838 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:31:08.38 ID:d5pUUzr/0.net]
↑描画とはどういう操作のことでしょうか?
フォームがロードされた時点で実行されます



839 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 17:37:19.60 ID:NXeshUsvp.net]
>>815
ゲームの場合は勝手に描画が実行され続けます

840 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 18:16:49.35 ID:d5pUUzr/0.net]
↑自動的にですか
ありがとうございます

841 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 12:34:21.09 ID:Cn2cXppc0.net]
using System;
public class Hello{
public static void Main(){
// Your code here!

private void myfunction(){
Console.WriteLine("jfo

842 名前:asd");
}

myfunction();

}
}

paizaでC#を入力するとエラーが出るのですが、どこがおかしいですか?
private voidの部分が予期されていないというエラーが出ますね
https://paiza.io/ja
[]
[ここ壊れてます]

843 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 12:38:27.42 ID:51VRzV3m0.net]
staticな関数から動的な関数を呼び出してるんじゃない?

844 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 12:59:41.60 ID:j6Gi9YSR0.net]
ローカル関数をサポートしてないだけでしょ

845 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 13:00:14.76 ID:I+dbukVsp.net]
>>818
private voidの部分がおかしいですね

846 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:31:14.74 ID:cAaLtQSp0.net]
>>818
まずこういう質問はpaizaの問題でC#のスレでやられても混乱するからVisualStudioでの話以外はやめてくれ
コード書けるサイトが間違っていないって保証が無い。実際動くコード転載してもエラーって何度も経験しているからな
VisualStudioで書くのならターゲットフレームワークを.Net4.7以上にしてprivate void myfunction()からprivate外してvoid myfunction()で動く

847 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 16:38:09.76 ID:Agaj4T0x0.net]
たすけて!これ何が違うの?
どっちも普通に使えるよね?
ちな初心者
@List<T> list = new List<T>();
AList<T> list;

848 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 16:55:04.91 ID:2ynU5zYy0.net]
後者は中身が無いからそのままじゃ使えない



849 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:04:55.99 ID:KqlDIF5Pa.net]
>>823
1はlistという変数の定義と同時にList型のインスタンスで初期化している、普通に使える
2はlistという変数を定義しただけの状態
ローカル変数の場合は後で初期化する必要がある、未初期化のまま使おうとするとコンパイルエラー
クラスや構造体のフィールドの場合は暗黙でnullで初期化される、「普通に使う」ためには後でList型インスタンスを代入してやる必要がある

850 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:07:18.00 ID:naWxhgEk0.net]
>>823
> @List<T> list = new List<T>();

List<T> list;
list = new List<T>();
と同じ

> AList<T> list;
はlistの実体が設定されてないからそのままlist.Add(…)とかやると例外が発生する

851 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:07:30.92 ID:B/nvmulQd.net]
>>822
.NETのバージョンなにか関係あるか?

852 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:12:13.37 ID:tKx1WgvG0.net]
>>823
C++と違ってクラスは強制的に参照型で変数宣言がポインタと同等なのよ
宣言だけではコンストラクタはもちろんインスタンスも割り当てられない

853 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:26:45.23 ID:Cn2cXppc0.net]
>>822
paiza だと挙動が少し違うようです
このサイトはやめときます

854 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:35:39.94 ID:Cn2cXppc0.net]
ちょっとコードを確認したいというときに、使えるツールありますか?
わざわざプロジェクト作るほどではないときですね
python のidleのようなものです

855 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:38:44.31 ID:Ox4HquXb0.net]
>>830
C#インタラクティブ

856 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:41:30.40 ID:0sFVNd3o0.net]
cscは標準で入っているでしょ

857 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:54:52.02 ID:B/nvmulQd.net]
>>830
LINQPad

858 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:01:37.03 ID:/k3HmPSI0.net]
csiだな



859 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:03:11.00 ID:owh3i+7dM.net]
スクリプトみたいに対話型でできる?

860 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:18:26.04 ID:Cn2cXppc0.net]
↑ありがとうございました

861 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:21:23.19 ID:naWxhgEk0.net]
>>830
notepad.exe + csc.exe

862 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:28:37.10 ID:Agaj4T0x0.net]
>>825
>>826
>>828
NEWはしなきゃいけないのね
有難う御座います

863 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:29:26.69 ID:Cn2cXppc0.net]
>>833
これいいっすね
初心者なのでしばらく練習します

864 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:45:16.60 ID:Cn2cXppc0.net]
vs codeもちょっとしたコードの確認に使うものなんでしょうか?

865 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:29:49.15 ID:I+dbukVsp.net]
>>840
使うひともいれば使わないひともいますね

866 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:50:55.38 ID:pxm+KTrW0.net]
入力項目が沢山ある画面で、変更を保存せず画面を閉じようとしたときは警告を出したいです。
何も変更せず画面を閉じる場合は警告を出さずに閉じたいです。

この場合の変更チェックは入力項目に紐づく変数1個1個をチェックする以外に、スマートな方法は無いでしょうか?
入力項目に紐づく変数はデータクラスとして用意しているので、画面開く直前にハッシュのようなものを計算し退避しておき、
画面を閉じる直前にハッシュを再計算し比較すれば行けると思うのですが、オブジェクトのハッシュを求めるのは
GetHashCodeでいいのでしょうか?

867 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:58:21.05 ID:0Vx/m/dz0.net]
ないね
上に1dot
下に1dot
って動かされて終了したときは
出したくないんでしょ?
何か妥協点がない限り全部比較するしかないよ

868 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 02:13:28.99 ID:Y8U6L+e90.net]
>>842
データクラスとして纏めてあるなら、GetProperties()やGetFilelds()で抽出した各変数を
ループで比較すればそこそこスマートなんじゃない。



869 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 02:29:46.98 ID:GC8vaMYY0.net]
俺ならデータクラスにINotifyPropertyChangedを実装するかな

870 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 02:53:09.62 ID:+SQV8UeVa.net]
>>842
直接の回答でなくてごめん。

そういうMSにありがちなUIはたぶん

(1) 変更をキャンセル可能であること
(2) OKボタンをクリックした時点で初めて変更が反映されること

が要件になってるからそういう仕様になるんだと思うけど、こんな要件が必用ないなら
画面の入力項目の変更を変更があった時点でその都度対応するオブジェクトの
プロパティーに反映させてしまえば、「変更を保存せず画面を閉じようとしたときは警告を出」す
必用自体がなくなる

まあ一種の手抜きだけど、場合によっては許容される手抜きだと思う

871 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 03:23:01.21 ID:pxm+KTrW0.net]
>>845
いいアイデアですね。
プロパティ1つ1つに
if(beforeValue!=afterValue)
 OnPropertyChanged();
みたいな実装が必要なのが若干だるい気がしますが。

>>846
つまり変更した瞬間に即確定って意味でしょうか?
後出し情報で申し訳ないですが、最終保存先がDBで
アプリにとって比較的重要な情報の更新をしようとしています。
なるべく意図しない変更を防ぎたいです。

872 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 08:27:54.30 ID:GC8vaMYY0.net]
>>847
データクラスのベースクラスをPrism.MvvmのBindableBaseにするとまあまあタイプ量減らせたりするよ

873 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 11:29:03.32 ID:huM3ZKfN0.net]
https://i.imgur.com/2rpwFqg.jpg
vs codeを使っているのですが、どこから実行できるんでしょうか?
言語はc#で、マイクロソフトのc#のアドオンを入れました
ctr shift pでrunというコマンド?が出てくるので、それをクリックしたのですが、outputには何も出ません

また、ヴィジュアルスタジオの場合はイベントハンドラーがありますが、常に実行させるようなイベントというのはただのC#にあるんでしょうか?

874 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 11:34:39.00 ID:FChOt/Xad.net]
>>849
チュートリアルくらいやれよ

875 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:06:26.29 ID:RBxZ7FEaM.net]
>>849
ターミナルでdotnet runと打ち込んでEnterや

876 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:13:35.54 ID:vM1YVHVQd.net]
>>842
そう言うの割とダルいから、データをクラスにまとめといて、開いた時点でシリアライズして文字列で持っちゃう。
保存時にシリアライズして文字列一致しなかったら、変更されてる

877 名前:ニ言うことにする。
一個ずつ比較したら改修で漏れるよ。
[]
[ここ壊れてます]

878 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:41:30.31 ID:huM3ZKfN0.net]
>>851
ありがとうございます
そうやって実行するんですね
visual studioよりむずいです

ただ、Program.csという自動生成されたファイルが実行されます
同じフォルダに自分で作ったsample.csがあるんですが、こっちを実行させる設定はどこからするんでしょうか?
パスを指定してからdotnet runしてもエラーになるます



879 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:42:32.67 ID:OjJXAwBNd.net]
>>853
いやだからチュートリアルくらいやれって

880 名前:デフォルトの名無しさん [2019/02/18(月) 12:59:06.77 ID:pxm+KTrW0.net]
>>852
それもいい考えですね。
メンバ変数に[DataMember]とアノテーションを
つければいいだけですね

881 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 13:05:27.38 ID:99WFuefSa.net]
まあ一度変更があった時点で実際には等価でも別物と見なす実装が一番簡単だねたぶん。
実際そういうソフト結構あるよね。

そういう手抜きが気に入らないなら素直にEquals実装するのが結局シンプルじゃないのかな。
フィールドが全部値型の構造体ならデフォルト実装で済むと思ったし

...と思って調べてみたけど、なんかドキュメントによって書いてるこが微妙に違うなw

https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type
↑には「リフレクションを使用して、型のフィールドとプロパティをすべて調べます。」と書いてあるが

https://docs.microsoft.com/en-us/dotnet/api/system.valuetype.equals?view=netframework-4.7.2
↑には単純にビットイメージの比較と書いてある

となってる。どっちが正しいんだ?w

882 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 18:49:02.00 ID:L0NbuPbAa.net]
>>856
> https://docs.microsoft.com/en-us/dotnet/api/system.valuetype.equals?view=netframework-4.7.2
のRemarksには、thisとobjの全フィールドが参照型でなければbyte単位の比較、そうでなければリフレクションを使うとある
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2231-overload-operator-equals-on-overriding-valuetype-equals
他に知っているもので↑では、リフレクションを使うとだけある

https://referencesource.microsoft.com/#mscorlib/system/valuetype.cs
少なくとも.NET Framework 4.7.2では、ビット比較だけしていそうなFastEqualsCheckを呼ぶパスが存在する
そのパスを通るか判定しているCanCompareBits関数はexternなので詳細不明

883 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 19:16:27.32 ID:L0NbuPbAa.net]
ごめん「他に知っているもの」に貼るURL間違えた
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1815-override-equals-and-operator-equals-on-value-types

884 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 11:05:06.64 ID:t+ZZI+Uh0.net]
vs codeのproblemの欄なんですが、間違ったコードを入力しても自動で更新されないようです
デバッグを実行しないとだめなようですが、リアルタイムにエラーを表示してくれる設定はできますか?
以前はできたんですが

885 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 12:03:57.65 ID:IsM0ebyqd.net]
日本語でよろしく

886 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 12:33:41.44 ID:efthhon4M.net]
そいつは難しいproblemだな

887 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 17:38:20.55 ID:JJR46+B00.net]
>>859
vs codeのことは専用スレで聞け、スレ違い
Visual Studio Code / VSCode Part5
https://mevius.5ch.net/test/read.cgi/tech/1541649564/

888 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 19:41:44.24 ID:t+ZZI+Uh0.net]
なぜmain関数の中に処理を書かないといけないのですか?
そういうルールだからってことですか?
pythonだとどこに書いてもいいと思うんですが



889 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 19:46:47.41 ID:+t+aP4snM.net]
そういう設計思想だから

890 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 19:54:09.61 ID:zirjw7Cj0.net]
main以外をエントリポイントにできるけどな
win32apiからの慣習

891 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 21:39:52.76 ID:eXSGnhOj0.net]
>>865
C#で出来るの?
どうやって?

892 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 22:33:06.53 ID:MriKnXlj0.net]
>>866
なくはない
https://ufcpp.net/study/csharp/cheatsheet/apscripting/

893 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 01:09:59.10 ID:WG18KXuW0.net]
助けて!!
Parallel.Forを使ってそれぞれで別の演算アプリを起動して
4スレッドで演算処理してるんだけど
アプリ強制終了してもスレッド(演算アプリ)はずっと処理し続けてるの!お願い止まって!!

親スレッド(UIスレッド)が死んだら子スレッドも死ぬみたいなお作法ありますか?
演算アプリはSystem.Diagnostics.Process使って起動してます

894 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 01:46:34.63 ID:3QCW37aG0.net]
Process.Kill()でしょ

895 名前:デフォルトの名無しさん [2019/02/20(水) 02:03:55.40 ID:/GvzZ744d.net]
>>868
それはC#的にスレッドとは言わない。
別プロセスだ

896 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 07:56:23.82 ID:Jfh2EJBjr.net]
電源off

897 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 09:16:30.41 ID:JdxivbIi0.net]
>>868
CancellationTokenSourceを使ってみれば?

898 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 16:01:28.63 ID:qtZmd9yJa.net]
form1にsplit container をverticalで貼り付けて左右に2分割してその中にボタンとかコンポーネントいろいろ置いてて、
あとから上にmenu stlipを追加したくなってツールボックスからmenu stripコンポーネントをドラッグ&ドロップすると
splitcontanerのpanel1かpanel2のどっちかにしか貼り付けられないのだけどform1にmenuStripを表示するようにするにはどう操作すればいいのでしょうか



899 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 16:10:46.41 ID:YXUL7WNb0.net]
一旦張り付けてから
ドキュメントアウトライン表示させてForm直下に移動させる

900 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 16:31:00.95 ID:ThCTwK+Ha.net]
>>873
前も書いたけど、
[ctrl] + [alt] + t

901 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 16:42:16.67 ID:qtZmd9yJa.net]
>>874
ありがとうございます

902 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 16:43:52.95 ID:qtZmd9yJa.net]
>>875
ありがとうございます

配置していたテキストボックスがめり込んでしまいましたがなんとか修正してみます

903 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 12:23:38.43 ID:A65FK9eD0.net]
目のかすみ
>>872
>>869
神!トークン付けてスレッド実行して
キャンセル時にスレッド内でIsCancellationRequestedで拾って
Process.Kill()すればいいのか
行けそうな気がしてきた

904 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 12:51:17.47 ID:Nj5ihKJg0.net]
それでいいのか
アプリ強制終了っていうからタスクマネージャから落とす時のことを想像してた

905 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 13:02:04.01 ID:A65FK9eD0.net]
>>879
それもあるよ!今はキャンセル機能ないから強制終了させて
この問題発せしたんよ
ちなみに強制終了の場合はなんか手法ある?
別プロセスもタスクマネージャーで落とすしかない?

906 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 13:15:26.35 ID:Nj5ihKJg0.net]
基本的にはそうじゃないかね
ちょっと凝った風にするならプロセス間通信でハートビート送って応答なけりゃ自死するとかあるけど

907 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:20:57.98 ID:+4fiWh+W0.net]
すみません、コルーチンの使い方について教えてください。
例えばRPGなどのゲームで、キャラクターAに話しかけると、数秒待って反応が返ってくるという処理をしたいと思っています。

まず、数秒待つというコルーチンを作り
private IEnumerator waitforsecond(float sec) {
yield return new WaitForSeconds(sec);
}

次にAに話しかけた時の処理を作りました。

public void Sample(){
 //50%の確率で無視される
 if(Probability.DetectFromPercent(50)){
MainText.text = “Aに話しかけてみた・・・”;
StartCoroutine(waitforsecond(2));
 MainText.text = "なんとAから無視された!”;
 
 //50%の確率で殴られる
  }else {
MainText.text = “Aに話しかけてみた・・・”;
StartCoroutine(waitforsecond(2));
MainText.text = "なんとAから蹴られた!”;

908 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:24:21.78 ID:+4fiWh+W0.net]
これで、話しかけたあと2秒時待機して反応がある、という処理になるかと思ったのですが、うまく行きません。

あと登場キャラクターもA、B、C‥‥とたくさんいるのであれば、話しかけると数秒待って反応するという関数を作ってあげたほうがスッキリするのでしょうが、やり方がイマイチわかりません。



909 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:42:20.49 ID:VKoyYoRjM.net]
>>883
非同期や

910 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:11:57.24 ID:+4fiWh+W0.net]
>>884
非同期・・ググりました。
「非同期」とは重い処理があった場合は終わるのを待たないこと。とありますが、、

911 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:03:38.92 ID:+XWUccMjM.net]
Wait前にthis.Refresh()って無意味だっけ

912 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:53:42.96 ID:5v/pkJgQa.net]
>>882
何で待つのにイテレーターを使うのかちょっと意味がわかんないねw

913 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:08:47.12 ID:c4smrZlO0.net]
yieldでコルーチンという一昔前の一発芸がUnityで幅を利かせているから仕方ないのねー

914 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:11:16.75 ID:969mh7640.net]
俺もあいまいな理解だから偉そうには言えないけど
>>882
ここのサンプルが分かりやすいかも
developer.wonderpla.net/entry/blog/engineer/Unity_Co-routine/
>>885
private IEnumerator waitforsecond(float sec) とpublic void Sample()が非同期(違う時間軸での動作)になるので待ち時間になっていない
>>887の言う通り待ち時間には他の物を使わないと

915 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:17:45.84 ID:mRRRBv2X0.net]
>>878
その演算アプリがどういう物かわからんが
そもそもそれ別プロセスじゃないとダメなのか?

916 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 22:25:20.57 ID:+4fiWh+W0.net]
>>889
ありがとうございます。
他の物とは具体的にどんな関数を使えばいいのでしょうか?

917 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 23:14:15.44 ID:5v/pkJgQa.net]
>>891
思ったより面倒臭い
https://ideone.com/Sf85HN

918 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 23:22:50.38 ID:5v/pkJgQa.net]
>>892
これ書いてて一つ疑問に思ったのが、
MessagingTask = MessagingTask.ContinueWith(t => job.Action());
これを以下のように、
MessagingTask.ContinueWith(t => job.Action());
こう変えると期待した動きにならない。
ContinueWithってキューになってて先に入ってるタスクの完了を待って次を実行すると思ったけど違うのか



919 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 23:42:43.30 ID:aABnGI350.net]
>>893
重箱の隅…だが。
Task.Run(() => { })の代わりにTask.CompletedTaskってあるよ。
後、Task.Delay(Pause).Wait()ってThread.Sleep(Pause)で良いんでない。

920 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 23:44:55.38 ID:e6A24yU10.net]
>>893
継続タスクが1つとは限らない。複数あったらパラって実行される。

921 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 23:48:25.54 ID:5v/pkJgQa.net]
>>894
うん、知ってたけど今使ってるのがVS2015なのよ...

922 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 23:49:35.07 ID:5v/pkJgQa.net]
>>895
やっぱり俺が誤解して理解してたんだなありがと

923 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 14:44:05.16 ID:3cOSTboLa.net]
MenuStripコンポーネントでItemを選択した時にその左にチェックを入れるようにしてるのだけど
選択した時点でメニュー閉じちゃって若干不便なのだけど
ひらいたままにする設定にはできないのでしょうか

924 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 19:07:18.92 ID:gzY/wSmba.net]
>>898
ルートのアイテムの直下ならClickか何かで親のShowDropDown()を呼べば一応実現できるっぽい。
入れ子になってる場合は、

....

ToolStripMenuItem1.Click += (sender, e) =>
{
  RecursiveShowDropDown(((ToolStripMenuItem)sender));
};

....

void RecursiveShowDropDown(ToolStripMenuItem item)
{
  if (item == null) return;
  var parent = item.OwnerItem as ToolStripMenuItem;
  RecursiveShowDropDown(parent);
  parent?.ShowDropDown();
}

たぶんこれでいける。
でもエンターキーでクリックした場合の操作性に問題が残るけど

925 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 19:24:23.57 ID:gzY/wSmba.net]
こっちの方がいいか
EventHandler eh = (sender, e) =>
{
  Action<ToolStripMenuItem> a = null;
  a = item =>
  {
    if (item == null) return;
    var parent = item.OwnerItem as ToolStripMenuItem;
    a(parent);
    parent?.ShowDropDown();
  };
  a((ToolStripMenuItem)sender);
};
ToolStripMenuItem1.Click += eh;

926 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 03:15:52.41 ID:pRL7US30a.net]
>>899
無事できました
ありがとうございます!

927 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 11:47:42.69 ID:L3+XvQB40.net]
質問です
現在、以下のように一つの非同期処理(時間のかかるディスクの書き込み)
を実行しています。

private async void button1_Click(object sender, EventArgs e)
{
 await DoSomethingAsync();
 MessageBox.Show("完了");
}

これを実行中にUIを操作して、次の処理の準備ができたら(実行する内容はDoSomethingAsync)
button1を押して予約し、実行中の処理が終わったら引き続き実行させたいです。(並列ではなく)
また、「完了」は登録されたタスクが全て終わったときに出したいです。
どのように書くのが一般的なのでしょうか?


初回実行時にすべての実行すべきタスクがわかっている場合は
そのタスクのリストを作ってWhenAllする みたいなのはググったら出てきたんですが

ContinueWithを使うのかなと思ったのですが、書き方がわかりませんでした

928 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 11:58:25.65 ID:u2ta9zSf0.net]
Queue<T>を使えば良いんじゃね



929 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 12:36:22.83 ID:cR8EPyISM.net]
>>902
最後に追加したTaskを覚えておいてContinueWithで繋ぐとかできなくはないけど、
そんな変なハックをするくらいなら素直に別スレッド立てて順番にバックグラウンド実行したほうがいい
Producer-Consumerでググれ

930 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 11:09:41.10 ID:a5srEHrc0.net]
c#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
また、そのような目的に適したフォームはありますか?

そもそもC#が適切なのかわからないのですが

931 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 11:41:19.60 ID:2iFL+VGx0.net]
>>90結局Unityになるんやろなあ

932 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 12:13:30.45 ID:kHS+5sOB0.net]
VisualStudioでデバッグ実行した時だけプログラムがフリーズしてしまうのですがこういう時はどういった原因が考えられるでしょうか?
WinFormを使用していてフォームが立ち上がったらバックグラウンドで色々するって感じの処理なのでどこかでUIスレッドをブロックしているのかとも思いましたがConfigureAwait(false)の設定し忘れは無さそうでした
VisualStudioを通さずに直接実行した場合は正常に動作しています

933 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 13:05:26.46 ID:fW706uYI0.net]
とりあえずフリーズした時に「すべて中断」して
どこでブレイクされるか確認
ついでにスレッド一覧を見てみる

934 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 13:15:34.63 ID:O8+i9ARHp.net]
>>908
それを試そうとしたのですが全て中断しても中断出来ない状況です
中断押すとVS自体もフリーズしてタスクマネージャーからプログラムを終了しないと復帰出来なくなります

935 名前:デフォルトの名無しさん [2019/02/25(月) 15:41:31.91 ID:stIKiSPsF.net]
最前面じゃなくて後ろ面にアクティブウィンドウがポップアップされてるんじゃね

936 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 19:11:52.07 ID:ERkCIkZda.net]
>>902
単純にボタンをクリックした回数だけ非同期メソッドを実行したいだけなら
これでいいような気が

private bool mBusy = false;
private int mRepeatCount = 0;

private async void button1_Click(object sender, EventArgs e)
{
  mRepeatCount += 1;
  if (mBusy) return;
  mBusy = true;
  for (int i = 0; i < mRepeatCount; i++)
    await DoSomethingAsync();
  mBusy = false; mRepeatCount = 0;
  MessageBox.Show("全部終わった");
}

937 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 19:17:48.39 ID:61uBElrFd.net]
>>907
俺はエディタでヒント表示させただけで落ちるけど。Blendなら使えてる。

938 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 06:14:33.14 ID:hTJo4mxi0.net]
https://i.imgur.com/NCB8nLP.jpg
c#をデバッグするとこのようなエラーが出るのですが、どこを改善すればいいかヒントをください



939 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 06:21:28.31 ID:byKZhMZS0.net]
>>913
dllのパス

940 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 07:34:07.95 ID:hTJo4mxi0.net]
↑ありがとうございます
.NET Core Launch (console)
というデバッガを使っているので、
"program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
という部分を修正するのだと思いますが、どう修正するんでしょうか?
実行したいプログラムを{workspaceFolder}/Program.csと指定してもエラーになります

941 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 07:53:17.80 ID:U5FDQ2yTd.net]
>>915
いやだからcsじゃなくてdllだってば

942 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 07:54:10.15 ID:U5FDQ2yTd.net]
ログにもちゃんと出てるはず

943 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 08:00:35.55 ID:H+xdnOpD0.net]
>>915
プログラミングするなら英語は必須だから、「何だか分からないこと言ってる!」とか思わずにちゃんと読みな。

944 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 08:41:24.11 ID:hTJo4mxi0.net]
>>916
c#なのにDLLなんですか?
このDLLのパスは何をしてるんですか?

945 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 08:50:05.00 ID:UlQR9ttEM.net]
普通にVisualStudio(Codeじゃないやつ)ダウンロードして知識付けてから挑戦しろよ
邪魔だよ

946 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 09:40:46.12 ID:7RJrl9MrM.net]
小学校でプログラミング教育でも受けてろ

947 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 09:54:59.60 ID:s7Q5fSFO0.net]
>>909
そうなるともう新しいプロジェクトに今のを段階的に移していってどこで再現するか確認するかなぁ

948 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 10:57:10.09 ID:s7Q5fSFO0.net]
>>919
とりあえずエクスプローラなりコンソールなりvscodeとは別に開いて
プロジェクトフォルダのbinフォルダの配下を確認
どこかにビルド結果のdllが作られてるから

うちはいつの間にかPlatformって環境変数が定義されてたせいで
HPDとかいうフォルダが1個挟まってたぞ



949 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 10:58:52.43 ID:RV1beKRS0.net]
こっちへどうぞ
Visual Studio Code / VSCode Part5
https://mevius.5ch.net/test/read.cgi/tech/1541649564/

950 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 11:47:10.27 ID:7Gbx8Ae00.net]
>>922
ありがとうございます
とりあえず特定のメソッドを呼ばなければ大丈夫ということがわかったのでデバッグモードでは呼ばないようにして対策することにしました

951 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 11:58:57.74 ID:hTJo4mxi0.net]
>>923
デバッグできました 余計なフォルダが挟まっていました
指定してやらないといけないんですね ありがとうございました

952 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 12:16:54.99 ID:vuJi7+izd.net]
どういたしまして

953 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 12:29:03.14 ID:CYrridvRd.net]
>>923
それDELLやろ

954 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 12:29:38.62 ID:CYrridvRd.net]
>>924
そっちはスレチ

955 名前:デフォルトの名無しさん [2019/02/28(木) 00:37:24.74 ID:weUa1N+o0.net]
setterメソッドで文字列が8文字以下ならname変数に引数を代入する文を書きたいんですけど
どのように書けばいいんでしょうか?

956 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 00:51:58.07 ID:ucEMLrR20.net]
private string name;
public void SetName( string name )
{
 if ( name.Length <= 8 )
 {
  this.name = name;
 }
}

957 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 00:55:51.76 ID:ucEMLrR20.net]
セッターよりもプロパティで良い気がする

private string name;
public string Name
{
 set
 {
  if ( value.Length <= 8 )
  {
   this.name = value;
  }
 }

 get
 {
  return this.name;
 }
}

958 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 01:05:38.31 ID:weUa1N+o0.net]
>>931
ありがとうございますー
lengthを使うとint型とstringをオペランドに比較が使えるんですね
覚えておきます



959 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 08:14:05.87 ID:3CdGs56rM.net]
>>933
> lengthを使うとint型とstringをオペランドに比較が使えるんですね
言いたいことはなんとなくわかるけどほんとに理解してるのか不安になる文章だな

960 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 12:10:16.83 ID:2lomOid8M.net]
8文字越えた場合や
検証属性の話をと思ったけど自重

961 名前:デフォルトの名無しさん [2019/02/28(木) 19:23:03.02 ID:owSMuOWF0.net]
Windows.Forms の質問です。
TextBox 数個と MenuStrip に サブメニューのない MenuItem を追加したFormで
Altキーでメニューを選択すると、
カーソルキーの上下でTextBoxのフォーカスが移動するのですが
どういった理由でしょうか?

962 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:29:09.92 ID:1IHH1hzPa.net]
>>936
Menuに反応してるのでは?

963 名前:936 mailto:sage [2019/02/28(木) 20:50:40.99 ID:DAgKUWMjM.net]
うーん
ショートカットキーの設定ができるので
ツールバーの代わりに使おうと思ったんですが
予想外のキモい動きで躊躇してます

964 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 21:20:30.71 ID:560qka060.net]
ドロップダウンしないのは想定してないだろう

965 名前:デフォルトの名無しさん [2019/03/01(金) 12:58:28.41 ID:ozM8zBQ90.net]
この本おすすめですか?
https://www.amazon.co.jp/dp/4774187585

966 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 19:45:05.46 ID:MA7hbDcR0.net]
JS
hoge([[1,2,3], [4,5,6]]);

C#
hoge(new int[,] {{ 1,2,3 }, { 4,5,6 }});

javascriptみたいにnew付けないで渡せないですか?
paramでは2次元がだめでした。

967 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 21:07:24.70 ID:tVNocw1h0.net]
サイドバーについてなんですが、例えばgimpというソフトがあるのですが、両サイドにツールやレイヤーが表示されています
このように領域を分けるコントロールを教えてください
win form c#です

これはもう1つフォームを追加してるんでしょうか?

968 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 21:59:18.22 ID:ORsij5/P0.net]
>>942
フォームの枠の中に配置・移動させるのならVisual Studioでデザイナ画面+ツールボックスの「コンテナー」のカテゴリの好きなものを
フォームの枠の外やはみ出して使いたいものには別のフォームを割り当て、というのが基本じゃないかな
GimpはCだからどうやっているかは知らないけど



969 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 05:28:46.45 ID:QccNqZJQ0.net]
別フォーム使った場合でもドッギングなど可能ですか?
だとすれば分けたほうが作業しやすそうですが

970 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:41:05.28 ID:29oPzrI/0.net]
GTKでやればいいじゃない

971 名前:デフォルトの名無しさん [2019/03/02(土) 11:00:56.30 ID:+L4gK20KF.net]
>>940
超初心者か池沼向け

普通の人はwebで充分

972 名前:デフォルトの名無しさん [2019/03/02(土) 11:02:23.80 ID:+L4gK20KF.net]
GTKは糞

973 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:07:40.19 ID:QccNqZJQ0.net]
>>945
win formではドッギングや分離はできないのですか?
また、別フォームと同じフォームでやるのとではどちらが都合がよいでしょうか

974 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:11:23.26 ID:PVVyhIVEM.net]
>>948
出来るよ。

975 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:12:34.80 ID:PVVyhIVEM.net]
>>948
ttps://dobon.net/vb/dotnet/links/dockingwindow.html

976 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:22:59.87 ID:Flko+1Y10.net]
市販のinfragisticsのドッキングウインドウが楽チンだったわ

977 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 18:42:16.44 ID:QccNqZJQ0.net]
Form1からForm2を呼び出すとき、こういう記述をしますが、変数の型がどうしてForm2なんでしょか?varじゃエラーです
Form2 form2 = new Form2();
form2.Show();

978 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 19:06:17.17 ID:QSGa9wbhp.net]
そのform2クラスは君が作ったんじゃないのか?



979 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 19:09:49.50 ID:euLZafKS0.net]
取り敢えずエラーの内容を読めよ

980 名前:デフォルトの名無しさん [2019/03/02(土) 23:01:13.05 ID:XIaahVa70.net]
学習のために、確保した変数がスタックかヒープかどっちにあるのか知りたいんだけどさあ
簡単にチェックする手段ってないんかな?

981 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 23:08:52.67 ID:20MtSIx6a.net]
メモリダンプ系のツール使えばいいよ
昔の話だがメモリ上のオブジェクトグラフを可視化してGC絡みのバグをデバッグした事がある

982 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 23:10:49.78 ID:nONug4XP0.net]
"変数が"ってことなら変数の型が参照型か値型か
要はコンパイルの時点で判断できる
IntelliSenseでclassかstructを見れば良い話に思えるが

983 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 23:19:19.07 ID:20MtSIx6a.net]
box

984 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 23:33:08.46 ID:D0+5Vwwl0.net]
>>953
ワロタ

985 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 02:27:49.98 ID:6iGgKGSXa.net]
>>957
それは違うと思うw

986 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 03:54:21.90 ID:uu9okAeO0.net]
>>953
Form2というプロジェクトを作りましたが、これがクラスになるんですか?
この変数型はどういう意味ですが

987 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 07:00:37.71 ID:cg06QXcyM.net]
>>957
w

988 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 07:50:47.21 ID:+cu7OMqU0.net]
>>961
一回チュートリアルなり
入門書とか入門サイトなりやってみろと



989 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 08:42:41.37 ID:uu9okAeO0.net]
winformでノードエディタは作れますか

990 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 08:49:23.89 ID:+cu7OMqU0.net]
>>964
いいからForm2わかったのかよ []
[ここ壊れてます]

992 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 08:57:36.29 ID:2YvY5qRC0.net]
>>964
クラスがなんなのかわかっていないお前には無理
上にも同じ事書かれてるけどまず入門書を読め

993 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:55:03.51 ID:uu9okAeO0.net]
↑入門サイトで勉強してます

994 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 11:33:30.33 ID:lodoh91K0.net]
>>967
もしかして、ろくに経験もなく基礎も理解しないまま作りたいものを作り始めて、わからないときだけサイトで情報拾ってどうにかなると思ってないか?
ある程度基礎ができているか理解力のある奴ならそれでもいいが、君には無理だ。
ちゃんと金出して真っ当な入門書を買って、面倒がらずに順を追って基礎から身に付けてこい。

995 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:00:57.01 ID:fal7gHDn0.net]
質問した人は回答にフィードバックくらいしろよ
質問スレでフィードバックせずに次の質問って論外

996 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:07:11.30 ID:+cu7OMqU0.net]
いいや
そいつのクソレスなどいらん
入門サイトやら入門書を1ページでも前へ進めろ

997 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:48:10.30 ID:Nfj27eon0.net]
そうだな。独習3版でも一回読み切る事をお勧めするよ

998 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 18:14:45.95 ID:7I/UY/410.net]
>>964
ファイラー作るとか言ってた人だよね
コピペ以外で何か作ることはできたの?
作れずに諦めて次できそうなもの見つけて質問するの繰り返しでしょ



999 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 23:49:50.24 ID:DRmEmwqA0.net]
君の作ったプロジェクトの内容なんて分からんよ。
プロジェクト内のソースを探せばForm2クラスを宣言してるんじゃないの?

Visual Studioは色々自動生成して、色々隠蔽してるからオプジェクト指向が理解し難い。
一旦動いたら、全てのソースファイルをメモ帳で開いて動きを解析してみる。
全ては一度には理解できないから、オプジェクト指向の説明本を読む。
やっぱり理解できないけど、ソースを読み解くって繰り返すと段々理解できてくる。

1000 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 23:50:45.69 ID:DRmEmwqA0.net]
アンカー忘れた。
>>961さんへ

1001 名前:デフォルトの名無しさん mailto:sage [2019/03/04(月) 19:07:44.29 ID:RIX3InQp0.net]
WinXPのスタートメニューのように、ContextMenuStripのToolStripItemにDrag&Dropって出来ますか?
ToolStripItemのAllowDropをTrueにしても、ToolStripItemのDragEnterイベントが発生しないのですが。
VC++2008を使用しているのですが、ToolStripItemのプロパティ窓にはAllowDropもDrag関連のイベントも 表示されていないので、コードで記述しているのですが、もともとサポートしていない?

1002 名前:デフォルトの名無しさん mailto:sage [2019/03/04(月) 20:54:01.14 ID:+WeHVjLY0.net]
>>975
試してないけどdocsには
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.toolstripmenuitem?view=netframework-4.7.2
DragDrop ユーザーが項目をドラッグし、マウス ボタンを離したとき (つまり、項目がドロップされたとき) に発生します。 (Inherited from ToolStripItem)
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.contextmenustrip?view=netframework-4.7.2
DragDrop ドラッグ アンド ドロップ操作が完了したときに発生します。 (Inherited from Control)

ってなっているからContextMenuStripのは期待通り動作しそうだけどToolStripItemのは項目自体のものだから単独では無理かと
どうしてもやるのならContextMenuStripのほう使ってMouseMoveか何かでカーソルと項目の位置確認しながらやるとか
その前にContextMenuStripがFocusの移動とかで閉じないようにClosingのイベントの設定なども当然必要
もう一回書くけど試してないし試す気もないので責任も取らないw

1003 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 20:50:34.30 ID:nLVidvZ50.net]
来月からASP.Net初めて触るんだけど
何から始めればいいの?
MVCとかそういう単語と理論とか??

1004 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:09:43.18 ID:oLv4eGw30.net]
>>977
ASP.NETにもいろいろあるんだけど…
とりあえずテンプレートをビルドして動かしてみるところから

1005 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:11:48.41 ID:1+PBsWw4M.net]
>>977
君が業務ドカタなら、たぶん君がやることになるのはASP.NET MVCでもASP.NET CoreでもなくClassic ASP.NET(WebForms)
Webの知識皆無でも最低限形だけでもWebアプリを作れるようにしたフレームワークで、
WinFormsでメモ帳モドキくらい作ったことがあれば楽勝だから何も心配いらない

1006 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:15:44.81 ID:oLv4eGw30.net]
>>979
ASP.NET MVCなんじゃね?
知らんけど

1007 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:26:05.38 ID:1+PBsWw4M.net]
>>980
MVCの意味も知らない子が投入されるような現場でASP.NET MVCなんか使ってるかねえ
まあ物好きな前任者が一人で作ってたシステムだったりするとあるかもね

1008 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:26:41.18 ID:D2mtoqngM.net]
逃げる心配はしてもいいかも



1009 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:43:37.08 ID:xU8Jrq3Z0.net]
>>981
前やった40画面くらいの小規模プロジェクトがMVCでしたわ
メンバーのほとんどがjs?css?c#?LINQ?な素人で激アツだった

1010 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:52:08.74 ID:MehlFqwY0.net]
Webは覚えることが多すぎて禿げちゃうから
学習コストが低いらしいBlazorに期待してる

1011 名前:デフォルトの名無しさん [2019/03/06(水) 23:01:29.39 ID:wF9IXRdCr.net]
asp.net core使って開発したいがまだまだ実用レベルではないんだろうな
そう思うと開発頓挫しそうで使えない

1012 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 23:15:31.66 ID:b1gJEqu2a.net]
普通に使えるよ
英語読めないジャップにとっては永遠に実用にはならないだろうけど

1013 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 23:19:16.57 ID:07omsi5cM.net]
〇〇Coreはバージョンアップで平気で互換性切ってくるから、受託開発では使っちゃいけない代物
ソースを手放さずいつでも自己責任で弄れる事業形態向け

1014 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:08:41.43 ID:tnYmqFtJ0.net]
>>985
もう既に実運用してるけど
そろそろ3年だしさすがにね

1015 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:09:12.20 ID:tnYmqFtJ0.net]
>>987
おじいちゃんはずっとCOBOL使ってればいいと思うよ

1016 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:28:00.03 ID:rQAOToBLM.net]
>>989
こればっかりは老害とかそういう話じゃなくて業界構造の問題だからね
米国のシステム開発は内製が主流であり、基本的に自己責任だから改修のハードルが低いの
それに合わせてMSの開発者向けプロダクトも変化を許容する方向へ変わってきていて、
もはや日本のSIには全く適さないものになってしまってるんだよ

1017 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:59:57.04 ID:1eeIEHnS0.net]
OSSとか向こうから来るもんは全部そうだね
人身売買なんかやってたら理解できない文化ばっかり

1018 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 05:24:03.06 ID:rQAOToBLM.net]
OSSに対する考え方は顕著な例だね
受託開発においてOSSのライセンスを受ける主体は開発会社じゃなくてユーザー会社だから、
当然、開発会社が使用したOSSは全てユーザー会社に把握させてユーザー会社自身が承認しなければならない
これは事業形態上完全に正当で必須なプロセスであり、時代遅れとかそういう問題ではない
NuGetやNPMなどのパッケージマネージャで依存関係として勝手に入ってくるOSS全てに対してこのプロセスを適用するのは事実上不可能



1019 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 06:32:35.38 ID:6L3KEJfe0.net]
次スレが立ってないようなので立ててくる

1020 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 06:36:57.49 ID:6L3KEJfe0.net]
次スレ
mevius.5ch.net/test/read.cgi/tech/1551908141/
msdnのリンクはdocsに変更しといた

1021 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 07:20:20.11 ID:Zl7f22uA0.net]
>>986
日本に住んでるなら日本語使えや、英語なんて翻訳すりゃあいいんだよ。フランス人を見習え

1022 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 07:51:25.69 ID:KDtWvu+2a.net]
>>995
英語出来ない言い訳ww

1023 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 08:33:12.38 ID:AIEkzJHxd.net]
>>990
Googleと比べてみ

1024 名前:デフォルトの名無しさん [2019/03/07(木) 08:51:22.28 ID:p9S7AU5B0.net]
インターネット創世記の頃は情報共有とか甘い言葉が飛び交ったが
最近ではやっぱスキルやノウハウといった知的財産情報は
対価を払って手に入れるべきだと思うようになった
ネットでただで手に入れたいなら英語くらい読めよって話だな

1025 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 09:10:26.28 ID:0euQyoSb0.net]
1000

1026 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 09:10:41.65 ID:0euQyoSb0.net]
1000!

1027 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 81日 22時間 3分 34秒

1028 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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