ふらっと C#,C♯,C#(初心者用) Part138at TECH
ふらっと C#,C♯,C#(初心者用) Part138 - 暇つぶし2ch127:デフォルトの名無しさん
18/06/15 02:40:57.81 3RK99arqM.net
君にとってはCが頭に染み付いてるからそうかもしれないけど、
現に>>119にとっては分かりにくいからわざわざこんな書き方をしてるんだろう
今時のプログラマはC経験ない人も多いんだから実情に合わせることも必要
そういう連中を見下すのもいいけど老害呼ばわりされないように気をつけてね

128:デフォルトの名無しさん
18/06/15 03:02:28.24 UuMD2cf2a.net
>>125
しょうもな
偉そうにするな!と偉そうに言うバカw
どこが偉そうにしてるのか。
そもそも俺は>>119を必ずしも否定してない。
少なくとも10進表記や2進数リテラルよりマシだ

129:デフォルトの名無しさん
18/06/15 03:07:31.98 UuMD2cf2a.net
どーでもいいけど、こういう自分を客観視できない単細胞な奴がネトウヨとかなるんだろうね

130:デフォルトの名無しさん
18/06/15 03:33:39.61 /sL5C1h/0.net
ネトウヨってつまりどういう定義なんですか
マンコ吸わせてくださいs

131:デフォルトの名無しさん
18/06/15 06:19:02.91 9gOvrFZ50.net
5分かけて最後に煽っていくというだけで
自分が嫌ってる


132:ゴミと大差なくなっているというね



133:デフォルトの名無しさん
18/06/15 07:16:26.72 Cd+XXhnVM.net
今どきビット演算なんてしてるやつはゴミ

134:デフォルトの名無しさん
18/06/15 07:16:57.07 Cd+XXhnVM.net
これまで歩んだ人生がゴミ

135:前スレ976
18/06/15 07:27:20.01 A2l2tHW6M.net
>>119
ありがとうございます

bitarrayってのがあるらしいんですけど、これって共用体とかに一括で代入できないんですかね
3バイトデータの内の下位1バイトは1bitごとのフラグなのでbitarrayで分解できそうなんですが

136:デフォルトの名無しさん
18/06/15 09:16:33.32 rymWY0Tx0.net
そういえばちょっと疑問なんだけど、enum定義する時に>>119みたいにbyteとか指定するのは何か意味があるの?
指定したところでbyte型の変数に代入しようとしたらキャストしなきゃいけないし、やる意味がわからないんだけど

137:デフォルトの名無しさん
18/06/15 09:22:49.39 BTgSia3a0.net
>>133
え?キャスト?

138:デフォルトの名無しさん
18/06/15 09:45:21.99 rymWY0Tx0.net
>>134
え?

139:デフォルトの名無しさん
18/06/15 10:04:23.68 BTgSia3a0.net
ああ、enumで作った型なんだからenum型になってるだろ。
受ける変数も同じ型じゃないとダメなのは当たり前。

140:デフォルトの名無しさん
18/06/15 11:52:41.04 jCp8kGwY0.net
>>133
シリアライズとかネイティブとの相互運用目的

141:デフォルトの名無しさん
18/06/15 11:58:42.21 6Dx/uRsOp.net
動的にenumで作った型のsizeof求めりゃいいんだが、静的に解決しなきゃならない時は指定するしか無いって話だよな?

142:デフォルトの名無しさん
18/06/15 12:03:59.97 AMC7cROI0.net
>>116-117
コンパイル時点で型が定まらない(実行時に型が決まる)ものを new する手段という風ですよね?
使えそうです。ありがとうございました。
あとは、外部から「型」を受け取って new するまでの間、保管しておきたいのですが
型を変数(プロパティ)に格納するにはどうしたらいいんでしょ

143:デフォルトの名無しさん
18/06/15 12:20:55.24 NFN3YtCpd.net
>>139
117はジェネリクスなのでコンパイル時には一応定まってるハズ。
型を変数に入れたいならインスタンス.GetType()か、typeof(型)で、Type型の値が取れるけど…
本当にやりたい事と、実装の方法(型を受け取ってインスタンスを作ってそのメソッドを呼ぶ)がズレてないか心配。

144:デフォルトの名無しさん
18/06/15 12:25:49.54 rymWY0Tx0.net
>>137-138
なるほど、さんくす

145:デフォルトの名無しさん
18/06/15 12:48:48.68 AMC7cROI0.net
>>140
ありがとうございます。
「型」を格納する変数の型は System.Type なんですね!!
やりたいことが出来ました!!
System.Type t = typeof(××フォーム);  ← ここのところを公開して外部からセット
var f = (System.Windows.Forms.Form)System.Activator.CreateInstance(t);
f.ShowDialog();

146:デフォルトの名無しさん
18/06/15 12:57:15.01 PdS4cleJa.net
>>142
それさあ、キャストしてる時点で何の意味があるんだと思わなきゃw

147:デフォルトの名無しさん
18/06/15 13:10:18.30 VuRl2MkoM.net
>>143
Showなどのフォーム共通の操作をしたいんだろう
基底クラスにキャストする分には意味はある
設計として正しいかどうかは別問題であり今の情報だけでは何とも言えないが、
君は自分の個人的な好みを一般常識であるかのように主張して相手の事情を理解しようとせず人を一方的に批判する傾向があるようだね

148:デフォルトの名無しさん
18/06/15 13:16:34.24 AMC7cROI0.net
本当は自作インターフェースを持った「なにか」から派生するクラスなのですが
そこまで書くと行数が凄いことになるので、Form を例にさせてもらいました。

149:デフォルトの名無しさん
18/06/15 13:30:43.12 /HLz/tc50.net
>>145
本当は何がしたいの?

150:デフォルトの名無しさん
18/06/15 13:36:49.24 PdS4cleJa.net
>>144
そういうのはFafcoty Method的な方法でやればいい。
最初から質問者が何か勘違いしてるだけだと言ってるが、
>>114-115みたいな方法論を取る必要は何もない。
お前ごときに俺の何が分かるんだアホか
その批判、お前自身にちゃんと向けているか?
自己分析一つできない奴に限って安易に他人を批判したがるから笑える

151:デフォルトの名無しさん
18/06/15 14:16:21.09 AMC7cROI0.net
>>146
基底クラスから派生したクラスを動的に生成します。
142 みたいな方法が出来ることを知らなかったので
switch ~ case でクラスの種類だけ new() やってたところをキレイにします。

152:デフォルトの名無しさん
18/06/15 15:03:37.25 NFN3YtCpd.net
>>145
それは自作インターフェイスに「『自作インターフェイスをもった何かのインスタンス』を返す関数」を定義しておいて、
何かの方で「その関数」を実装して、
呼び出す側では普通に「その関数」を使えば良いのではなかろうか。
抽象クラスと静的関数の方がキレイかな。
「その関数」のリストが作りたいなら、そこでやっとリフレクションで取ったらいいし。
いきなりCreateInstanceは宜しくないというか危ないし、後々、各小クラスでコンストラクタがどうしようもない状況に陥ると思うよ。

153:デフォルトの名無しさん
18/06/16 00:47:26.32 i9Db63x30.net
Dynamicは黒歴史ですか

154:デフォルトの名無しさん
18/06/16 08:04:12.32 axPFqDQY0.net
いいえ

155:デフォルトの名無しさん
18/06/16 08:10:11.50 YoGVHqI7d.net
うんにゃ

156:デフォルトの名無しさん
18/06/16 08:34:15.67 eKBdC14eM.net
むしろ.NETのメインストリームがWebに移ってからはdynamic使われまくってる
JSONデータをたくさん扱ってるといちいち型付けてられない場面が多い

157:デフォルトの名無しさん
18/06/16 09:57:30.72 fkqp7HMy0.net
自作のインタプリタ作った時に
Dynamic使った記憶がある
意図は・・忘れたww

158:デフォルトの名無しさん
18/06/16 10:02:21.77 v/kjTt9Bd.net
>>153
jsonからクラスへの変換なんてVisualStudio使えば一瞬じゃない?

159:デフォルトの名無しさん
18/06/16 10:04:46.66 ayiE9VmyM.net
大規模プロジェクトなら連想配列禁止は納得できる

160:デフォルトの名無しさん
18/06/16 12:20:07.70 omCaDuHT0.net
教えてください。
戻り値が async Task のメソッドで await を使わないと↓のような警告が出ます。
> CS1998 この非同期メソッドには 'await' 演算子がないため、同期的に実行されます。
> 'await' 演算子を使用して非ブロッキング API 呼び出しを待機するか、'await Task.Run(...)' を
> 使用してバックグラウンドのスレッドに対して CPU 主体の処理を実行することを検討してください。
独立したメソッドなら、await が必要ないなら async Task をやめて void にすればいいのですが、
仮想呼び出しなどの関係で戻り値を変更したくない場合の解決策に悩んでいます。
とりあえず、
[1] 警告を抑制する
[2] async だけ外して Task.CompletedTask を返す
という二つの解決策を思いついたのですが、どちらも到底正しい方法とは思えません。
いいアイディアがあれば教えてもらえると嬉しいです。

161:デフォルトの名無しさん
18/06/16 12:52:10.42 Ws4rvThPa.net
>>157
2が正しい

162:デフォルトの名無しさん
18/06/16 12:56:37.78 dmQidkOU0.net
同期的に結果が分かるものを非同期にして結果が欲しいとか、コールバックでも仕込んで別処理で結果得ないと正しい結果なんて分からないだろうに。

163:デフォルトの名無しさん
18/06/16 13:16:07.05 omCaDuHT0.net
>>158
レスありがとうございます。やはり他に正しい方法はないのですね。
非同期が必要になるまでは同期


164:実行できるのが async の効果だと思っていたので 非同期が全く必要ないときに async が使えないのは逆のような気がして 違和感が拭えないのですが、とりあえず [2] の方法でやっていこうと思います。 >>159 申し訳ないのですが、同期ついて理解不足で仰っていることが理解できないので もう少し詳しく説明していただけないでしょうか。



165:デフォルトの名無しさん
18/06/16 13:59:46.72 VCIrJNT80.net
await Task.Run(()=>やりたいこと)
で済ますのはどうなんだろ。

166:デフォルトの名無しさん
18/06/16 14:16:04.53 Ws4rvThPa.net
>>161
無駄にスレッド消費するしマルチスレッドによる不要なトラブルを持ち込む可能性もある最低最悪の方法
awaitを外したくないなら await Task.CompletedTask の方がクリーン

167:デフォルトの名無しさん
18/06/16 14:42:27.67 omCaDuHT0.net
>>161
レスありがとうございます。せっかくなのですが、私もその方法はあまり良くないと思います。
ご存知でしたら失礼を許していただきたいのですが、以下の2つの効果は同じではないのです。
async Task X() => Thread.Sleep(1000);
async Task Y() => await Task.Run(() => Thread.Sleep(1000));
>>162
確かに await Task.CompletedTask をどこかに挟むだけなら
変な副作用もなさそうですね。
ただ、警告を抑制するためだけに意味のないコードを加えるのは正しくないように思います。
私がそんなコードを見たら、await Task.Yield() のような効果を期待しているのかなと
誤解してしまいそうです。
(もちろん、 await Task.CompletedTask を勧めてくださっているわけではなく、
 「await を外したくないなら」という無理のある前提に合わせて話してくださっていることは
 理解しています)

168:デフォルトの名無しさん
18/06/16 14:59:09.83 ext5YZxs0.net
これあえて警告出しっぱなしじゃ駄目なのかね
IDEがasyncメソッドをawait無しで実行しているから警告しているだけであって、意図的に同期実行するのならコメントとかで明示しておけば良いような気もするけど

169:デフォルトの名無しさん
18/06/16 15:23:38.22 omCaDuHT0.net
>>164
レスありがとうございます。
たかが警告を消すために実際のコードを書き換える必要があるのかという考えは
実にごもっともだと思います。
ただその場合、警告を抑制するだけでも意図は十分に伝わると思うのですが、
やはり警告はそのままにしてコメントなどで説明を行うべきなのでしょうか。

170:デフォルトの名無しさん
18/06/16 15:24:59.98 gQX30pFpa.net
#pragma warningディレクティブ使って警告を抑止するのが一番素直のような気がする。
知らんけど
っていうか、asyncなしで問題ない前提なら最初から何も悩む必要ないと思うんだけど...

171:デフォルトの名無しさん
18/06/16 15:35:00.89 omCaDuHT0.net
>>166
レスありがとうございます。やはり警告の抑制も選択肢になりますよね。
警告を抑制することに対する考え方は人それぞれということもあると思いますので、
その都度状況に応じた対処法を考えるのが一番でしょうか。
> っていうか、asyncなしで問題ない前提なら最初から何も悩む必要ないと思うんだけど...
申し訳ありません。これについてよく意味が理解できませんでした。
詳しくご説明していただけないでしょうか。

172:デフォルトの名無しさん
18/06/16 15:46:13.12 gQX30pFpa.net
>>167
ごめん後者アホなこと言いましたw
よく考えてみたら、asyncが付くかどうかはただのメソッドの中の実装によって決まる話であって、
ベースクラスやインターフェイスによってそれが強制されることはないよねw
普段深く考えずに使ってることがばれちゃったw

173:デフォルトの名無しさん
18/06/16 16:13:25.34 dmQidkOU0.net
なぜ同期させているのかが根本的に分かって無いから、警告を解く事だけに注意が向いてるんだな。
同期が必要ならコードどころか構造を変えるくらいしないてならないだろうに。

174:デフォルトの名無しさん
18/06/16 17:10:20.97 b9GFXH4k0.net
状況把握しきれていないが
async()=>{}という形でラムダにasyncつけることで解決できるケースもあるんじゃね?

175:デフォルトの名無しさん
18/06/16 17:13:04.67 omCaDuHT0.net
>>167
ご説明ありがとうございます。 >>166 で仰っていた意味が理解できました。
async/await は糖衣構文なので確かにベースクラスなどで使用が強制されることはありませんが、
深く考えずに使えるところが糖衣構文のいいところですし、
async を使うメソッドに XxxAsync という名前をつけることが推奨されていることからも、
事実上 async/await を使うかどうかはベースクラスに依存していると言っていいと思います。
これを踏まえて、改めて >>166 にお返事したいと思います。
> っていうか、asyncなしで問題ない前提なら最初から何も悩む必要ないと思うんだけど...
文法上は async なしでも問題ありませんが、コードの一貫性を考えると async を意図した
メソッドのオーバーライドで async なしは問題だと思います。
それにもかかわらず、たまたま実装上 await を全く使わなかっただけで
async の使用をとがめるような警告が表示されてしまうので悩んでいるのです。

>>169
レスありがとうございます。他の方のご意見も聞かせていただいて、
やはりこの警告は不適切で、警告を解くことだけに注意を向ければいいように感じてきています。
それに対して異論を唱えてくださっているようなのですが、勉強不足で仰っていることが
よく理解できていないので、申し訳ないのですが詳しく説明していただけないでしょうか。

176:デフォルトの名無しさん
18/06/16 17:18:42.84 omCaDuHT0.net
>>170
レスどうもありがとうございます。
このような返しばかりで情けないのですが、理解力が足りず仰っていることがよくわかりませんでした。
申し訳ありませんが詳しいご説明をお願いできないでしょうか。

177:デフォルトの名無しさん
18/06/16 18:03:54.76 AoXX/TDlp.net
先ず、同期と非同期で何が違うのか、
同期は目的の処理を完了して戻って来る事が大前提で作られている。
非同期は目的の処理を行う指示だけをして戻って来る。
だから戻り値も自ずと意味が違って来るのが普通。
同期の戻り値は実行結果、非同期の戻り値は指示出来たかどうかで結果はまだ分からない。
そこを根本的に間違えているから、問題なんだよ。

178:デフォルトの名無しさん
18/06/16 18:08:04.04 40YgBCHOM.net
>>173
基底クラスやインターフェイスに合わせるためであったり、
後でDB使った実装に変更する予定で今はハードコードしておくみたいなときには普通にあるケースだよ
後で非同期に変えるのは影響が大きいからね

179:デフォルトの名無しさん
18/06/16 21:30:40.09 omCaDuHT0.net
>>173
レスどうもありがとうございます。
同期処理と非同期処理の違いは、一般論としてはおっしゃるとおりだと思うのですが、
それが >>174 でご指摘いただいているような目的を達成する上で障害になっていて、
そのような問題を解消するために async/await 構文が作られたのではないでしょうか。
だとすると、同期処理と非同期処理の違いを理由に await なしの async を
否定することは本末転倒のように感じてしまうのですがいかがでしょうか。
>>174
ご説明どうもありがとうございます。
具体例を含めてとてもわかりやすく感じたのでこのレスの前半で引用させていただきました。
私にはこれだけ要領よく説明することはできそうにないので助かりました。

180:デフォルトの名無しさん
18/06/16 21:44:52.43 dmQidkOU0.net
まあ、メイン処理止めていいなら待てばいいじゃない。
止めたく無いならポーリングやコールバックで終わったの知ればいいじゃない。
コーディングでワーニング出るから構造を弄るって手法そのものが間違いって言ってるの。

181:デフォルトの名無しさん
18/06/16 22:10:42.86 omCaDuHT0.net
>>176
メイン処理を止めたくないならポーリングやコールバックを明示的に記述する以外に
選択肢がないというように読めてしまったのですが、この部分に間違いはないでしょうか。
もしそうなら async/await 構文についてあまりお詳しくないようにお見受けしますので、
よろしければ一度お触りになってみてください。
非同期処理の大変さをご存知であればこそ、便利さを実感できるのではないかと思います。
(ちなみに、今の問題は非同期処理を行うことも可能なメソッドをオーバーライドする際に
 非同期処理を全く使わないと警告が出てしまうということですので、
 何かに妥協してメイン処理を止めるというわけではありません)

182:デフォルトの名無しさん
18/06/17 00:16:30.35 hCSOxZ9X0.net
そもそもasync修飾子そのものには、たんにawaitする目印としての意味しかないわけで
awaitしないメソッドをasyncにするのが根本的におかしいとしか思えんのだが

183:デフォルトの名無しさん
18/06/17 04:27:25.92 f8Zp6PCK0.net
wpfのフォームってhtmlとcssが合わさったようなもん?

184:デフォルトの名無しさん
18/06/17 05:09:52.71 w8cOZ/cU0.net
>>178
async Task Hoge() { }
↑は警告は出るもののコンパイルできますが
Task Fuga() { }
↑はコンパイルすらできないので、async がたんに awaitするための目印というのは語弊があるのではないでしょうか。

185:デフォルトの名無しさん
18/06/17 10:24:51.50 g+98DwlT0.net
> async を使うメソッドに XxxAsync という名前をつけることが推奨されていることからも、
> 事実上 async/await を使うかどうかはベースクラスに依存していると言っていいと思います。
TAPはTaskを返す関数の実装にasync/awaitを強要せんし使う側も関知せんじゃろ
AsyncサフィックスなんてそれこそEAPの頃からの慣例でしかない
awaitを使わず何故か付いてるasyncよりTask.CompletedTaskを返すコードの方がよほど明確だと思うがね

186:デフォルトの名無しさん
18/06/17 11:46:32.45 IxLGC6rAM.net
>>180
ただの目印と理解していいよ
asyncって目印を見つけたらメソッド内だけ文法をちょっと変えますねっていう取り決めなの
目印もなしに勝手に文法を変えられたら仕事にならん
だから目印が必要なの
目印を付けただけでエラーになると言うけど
目印を付けたら文法が変わるのだから同じコードでエラーが出たってなにもおかしくないだろう?

187:デフォルトの名無しさん
18/06/17 12:14:10.68 w8cOZ/cU0.net
>>181
レスどうもありがとうございます。
async Task SayHello3() { await SayHello(); await SayHello(); await SayHello(); }
async Task SayHello2() { await SayHello(); await SayHello(); }
async Task SayHello1() { await SayHello(); }
は問題ないのに
async Task SayHello0() { }
ではなく
Task SayHello0() { return Task.CompletedTask; }
と書かなければならないことに不自然さを感じていたのですが、
2つ目の SayHello0() を単独で見れば、おっしゃる通り何をしているかは明確ですし、
async に固執するのもあまり良くなさそうですね。
async はそのままにして警告を抑制する方法を提案してくださる方もいらっしゃいますし
私としてもそちらの選択肢を完全に切り捨てるまでの確信は持てていないのですが、
Task.CompletedTask を返す方法も決して悪いものではないと分かりとても勉強になりました。

>>182
確かにそのとおりですね。失礼いたしました。
ただ問題なのは、「目印を付けただけでエラーになる」のではなく、
「目印を付けないとエラーになるのに目印を付けても警告が残る」という点でして、
せっかくの目印の機能を気持ちよく使うことができず、どうしたものかと考えております。

188:デフォルトの名無しさん
18/06/17 12:46:14.26 JpLAIDLea.net
結局質問者の疑問はこういうこと?
(1) サブクラスで非同期メソッドとして実装される可能性があるメソッドの名前は
Asyncでサフィックスすべきか?
(2) (1)がYesの場合、そのメソッドが非同期で実装されなくても(awaitを含まなくても)
asyncで修飾すべきか?
正解はYes-No?
理由は、非同期メソッドは使う側がそれを非同期メソッドだと理解している必要があるのに対し、
非同期メソッドじゃないものを非同期メソッドと誤認しても弊害はないから
もちろん不要な混乱を避けるために、「このメソッドは多態の都合上Asyncでサフィックスされてるけど
非同期メソッドじゃないよ」みたいなコメントは必要か?

189:デフォルトの名無しさん
18/06/17 13:22:22.85 w8cOZ/cU0.net
>>184
整理していただきどうもありがとうございます。
(1) については実は疑問であるという認識をもっていたわけではなく、
ご指摘をいただくまで当然そうするべき事柄であると考えておりました。
(2) がまさに疑問点でして、(1) が Yes/No のどちらであっても
答えが得られると嬉しいと思っています。
> 非同期メソッドは使う側がそれを非同期メソッドだと理解している必要があるのに対し、
> 非同期メソッドじゃないものを非同期メソッドと誤認しても弊害はない
おっしゃる通りだと思います。(もちろん細かなオーバーヘッドが問題にならない場合の話ですが)
> 「このメソッドは多態の都合上Asyncでサフィックスされてるけど
> 非同期メソッドじゃないよ」みたいなコメントは必要か?
インターフェース等を介さずにメソッドを呼び出す可能性がある場合は
そのようなコメントがあると親切だと思いますが、
私としては、必ずしも必要ではないように思います。

190:デフォルトの名無しさん
18/06/17 14:33:41.38


191:IxLGC6rAM.net



192:デフォルトの名無しさん
18/06/17 21:01:18.97 6Wp8R37qa.net
・スレッド生成
勉強してから言えよって思う

193:デフォルトの名無しさん
18/06/17 21:08:29.24 rRGqqoATM.net
あーこれゴミクズにありがちな燃えるコメントの仕方だわ
言い争いが始まるので、賢明な諸兄は3日ほどスレを閉じておくのがよろしい

194:デフォルトの名無しさん
18/06/17 21:15:10.69 Z+AbfkC70.net
静的メソッドの中で動的メソッドって呼び出せないってあるけど、自分のクラスのインスタンスのメソッドは呼び出せるの?教えて雑魚

195:デフォルトの名無しさん
18/06/17 21:27:50.40 6Wp8R37qa.net
> async Task SayHello3() { await SayHello(); await SayHello(); await SayHello(); }
> async Task SayHello2() { await SayHello(); await SayHello(); }
> async Task SayHello1() { await SayHello(); }
と書くより引数nで実行回数を渡してforループで制御したらいい
n=0でasync awaitのペアがあるにかかわらず一度も実行されないawaitのついたメソッドができる
勿論警告もでないし誰かの言う一貫性のある美しいコードじゃないか

196:デフォルトの名無しさん
18/06/17 21:32:42.49 6Wp8R37qa.net
わかってると思うけどawaitがついたメソッドに突入した時点で
内部が自動的に別のスレッドで実行されるわけじゃない
中に入っても最終的にタスクにたどり着かないと別スレッドはスタートしない
System.Threading.Thread.CurrentThread.ManagedThreadIdでスレッドIDがでるから確認したらいい

197:デフォルトの名無しさん
18/06/17 21:38:25.64 7lB5BPvGa.net
>>191
await後に書いた処理って元のスレッドに同期されると思ってたけど、awaitで実行されたスレッドのまま進むよね?
Formアプリであれ?invokeしなくていいの?って思った記憶ある。思い違いだったらすまぬ

198:デフォルトの名無しさん
18/06/17 21:42:03.70 62NxCwPo0.net
非同期自体が複雑だし、(当時は)新しい構文ってことで、混乱を少しでも減らすために警告にしてるだけっぽいね
抑止しちゃっていいと思うよ

199:デフォルトの名無しさん
18/06/17 22:13:20.40 g+98DwlT0.net
>>193
Formが作成された所謂UIスレッドでは同期されるが、コンソールアプリ等では同期されない
もうちょい突っ込むと、await文が実行されるスレッドにSynchronizationContextへの仕込みがあるかどうかで違ってくる
await後に実行されるスレッドはSynchronizationContext.Postの実装により決定される
Winformsは最初のフォーム作成時にWindowsFormsSynchronizationContextを現在のスレッドに設定し
WindowsFormsSynchronizationContext.Postはメッセージループを仲介してUIスレッドでawaitの続きを実行する
具体的な実装はReference SourceやmonoのWindowsFormsSynchronizationContextを読むのが良い

200:194
18/06/17 22:18:16.07 g+98DwlT0.net
安価まちげーた>>192
なんかテキトーに書いたら分かりにくいな・・・
要はWinforms(WPFも同様)のスレッドでawaitするとその後の文は裏で勝手にControl.Invokeされてると思えばええねん

201:デフォルトの名無しさん
18/06/18 03:16:27.74 tq92Vuqu0.net
>>180
>Task Fuga() { } はコンパイルすらできない
それは戻り値のチェックで、int Fuga...でもコンパイルできないだろ
Taskもasync/awaitも関係ない話
むしろ、async Task Hoge() { } がタスク戻さないのにコンパイル通ることのほうが問題じゃね
つかほんとにこれ警告だけで通って正常に動くの?
そのときHoge()で何が帰ってきてるんだ?

202:デフォルトの名無しさん
18/06/18 03:36:27.38 tq92Vuqu0.net
まあその例で統一したやり方でやりたいなら
async Task SayHello0() { await Task.CompletedTask; }
で良いんじゃないのか

203:デフォルトの名無しさん
18/06/18 07:05:52.53 5zfP7m4zM.net
>>196
最適化してCompletedTaskでも返すのかなとも思ったけど
IL見ると他と同じようにコード生成して実行してんね
このオーバーヘッドが必要な処理なら警告を無視してasync使えばいいと思う

204:デフォルトの名無しさん
18/06/18 10:59:47.44 ubyRHWyfa.net
どう考えても質問者の方がよく分かってるのに
何も分かってない奴に限って上から目線で偉そうに何か言ってるのは滑稽過ぎるねw
気付いてないのは本人だけ(とすら気づいてない)のも何とも笑いを誘う

205:デフォルトの名無しさん
18/06/18 11:33:39.78 jfMWOsL40.net
質問者のドメイン知識の話だろ。
質問者以外に、このスレどんなエスパーいるのか?

206:デフォルトの名無しさん
18/06/18 12:52:58.18 omBcANz0a.net
実際にawaitされることで呼び出し側が想定されることが実現されるなら
たとえ何もしない無駄なスレッドを使用したとしてもそれが一番いい
最適化されて何もしないとなればUIスレッドなどの副作用を期待していた呼び出し側が困る
実際はそういうことはおこらないので問題ない
上に書いてあったawait Task.CompletedTask;が一番いい答えだと思う

207:デフォルトの名無しさん
18/06/18 17:06:03.17 wetnizJS0.net
プログラミングってさあ、基本を使い倒すほうがいいの?

208:デフォルトの名無しさん
18/06/18 18:38:53.61 rGsHjxJX0.net
皆さんレスどうもありがとうございます。
>>186
スレッド生成はともかく、無駄をなくすという観点は重要ですね。
>>198 に書いていただいてあることも踏まえると、
> しかし文法上の間違いではないのでエラーと断言することもできない
> 間をとって警告を出すってのが妥当な落とし所じゃないかな
というご意見は実に的を射たものであるように感じました。
>>190
> forループで制御したらいい
同じメソッドを繰り返し呼ぶ例は不適切でしたね。失礼いたしました。
ただ、for ループ版に n = 0 を渡しても何の問題もないのに
async Task SayHello0() { } では警告が出るというのも
やはり腑に落ちない感じがします。
>> 191
> 中に入っても最終的にタスクにたどり着かないと別スレッドはスタートしない
やはりそこが重要なポイントですよね。
だからこそ、最終的にタスクにたどり着かない選択肢がある方が
自然だと思うのですがいかがでしょうか。
>>193
> 非同期自体が複雑だし、(当時は)新しい構文ってことで、混乱を少しでも減らすために警告にしてるだけっぽいね
> 抑止しちゃっていいと思うよ
言われてみると、構文に不慣れな方向けの警告であるという考えは
とても納得ができました。
あとは、「自分は構文を十分に理解しているから警告を抑制しても構わないのだ」
という主張をいかにして人様に受け入れて貰うかが課題でしょうか(汗

209:デフォルトの名無しさん
18/06/18 18:39:23.10 rGsHjxJX0.net
>>196
> むしろ、async Task Hoge() { } がタスク戻さないのにコンパイル通ることのほうが問題じゃね
> つかほんとにこれ警告だけで通って正常に動くの?
> そのときHoge()で何が帰ってきてるんだ?
確かに一見すると不思議ですよね。
このあたりの詳しい話は TaskAwaiter で検索するとお知りいただけると思います。
>>197 >>201
> await Task.CompletedTask
>>162 に書いていただいていることを仰っているのだと思いますが、
>>162>>161 の方法の不味さを説明するために await Task.CompletedTask を
引き合いに出されただけで、実際にこの方法を推奨されているわけではないと思います。
私自身も、async Task Hoge() { } と Task Hoge() => Task.CompletedTask; は
それぞれメリットがあるのに対して sync Task Hoge() => await Task.CompletedTask; は
すべての面で上 2 つに劣っていると考えておりますが、いかがでしょうか。
>>198
> 最適化してCompletedTaskでも返すのかなとも思ったけど
> IL見ると他と同じようにコード生成して実行してんね
大変ためになる情報をどうもありがとうございます。
私も確認してみましたが、async Task Hoge() { } と
Task Hoge() => Task.CompletedTask; との間にこれだけ IL のコードに差があると
前者


210:を使うのは躊躇してしまいますね。そもそも私は > このオーバーヘッドが必要な処理 になる状況が分からず、CompletedTask を返すように最適化が行われるべきだと思うのですが、 「await なしの async」と「CompletedTask 返し」との間の違いに気づいていらっしゃるようであれば ぜひお教えいただけないでしょうか。



211:デフォルトの名無しさん
18/06/18 18:46:20.98 XI+GT1Uo0.net
>>202
何が聞きたい
旅行ってさあ
車で行ったほうがいいの?
→目的地や条件による

212:デフォルトの名無しさん
18/06/18 20:44:23.89 /4T5LZMPM.net
>>202が一を聞いて十を知る頭の良い人間なら先に一通り言語をマスターした方が効率的
そうでないなら最初から高度な機能を覚えてもそれが何の役に立つのか理解できないから、まずは基本だけで身をもって苦労したほうがいい

213:デフォルトの名無しさん
18/06/19 05:31:43.83 R/zbDFZs0.net
>>204
そもそもawait なしの asyncが必要な理由も場面も思い浮かばんが
自分一人でやってるなら好きにすればいいんじゃね
最適化うんぬんを言うなら、Taskを返すどころかそんな呼び出しそのものが不要じゃね

214:デフォルトの名無しさん
18/06/19 08:14:05.91 qYFKlpQqM.net
そもそものそもそもasyncやawaitで気軽にスレッドを立ててるような処理はだいたいバグってる
スレッドを立てるってそれ自体の処理より
立てても大丈夫なぐらいの前準備のが遥かに手間がかかる
気軽に立ててあるとこはまず間違いなくバグってるので安心していい

215:デフォルトの名無しさん
18/06/19 08:47:25.71 XF2Gjt0sa.net
asyncとスレッドって直接関係ないだろ
スレッドは非同期処理を実装する手段の一つに過ぎない
最近のazureなんか「上司にメール送って添付URLのページにある承認ボタンが押されるまで待つ」みたいな非同期処理ですらawaitできるんだぞw

216:デフォルトの名無しさん
18/06/19 10:49:26.69 2YKCyXH1a.net
誰に向かって説教してるつもりなのかねw
馬鹿過ぎる

217:デフォルトの名無しさん
18/06/19 17:36:20.33 ygjnsczhH.net
google検索で
@it async await
これ読んでわかった気になった。
シンプルな実装では使えたけど、応用でつまずく。最近プログラム組んでないので頭固い……

218:デフォルトの名無しさん
18/06/19 17:40:54.18 B+3+LOal0.net
固ければジューサーに入れてみる?

219:デフォルトの名無しさん
18/06/19 18:44:23.63 eWtmWHlOM.net
普通のジューサーでは>>211の固い頭は砕けません
そこでショップジャ〇ンのマジックブレッドデラックスを使えば楽チンに下ごしらえができます

220:デフォルトの名無しさん
18/06/19 19:56:40.35 0sn0Q0vo0.net
C♯を勉強するのにおすすめのサイトありますか?
何かを作りなが勉強したいなと思ってるんですが。

221:デフォルトの名無しさん
18/06/19 20:10:42.40 kAXRFxrM0.net
>>214
URLリンク(dobon.net)
URLリンク(www.atmarkit.co.jp)
URLリンク(ufcpp.net)
URLリンク(docs.microsoft.com)
ここで勉強するというかやりたいことを「C#」に続けてググるとだいたいこのあたりがヒットする

222:デフォルトの名無しさん
18/06/19 20:12:26.56 ygjnsczhM.net
>>213
そこで、トゥルースリーパーとパチもんハズキルーペ買った。
パチもんの方はメガネにLEDライトが付いてたからつい。薄暗いとこであれはめちゃ便利(稀にしか使わないけど…orz)。(100金の老眼鏡でいいと思う。しょ�


223:ケん凸レンズの一種だから。) トゥルースリーパーは半年くらいたってまだ箱の中orz



224:デフォルトの名無しさん
18/06/19 21:01:02.40 RAxnAMrUr.net
c#のコーティング方法で検索すること多いけど、なぜかLINQで解説しているサイトがほとんどない
日本語サイトも海外サイトも
なんで?

225:デフォルトの名無しさん
18/06/19 21:02:44.86 LBhs/jk2M.net
>>217
実践的なアプリ開発で使われる機能だから、コピペTips系サイトのサンプルコードで必要になることはほとんど無い

226:デフォルトの名無しさん
18/06/19 21:53:01.39 EPHYIqEL0.net
素人に使われると価値が下がるからね
素人は年収300万で死ぬまでくだらないコードを書いていればいいんだよ

227:デフォルトの名無しさん
18/06/19 22:04:52.94 kI3CAS1L0.net
>>217
ほとんどないわけねーよwww

228:デフォルトの名無しさん
18/06/19 22:16:45.72 EE12WGu0M.net
>>217
LINQは手段であって目的じゃないからじゃないかなああああ

229:デフォルトの名無しさん
18/06/20 09:42:33.52 +y79X+880.net
FileSystemWatcherのChangedイベントの発生条件は、監視しているディレクトリ内のファイルまたはディレクトリのサイズ、システム属性、最後の書き込み時刻、最後のアクセス時刻、またはセキュリティ アクセス許可の変更のようですが、
このうちのどれが変更されたか種痘するにはどうすればよいでしょうか?

230:デフォルトの名無しさん
18/06/20 11:51:07.40 ZYBHUW1Qr.net
>>218
そういうもんなの?
>>220
スタックオーバーでたまに外人さんがLINQで答えてるのあるくらい
割合的に3%くらいな印象
みんな使わないんだね
>>221
手段でも目的でもどっちでもいいの

231:デフォルトの名無しさん
18/06/20 12:05:31.86 7vWN9rvKa.net
>>222
使ったことないけど、イベントハンドラで受け取れる引数(FileSystemEventArgs)
で普通に分かるんじゃなくって?
URLリンク(msdn.microsoft.com)

232:デフォルトの名無しさん
18/06/20 12:06:45.48 5eL+NvGEa.net
>>222
あらかじめ情報をどこかに持っておいて比較するしかないかな
>>224
変ったという情報しかくれない

233:デフォルトの名無しさん
18/06/20 12:14:29.61 7vWN9rvKa.net
>>225
いやいや、ちゃんと提示したリンクよく先見ました?

234:デフォルトの名無しさん
18/06/20 12:16:40.94 7vWN9rvKa.net
>>225
あー失礼。
よく見ると結局詳細な情報は得られないみたいね

235:デフォルトの名無しさん
18/06/20 12:22:49.35 7vWN9rvKa.net
ちょっとググって見た感じ、結構面倒だけど、
知りたい変更の数だけ適切にNotifyFilterプロパティを設定したFileSystemWatcherを作れば
一応可能な感じはするね

236:デフォルトの名無しさん
18/06/20 12:29:31.18 4Nq0pqOcd.net
>>223
みんな使ってるよ

237:デフォルトの名無しさん
18/06/20 22:31:23.62 hTxlP2+IM.net
ググり方を知らない典型

238:デフォルトの名無しさん
18/06/21 21:35:06.03 hmU1hN6P0.net
エクセルbook1を開かずにsheet2の2列目に入ってる項目をコンボボックスに入れたいのですが、どうやるんですか?

239:デフォルトの名無しさん
18/06/21 21:41:20.00 vdaQuC2wp.net
中身を見ずに言い当てる手品のやり方なんか知らねーよ。

240:デフォルトの名無しさん
18/06/21 21:43:13.77 pTjgD9kkM.net
地�


241:魔ノ落ちろ



242:デフォルトの名無しさん
18/06/21 21:51:22.49 lTKRVfWU0.net
Excel.exe使わずにって意味ならいくらでもあるだろ

243:デフォルトの名無しさん
18/06/21 22:32:53.55 7/J4zdhU0.net
御託はいいから答えろゴミクズ

244:デフォルトの名無しさん
18/06/21 23:11:39.87 HAta7DXc0.net
xlsxならclosedxmlつかえば

245:デフォルトの名無しさん
18/06/22 00:26:01.32 /gqu33js0.net
ファイル開かずにならもちろん無理。
見えないだけなら可視しなければいいだけやん。

246:デフォルトの名無しさん
18/06/22 00:49:53.36 OqpGVa7ea.net
日本人のエクセルスキーは異常
海外にも神エクセルってあるんだろうか

247:デフォルトの名無しさん
18/06/22 01:45:41.77 fZhhlNhQ0.net
>>231
コンボボックスとは?

248:デフォルトの名無しさん
18/06/22 03:12:37.07 XVd2TvDg0.net
どんなものを作ればいいのかわからない
何をつくればいいんだ
教えてお前↓

249:デフォルトの名無しさん
18/06/22 03:21:00.63 6eBOmsiI0.net
JavaMachine

250:デフォルトの名無しさん
18/06/22 06:50:27.01 PzKWFNpyd.net
会社が未だにxpが数台あって、数多くあるエクセルを開いて処理して閉じる開いて処理して閉じるってやると重いけどなんか早くなる方法ってある?
database?SQL?
VB6でそうやってエクセルファイルを扱って処理してるんだけど

251:デフォルトの名無しさん
18/06/22 06:57:20.38 6eBOmsiI0.net
5万円のPCを買ってくる

252:デフォルトの名無しさん
18/06/22 07:07:33.30 Fs6DCFa0a.net
>>238
外人はそもそも罫線をあまり使わない
方眼紙に文字を詰め込むのは日本猿特有の習性

253:デフォルトの名無しさん
18/06/22 07:09:51.33 6eBOmsiI0.net
私は猿なのでVSの枠がはっきりしないフラットデザインが馴染めません。

254:デフォルトの名無しさん
18/06/22 07:20:32.82 Y47lTZ4XM.net
日本猿も江戸時代はプレーンテキストだったのに、どこで間違えたんだろうな

255:デフォルトの名無しさん
18/06/22 09:37:09.99 bJJwlRlwM.net
>>231
開かないとわかりません

256:デフォルトの名無しさん
18/06/22 09:59:49.98 atRhX3PgM.net
>>245
同意
各項目の意味付けが曖昧になってすごく見づらい。退化と言いたいくらい。
そのうち立体的にするとわかりやすいやろって波が来ると思う。

257:デフォルトの名無しさん
18/06/22 10:09:55.10 lIRytxFLM.net
そもそも細々としたアイコンやメニューを大量に配置するのに適したUIではないわ
Azureコンソールとか見てても思うけど、マイクロソフトにUXデザイナーがいないってのは恐らく本当

258:デフォルトの名無しさん
18/06/22 10:13:34.27 etP9oQEYM.net
VSCodeのUIは使いやすいけどな
本家VSもボタン全部無くしてコマンドにするべきだわ

259:デフォルトの名無しさん
18/06/22 10:18:33.53 KB00qr+FM.net
web service(asmx)について教えてください。
利用する複数のアプリで使い回したいものをstatic変数に保持したいのですが、寿命が尽きるタイミングは分からないでしょうか?
具体的にはデータベースのconnectionでして、セッションをケチるために1つだけを使い回そうと考えています。寿命が尽きる時にdisposeしたいのですが、できない場合問題でしょうか?

260:デフォルトの名無しさん
18/06/22 10:26:12.51 xMgX8Fdkr.net
C#の設計思想とか、どういう設計でコード書いたらいいかみたいなのがわかりやすい書籍ってある?

261:デフォルトの名無しさん
18/06/22 10:51:01.98 32SF4tM80.net
>>244
値を縦に並べて合計との間に一本横線引いてあるだけとか、海外の資料じゃ良くあるよね
>>245
馴染めないという程じゃないけど、もうちょっと境界をはっきりして欲しいな
Windowsのデザインからしても最近のMSのトレンドなんだろうけど

262:デフォルトの名無しさん
18/06/22 12:00


263::58.68 ID:fAckkxP+p.net



264:デフォルトの名無しさん
18/06/22 12:11:16.45 mIOgjjA8a.net
フラットデザインは最近はやりのユニバーサルデザインとは真逆

265:デフォルトの名無しさん
18/06/22 12:11:51.14 U+1NZIRBr.net
>>254
よさげ
とりあえずKindle版ぽちった。
ありがとう!

266:デフォルトの名無しさん
18/06/22 12:19:03.29 D0ZAUiXgM.net
第2版が出てたんだな
ステマか

267:デフォルトの名無しさん
18/06/22 14:40:02.21 +QjyPCKBM.net
ダイレクトやろ

268:デフォルトの名無しさん
18/06/22 17:59:11.25 32SF4tM80.net
むしろサードパーティマーケティング

269:デフォルトの名無しさん
18/06/22 18:01:56.90 v3P4scZFM.net
今年独り社内SEとして入社しC#を選んだ者ですが、コンストラクタをオーバーロードして引数が有るものと無いものを作りました
よくよく考えると引数が無いコンストラクタのインスタンスを作って引数有りを前提にしたメソッドをコールすると最悪例外を出してしまうのですが、これは設計不良として検討し直しでしょうか?よくある事として許容されるでしょうか?

270:デフォルトの名無しさん
18/06/22 18:07:20.69 j0bZxxMK0.net
>>260
>引数が無いコンストラクタのインスタンスを作って(コンストラクタの)引数有りを前提にしたメソッド
人に聞くまでもなく作り直さないとだめだろう

271:260
18/06/22 18:21:23.38 v3P4scZFM.net
やっぱり設計の問題ですよね
フィールドに初期値入れれば例外は起きないと思いますが、引数必須のインスタンスを作られたら無意味なメソッドが完成するというのは設計者失格ですよね

272:デフォルトの名無しさん
18/06/22 18:35:58.53 j0bZxxMK0.net
>無意味なメソッドが完成する
メソッド書き直すとかないんだ・・・
普通は条件が違えば呼ばれないようにするとかメソッド内部で分岐させるとかいろいろあると思うんだが

273:デフォルトの名無しさん
18/06/22 19:36:18.31 fkpP2SFC0.net
>>251
>寿命が尽きるタイミングは分からないでしょうか
基本的には分からない
つかキャッシュ使え
そもそもDBコネクションならほとんどの場合でドライバ側でプーリングされてると思うが

274:デフォルトの名無しさん
18/06/22 19:43:22.50 RGVBxohIa.net
>>260
設計不良は大げさ過ぎw
普通に考えて
(1) 引数ありのメソッドは廃止。代わりにそのデータはプロパティでセットできるようにする。
(2) 引数なしのコンストラクタが呼ばれた時はプロパティの値は規定値が設定されるようにする
こんだけでしょう

275:デフォルトの名無しさん
18/06/22 19:58:18.66 KB00qr+FM.net
>>264
データベース管理者から、なるべく接続を増やすなと言われてます。複数のPCから複数のアプリでアクセスするので、窓口を一本化するイメージです。
なのでプーリングはアプリ分の接続が残るので逆効果。
キャッシュを使うとは具体的にはどうするのですか?ググるヒントをもう少しください。

276:デフォルトの名無しさん
18/06/22 20:38:24.35 fkpP2SFC0.net
>>266
>複数のPCから複数のアプリでアクセスするので
それサーバ側の話?
アクセスって何に?DBにアクセスするのは誰?
つか、そもそもそれWEBサービスに同時アクセスあったときにどうする気?

277:デフォルトの名無しさん
18/06/22 20:58:02.81 atRhX3PgM.net
>>260
使う側からすると、引数に渡す値ね~よのときは、引数なしのほうがいいな。
(なしのときは null渡すとかにしたくないな。私見)

278:デフォルトの名無しさん
18/06/22 22:05:33.33 rFBnrjcr0.net
>>266
接続ユーザー分排他でもするのかよw

279:デフォルトの名無しさん
18/06/22 23:04:03.86 TC2xExz/0.net
4msのインターバルタイマを実現するのにおすすめの方法を教えてください

280:デフォルトの名無しさん
18/06/22 23:08:50.34 6eBOmsiI0.net
リアルタイムOSをインストールする

281:デフォルトの名無しさん
18/06/23 00:01:03.09 9nwowUkH0.net
USBシリアル付きマイコンから適当にパルスを送ってもらう
数百円ぐらい

282:デフォルトの名無しさん
18/06/23 00:04:23.96 4A65Q


283:ZOx0.net



284:デフォルトの名無しさん
18/06/23 00:07:55.71 OXSP1qkx0.net
>>271
CreateWaitableTimerなるものを見つけました
試してみます
>>272
URLはよ!はよ!

285:デフォルトの名無しさん
18/06/23 00:27:06.35 YVqCYnTIa.net
>>273
データアクセスのためのAPI作れば

286:デフォルトの名無しさん
18/06/23 01:52:54.43 OXSP1qkx0.net
>>272
Arduino Nano互換 でいいのね?
よーし、パパがんばっちゃうぞー

287:デフォルトの名無しさん
18/06/23 02:29:38.11 RCtrcOsy0.net
>>273
>クライアントPCからデータベースに接続します。webサービスで排他処理します。
webサービスは何をもらって何を返す気なんだ
なんにしても俺には想像もつかない方式を検討してそうだ

288:デフォルトの名無しさん
18/06/23 06:55:53.26 DOoRmJ6HM.net
>>273
webサービスの中で普通にコネクションを開いて使い終わったらすぐにDisposeすればいいよ
ライブラリがいい感じにコネクション数を調整してくれる
どうしてもマニュアルでコネクションの数を制御したいならDB要求をループで処理し続けるスレッドを走らせて、他のスレッドとはキューで連携させる

289:デフォルトの名無しさん
18/06/23 07:53:25.35 5eZj9LlZM.net
web側でmax connection pool sizeを設定するだけの話に見えるが
そういう設定が無いからどうしたらいいかって話なの?

290:デフォルトの名無しさん
18/06/23 09:10:53.59 kilEB0fc0.net
tes

291:デフォルトの名無しさん
18/06/23 11:25:15.28 kilEB0fc0.net
test

292:デフォルトの名無しさん
18/06/23 11:28:34.91 kilEB0fc0.net
fwくぇ

293:デフォルトの名無しさん
18/06/23 11:42:17.32 kilEB0fc0.net
fwq

294:デフォルトの名無しさん
18/06/23 11:44:04.15 kilEB0fc0.net
fwqef

295:デフォルトの名無しさん
18/06/23 12:01:17.59 AshQdjwf0.net
よそでやれ

296:デフォルトの名無しさん
18/06/23 12:23:56.69 RL7TWjJda.net
>>262
引数なしのコンストラクタをprivateに

297:デフォルトの名無しさん
18/06/23 17:51:20.90 RCtrcOsy0.net
>>286
それだと(外部から)引数必須なインスタンスしか作れなくなる
それが設計通りならそれでいいけど
引数必須なインスタンスと引数なしのインスタンスが同一クラスである必要あるのか疑問だ
引数なしのクラスを継承して引数ありのクラス作れば良い気がするぞ

298:デフォルトの名無しさん
18/06/23 18:04:38.51 61tHQZae0.net
引数一個で騒々しいソースコードですね

299:デフォルトの名無しさん
18/06/23 22:33:46.94 RCtrcOsy0.net
動けば良いってなら好きにすればいいさ
設計論として考えるとどうしても大仰になるのはしかたない

300:デフォルトの名無しさん
18/06/23 22:44:50.08 AshQdjwf0.net
クレデンシャルを持ってる場合だけ一部の関数が使えるとか
別に珍しい設計じゃないと思うけどね

301:デフォルトの名無しさん
18/06/24 00:05:43.76 LwX9ZOYW0.net
>>289
動けばいいことの他に何を気にしてるの?
実行速度?

302:デフォルトの名無しさん
18/06/24 00:10:47.78 tHXuj/n7a.net
ああ、なんか質問を読み違えてたけど、
要は現実の使われ方として、特定のプロパティがまったく必要とされないケースがあるってことね。
単純に考えると>>287がシンプルで分かりやすいように思うけど
ケースバイケースではあるが、一つのプロパティを追加しただけのサブクラスってのも
存在意義がはっきりしないというか、名前付けに困るようなクラスになりがちのようにも思う
コンストラクタで明示的に指定されない場合はプロパティの値が規定値としておくのが
無難なケースの方が多いと思うけどね

303:デフォルトの名無しさん
18/06/24 01:25:17.80 GW8ybopf0.net
>>291
設計論だっていってるんだから、設計の美しさだよ
美しさ�


304:フ基準は人によって違うからほとんど宗教論なんだがなw >>291 >コンストラクタで明示的に指定されない場合はプロパティの値が規定値 コンストラクタで指定するものが、プロパティで指定できるようなものなら確かにそれが一番無難 ただそれなら引数つきコンストラクタの存在意義がなぁ たんにコードが短くなるぐらいだが、オブジェクト初期化子でプロパティ設定するのと大差ない気がするし



305:デフォルトの名無しさん
18/06/24 23:01:38.61 euoTg7OM0.net
webBrowser1.documentText=hoge;
で生成したHTML中にページ内リンクがあります。
(<span id="xxx"></span>)
クリック操作をせずにこのアンカーにジャンプすることはできるのでしょうか?

306:デフォルトの名無しさん
18/06/24 23:35:19.41 +Dnac0xs0.net
webBrowser1.Document.GetElementById("xxx").InvokeMember("Click");

307:デフォルトの名無しさん
18/06/24 23:43:26.59 euoTg7OM0.net
エラーは出ないのですが、ジャンプはしてくれませんでした。
単なるアンカーなので、直接それをクリックしても意味はなくて、
<a href="#xxx">XXX</a>をクリックするようにしないとジャンプしないのではないでしょうか?
(なお、ページ内に↑を用意していないので、これをクリックすることはできません)

308:デフォルトの名無しさん
18/06/25 10:34:01.89 CeO6DCCqM.net
GetElementById(...).ScrollIntoView(...)

309:デフォルトの名無しさん
18/06/25 11:16:30.33 sIr2ygWz0.net
>>297
いけました!
ありがとうございます!

310:デフォルトの名無しさん
18/06/25 16:58:03.78 L8J9ADJ70.net
ListVIewでクリックされたアイテムのインデックスを取得するにはどうしたらいいでしょうか?
例えば、以下の画像だと、"ListSubItem 3"がクリックされた時に、1,2 (1は列,2は行)といった値を取得したいです。
URLリンク(www.planetsourcecode.com)

311:260
18/06/25 17:57:14.07 TcWThoAPM.net
引数有り無しのコンストラクタで相談した者ですが色々とご意見ありがとうございます
先輩無しの独り開発なので参考になります
何が正しいかはプロジェクトの性質に左右されそうなので突き詰めませんが、驚き最小の法則的に見ると、無意味なメソッドをコール出来るとかどんな気持ちでしょうか?
私は後々混乱しそうなので避けたいのですが、さほど驚かれないならこのまま実装しようかとも

312:デフォルトの名無しさん
18/06/25 21:33:53.83 1sQ+cvRC0.net
>>299 HitTest

313:デフォルトの名無しさん
18/06/25 21:56:47.71 lw6peYFv0.net
暇つぶしにunityでプチゲームを作ろうとしているのですが
以下のような処理をしています。
URLリンク(dotnetfiddle.net)
スキルが増えるごとにSkillFactoryとTypeToParameterに分岐が増えていってしまって
なんだかなあという感じなのですが、もうちょっとマシな方法はないでしょうか。
SkillParamが諸悪の根源のような気もしていますがほかにうまい方法がおもいつかず。。

314:デフォルトの名無しさん
18/06/25 22:01:12.17 XS6tlG59d.net
githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか?

315:デフォルトの名無しさん
18/06/25 22:10:35.49 XRDiWZAB0.net
ワークシート1のb2から空になる最終行までフォーム1のコンボボックスに入れにはどうしたらいいですか?

316:デフォルトの名無しさん
18/06/25 22:15:12.37 Bspx7Xiu0.net
>>303
VisualStudioで作成したファイルって具体的には何のこと?

317:デフォルトの名無しさん
18/06/25 22:30:53.83 QLHuH/320.net
ListでKey値が一致する要素を探


318:して 内容を更新するにはどうすればいいの ループで検索するしかない?



319:デフォルトの名無しさん
18/06/25 22:41:13.84 DXP13toJ0.net
>>306
DictionaryならともかくListでKey値って何よ

320:デフォルトの名無しさん
18/06/25 22:49:08.14 QLHuH/320.net
>>307
2次元にしてキー項目を自分で作ったのよIndex用に

321:デフォルトの名無しさん
18/06/25 23:11:47.70 cq0DHw7f0.net
KeyedCollectionクラス

322:デフォルトの名無しさん
18/06/26 09:16:48.94 UPxy/vlK0.net
なぜDictionaryにしなかったのか

323:デフォルトの名無しさん
18/06/26 09:21:11.66 A+/Pd/Nq0.net
君は何故全力を尽くしても駄目なのか

324:デフォルトの名無しさん
18/06/26 09:58:06.77 1CiOys6I0.net
object型のメンバ?の値を文字列型に代入したいのですが
どのように書けば良いでしょうか?
static void Main(string[] args)
{
var obj = new { a = "a", b = "b" };
Hoge(obj);
}
static void Hoge(object obj)
{
string fuga = obj.b.ToString(); //この書き方で怒られてしまいました
}
object型は基本のようなので、根本的な所を理解していないのかも知れませんが
よろしくお願いします。

325:初心者
18/06/26 10:22:41.47 d46l513VM.net
>>312
Hogeのobjはbを知らないから……かな?

326:デフォルトの名無しさん
18/06/26 12:16:48.98 U/nLOHiUM.net
>>312
objectをdynamicに変えるといいよ

327:デフォルトの名無しさん
18/06/26 12:22:10.81 yFHnMB/La.net
>>312
つdynamic

328:デフォルトの名無しさん
18/06/26 13:31:04.74 oxIIJc6mM.net
便乗質問していいですか?
> var obj = new { a = "a", b = "b" };
これってクラスとして扱われるんですか?

329:デフォルトの名無しさん
18/06/26 13:38:08.33 ZA95aSE/M.net
扱われるよ

330:デフォルトの名無しさん
18/06/26 14:41:15.83 yB7+BiTZ0.net
インスタンスメソッドとstaticメソッドの使い分けがいまいちわからないので教えてください
public class Hoge {
private string Name { get; } = "piyo";
public Hoge(string name) {
Name = name;
}
}
上記のようなクラスがあり、これをvar hoge = new Hoge("foo"); とインスタンス化したとして、
public bool IsPiyo(){
return Name == "piyo";
}
上記のようなインスタンスメソッドを書いて、hoge.IsPiyo()とするのと、
public static bool IsPiyo(Hoge hoge){
return hoge.Name == "piyo";
}
上記のようなstaticメソッドを書いて、Hoge.IsPiyo(hoge)とするのでは、どう違い、どちらにするべきでしょうか?
なんとなく、staticの方が入力と出力がはっきりしてるのでわかりやすいのかなと思うのですが、オブジェクト指向ではないですよね

331:デフォルトの名無しさん
18/06/26 14:59:10.81 FPh9h90J0.net
インスタンスが必要かどうか。
stringクラスのCompareメソッドとCompareToメソッドが良い例。
前者はパラメータがnullでも通るが、後者はインスタンスが無いとダメ。

332:デフォルトの名無しさん
18/06/26 15:53:58.50 B40aLJ4va.net
インスタンスメンバーを参照してないならstaticにしてる
でも必ずすべきとは思わない
仮に日本語にして考えてみる
人間クラスに "はピヨです()"メソッドをそれぞれ実装すると
if(人間.はピヨです(彼)) {~}

if(彼.はピヨです()) {~};
これを見るとstatic はおかしいと思うがstaticにすることが多い

333:デフォルトの名無しさん
18/06/26 16:01:01.51 B40aLJ4va.net
誤解を招くような書き方だけど上のHogeなら間違いなくインスタンスメソッドにする

334:デフォルトの名無しさん
18/06/26 19:39:44.60 2rJMn7sUa.net
あー、ちょっとわかってきたかもです
主語というか、意味的に、表現したい意図に近い方を選ぶ感じですかね
とりあえず今回の例で言うと、インスタンスメソッドにすることにします

335:デフォルトの名無しさん
18/06/26 22:41:11.75 oc0D76610.net
RuntimeHelpers.PrepareMethod(RuntimeMethodHandle)の挙動が理解できない・・・



336:このコードでm2にPrepareMethodを使うことは不可能ですか? == using System.Runtime.CompilerServices; class B<T> { public void M() { } } class C1 : B<int> { } class C2 : B<string> { } class Program {   static void Main(string[] args)   {     var m1 = typeof(C1).GetMethod("M").MethodHandle;     var m2 = typeof(C2).GetMethod("M").MethodHandle;     RuntimeHelpers.PrepareMethod(m1); // 問題なし     RuntimeHelpers.PrepareMethod(m2); // System.ArgumentException: '指定されたジェネリックのインスタンス化は無効です。'   } } ==



337:デフォルトの名無しさん
18/06/26 22:44:20.11 QRnSOnuU0.net
>>322
別にそんなとこ気を使っても一円の利益にもならんというアドバイスも
心の片隅においておいてくれ

338:デフォルトの名無しさん
18/06/27 06:43:38.75 ZicgrVNId.net
Cでエクセルを扱っていろいろするときはやっぱcsvにしておいた方がいいのかね?

339:デフォルトの名無しさん
18/06/27 09:40:20.28 UGstrjJ10.net
>>316
匿名型、で調べてみるといい

340:デフォルトの名無しさん
18/06/27 13:28:49.32 kZGjx8UI0.net
>>325
何をやりたいか次第だけども、
csvで完結出来るのならcsvがいい

341:デフォルトの名無しさん
18/06/27 15:48:14.07 VkL9wLVWp.net
下手にxls使うと勝手に型変換してくれるからめちゃくちゃになるんだよな。

342:デフォルトの名無しさん
18/06/27 19:05:45.76 Eyd8ciC/M.net
複数のアプリで1つのserial portを使いたくて、dllで受けて受信データによって別々のイベントを発生させ、複数のアプリに受信させようと考えました。
dll内のSerialPortをstaticで持てば共有できるかと思ったのですが、staticで宣言しても呼び出し元が別プロセスだと共有されないようですね。
何かいい手はないでしょうか。

343:デフォルトの名無しさん
18/06/27 19:33:53.09 cLV89PFx0.net
シリアルポートと通信するサーバを作って
必要な数だけクライアントを待ち受けるのが楽なんじゃないの
プロセス間通信はソケットやパイプとか適当なものを使う

344:デフォルトの名無しさん
18/06/27 20:12:38.21 4yQE+Bm50.net
>>323
コレじゃダメかい?
URLリンク(stackoverflow.com)

345:デフォルトの名無しさん
18/06/27 22:11:07.14 VkL9wLVWp.net
複数のアプリにどうやって通信データを振り分けるかの方が興味あるわ。

346:デフォルトの名無しさん
18/06/27 22:41:58.18 ezuUhY+H0.net
つ MSMQ

347:デフォルトの名無しさん
18/06/27 23:21:02.53 KXFiZVY30.net
そもそもWindowsのシリアルポートって複数のアプリで共有(同時オープン)できるのか?

348:デフォルトの名無しさん
18/06/27 23:25:13.59 YJH26+lwa.net
シリアルポートはなんかが掴んでたらだめだよね

349:デフォルトの名無しさん
18/06/27 23:39:03.37 kv/Gz/3da.net
だから質問してるんでしょw
質問者は他のアプリが占有中でも無理矢理割り込む方法を聞いてるわけじゃなく、
自作アプリの複数のプロセスで共有する方法を聞いてる

350:デフォルトの名無しさん
18/06/27 23:42:52.29 lEu9Ds2F0.net
ない

351:デフォルトの名無しさん
18/06/27 23:50:05.06 KXFiZVY30.net
だからそもそもシリアルポートは複数のプロセスで共有できないでしょって言ってるんだが
どうすべきかは>>330さんがとっくに示してるわ

352:デフォルトの名無しさん
18/06/27 23:57:16.85 kv/Gz/3da.net
馬鹿にも程があるな...

353:デフォルトの名無しさん
18/06/28 00:02:45.40 o5j8xzNra.net
言ってるんだが
いつも思うけど、こういう口調って馬鹿の間で流行ってるのかねw

354:デフォルトの名無しさん
18/06/28 00:39:46.48 M7FH9WysM.net
シリアルポートに限らずdllのstatic変数が共有できないのですが、共有したい需要ってないのでしょうか?共有したい場合はどうするのがよいのでしょうか?

355:デフォルトの名無しさん
18/06/28 01:01:35.03 wDYBzoR70.net
>>332
俺も�


356:アれが疑問だ 仮にサーバーが受けたとして どうやって俺宛か判断するんだ?



357:デフォルトの名無しさん
18/06/28 01:12:05.63 5aYb43f30.net
dllのstatic云々はおいといてメモリマップトファイルならC#でも使えたかな
C++ならデータセグメントを共有メモリにできる
どちらにしろプロセス間の排他制御が必要

358:デフォルトの名無しさん
18/06/28 01:31:16.24 o5j8xzNra.net
>>342
宛先なんかなく、単に全部のアプリに同じデータがブロドキャストされれば
十分って場合もあるでしょ
例えばシリアル経由で計測器か何かのデータが送られてくるとして、
(1) 画面表示だけするアプリ
(2) エクセルにログを保存するアプリ
(3) 計測データを使って何か他の機器を制御するアプリ
何かの都合でこんな風に複数のアプリに分けて作る必要があるのかもしれない

359:デフォルトの名無しさん
18/06/28 01:38:37.90 KZQYx/g/0.net
C#でのSelenium操作についても質問していいですか?

360:デフォルトの名無しさん
18/06/28 05:25:02.37 mpKH796a0.net
>>331
レスどうもです!下のようにして上手くいきました
こうなってくるとm1に対する方法はたまたま問題が起きないだけで
m2やm3の方法のほうが望ましいように思えてきましたがそういう認識であってますか?
==
using System.Runtime.CompilerServices;
class B<T> { public void M() { } }
class C1 : B<int> { }
class C2 : B<string> { }
class C3 : B<int> { }
class Program
{
static void Main(string[] args)
{
var m1 = typeof(C1).GetMethod("M").MethodHandle;
var m2 = typeof(C2).GetMethod("M").MethodHandle;
var m3 = typeof(C3).GetMethod("M").MethodHandle;
RuntimeHelpers.PrepareMethod(m1); // 問題なし
RuntimeHelpers.PrepareMethod(m2, new[] { typeof(string).TypeHandle }); // 問題なし
RuntimeHelpers.PrepareMethod(m3, new[] { typeof(int).TypeHandle }); // 問題なし
}
}
==

361:331
18/06/28 07:24:39.78 TtGcC5rD0.net
>>346
(確固たるソースに基づく訳じゃないので推測だけど)値型か、参照型かじゃない?
参照型の場合は TypeHandleを指定する必要がある、ってこと。

362:デフォルトの名無しさん
18/06/28 07:34:23.33 wMDqdzUG0.net
>>341
よく解らんけどdllってアプリごとにメモリに個別に展開されて初期化されるからソースコード上で同じ変数名にアクセスしても実態は違うので共有できないのは当たり前なきがする

363:デフォルトの名無しさん
18/06/28 08:01:29.47 M7FH9WysM.net
Cとかって共有されなかったっけ?よく覚えてないけど。

364:デフォルトの名無しさん
18/06/28 08:16:48.89 h/Ekqdxpa.net
されるわけないだろ
何のためにプロセスがあると思ってるんだ

365:デフォルトの名無しさん
18/06/28 09:27:13.22 9GisGdyJ0.net
ないって言ってんのにな
死ぬまで悪あがきしてればいいよ

366:デフォルトの名無しさん
18/06/28 10:06:45.02 uTPw2MsS0.net
何がしたいのか知らんけど、Win2k時代にシリアル通信のロガー作ったことある。あんときは、DLLをフックしてCreateFile,ReadFile,WriteFileのデータをトレースしたが、ハッキリ言ってやめたほうが良い。

367:デフォルトの名無しさん
18/06/28 11:08:48.44 mI3gmfcxp.net
ロガーだけならどこぞの口でforkすりゃいいだけだろ。
通信内容を振り分ける仕組みだと思ってたから無理って話してんだよな。

368:デフォルトの名無しさん
18/06/28 11:17:35.66 uTPw2MsS0.net
親がシリアル掴んで、名前付きパイプで子に振り分けるかなぁ。

369:デフォルトの名無しさん
18/06/28 12:52:45.79 q5PWc0B3M.net
>>332, >>342, >>353
受信データによって
って書いてるから何らかのプロトコル決めてて、アドレスとかポート番号とかの振分け用の情報あるんだろ
LANケーブルは1本でも複数のプロセスで共有してるのと同じ
ここまで書けばよほど頭の悪い奴でなければわかると思うが>>329が言うようなことは実現可能
URLリンク(nobikko-nobinobi.hatenablog.com)
ただC#だけでできるかどうかは知らん

370:デフォルトの名無しさん
18/06/28 12:53:45.63 q5PWc0B3M.net
>>349-351
無知自慢乙

371:デフォルトの名無しさん
18/06/28 13:12:07.43 wMDqdzUG0.net



372:同じDLLのstatic変数がそれを使ってることなるプロセス間で同じメモリの場所を参照するかってことじゃないの?



373:デフォルトの名無しさん
18/06/28 13:48:50.61 f040o02ua.net
>>356
残念だけどそれはプロセス間の共有メモリの話であってシリアルポート共有じゃないよ
シリアルポートは排他でしか開けないので他の人が書いてるようにシリアルポートをサービスで開いておくしかない
それがどのような形をとるかはいろいろある

374:デフォルトの名無しさん
18/06/28 15:13:33.45 5RaMOuHjM.net
通信量など条件にもよるけど、
シリアル受信プログラムは、データの種類によって接頭語+日時名のファイルを作る。
各アプリはファイル監視して自分用のを実行する。
とかユルイ連携にするのも手かと。同時開発しやすいしテストやトラブル対処も楽。

375:デフォルトの名無しさん
18/06/28 15:19:28.79 poFZ3+du0.net
ASP.NET CoreにはJavaの@Transactionalのような仕組みはないのですか?
DispatchProxyを使ってトランザクション管理を自前実装してますがより一般的な手段があるなら乗り換えたいです

376:デフォルトの名無しさん
18/06/28 15:21:33.85 pHy9VzUja.net
今時232C使ってるようなデバイスでそんな振り分けが必要なデータなんか送ってくる可能性は低いと思いうけどねw
I2Cとか485をエミューレートしてるとかなら知らんけど
そんなデバイス聞いたことないけどさ
アプリ作るのも、ブロードキャストして要らないデータはアプリ側で捨てる方が簡単で
保守性も高いでしょう

377:デフォルトの名無しさん
18/06/28 16:53:51.04 uTPw2MsS0.net
どーせ、RS485/LAN変換器とか絡んでるんじゃね

378:デフォルトの名無しさん
18/06/28 17:08:19.49 mI3gmfcxp.net
普通のシリアル通信にコンフリクト回避のネゴエーショ等の機能は存在しないんだが、どうするつもりなんだろうな。
RS422規格の通信にするにしても、ドライバーが対応してないと難しいよな。ハードフロー制御なドライバーにして後はハードに頑張ってもらうのかな?

379:デフォルトの名無しさん
18/06/28 17:10:29.45 mI3gmfcxp.net
あ、先に書かれてたか。

380:デフォルトの名無しさん
18/06/28 17:49:10.63 Hec9+XaU0.net
LANはシリアル通信ではないのだが・・・

381:デフォルトの名無しさん
18/06/28 18:13:18.29 q5PWc0B3M.net
>>358
>>329は受信によってイベントを発生させるとか書いてるからサービスでないといろいろ面倒だが、単にポートの読み書きを共有するだけならサービスなんていらんよ

382:デフォルトの名無しさん
18/06/28 18:17:20.09 q5PWc0B3M.net
>>361
まーた、俺の環境ではそんなデータはあり得ない(キリッ
ってか
いちいちマウント取りに来なくていいよ

383:デフォルトの名無しさん
18/06/28 18:25:00.98 hgy03eod0.net
また必死なのが沸いてるなァ

384:デフォルトの名無しさん
18/06/28 19:07:13.57 mpKH796a0.net
>>347
ありがとうございます
いろいろ試してみたところ、書いてもらった通りメソッドを宣言したオブジェクトのジェネリック型引数が
全部値型ならPrepareMethodの第2引数は要らないみたいです
でも値型と参照型が混在する場合は参照型のハンドルだけ渡せばいいというわけではなくて
値型のものも含めて渡す必要があるみたいなので、
やっぱり基本的にメソッドを宣言したオブジェクトがジェネリック型引数を持つなら
第2引数は必要と考えたほうが安全な気がします

385:デフォルトの名無しさん
18/06/28 19:15:51.58 UR04nmTq0.net
君たちマニアックすぎよ!
初心者用だぞ!

386:デフォルトの名無しさん
18/06/28 19:19:04.65 u+1Q3Zjpa.net
>>367
こういう馬鹿みるちいつも思うけど、それやってるのはお前なんだけど...
馬鹿にも程があるなほんと

387:デフォルトの名無しさん
18/06/28 19:24:04.13 q5PWc0B3M.net
>>371
>>368

388:デフォルトの名無しさん
18/06/28 19:29:53.64 u+1Q3Zjpa.net
>>372
これやるのも2chの馬鹿の特徴だよね
これ見るといつも思うが、こういう馬鹿には自分自身を見る自意識がないのかね。
お前


389:自身がやってることは何なんだw それ以前に必死だったら何なのかね。意味が分からん まるで「お前ウンコした!!!」って騒いでる中学生だけど、ガチでそのあたりで精神年齢止まってる可哀想なお方なんだろうけどね



390:デフォルトの名無しさん
18/06/28 19:35:28.68 OkcoTao20.net
>>373
>>1読め

391:デフォルトの名無しさん
18/06/28 19:36:30.54 u+1Q3Zjpa.net
232C使うようなデバイスでアドレスだのポート番号だの、振り分けが必要なケースなんかレアだろう、
(質問者もそんなこと言ってない)ってのはごく普通の感想だと思うけど、異論があるならできれば
具体例上げて反論すればいい。
マウントがどうとか中学生じみたことしか言えない馬鹿は黙ってろって
いい歳こいて恥知らずかよ

392:デフォルトの名無しさん
18/06/28 19:37:46.81 u+1Q3Zjpa.net
>>374
いう相手を間違えてるよ馬鹿
こういう馬鹿も2ch名物だな

393:デフォルトの名無しさん
18/06/28 19:41:07.48 OkcoTao20.net
>C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
読めないのは誰なのか

394:デフォルトの名無しさん
18/06/28 19:44:26.95 5xE/3ALJ0.net
slip も知らない奴にほざかれてもな
あと産業用ならRS-485はまだまだ現役
URLリンク(www.fujiele.co.jp)

395:デフォルトの名無しさん
18/06/28 19:46:09.46 wDYBzoR70.net
結局、物理的な線は一本なんだろ?
なんで他アプリ全員に配るんだ?

396:デフォルトの名無しさん
18/06/28 20:21:27.00 u+1Q3Zjpa.net
>>377
お前自身も読めてない。いってるそばから「俺だけ特別」クンか
そもそもなぜ喧嘩を売った側でなく売られた側を非難するのか
馬鹿だろお前。

397:デフォルトの名無しさん
18/06/28 20:25:36.86 u+1Q3Zjpa.net
>>379
それは愚問。
ただ、昨日から言ってるように、現実的に考えれば質問者がやりたいことは
>>344みたいな感じである可能性が一番高いと思う。
もちろん、仮想的な複数の通信チャンネルを実現したい可能性も否定はできない

398:デフォルトの名無しさん
18/06/28 20:38:08.78 9GisGdyJ0.net
「自分自身」と「馬鹿」って来たら例外を握り潰す君だから
そいつこのスレに12年いるぜ

399:デフォルトの名無しさん
18/06/28 20:40:32.24 9GisGdyJ0.net
年いくつだろ
Hagexを刺した統失くらいはあるのかなw

400:デフォルトの名無しさん
18/06/28 20:44:45.44 9GisGdyJ0.net
あとは「口調」「中学生」「精神年齢」は定番ワード

401:デフォルトの名無しさん
18/06/28 20:47:01.29 u+1Q3Zjpa.net
>>382
こいつもいつも思うけど、これで自分をおかしいと思わないんだから幸せでいいよねw
前から誰のこと言ってるのか知らんけど、この意味不明な粘着質、普通にストーカーと同じメンタルだ

402:デフォルトの名無しさん
18/06/28 20:53:26.04 u+1Q3Zjpa.net
そもそも匿名掲示板で誰かを「特定」して付きまとってやろう、って動機が理解不能だけど、
普通の人間だったらそんな動機を持つ俺って異常なんじゃないかと悩むと思うんだけど...
いや悩まなくても、多少知恵がある人間なら、それって(2chにはよくいる)負けを認めるだけの
精神的強さを持たない弱者の「精神勝利法」なんじゃないか、とか思うと思うんだけど

403:デフォルトの名無しさん
18/06/28 21:27:08.49 wMDqdzUG0.net
必死だな。

404:312
18/06/28 22:49:06.80 RNZwZaAN0.net
遅レスですがobjectをdynamicに変えて値を取る事が出来ました
こんな便利な型があるんですね
ありがとうございました

405:デフォルトの名無しさん
18/06/29 07:02:58.46 41EVR+sW0.net
動機ねえ、スレが荒れそうだからかな
俺に反応して貰って、俺が反応を無視すれば、とりあえず収まるんだよ
そう、いつものことだ

406:デフォルトの名無しさん
18/06/29 07:26:58.04 mdiAhzMH0.net
>>375
232cは物理層の規格や。今だってモデムやTNC繋げる人もいるさ。

407:デフォルトの名無しさん
18/06/29 08:53:11.26 HPFHtU9c0.net
>>329
答え出てると思うけど
プロセスは3つにする
1つのプロセスはシリアル通信のサービスを提供
他の2つはクライアントとしてシリアル通信の要求をだす
要求はQueueで排他する等で安全策取る
プロセス間通信は適当に(ipc使えば簡単かな)

408:デフォルトの名無しさん
18/06/29 08:55:21.96 HPFHtU9c0.net
>>391
あ、、、要求じゃなくてサーバーが自走して受信のイベントをクライアントに出すのか
でもそれも可能だからね

409:デフォルトの名無しさん
18/06/29 09:17:28.48 VFzCkUQ4r.net
おお、コンプリティッドタスク!!!
使ってみよう
ありがとうございました

410:デフォルトの名無しさん
18/06/29 10:32:36.67 eG0vtZS/M.net
ipcは死んだ技術なのかと思ってたけどつかってる人いるんだね
デバッグ環境ではうまくいくけど実環境でこけることが多いから最近は使ってなかった

411:デフォルトの名無しさん
18/06/29 10:33:59.19 1XSLHtbi0.net
electronでもつかうことね

412:デフォルトの名無しさん
18/06/29 12:38:26.74 8d6UIl5Q0.net
配列内の文字列がtargetStrに含まれてるかどうかを調べるコードなのですが
いまどき風な書き方ってありますか?
var words = new string[] { "ああ", "いい" };
foreach (var word in words)
{
  if (targetStr.IndexOf(word) != -1)
  {
  // hit
  }
}

413:デフォルトの名無しさん
18/06/29 12:45:50.64 iCnCbkLdd.net
>>396
Contains

414:デフォルトの名無しさん
18/06/29 13:54:50.63 6eaCpSu00.net
>>396
targetStrの中に"ああ"や"いい"が含まれている判定はIndexOfでいいんじゃね?
ループつかわないでLINQのAnyメソッドにしておくとか

415:デフォルトの名無しさん
18/06/29 13:59:23.95 6eaCpSu00.net
あ、すまん。おらの見ないでよかと。>>397見てなかったorz

416:デフォルトの名無しさん
18/06/29 16:12:15.55 tWLgdBQo0.net
まぁ、words.Any(word => targetStr.Contains(word)) ですっきり書こう、が今時?なんかなぁ?

417:デフォルトの名無しさん
18/06/29 16:54:35.36 Z9lwbPEL0.net
>>400
それ、words.Any(targetStr.Contains) でいけるよ
仮引数いらん

418:デフォルトの名無しさん
18/06/29 17:33:42.32 +TbsbPax0.net
>>400-401
URLリンク(qiita.com)
このページでは
.Where( string.IsNullOrWhiteSpace );
よりも
.Where( x => string.IsNullOrWhiteSpace( x ) );
を推奨してるけどいまいちよく分からないから詳しい議論を聞いてみたい

419:デフォルトの名無しさん
18/06/29 17:56:22.21 n04C+v3iM.net
>>402
お前は何回Where呼ぶつもりやねんと
Whereの引数に渡すデリゲートのnewがネックになるほどタイトなループでWhere呼ぶなら、明らかにその設計自体が問題
どうでもいい机上の空論だから全く気にする必要はない
通常は、そんなことよりもラムダが間に一枚入ることによるメソッド呼び出しのオーバーヘッド増加のほうが問題になる

420:デフォルトの名無しさん
18/06/29 18:01:54.20 NMkrO0hpd.net
仮引数を省略してるというより渡してるものが違うだろ。
たとえフレームワークの関数でも、関数自体は俺も渡したくはないな。
xとか付けるやつは意識してないだろうが、引数名も有意義だし。
そもそもこれぐらいならインライン展開されるだろうし。

421:デフォルトの名無しさん
18/06/29 18:06:39.91 Z9lwbPEL0.net
関数を第一級オブジェクトとして取り回したくないならLinqなんぞ使わず


422:素直にループした方がいいよ



423:デフォルトの名無しさん
18/06/29 18:31:03.18 fLw6tHLKM.net
最近はクエリスタイルも悪くないかなって思えてきた
単純に記号が減って読みやすいし
ループで書いたらネストするようなクエリを書きやすい
Effective C#でもサンプルコードにクエリ形式を使ってるね

424:デフォルトの名無しさん
18/06/29 19:20:37.69 ldv2G5QsM.net
>>404
関数型の世界では関数をそのまま渡すほうが好まれるよ
その方がより宣言的だからな
ラムダはダサい

425:デフォルトの名無しさん
18/06/29 19:30:19.44 NMkrO0hpd.net
一級オブジェクトとして関数渡してんじゃん?ラムダでも。Funcがdelegateなのが気に食わんのかな。
ダサいってのは主観的な気がする。

426:デフォルトの名無しさん
18/06/29 19:40:00.41 Z9lwbPEL0.net
あれ、主張がわからんくなってきた
関数を引数にするのはいいけど、その場合必ずラムダで無名関数作ってから渡したいって話なのか

427:デフォルトの名無しさん
18/06/29 19:42:32.14 HOtQS3nQa.net
>>408
Haskellとかやってみたらわかるぞ
関数型ワールドでは徹底的にプレースホルダを省くのがクールと見做される
理由は知らん

428:396
18/06/29 20:03:36.51 8d6UIl5Q0.net
皆様ありがとうございます!
高度過ぎて理解できてませんがContainsとLINQ any調べてやってみますm(_ _)m

429:デフォルトの名無しさん
18/06/29 20:08:45.96 MGdViK9A0.net
>>410
そこら辺は言語毎の宗教だろ
他言語を持ち出して比較するのはフェアじゃない

430:デフォルトの名無しさん
18/06/29 20:19:05.54 4EyMIKKY0.net
宗教というか、純粋関数型言語とマルチパラダイム言語で記法を比べられてもな

431:デフォルトの名無しさん
18/06/29 20:32:19.73 Z9lwbPEL0.net
>>410
ポイントフリースタイルにこだわりすぎるのはHaskell界隈でも嫌われてるから
あんま変な誤解を植え付けんでくれ
仮引数があった方がわかりやすいならつければいい
ただ今回のContainsに関してはそれでわかりやすくなる要素が見当たらないので何とも
まぁどっちでも普通に読めるから、どっちでもいいよもう

432:デフォルトの名無しさん
18/06/30 13:03:37.19 stDx+Xo5a.net
デリゲートとラムダ式は別物
メソッドにラムダ式を渡してると思って実際は変換されたデリゲートを渡してる場合もある
メソッドのシグネチャーを見てラムダ式をわたしてるのかデリゲートを渡してるのか意識すべき

433:デフォルトの名無しさん
18/06/30 13:20:07.97 wYh1ox1V0.net
やっぱりラムダ式とかデリゲートとか難しい…
>>415
メソッドに渡すのは常にデリゲートだと思ってました
ラムダ式を渡す場合とデリゲートを渡す場合、それぞれの例を教えてもらえませんか?

434:デフォルトの名無しさん
18/06/30 13:26:42.98 stDx+Xo5a.net
>>416
ちょっと書いてたことはあいまいで間違っていたが詳しく知りたいなら
c# ラムダ式 式木でググる

435:デフォルトの名無しさん
18/06/30 13:47:21.51 +7yWvOiaM.net
>>415
お前は何を言ってるんだ
ラムダ式は文法要素上はメソッドの一種
メソッドだからデリゲートに暗黙的にキャストされる

436:デフォルトの名無しさん
18/06/30 13:51:28.53 1b356axK0.net
ラムダ式を渡してるって、その日本語自体がおかしい事に気づくべき。

437:デフォルトの名無しさん
18/06/30 13:52:29.78 wYh1ox1V0.net
>>417
勉強になります
>>415 の真意は↓の中で4行目だけはコンパイルできないから気をつけましょうということですか?
Func<string, bool> a = s => string.IsNullOrEmpty(s);
Func<string, bool> b = string.IsNullOrEmpty;
Expression<Func<string, bool>> c = s => string.IsNullOrEmpty(s);
Expression<Func<string, bool>> d = string.IsNullOrEmpty;
このあたりのことがとてもあやふやなので解釈が間違っていたらぜひ教えてほしいです

438:デフォルトの名無しさん
18/06/30 15:08:20.00 d8PLC79S0.net
そんなのいいから早く完成させろよ

439:デフォルトの名無しさん
18/06/30 15:12:03.88 /Bfo044u0.net
ところで
words.Any(targetStr.Contains) とか
Func<string, bool> b = string.IsNullOrEmpty; とか
これいつからできるようになってたの?
ラムダ式導入時からできてた?

440:デフォルトの名無しさん
18/06/30 15:18:18.92 +7yWvOiaM.net
>>422
C#2.0からだからラムダより前
今では誰も使ってない匿名メソッドと一緒に入った
匿名メソッドもラムダもメソッドなので、メソッドからデリゲートへの暗黙変換がないと
匿名メソッドもラムダもデリゲートをいちいち明示的にnewしないといけなくなる

441:デフォルトの名無しさん
18/06/30 15:23:28.91 EEKpc4BGa.net
>>422
ラムダ式は関係ないよw
C#2.0からデリゲートのインスタンスを明示的にnewしなくてもよくなった
URLリンク(ufcpp.net)
words.Any(targetStr.Contains) ;

words.Any(new Func<string, bool(targetStr.Contains));
の省略記法

442:デフォルトの名無しさん
18/06/30 17:23:22.11 VzcFRgA/0.net
オマエラ、
今夜ぐらいは仕事の事を忘れて肉でも食いにいけよ

443:デフォルトの名無しさん
18/07/02 09:33:02.24 6nQmCY/K0.net
あぁそうか、そういえばそのままなデリゲートだったね
すっかり忘れてたww

444:デフォルトの名無しさん
18/07/02 21:21:17.36 btMzwCPv0.net
直撮りで申し訳ないんですが
youとenemy のHP表示→それぞれ1~9の値を引くの処理をどちらかのhpが0になるまで続けるように組んだつもりなんですが、whileより上の部分と下の部分しか反映されませんでした
どうしたら上手く処理出来るでしょうか
URLリンク(i.imgur.com)

445:デフォルトの名無しさん
18/07/02 21:25:37.50 Y9X1m4Hz0.net
>>427
>= 0

446:デフォルトの名無しさん
18/07/02 21:30:15.05 btMzwCPv0.net
>>428
なるほど、確かにこれじゃあ条件が「hpが0以下の時」になっちゃってますね 助かりましたありがとうございます!

447:デフォルトの名無しさん
18/07/02 21:36:19.75 aT7of7CF0.net
わろた

448:デフォルトの名無しさん
18/07/02 21:36:50.28 aT7of7CF0.net
微笑ましさで、ね。

449:デフォルトの名無しさん
18/07/02 21:40:16.96 gdUYHRxe0.net
>>428
=いらないんじゃないか
>>427
while (you > 0&& enemy > 0){
もしくは
while (true) {
(処理)
if (you<=0||enemy<=0) break;
}

450:デフォルトの名無しさん
18/07/02 21:43:42.29 btMzwCPv0.net
>>432
両方hpが無くならないと終わらなかったので後者を使わせて貰いました
参考になります!

451:デフォルトの名無しさん
18/07/03 19:38:57.82 uKdaL+TvM.net
スクレイピングで、xpathや属性から要素を特定取得できると思いますが、逆に属性を取得することって、できるのでしょうか?
@class=取りたい属性←この値です

452:デフォルトの名無しさん
18/07/03 19:53:05.05 obHlRFH50.net
パーサーなに使ってるか知らんけど
xpath指定で値とれるなら属性指定すればとれるでしょう

453:デフォルトの名無しさん
18/07/03 19:56:50.40 BhHhKgjH0.net
ロケーションステップの末端に
/@取りたい属性
をつければ取れるだろう
あまりこのスレとは関係ないけど

454:デフォルトの名無しさん
18/07/03 20:15:00.81 3h3fF2lx0.net
>>435
>>436
その属性を取りたいんですよ。

455:デフォルトの名無しさん
18/07/03 20:40:16.29 BhHhKgjH0.net
だからぁ
/@class
だっつうの

456:デフォルトの名無しさん
18/07/03 20:43:41.32 BhHhKgjH0.net
見直すと436の説明が悪かった

457:デフォルトの名無しさん
18/07/03 21:57:38.45 c8nUoQXQM.net
属性 "名"がほしいのか
属性 "値"が欲しいのかがわからないよな

458:デフォルトの名無しさん
18/07/04 00:07:29.57 OxUMeZjO0.net
要素の属性を全部取得する
URLリンク(hokaccha.hatenablog.com)
要素の属性を全部取得したいんだけど、 jQuery ではできないっぽい。
DOMの element.attributes を使えばいける

459:デフォルトの名無しさん
18/07/04 01:32:51.59 QI


460:UWNU3h0.net



461:デフォルトの名無しさん
18/07/04 01:43:11.66 QIUWNU3h0.net
id="→sample←"
webページ上の値じゃなくて、→←で囲ったsampleという結果がほしいんです。

462:デフォルトの名無しさん
18/07/04 04:05:11.91 /r54tfMO0.net
>>345>>434は同じ人か?
seleniumの話なら
webDriver.Url = @"URLリンク(www.seleniumhq.org)
IWebElement element = webDriver.FindElement(By.Id("promo"));
element.FindElement(By.XPath("a")).GetAttribute("id");

463:デフォルトの名無しさん
18/07/04 05:51:54.18 QIUWNU3h0.net
>>444
ありがとうございます。試してみます。

464:デフォルトの名無しさん
18/07/04 07:03:48.24 nlc5wO39d.net
C♯勉強したんだけどネットに参考になるサイトないですか?
VBAはこれで勉強してネットで使いながらそこそこは出来るようにはなりました。何かを作りながら取り敢えず基礎的仕組みを理解出来ればと思ってます。
URLリンク(for-guests.com)

465:デフォルトの名無しさん
18/07/04 07:55:26.39 zwHbS25H0.net
>>446
↓とりあえずはここかな
URLリンク(dobon.net)

466:デフォルトの名無しさん
18/07/04 08:50:06.90 oGtdQ8QA0.net
いやいや未確認飛行だろう

467:デフォルトの名無しさん
18/07/04 09:30:12.33 rFQM1K2RM.net
>>444
無事に目的を果たせました!
感謝です。

468:デフォルトの名無しさん
18/07/04 15:02:10.32 x3V5psFC0.net
PC上からC#で制御できる汎用IO製品って安いのないんかな?
Raspberry PiについてるGPIOみたいなのが欲しいんだけど

469:デフォルトの名無しさん
18/07/04 15:06:52.68 ZJ2LKM3Q0.net
デバドラの認証コストだけでも結構なお金がかかるからなぁ

470:デフォルトの名無しさん
18/07/04 15:11:38.24 BdK+b5Vga.net
Arduinoがいいよ

471:デフォルトの名無しさん
18/07/04 16:48:56.19 n4h9hTEh0.net
超面白い
URLリンク(goo.gl)

472:デフォルトの名無しさん
18/07/04 17:14:18.28 Ub7D34vBa.net
>>450
あんまり安くもないがこんなのとか
URLリンク(akizukidenshi.com)
このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
でも8本 + αしかないし使い方に癖があった気がする。

473:デフォルトの名無しさん
18/07/04 19:26:55.57 x1yYTdeNp.net
むしろラズパイやらArduinoとシリアル通信させてそちらのgpioに何か繋ぐ方が、安心安全いざショートしちゃったとかのアクシデントの時にも安く済むよ。

474:デフォルトの名無しさん
18/07/04 19:51:54.95 F41Mlataa.net
>>454
それシリアル
USBパラレル変換モジュールの方では?

475:デフォルトの名無しさん
18/07/04 20:05:13.89 acN7B5+I0.net
Attiny85のV-USBで遊んでるarduino互換
完成品にDigisparkってのがあるけど尼とかで数百円
URLリンク(www.amazon.co.jp)

476:デフォルトの名無しさん
18/07/04 20:23:47.96 Ub7D34vBa.net
>>456
だから
>このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
って前置きしてるでしょ。
確認してみたけど、ちょっと変則的だけど一応使えるよやっぱり
パラレルの方(FT245)のICもGPIOとして使えるが(こっちも本来はそういう用途じゃない。ちなみにこっちは使用経験あり)
こっちの方がちょっとだけ高価でGPIOとして使えるピン数も少ない
URLリンク(akizukidenshi.com)

477:デフォルトの名無しさん
18/07/04 21:43:30.53 rQfJfUyF0.net
>>454
取説見るとデジタルI/Oは5本みたいだが。

478:デフォルトの名無しさん
18/07/04 21:46:57.76 gFgZc5FG0.net
AWK

479:デフォルトの名無しさん
18/07/04 22:01:51.27 Ub7D34vBa.net
>>459
スレ違いだけど、このドキュメントのP3に書いてある特殊機能があるんよ
URLリンク(www.ftdichip.com)
最低8本は使える
残りのプラスアルファーがどういう風に使えるかは、たぶんドライバーのAPI
アプリケーションノートに書いてあると思うが、さすがに面倒だから読んでない

480:デフォルトの名無しさん
18/07/04 23:48:29.40 acN7B5+I0.net
FTDIのはドライバ必須だし
HIDとかで繋がるやつ揃えた方が楽だよ

481:デフォルトの名無しさん
18/07/04 23:51:36.78 acN7B5+I0.net
HIDというか標準クラスね
例えばArduino Leonardo相当であれば何にでも化けられる

482:デフォルトの名無しさん
18/07/05 09:53:48.98 4AVSF7Vxp.net
HIDって、出力ディバイスにも使えたっけ?

483:デフォルトの名無しさん
18/07/05 11:12:32.85 zf6L08GCa.net
digisparkというのを使ってたけどHIDデバイスに見えて入出力OK
昔は300円以下で送料無料で中国から買えたんだけど値上がりしちゃった

484:デフォルトの名無しさん
18/07/05 15:50:31.35 P71/Py9I0.net
C♯でMySQLを操作したいのですが楽に扱えるライブラリはありますか?
EntityFrameworkを使いたいのですがイマイチ接続できないので
一応昔にSQL書いて操作するパターンも作ったことありますが出来ればせっかくなのでやり取り楽な風にできればと思ってます

485:デフォルトの名無しさん
18/07/05 16:03:16.41 I27lRIcu0.net
LinqConnect

486:デフォルトの名無しさん
18/07/05 18:53:29.35 /h700nZmM.net
Dapper

487:デフォルトの名無しさん
18/07/05 20:00:51.78 P71/Py9I0.net
ありがとうございます
Dapperの存在忘れてましたこちら使い方少し調べてみます
LinqConnectも調べましたが環境整えるところからなので余裕ができたらこちらも調べてみます

488:デフォルトの名無しさん
18/07/05 20:12:43.80 LKNZKA8z0.net
>>464
昔からあるUSB-IOもHIDだよ

489:デフォルトの名無しさん
18/07/06 14:19:45.98 v98PP3uI0.net
教えてください
Power1とPower2はxのn乗を求める関数だそうなのですが
なぜPower2がxのn乗になるのかさっぱり分かりません
しかもPower2の方がPower1よりも効率がいいらしいです
よろしくお願いします
double Power1(double x, uint n)
{
  double power = 1;
  while (n > 0)
  {
    power = power * x;
    n = n - 1;
  }
  return power;
}
double Power2(double x, uint n)
{
  double power = 1;
  while (n > 0)
  {
    if (n % 2 == 1) power = power * x;
    x = x * x;
    n = n / 2;
  }
  return power;
}

490:デフォルトの名無しさん
18/07/06 14:26:00.38 CcG3LQ040.net
double power = 1.0;
の方が効率がいいぞ

491:デフォルトの名無しさん
18/07/06 15:02:32.12 W35a98bMa.net
>>471
高校数学やん
x^(a +b) = x^a + x^b
x^(a * b) = (x^a)^b

492:デフォルトの名無しさん
18/07/06 15:02:47.67 M3cpa2kAa.net
>>471
これでわかるか?
x^n = {
nが2で割り切れるとき x^(n/2) * x^(n/2)
割り切れないとき x^((n-1)/2) * x^((n-1)/2)
}

493:474
18/07/06 15:03:33.89 M3cpa2kAa.net
すまん訂正
割り切れないとき、はこれにxを掛けてくれ

494:デフォルトの名無しさん
18/07/06 15:04:04.87 W35a98bMa.net
>>473
ん゛?
× x^(a +b) = x^a + x^b
〇 x^(a +b) = x^a * x^b

495:デフォルトの名無しさん
18/07/06 15:31:31.99 v98PP3uI0.net
>>472
ありがとうございます
定数だけの四則演算やキャストはコンパイルの時点で行われるから
効率に影響は無いと習ったのですがこの場合は違うのですね
キャストがコンパイル時と実行時のどちらで行われるかを判断する
簡単な方法があれば教えてほしいです
>>473 >>476 ありがとうございます 指数法則が関係あるのですね これをヒントにもう一度考えてみます >>474-475 ありがとうございます 教えてもらったことをヒントに再帰を使ってxのn乗を作ってみたのですが この関数はあってますか? でも、やっぱりなぜPower2がxのn乗になるのかよく分かりませんでした double Power3(double x, uint n) {   if (n == 0) return 1;   else if (n % 2 == 0) return Power3(x, n / 2) * Power3(x, n / 2);   else return Power3(x, (n - 1) / 2) * Power3(x, (n - 1) / 2) * x; }



497:デフォルトの名無しさん
18/07/06 15:54:12.85 W35a98bMa.net
>>477
こうじゃない?
いい加減に書いたから間違ってたらごめん
double Power(double x, uint n)
{
  if (x == 0) return 0;
  if (n == 0) return 1;
  if (n == 1) return x;
  return n % 2 == 0 ? Power(x * x, n / 2) : Power(x * x, n / 2) * x;
}
要するに、
x^(a + 1) = x^a * x
x^(2 * a) = (x * x)^a

498:デフォルトの名無しさん
18/07/06 16:10:07.44 v98PP3uI0.net
>>478
ありがとうございます
そのPowerを再帰を使わずに書くと>>471のPower2になるということですか?
なんだか分かりそうな気がしてきたのでその方向でもう一度考えてみます!

499:デフォルトの名無しさん
18/07/06 16:12:36.64 W35a98bMa.net
あー直接関係ないけど、0の0乗って1でいいんだな

500:デフォルトの名無しさん
18/07/06 17:25:12.79 v98PP3uI0.net
お陰様で>>471について理解できたと思います
どうもありがとうございました!
>>480
言われてみると、>>471のPower1やPower2では0の0乗が1になりますが
>>478のPowerだと0の0乗が0になりますね
調べてみたらWikipediaに「0の0乗」というページがあって
確かに0の0乗を1と考えることが多いと書いてありましたが
それ以外の考え方もあるみたいです

501:デフォルトの名無しさん
18/07/06 17:29:05.92 Utskd+YBa.net
0乗が1以外になる考え方なんてあるんだ
単位元の1に何も掛けないんだから常に1だと思ってた

502:デフォルトの名無しさん
18/07/06 22:25:57.54 cMQzyLwk0.net
高速冪乗法でググれって感じだ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch