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

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

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

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

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/06/29(金) 16:54:35.36ID:Z9lwbPEL0
>>400
それ、words.Any(targetStr.Contains) でいけるよ
仮引数いらん
2018/06/29(金) 17:33:42.32ID:+TbsbPax0
>>400-401
https://qiita.com/Temarin/items/4ac0de4f395dcecf5eec
このページでは
.Where( string.IsNullOrWhiteSpace );
よりも
.Where( x => string.IsNullOrWhiteSpace( x ) );
を推奨してるけどいまいちよく分からないから詳しい議論を聞いてみたい
2018/06/29(金) 17:56:22.21ID:n04C+v3iM
>>402
お前は何回Where呼ぶつもりやねんと
Whereの引数に渡すデリゲートのnewがネックになるほどタイトなループでWhere呼ぶなら、明らかにその設計自体が問題
どうでもいい机上の空論だから全く気にする必要はない
通常は、そんなことよりもラムダが間に一枚入ることによるメソッド呼び出しのオーバーヘッド増加のほうが問題になる
2018/06/29(金) 18:01:54.20ID:NMkrO0hpd
仮引数を省略してるというより渡してるものが違うだろ。
たとえフレームワークの関数でも、関数自体は俺も渡したくはないな。
xとか付けるやつは意識してないだろうが、引数名も有意義だし。
そもそもこれぐらいならインライン展開されるだろうし。
2018/06/29(金) 18:06:39.91ID:Z9lwbPEL0
関数を第一級オブジェクトとして取り回したくないならLinqなんぞ使わず素直にループした方がいいよ
2018/06/29(金) 18:31:03.18ID:fLw6tHLKM
最近はクエリスタイルも悪くないかなって思えてきた
単純に記号が減って読みやすいし
ループで書いたらネストするようなクエリを書きやすい
Effective C#でもサンプルコードにクエリ形式を使ってるね
2018/06/29(金) 19:20:37.69ID:ldv2G5QsM
>>404
関数型の世界では関数をそのまま渡すほうが好まれるよ
その方がより宣言的だからな
ラムダはダサい
2018/06/29(金) 19:30:19.44ID:NMkrO0hpd
一級オブジェクトとして関数渡してんじゃん?ラムダでも。Funcがdelegateなのが気に食わんのかな。

ダサいってのは主観的な気がする。
2018/06/29(金) 19:40:00.41ID:Z9lwbPEL0
あれ、主張がわからんくなってきた
関数を引数にするのはいいけど、その場合必ずラムダで無名関数作ってから渡したいって話なのか
2018/06/29(金) 19:42:32.14ID:HOtQS3nQa
>>408
Haskellとかやってみたらわかるぞ
関数型ワールドでは徹底的にプレースホルダを省くのがクールと見做される
理由は知らん
2018/06/29(金) 20:03:36.51ID:8d6UIl5Q0
皆様ありがとうございます!
高度過ぎて理解できてませんがContainsとLINQ any調べてやってみますm(_ _)m
2018/06/29(金) 20:08:45.96ID:MGdViK9A0
>>410
そこら辺は言語毎の宗教だろ
他言語を持ち出して比較するのはフェアじゃない
2018/06/29(金) 20:19:05.54ID:4EyMIKKY0
宗教というか、純粋関数型言語とマルチパラダイム言語で記法を比べられてもな
2018/06/29(金) 20:32:19.73ID:Z9lwbPEL0
>>410
ポイントフリースタイルにこだわりすぎるのはHaskell界隈でも嫌われてるから
あんま変な誤解を植え付けんでくれ

仮引数があった方がわかりやすいならつければいい
ただ今回のContainsに関してはそれでわかりやすくなる要素が見当たらないので何とも
まぁどっちでも普通に読めるから、どっちでもいいよもう
2018/06/30(土) 13:03:37.19ID:stDx+Xo5a
デリゲートとラムダ式は別物

メソッドにラムダ式を渡してると思って実際は変換されたデリゲートを渡してる場合もある
メソッドのシグネチャーを見てラムダ式をわたしてるのかデリゲートを渡してるのか意識すべき
2018/06/30(土) 13:20:07.97ID:wYh1ox1V0
やっぱりラムダ式とかデリゲートとか難しい…
>>415
メソッドに渡すのは常にデリゲートだと思ってました
ラムダ式を渡す場合とデリゲートを渡す場合、それぞれの例を教えてもらえませんか?
2018/06/30(土) 13:26:42.98ID:stDx+Xo5a
>>416
ちょっと書いてたことはあいまいで間違っていたが詳しく知りたいなら
c# ラムダ式 式木でググる
2018/06/30(土) 13:47:21.51ID:+7yWvOiaM
>>415
お前は何を言ってるんだ
ラムダ式は文法要素上はメソッドの一種
メソッドだからデリゲートに暗黙的にキャストされる
2018/06/30(土) 13:51:28.53ID:1b356axK0
ラムダ式を渡してるって、その日本語自体がおかしい事に気づくべき。
2018/06/30(土) 13:52:29.78ID:wYh1ox1V0
>>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;

このあたりのことがとてもあやふやなので解釈が間違っていたらぜひ教えてほしいです
2018/06/30(土) 15:08:20.00ID:d8PLC79S0
そんなのいいから早く完成させろよ
2018/06/30(土) 15:12:03.88ID:/Bfo044u0
ところで
words.Any(targetStr.Contains) とか
Func<string, bool> b = string.IsNullOrEmpty; とか
これいつからできるようになってたの?
ラムダ式導入時からできてた?
2018/06/30(土) 15:18:18.92ID:+7yWvOiaM
>>422
C#2.0からだからラムダより前
今では誰も使ってない匿名メソッドと一緒に入った
匿名メソッドもラムダもメソッドなので、メソッドからデリゲートへの暗黙変換がないと
匿名メソッドもラムダもデリゲートをいちいち明示的にnewしないといけなくなる
2018/06/30(土) 15:23:28.91ID:EEKpc4BGa
>>422
ラムダ式は関係ないよw
C#2.0からデリゲートのインスタンスを明示的にnewしなくてもよくなった
http://ufcpp.net/study/csharp/sp_delegate.html#definition

words.Any(targetStr.Contains) ;

words.Any(new Func<string, bool(targetStr.Contains));
の省略記法
2018/06/30(土) 17:23:22.11ID:VzcFRgA/0
オマエラ、
今夜ぐらいは仕事の事を忘れて肉でも食いにいけよ
2018/07/02(月) 09:33:02.24ID:6nQmCY/K0
あぁそうか、そういえばそのままなデリゲートだったね
すっかり忘れてたww
2018/07/02(月) 21:21:17.36ID:btMzwCPv0
直撮りで申し訳ないんですが
youとenemy のHP表示→それぞれ1〜9の値を引くの処理をどちらかのhpが0になるまで続けるように組んだつもりなんですが、whileより上の部分と下の部分しか反映されませんでした
どうしたら上手く処理出来るでしょうか
https://i.imgur.com/HbKFSfr.jpg
2018/07/02(月) 21:25:37.50ID:Y9X1m4Hz0
>>427
>= 0
2018/07/02(月) 21:30:15.05ID:btMzwCPv0
>>428
なるほど、確かにこれじゃあ条件が「hpが0以下の時」になっちゃってますね 助かりましたありがとうございます!
2018/07/02(月) 21:36:19.75ID:aT7of7CF0
わろた
2018/07/02(月) 21:36:50.28ID:aT7of7CF0
微笑ましさで、ね。
2018/07/02(月) 21:40:16.96ID:gdUYHRxe0
>>428
=いらないんじゃないか
>>427
while (you > 0&& enemy > 0){
もしくは
while (true) {

(処理)

if (you<=0||enemy<=0) break;
}
2018/07/02(月) 21:43:42.29ID:btMzwCPv0
>>432
両方hpが無くならないと終わらなかったので後者を使わせて貰いました
参考になります!
434デフォルトの名無しさん (ブーイモ MM22-M9kt)
垢版 |
2018/07/03(火) 19:38:57.82ID:uKdaL+TvM
スクレイピングで、xpathや属性から要素を特定取得できると思いますが、逆に属性を取得することって、できるのでしょうか?
@class=取りたい属性←この値です
2018/07/03(火) 19:53:05.05ID:obHlRFH50
パーサーなに使ってるか知らんけど
xpath指定で値とれるなら属性指定すればとれるでしょう
2018/07/03(火) 19:56:50.40ID:BhHhKgjH0
ロケーションステップの末端に
/@取りたい属性
をつければ取れるだろう
あまりこのスレとは関係ないけど
437デフォルトの名無しさん (ワッチョイ 6e81-M9kt)
垢版 |
2018/07/03(火) 20:15:00.81ID:3h3fF2lx0
>>435
>>436
その属性を取りたいんですよ。
2018/07/03(火) 20:40:16.29ID:BhHhKgjH0
だからぁ
/@class
だっつうの
2018/07/03(火) 20:43:41.32ID:BhHhKgjH0
見直すと436の説明が悪かった
2018/07/03(火) 21:57:38.45ID:c8nUoQXQM
属性 "名"がほしいのか
属性 "値"が欲しいのかがわからないよな
2018/07/04(水) 00:07:29.57ID:OxUMeZjO0
要素の属性を全部取得する
https://hokaccha.hatenablog.com/entry/20130819/1376895914

要素の属性を全部取得したいんだけど、 jQuery ではできないっぽい。
DOMの element.attributes を使えばいける
442デフォルトの名無しさん (ワッチョイ 6e81-M9kt)
垢版 |
2018/07/04(水) 01:32:51.59ID:QIUWNU3h0
>>440
属性の値がほしいんですね、名前はtagNameでとれるので
443デフォルトの名無しさん (ワッチョイ 6e81-M9kt)
垢版 |
2018/07/04(水) 01:43:11.66ID:QIUWNU3h0
id="→sample←"
webページ上の値じゃなくて、→←で囲ったsampleという結果がほしいんです。
2018/07/04(水) 04:05:11.91ID:/r54tfMO0
>>345>>434は同じ人か?
seleniumの話なら
webDriver.Url = @"https://www.seleniumhq.org/";;
IWebElement element = webDriver.FindElement(By.Id("promo"));
element.FindElement(By.XPath("a")).GetAttribute("id");
445デフォルトの名無しさん (ワッチョイ 6e81-M9kt)
垢版 |
2018/07/04(水) 05:51:54.18ID:QIUWNU3h0
>>444
ありがとうございます。試してみます。
2018/07/04(水) 07:03:48.24ID:nlc5wO39d
C♯勉強したんだけどネットに参考になるサイトないですか?

VBAはこれで勉強してネットで使いながらそこそこは出来るようにはなりました。何かを作りながら取り敢えず基礎的仕組みを理解出来ればと思ってます。
https://for-guests.com/excel-vba-6006/
447デフォルトの名無しさん (ワッチョイ 4581-YyB7)
垢版 |
2018/07/04(水) 07:55:26.39ID:zwHbS25H0
>>446
↓とりあえずはここかな
https://dobon.net/
2018/07/04(水) 08:50:06.90ID:oGtdQ8QA0
いやいや未確認飛行だろう
449デフォルトの名無しさん (ブーイモ MM22-M9kt)
垢版 |
2018/07/04(水) 09:30:12.33ID:rFQM1K2RM
>>444
無事に目的を果たせました!
感謝です。
450デフォルトの名無しさん (ワッチョイ 0deb-HrKv)
垢版 |
2018/07/04(水) 15:02:10.32ID:x3V5psFC0
PC上からC#で制御できる汎用IO製品って安いのないんかな?
Raspberry PiについてるGPIOみたいなのが欲しいんだけど
2018/07/04(水) 15:06:52.68ID:ZJ2LKM3Q0
デバドラの認証コストだけでも結構なお金がかかるからなぁ
2018/07/04(水) 15:11:38.24ID:BdK+b5Vga
Arduinoがいいよ
453デフォルトの名無しさん (ワッチョイ 027f-7be3)
垢版 |
2018/07/04(水) 16:48:56.19ID:n4h9hTEh0
超面白い
https://goo.gl/k4ehdm
2018/07/04(水) 17:14:18.28ID:Ub7D34vBa
>>450
あんまり安くもないがこんなのとか
http://akizukidenshi.com/catalog/g/gK-01977/

このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
でも8本 + αしかないし使い方に癖があった気がする。
2018/07/04(水) 19:26:55.57ID:x1yYTdeNp
むしろラズパイやらArduinoとシリアル通信させてそちらのgpioに何か繋ぐ方が、安心安全いざショートしちゃったとかのアクシデントの時にも安く済むよ。
2018/07/04(水) 19:51:54.95ID:F41Mlataa
>>454
それシリアル
USBパラレル変換モジュールの方では?
2018/07/04(水) 20:05:13.89ID:acN7B5+I0
Attiny85のV-USBで遊んでるarduino互換
完成品にDigisparkってのがあるけど尼とかで数百円
https://www.amazon.co.jp/dp/B0154PL3QA/
2018/07/04(水) 20:23:47.96ID:Ub7D34vBa
>>456
だから
>このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。

って前置きしてるでしょ。
確認してみたけど、ちょっと変則的だけど一応使えるよやっぱり

パラレルの方(FT245)のICもGPIOとして使えるが(こっちも本来はそういう用途じゃない。ちなみにこっちは使用経験あり)
こっちの方がちょっとだけ高価でGPIOとして使えるピン数も少ない
http://akizukidenshi.com/catalog/g/gK-01799/
459デフォルトの名無しさん (ワッチョイ 5e7f-YyB7)
垢版 |
2018/07/04(水) 21:43:30.53ID:rQfJfUyF0
>>454
取説見るとデジタルI/Oは5本みたいだが。
460デフォルトの名無しさん (ワッチョイ 45fa-2e90)
垢版 |
2018/07/04(水) 21:46:57.76ID:gFgZc5FG0
AWK
2018/07/04(水) 22:01:51.27ID:Ub7D34vBa
>>459
スレ違いだけど、このドキュメントのP3に書いてある特殊機能があるんよ
http://www.ftdichip.com/Support/Documents/AppNotes/AN_232R-01_Bit_Bang_Mode_Available_For_FT232R_and_Ft245R.pdf

最低8本は使える
残りのプラスアルファーがどういう風に使えるかは、たぶんドライバーのAPI
アプリケーションノートに書いてあると思うが、さすがに面倒だから読んでない
2018/07/04(水) 23:48:29.40ID:acN7B5+I0
FTDIのはドライバ必須だし
HIDとかで繋がるやつ揃えた方が楽だよ
2018/07/04(水) 23:51:36.78ID:acN7B5+I0
HIDというか標準クラスね
例えばArduino Leonardo相当であれば何にでも化けられる
2018/07/05(木) 09:53:48.98ID:4AVSF7Vxp
HIDって、出力ディバイスにも使えたっけ?
2018/07/05(木) 11:12:32.85ID:zf6L08GCa
digisparkというのを使ってたけどHIDデバイスに見えて入出力OK
昔は300円以下で送料無料で中国から買えたんだけど値上がりしちゃった
2018/07/05(木) 15:50:31.35ID:P71/Py9I0
C♯でMySQLを操作したいのですが楽に扱えるライブラリはありますか?
EntityFrameworkを使いたいのですがイマイチ接続できないので
一応昔にSQL書いて操作するパターンも作ったことありますが出来ればせっかくなのでやり取り楽な風にできればと思ってます
2018/07/05(木) 16:03:16.41ID:I27lRIcu0
LinqConnect
2018/07/05(木) 18:53:29.35ID:/h700nZmM
Dapper
2018/07/05(木) 20:00:51.78ID:P71/Py9I0
ありがとうございます
Dapperの存在忘れてましたこちら使い方少し調べてみます
LinqConnectも調べましたが環境整えるところからなので余裕ができたらこちらも調べてみます
2018/07/05(木) 20:12:43.80ID:LKNZKA8z0
>>464
昔からあるUSB-IOもHIDだよ
2018/07/06(金) 14:19:45.98ID:v98PP3uI0
教えてください
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;
}
2018/07/06(金) 14:26:00.38ID:CcG3LQ040
double power = 1.0;
の方が効率がいいぞ
2018/07/06(金) 15:02:32.12ID:W35a98bMa
>>471
高校数学やん

x^(a +b) = x^a + x^b
x^(a * b) = (x^a)^b
2018/07/06(金) 15:02:47.67ID:M3cpa2kAa
>>471
これでわかるか?
x^n = {
nが2で割り切れるとき x^(n/2) * x^(n/2)
割り切れないとき x^((n-1)/2) * x^((n-1)/2)
}
2018/07/06(金) 15:03:33.89ID:M3cpa2kAa
すまん訂正
割り切れないとき、はこれにxを掛けてくれ
2018/07/06(金) 15:04:04.87ID:W35a98bMa
>>473
ん゛?

× x^(a +b) = x^a + x^b
〇 x^(a +b) = x^a * x^b
2018/07/06(金) 15:31:31.99ID:v98PP3uI0
>>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;
}
2018/07/06(金) 15:54:12.85ID:W35a98bMa
>>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
2018/07/06(金) 16:10:07.44ID:v98PP3uI0
>>478
ありがとうございます
そのPowerを再帰を使わずに書くと>>471のPower2になるということですか?
なんだか分かりそうな気がしてきたのでその方向でもう一度考えてみます!
2018/07/06(金) 16:12:36.64ID:W35a98bMa
あー直接関係ないけど、0の0乗って1でいいんだな
2018/07/06(金) 17:25:12.79ID:v98PP3uI0
お陰様で>>471について理解できたと思います
どうもありがとうございました!

>>480
言われてみると、>>471のPower1やPower2では0の0乗が1になりますが
>>478のPowerだと0の0乗が0になりますね
調べてみたらWikipediaに「0の0乗」というページがあって
確かに0の0乗を1と考えることが多いと書いてありましたが
それ以外の考え方もあるみたいです
2018/07/06(金) 17:29:05.92ID:Utskd+YBa
0乗が1以外になる考え方なんてあるんだ
単位元の1に何も掛けないんだから常に1だと思ってた
2018/07/06(金) 22:25:57.54ID:cMQzyLwk0
高速冪乗法でググれって感じだ
2018/07/07(土) 00:10:19.78ID:PwTdVeWu0
>>471の件ではどうもありがとうございました
もう一つ質問させてください
以下のPopulation1とPopulation2は同じ結果になるそうです
Population1は>>471のPower2によく似てるので
これは指数計算の変形だと思うのですが、
Population2でも同じ結果になるのが理解できません
何度もすみませんがよろしくお願いします

uint Population1(uint n)
{
  uint population = 0;
  while (n > 0)
  {
    if (n % 2 == 1) population = population + 1;
    n = n / 2;
  }
  return population;
}

uint Population2(uint n)
{
  uint population = 0;
  while (n > 0)
  {
    population = population + 1;
    n = n & n - 1;
  }
  return population;
}
2018/07/07(土) 00:10:35.11ID:PwTdVeWu0
>>482
確かにWikipediaによれば
半群Sが単位元1をもつならSの元aの0乗は1になるので
Sが零元0ももつなら0の0乗は1になるそうです・・・なんのこっちゃw

>>483
ありがとうございます
Power2はちゃんとした名前のついたアルゴリズムだったんですね
この分だとPopulation2にも名前がついてそうですが
それらしい情報を見つけることができなかったので
もしご存知だったら教えてもらえると嬉しいです
2018/07/07(土) 00:33:06.38ID:cboIXbsqa
>>484
面白いねw
要は1が立ってるビットの数を数えてるわけだと思うけど、
Population2の方は
>n = n & n - 1;

これやると1が立ってる最下位ビットが消えるんだなw

名前は知らないごめんね
2018/07/07(土) 00:57:48.65ID:PwTdVeWu0
>>486
ありがとうございます
ビット演算については分かってるつもりだったのに全然でした・・・
ヒントを貰って下のようなプログラムを試してみたら
確かに最下位ビットが順に消えていって感動です

uint n = 4649;
while (n > 0)
{
  Console.WriteLine(Convert.ToString(n, 2));
  n = n & n - 1;
}

【実行結果】
1001000101001
1001000101000
1001000100000
1001000000000
1000000000000

でも結局n = n & n - 1;で最下位ビットが消える理由が
理解できていないのでもう少し考えてきます
2018/07/07(土) 01:08:23.64ID:cboIXbsqa
>>487
デクリメントした時、

(1) ボローが発生しなくなる桁(つまり、最下位の1の桁)はデクリメントの前は1、後は0

(2) その下位の桁はデクリメントの前は0、後は1

(3) 上位の桁の値は変わらない

なんだから、前後の値の論理積は必ず最下位の1まで0になる
2018/07/07(土) 01:35:58.15ID:PwTdVeWu0
>>488
とてもわかり易い説明ありがとうございます!お陰様で理解できました

実はこの説明を読むまでn & n - 1は(n & n) - 1という意味だと思ってて、
それならn - 1と同じじゃないのかと思いながらも
トンチンカンなことを言ってしまうのが怖くて黙ってたのですが、
こんなことなら変なプライドは捨ててさっさと疑問をぶつければよかったです

この問題を考えていて、少しビット演算に慣れてきた気がします
使い道があるかどうかは分かりませんが、
n = n & ~(n - 1);だと逆に最下位ビット以外を消すことができるんですね

とにかく、どうもありがとうございました
2018/07/07(土) 01:57:17.51ID:PwTdVeWu0
今更ですがPopulationってビットの人口ってことだったんですね・・・
Wikipediaにもページがバッチリありました
https://en.wikipedia.org/wiki/Population_count
2018/07/07(土) 07:04:40.39ID:jG1Ln0tj0
すいません
Pawar はx^nですか
2018/07/07(土) 18:20:25.33ID:xch9dzoq0
C#で予め用意されているクラス(Mathなど)のソースコードを見ることは可能ですか?
勉強がてら、どんな風に書かれているのか見てみたいのですが・・・
2018/07/07(土) 18:25:45.35ID:30ihGmDyM
>>492
ここにある
ちなみにMathは大部分が直接CLRに組み込まれていてC++で実装されているからあまり参考にはならんぞ
https://github.com/dotnet/corefx
2018/07/07(土) 18:28:37.54ID:cyf+ZGJha
そっち?
2018/07/07(土) 18:35:29.39ID:nZLHvKy0a
さすがに今更 Reference Sources は時代遅れだろ
Coreの方がコンパクトに纏まっててわかりやすいし、コピペしても捕まらないし
2018/07/07(土) 21:12:55.79ID:gKVOSzfp0
他人の書いたライブラリとか使おうと思っても仕様書もどう読めばいいかあまりわからなくて
いつも他人様の書いたコード見てやっとなんとなく使い方理解できてるんですが
サラサラかける人はどういう見かたしてるんですか?サンプル見てメソッド見ればもうわかるのですか?
2018/07/07(土) 21:24:10.82ID:Sa3mysoT0
>>496
ソースのメソッド見て中身理解するのは仕様書読むよりも難しくないか
メジャーなライブラリなら例を書いているサンプルがネット上にいっぱいあるし
そうでなくてもある程度自分で試しながら理解したらいいと思うが
2018/07/07(土) 21:27:00.32ID:30ihGmDyM
>>496
サンプル見ればだいたい分かるよ
お前も新しいフリーソフトとかWebサービスとか使うときマニュアル見なくてもだいたい分かるだろ?
それでお前の母ちゃんや友人に何で分かるのか聞かれて何て答える?
それと同じことで、経験を積むとパターンやライブラリの作者の考えが読めるようになってくる
2018/07/07(土) 22:41:26.27ID:E0dVopgVM
簡単だよ

こういう処理がしたいならメソッドにこういう文字列が含まれてるはずだよな
インテリセンスカチャカチャほらみろ有ったぞ
次は引数をドキュメントコメントで調べて入力
コンパイルエラー消えたよしこれでオッケー
ビルドして起動したら…はい動いたおわり

だいたいこんな感じ
今はライブラリも開発環境も優秀すぎて楽だよほんと
500デフォルトの名無しさん (ワッチョイ e79f-lO5G)
垢版 |
2018/07/07(土) 22:50:08.17ID:paMTBjoR0
右クリックして定義見ればよくね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況