「どんなにくだらない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
ふらっと C#,C♯,C#(初心者用) Part138
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 369a-msj4)
2018/06/05(火) 19:32:42.28ID:70UTtyrn0434デフォルトの名無しさん (ブーイモ MM22-M9kt)
2018/07/03(火) 19:38:57.82ID:uKdaL+TvM スクレイピングで、xpathや属性から要素を特定取得できると思いますが、逆に属性を取得することって、できるのでしょうか?
@class=取りたい属性←この値です
@class=取りたい属性←この値です
435デフォルトの名無しさん (ワッチョイ 467f-bA7/)
2018/07/03(火) 19:53:05.05ID:obHlRFH50 パーサーなに使ってるか知らんけど
xpath指定で値とれるなら属性指定すればとれるでしょう
xpath指定で値とれるなら属性指定すればとれるでしょう
436デフォルトの名無しさん (ワッチョイ 6e81-8q1V)
2018/07/03(火) 19:56:50.40ID:BhHhKgjH0 ロケーションステップの末端に
/@取りたい属性
をつければ取れるだろう
あまりこのスレとは関係ないけど
/@取りたい属性
をつければ取れるだろう
あまりこのスレとは関係ないけど
438デフォルトの名無しさん (ワッチョイ 6e81-8q1V)
2018/07/03(火) 20:40:16.29ID:BhHhKgjH0 だからぁ
/@class
だっつうの
/@class
だっつうの
439デフォルトの名無しさん (ワッチョイ 6e81-8q1V)
2018/07/03(火) 20:43:41.32ID:BhHhKgjH0 見直すと436の説明が悪かった
440デフォルトの名無しさん (ブーイモ MM4d-VCRa)
2018/07/03(火) 21:57:38.45ID:c8nUoQXQM 属性 "名"がほしいのか
属性 "値"が欲しいのかがわからないよな
属性 "値"が欲しいのかがわからないよな
441デフォルトの名無しさん (ワッチョイ 459e-lVus)
2018/07/04(水) 00:07:29.57ID:OxUMeZjO0 要素の属性を全部取得する
https://hokaccha.hatenablog.com/entry/20130819/1376895914
要素の属性を全部取得したいんだけど、 jQuery ではできないっぽい。
DOMの element.attributes を使えばいける
https://hokaccha.hatenablog.com/entry/20130819/1376895914
要素の属性を全部取得したいんだけど、 jQuery ではできないっぽい。
DOMの element.attributes を使えばいける
442デフォルトの名無しさん (ワッチョイ 6e81-M9kt)
2018/07/04(水) 01:32:51.59ID:QIUWNU3h0 >>440
属性の値がほしいんですね、名前はtagNameでとれるので
属性の値がほしいんですね、名前はtagNameでとれるので
443デフォルトの名無しさん (ワッチョイ 6e81-M9kt)
2018/07/04(水) 01:43:11.66ID:QIUWNU3h0 id="→sample←"
webページ上の値じゃなくて、→←で囲ったsampleという結果がほしいんです。
webページ上の値じゃなくて、→←で囲ったsampleという結果がほしいんです。
444デフォルトの名無しさん (ワッチョイ 467f-bA7/)
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");
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
ありがとうございます。試してみます。
ありがとうございます。試してみます。
446デフォルトの名無しさん (スップ Sd82-FzJk)
2018/07/04(水) 07:03:48.24ID:nlc5wO39d C♯勉強したんだけどネットに参考になるサイトないですか?
VBAはこれで勉強してネットで使いながらそこそこは出来るようにはなりました。何かを作りながら取り敢えず基礎的仕組みを理解出来ればと思ってます。
https://for-guests.com/excel-vba-6006/
VBAはこれで勉強してネットで使いながらそこそこは出来るようにはなりました。何かを作りながら取り敢えず基礎的仕組みを理解出来ればと思ってます。
https://for-guests.com/excel-vba-6006/
447デフォルトの名無しさん (ワッチョイ 4581-YyB7)
2018/07/04(水) 07:55:26.39ID:zwHbS25H0448デフォルトの名無しさん (ワッチョイ 8211-97rh)
2018/07/04(水) 08:50:06.90ID:oGtdQ8QA0 いやいや未確認飛行だろう
449デフォルトの名無しさん (ブーイモ MM22-M9kt)
2018/07/04(水) 09:30:12.33ID:rFQM1K2RM450デフォルトの名無しさん (ワッチョイ 0deb-HrKv)
2018/07/04(水) 15:02:10.32ID:x3V5psFC0 PC上からC#で制御できる汎用IO製品って安いのないんかな?
Raspberry PiについてるGPIOみたいなのが欲しいんだけど
Raspberry PiについてるGPIOみたいなのが欲しいんだけど
451デフォルトの名無しさん (ワッチョイ 0d8a-LTG6)
2018/07/04(水) 15:06:52.68ID:ZJ2LKM3Q0 デバドラの認証コストだけでも結構なお金がかかるからなぁ
452デフォルトの名無しさん (アウアウカー Sac9-Wwee)
2018/07/04(水) 15:11:38.24ID:BdK+b5Vga Arduinoがいいよ
453デフォルトの名無しさん (ワッチョイ 027f-7be3)
2018/07/04(水) 16:48:56.19ID:n4h9hTEh0454デフォルトの名無しさん (アウアウエー Sa0a-/Gj2)
2018/07/04(水) 17:14:18.28ID:Ub7D34vBa >>450
あんまり安くもないがこんなのとか
http://akizukidenshi.com/catalog/g/gK-01977/
このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
でも8本 + αしかないし使い方に癖があった気がする。
あんまり安くもないがこんなのとか
http://akizukidenshi.com/catalog/g/gK-01977/
このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
でも8本 + αしかないし使い方に癖があった気がする。
455デフォルトの名無しさん (ササクッテロ Sp51-r5YT)
2018/07/04(水) 19:26:55.57ID:x1yYTdeNp むしろラズパイやらArduinoとシリアル通信させてそちらのgpioに何か繋ぐ方が、安心安全いざショートしちゃったとかのアクシデントの時にも安く済むよ。
456デフォルトの名無しさん (アウアウウー Sa85-VCRa)
2018/07/04(水) 19:51:54.95ID:F41Mlataa457デフォルトの名無しさん (ワッチョイ 7e33-AF1h)
2018/07/04(水) 20:05:13.89ID:acN7B5+I0458デフォルトの名無しさん (アウアウエー Sa0a-/Gj2)
2018/07/04(水) 20:23:47.96ID:Ub7D34vBa >>456
だから
>このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
って前置きしてるでしょ。
確認してみたけど、ちょっと変則的だけど一応使えるよやっぱり
パラレルの方(FT245)のICもGPIOとして使えるが(こっちも本来はそういう用途じゃない。ちなみにこっちは使用経験あり)
こっちの方がちょっとだけ高価でGPIOとして使えるピン数も少ない
http://akizukidenshi.com/catalog/g/gK-01799/
だから
>この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本みたいだが。
取説見るとデジタルI/Oは5本みたいだが。
460デフォルトの名無しさん (ワッチョイ 45fa-2e90)
2018/07/04(水) 21:46:57.76ID:gFgZc5FG0 AWK
461デフォルトの名無しさん (アウアウエー Sa0a-/Gj2)
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
アプリケーションノートに書いてあると思うが、さすがに面倒だから読んでない
スレ違いだけど、このドキュメントのP3に書いてある特殊機能があるんよ
http://www.ftdichip.com/Support/Documents/AppNotes/AN_232R-01_Bit_Bang_Mode_Available_For_FT232R_and_Ft245R.pdf
最低8本は使える
残りのプラスアルファーがどういう風に使えるかは、たぶんドライバーのAPI
アプリケーションノートに書いてあると思うが、さすがに面倒だから読んでない
462デフォルトの名無しさん (ワッチョイ 7e33-AF1h)
2018/07/04(水) 23:48:29.40ID:acN7B5+I0 FTDIのはドライバ必須だし
HIDとかで繋がるやつ揃えた方が楽だよ
HIDとかで繋がるやつ揃えた方が楽だよ
463デフォルトの名無しさん (ワッチョイ 7e33-AF1h)
2018/07/04(水) 23:51:36.78ID:acN7B5+I0 HIDというか標準クラスね
例えばArduino Leonardo相当であれば何にでも化けられる
例えばArduino Leonardo相当であれば何にでも化けられる
464デフォルトの名無しさん (ササクッテロ Sp3b-AA7a)
2018/07/05(木) 09:53:48.98ID:4AVSF7Vxp HIDって、出力ディバイスにも使えたっけ?
465デフォルトの名無しさん (アウアウウー Sa0b-sule)
2018/07/05(木) 11:12:32.85ID:zf6L08GCa digisparkというのを使ってたけどHIDデバイスに見えて入出力OK
昔は300円以下で送料無料で中国から買えたんだけど値上がりしちゃった
昔は300円以下で送料無料で中国から買えたんだけど値上がりしちゃった
466デフォルトの名無しさん (ワッチョイ 87b3-WyNa)
2018/07/05(木) 15:50:31.35ID:P71/Py9I0 C♯でMySQLを操作したいのですが楽に扱えるライブラリはありますか?
EntityFrameworkを使いたいのですがイマイチ接続できないので
一応昔にSQL書いて操作するパターンも作ったことありますが出来ればせっかくなのでやり取り楽な風にできればと思ってます
EntityFrameworkを使いたいのですがイマイチ接続できないので
一応昔にSQL書いて操作するパターンも作ったことありますが出来ればせっかくなのでやり取り楽な風にできればと思ってます
467デフォルトの名無しさん (ワッチョイ 678a-K9rx)
2018/07/05(木) 16:03:16.41ID:I27lRIcu0 LinqConnect
468デフォルトの名無しさん (ブーイモ MM7f-SJYg)
2018/07/05(木) 18:53:29.35ID:/h700nZmM Dapper
469デフォルトの名無しさん (ワッチョイ 87b3-WyNa)
2018/07/05(木) 20:00:51.78ID:P71/Py9I0 ありがとうございます
Dapperの存在忘れてましたこちら使い方少し調べてみます
LinqConnectも調べましたが環境整えるところからなので余裕ができたらこちらも調べてみます
Dapperの存在忘れてましたこちら使い方少し調べてみます
LinqConnectも調べましたが環境整えるところからなので余裕ができたらこちらも調べてみます
470デフォルトの名無しさん (ワッチョイ ff33-c6cw)
2018/07/05(木) 20:12:43.80ID:LKNZKA8z0 >>464
昔からあるUSB-IOもHIDだよ
昔からあるUSB-IOもHIDだよ
471デフォルトの名無しさん (ワッチョイ 5f51-bAjg)
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;
}
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;
}
472デフォルトの名無しさん (ワッチョイ 5fea-g8qq)
2018/07/06(金) 14:26:00.38ID:CcG3LQ040 double power = 1.0;
の方が効率がいいぞ
の方が効率がいいぞ
473デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
2018/07/06(金) 15:02:32.12ID:W35a98bMa474デフォルトの名無しさん (アウアウウー Sa0b-SJYg)
2018/07/06(金) 15:02:47.67ID:M3cpa2kAa475474 (アウアウウー Sa0b-SJYg)
2018/07/06(金) 15:03:33.89ID:M3cpa2kAa すまん訂正
割り切れないとき、はこれにxを掛けてくれ
割り切れないとき、はこれにxを掛けてくれ
476デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
2018/07/06(金) 15:04:04.87ID:W35a98bMa477デフォルトの名無しさん (ワッチョイ 5f51-bAjg)
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;
}
ありがとうございます
定数だけの四則演算やキャストはコンパイルの時点で行われるから
効率に影響は無いと習ったのですがこの場合は違うのですね
キャストがコンパイル時と実行時のどちらで行われるかを判断する
簡単な方法があれば教えてほしいです
>>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;
}
478デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
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
こうじゃない?
いい加減に書いたから間違ってたらごめん
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
479デフォルトの名無しさん (ワッチョイ 5f51-bAjg)
2018/07/06(金) 16:10:07.44ID:v98PP3uI0480デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
2018/07/06(金) 16:12:36.64ID:W35a98bMa あー直接関係ないけど、0の0乗って1でいいんだな
481デフォルトの名無しさん (ワッチョイ 5f51-bAjg)
2018/07/06(金) 17:25:12.79ID:v98PP3uI0482デフォルトの名無しさん (アウアウカー Sa1b-1NyI)
2018/07/06(金) 17:29:05.92ID:Utskd+YBa 0乗が1以外になる考え方なんてあるんだ
単位元の1に何も掛けないんだから常に1だと思ってた
単位元の1に何も掛けないんだから常に1だと思ってた
483デフォルトの名無しさん (ワッチョイ c75d-NXt0)
2018/07/06(金) 22:25:57.54ID:cMQzyLwk0 高速冪乗法でググれって感じだ
484デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
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;
}
もう一つ質問させてください
以下の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;
}
485デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
2018/07/07(土) 00:10:35.11ID:PwTdVeWu0486デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
2018/07/07(土) 00:33:06.38ID:cboIXbsqa >>484
面白いねw
要は1が立ってるビットの数を数えてるわけだと思うけど、
Population2の方は
>n = n & n - 1;
これやると1が立ってる最下位ビットが消えるんだなw
名前は知らないごめんね
面白いねw
要は1が立ってるビットの数を数えてるわけだと思うけど、
Population2の方は
>n = n & n - 1;
これやると1が立ってる最下位ビットが消えるんだなw
名前は知らないごめんね
487デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
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;で最下位ビットが消える理由が
理解できていないのでもう少し考えてきます
ありがとうございます
ビット演算については分かってるつもりだったのに全然でした・・・
ヒントを貰って下のようなプログラムを試してみたら
確かに最下位ビットが順に消えていって感動です
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;で最下位ビットが消える理由が
理解できていないのでもう少し考えてきます
488デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
2018/07/07(土) 01:08:23.64ID:cboIXbsqa >>487
デクリメントした時、
(1) ボローが発生しなくなる桁(つまり、最下位の1の桁)はデクリメントの前は1、後は0
(2) その下位の桁はデクリメントの前は0、後は1
(3) 上位の桁の値は変わらない
なんだから、前後の値の論理積は必ず最下位の1まで0になる
デクリメントした時、
(1) ボローが発生しなくなる桁(つまり、最下位の1の桁)はデクリメントの前は1、後は0
(2) その下位の桁はデクリメントの前は0、後は1
(3) 上位の桁の値は変わらない
なんだから、前後の値の論理積は必ず最下位の1まで0になる
489デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
2018/07/07(土) 01:35:58.15ID:PwTdVeWu0 >>488
とてもわかり易い説明ありがとうございます!お陰様で理解できました
実はこの説明を読むまでn & n - 1は(n & n) - 1という意味だと思ってて、
それならn - 1と同じじゃないのかと思いながらも
トンチンカンなことを言ってしまうのが怖くて黙ってたのですが、
こんなことなら変なプライドは捨ててさっさと疑問をぶつければよかったです
この問題を考えていて、少しビット演算に慣れてきた気がします
使い道があるかどうかは分かりませんが、
n = n & ~(n - 1);だと逆に最下位ビット以外を消すことができるんですね
とにかく、どうもありがとうございました
とてもわかり易い説明ありがとうございます!お陰様で理解できました
実はこの説明を読むまでn & n - 1は(n & n) - 1という意味だと思ってて、
それならn - 1と同じじゃないのかと思いながらも
トンチンカンなことを言ってしまうのが怖くて黙ってたのですが、
こんなことなら変なプライドは捨ててさっさと疑問をぶつければよかったです
この問題を考えていて、少しビット演算に慣れてきた気がします
使い道があるかどうかは分かりませんが、
n = n & ~(n - 1);だと逆に最下位ビット以外を消すことができるんですね
とにかく、どうもありがとうございました
490デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
2018/07/07(土) 01:57:17.51ID:PwTdVeWu0 今更ですがPopulationってビットの人口ってことだったんですね・・・
Wikipediaにもページがバッチリありました
https://en.wikipedia.org/wiki/Population_count
Wikipediaにもページがバッチリありました
https://en.wikipedia.org/wiki/Population_count
491デフォルトの名無しさん (ワッチョイ 072b-TUTg)
2018/07/07(土) 07:04:40.39ID:jG1Ln0tj0 すいません
Pawar はx^nですか
Pawar はx^nですか
492デフォルトの名無しさん (ワッチョイ e7d2-gqST)
2018/07/07(土) 18:20:25.33ID:xch9dzoq0 C#で予め用意されているクラス(Mathなど)のソースコードを見ることは可能ですか?
勉強がてら、どんな風に書かれているのか見てみたいのですが・・・
勉強がてら、どんな風に書かれているのか見てみたいのですが・・・
493デフォルトの名無しさん (ブーイモ MMcf-SJYg)
2018/07/07(土) 18:25:45.35ID:30ihGmDyM494デフォルトの名無しさん (アウアウウー Sa0b-sule)
2018/07/07(土) 18:28:37.54ID:cyf+ZGJha そっち?
495デフォルトの名無しさん (アウアウウー Sa0b-SJYg)
2018/07/07(土) 18:35:29.39ID:nZLHvKy0a さすがに今更 Reference Sources は時代遅れだろ
Coreの方がコンパクトに纏まっててわかりやすいし、コピペしても捕まらないし
Coreの方がコンパクトに纏まっててわかりやすいし、コピペしても捕まらないし
496デフォルトの名無しさん (ワッチョイ 5f60-KMj/)
2018/07/07(土) 21:12:55.79ID:gKVOSzfp0 他人の書いたライブラリとか使おうと思っても仕様書もどう読めばいいかあまりわからなくて
いつも他人様の書いたコード見てやっとなんとなく使い方理解できてるんですが
サラサラかける人はどういう見かたしてるんですか?サンプル見てメソッド見ればもうわかるのですか?
いつも他人様の書いたコード見てやっとなんとなく使い方理解できてるんですが
サラサラかける人はどういう見かたしてるんですか?サンプル見てメソッド見ればもうわかるのですか?
497デフォルトの名無しさん (ワッチョイ 479a-CtBN)
2018/07/07(土) 21:24:10.82ID:Sa3mysoT0 >>496
ソースのメソッド見て中身理解するのは仕様書読むよりも難しくないか
メジャーなライブラリなら例を書いているサンプルがネット上にいっぱいあるし
そうでなくてもある程度自分で試しながら理解したらいいと思うが
ソースのメソッド見て中身理解するのは仕様書読むよりも難しくないか
メジャーなライブラリなら例を書いているサンプルがネット上にいっぱいあるし
そうでなくてもある程度自分で試しながら理解したらいいと思うが
498デフォルトの名無しさん (ブーイモ MMcf-SJYg)
2018/07/07(土) 21:27:00.32ID:30ihGmDyM >>496
サンプル見ればだいたい分かるよ
お前も新しいフリーソフトとかWebサービスとか使うときマニュアル見なくてもだいたい分かるだろ?
それでお前の母ちゃんや友人に何で分かるのか聞かれて何て答える?
それと同じことで、経験を積むとパターンやライブラリの作者の考えが読めるようになってくる
サンプル見ればだいたい分かるよ
お前も新しいフリーソフトとかWebサービスとか使うときマニュアル見なくてもだいたい分かるだろ?
それでお前の母ちゃんや友人に何で分かるのか聞かれて何て答える?
それと同じことで、経験を積むとパターンやライブラリの作者の考えが読めるようになってくる
499デフォルトの名無しさん (ワンミングク MM3f-JP/P)
2018/07/07(土) 22:41:26.27ID:E0dVopgVM 簡単だよ
こういう処理がしたいならメソッドにこういう文字列が含まれてるはずだよな
インテリセンスカチャカチャほらみろ有ったぞ
次は引数をドキュメントコメントで調べて入力
コンパイルエラー消えたよしこれでオッケー
ビルドして起動したら…はい動いたおわり
だいたいこんな感じ
今はライブラリも開発環境も優秀すぎて楽だよほんと
こういう処理がしたいならメソッドにこういう文字列が含まれてるはずだよな
インテリセンスカチャカチャほらみろ有ったぞ
次は引数をドキュメントコメントで調べて入力
コンパイルエラー消えたよしこれでオッケー
ビルドして起動したら…はい動いたおわり
だいたいこんな感じ
今はライブラリも開発環境も優秀すぎて楽だよほんと
500デフォルトの名無しさん (ワッチョイ e79f-lO5G)
2018/07/07(土) 22:50:08.17ID:paMTBjoR0 右クリックして定義見ればよくね?
501デフォルトの名無しさん (ワッチョイ 7fc9-UVFs)
2018/07/07(土) 23:30:31.81ID:iY8uTCL40 LINQ使った最近のデザパタ紹介しているサイトや書籍ってある?
どこもなんか古いコードで
どこもなんか古いコードで
502デフォルトの名無しさん (ワッチョイ 67e3-GRiN)
2018/07/07(土) 23:40:48.02ID:Xo0ZcSzF0 >>501
誰も使ってネーからって気づけw
誰も使ってネーからって気づけw
503デフォルトの名無しさん (ワッチョイ 7f81-YWjz)
2018/07/08(日) 00:27:29.44ID:7kODHcAp0 >>501
linqの古いコードって、例えばどんなん?ラムダ使ってない奴のことかな?
linqの古いコードって、例えばどんなん?ラムダ使ってない奴のことかな?
504デフォルトの名無しさん (ワッチョイ 5fd2-ONL2)
2018/07/08(日) 00:45:39.18ID:ijnRC5hf0 >>503
日本語
日本語
505デフォルトの名無しさん (ワッチョイ 7f81-xhgQ)
2018/07/08(日) 02:13:34.73ID:8SSmHvWN0 性懲りもなくよう相手にするなあこのクサレ脳みそども
506デフォルトの名無しさん (アウアウウー Sa0b-sule)
2018/07/08(日) 11:15:40.05ID:YcDPlOAza 他のスレでデザパタと略す奴は例外なくクソって言う風潮があるから
その略称は使わないほうがいいw
その略称は使わないほうがいいw
507デフォルトの名無しさん (オイコラミネオ MM4f-FpIe)
2018/07/09(月) 15:36:56.63ID:Uwu2BFrsM LinqというかDBアクセス系のパターンの事ならリポジトリパターンやイベントソーシング・CQRSあたりかな
MSの黒本 C#実践開発手法 はどうだろう
あとRxも押さえとけば
MSの黒本 C#実践開発手法 はどうだろう
あとRxも押さえとけば
508デフォルトの名無しさん (ワッチョイ 7fed-sule)
2018/07/09(月) 23:28:49.95ID:8W0J0prF0 名前付きパイプでプロセス間通信するとき、できるだけ遅延を小さくするためにすべきこと、したほうがいいことがありますか?
509デフォルトの名無しさん (ワッチョイ 5f8a-a75z)
2018/07/10(火) 03:23:37.00ID:LdlDw2V90 ポータブルなASP.NET実行環境はありますか?
勝手にソフトインストール出来ない環境で使いたい為、Tomcatのように、設定ファイルで設定してexe起動するだけのタイプを探しています。
勝手にソフトインストール出来ない環境で使いたい為、Tomcatのように、設定ファイルで設定してexe起動するだけのタイプを探しています。
510デフォルトの名無しさん (アウアウウー Sa0b-SJYg)
2018/07/10(火) 03:44:47.11ID:wzF2q8B9a511デフォルトの名無しさん (スプッッ Sdff-jgrZ)
2018/07/10(火) 07:07:05.03ID:1Wfv3KWad formが3つがあってそれぞれ仮にa,b,cとして、a,b,cの中にコンボボックスがいくつかあってaのコンボボックスの一つにエクセルをdbで読み取って?コンボボックスに値を入れました。
以降もコンボボックスに入れてくんですけど、違いがブック名とシート名でコードをまとめたい時はどこにどのように書けばいいですか?
今はform aのloadに一つ書いてます。
以降もコンボボックスに入れてくんですけど、違いがブック名とシート名でコードをまとめたい時はどこにどのように書けばいいですか?
今はform aのloadに一つ書いてます。
512デフォルトの名無しさん (アウアウウー Sa0b-1qXk)
2018/07/10(火) 08:43:35.96ID:wzF2q8B9a class Configurations { 各コンボボックスに入れるべき値をそれぞれプロパティとして定義 }
interface IConfigurationsSource { Configurations GetConfigurations(); }
class ExcelConfigurationsSource : IConfigurationsSource {
private readonly string book;
private readonly string sheet;
public ConfigurationsSource(string book, string sheet) { this.book = book; this.sheet = sheet; }
public Configurations GetConfigurations() { return Excelシートから読み取ってConfigurationsに詰めて返す(book, sheet); }
}
こういうのを作って使い回す
interface IConfigurationsSource { Configurations GetConfigurations(); }
class ExcelConfigurationsSource : IConfigurationsSource {
private readonly string book;
private readonly string sheet;
public ConfigurationsSource(string book, string sheet) { this.book = book; this.sheet = sheet; }
public Configurations GetConfigurations() { return Excelシートから読み取ってConfigurationsに詰めて返す(book, sheet); }
}
こういうのを作って使い回す
513デフォルトの名無しさん (ワッチョイ 4775-xyRp)
2018/07/10(火) 10:08:29.34ID:DQNNzOip0 クラスを継承して機能を共通化するのとインターフェースで共通化するのと何が違いますか?
514デフォルトの名無しさん (オイコラミネオ MM4f-FpIe)
2018/07/10(火) 10:27:34.35ID:u496riIwM いろいろなレベルでの回答があるが
インターフェースはMIX可能
継承の濫用は保守困難になりがち
インターフェース意識した方が設計的にスマートな事が多い
c#8で事情は大きく変わるが
インターフェースはMIX可能
継承の濫用は保守困難になりがち
インターフェース意識した方が設計的にスマートな事が多い
c#8で事情は大きく変わるが
515デフォルトの名無しさん (ササクッテロル Sp3b-AA7a)
2018/07/10(火) 13:38:42.06ID:vEF725PNp クラス継承は切り離せないが、インターフェースなら切り離せる。
516デフォルトの名無しさん (ワッチョイ e7d2-gqST)
2018/07/10(火) 15:17:35.18ID:ptn/0Y0d0517デフォルトの名無しさん (ワッチョイ 7fe8-UVFs)
2018/07/10(火) 15:18:53.33ID:6gd4tcDd0 え、8ってどうなるん・・・
518デフォルトの名無しさん (ワッチョイ 87bb-xhgQ)
2018/07/10(火) 15:59:38.63ID:lFSMnKMw0 そらもうアレよ
519デフォルトの名無しさん (スップ Sd7f-w8Cw)
2018/07/10(火) 17:43:22.36ID:pIJZecgId おジャ魔女どれみc#
520デフォルトの名無しさん (スプッッ Sdff-jgrZ)
2018/07/10(火) 19:00:19.81ID:1Wfv3KWad521デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
2018/07/10(火) 19:04:58.17ID:WX+x+qIF0 >>514
> c#8で事情は大きく変わるが
C#8ではnull非許容が標準になるという噂は聞いたことがあるのですが、
この話は検索してみてもなんのことを仰っているのか分かりませんでした
とても興味があるので、ぜひ詳しく教えていただけないでしょうか
> c#8で事情は大きく変わるが
C#8ではnull非許容が標準になるという噂は聞いたことがあるのですが、
この話は検索してみてもなんのことを仰っているのか分かりませんでした
とても興味があるので、ぜひ詳しく教えていただけないでしょうか
522デフォルトの名無しさん (ワッチョイ 5f7f-CJRd)
2018/07/10(火) 21:19:40.32ID:vJrIcc2p0523デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
2018/07/10(火) 21:45:00.39ID:WX+x+qIF0 >>522
レスありがとうございます!
ただこれだけを聞くとC#8でインターフェースの価値が更に上がるように思うのですが、
>>514さんはインターフェースの価値を説かれた上で
「c#8で事情は大きく変わる」と仰っていているので、他の機能に拡充が図られるなどで
インターフェースの価値が相対的に下がると仰っしゃりたいように感じました
実際にはそういうわけではないのでしょうか?
いずれにしても、インターフェースのデフォルト実装は便利そうで楽しみです
あと、それほどいろいろと手を入れるなら、
IList<T>が共変なIReadOnlyList<out T>と反変なIWriteOnlyList<in T>を
継承するようにするとか、そういう変更もあると嬉しいな〜と素人ながら思ってみたりw
レスありがとうございます!
ただこれだけを聞くとC#8でインターフェースの価値が更に上がるように思うのですが、
>>514さんはインターフェースの価値を説かれた上で
「c#8で事情は大きく変わる」と仰っていているので、他の機能に拡充が図られるなどで
インターフェースの価値が相対的に下がると仰っしゃりたいように感じました
実際にはそういうわけではないのでしょうか?
いずれにしても、インターフェースのデフォルト実装は便利そうで楽しみです
あと、それほどいろいろと手を入れるなら、
IList<T>が共変なIReadOnlyList<out T>と反変なIWriteOnlyList<in T>を
継承するようにするとか、そういう変更もあると嬉しいな〜と素人ながら思ってみたりw
524デフォルトの名無しさん (ワッチョイ c730-xyRp)
2018/07/10(火) 22:52:33.99ID:uwEab9SB0 めっちゃ詳しいw
525デフォルトの名無しさん (ワッチョイ 5f7f-CJRd)
2018/07/10(火) 23:47:58.27ID:vJrIcc2p0526デフォルトの名無しさん (アウアウウー Sa0b-SJYg)
2018/07/11(水) 00:12:23.28ID:08+HRZoYa >>525
既にList<>はIReadOnlyList<>を実装してるんだから今更だろ。
IList<>がIReadOnlyList<>を継承できない理由は、インターフェイスメンバの明示的実装を壊すから
IList<>に宣言されてたメンバのうちIReadOnlyList<>と被るものを全部削除したとしたら、IList<>のメンバを明示的実装している既存のクラスが全滅する
既にList<>はIReadOnlyList<>を実装してるんだから今更だろ。
IList<>がIReadOnlyList<>を継承できない理由は、インターフェイスメンバの明示的実装を壊すから
IList<>に宣言されてたメンバのうちIReadOnlyList<>と被るものを全部削除したとしたら、IList<>のメンバを明示的実装している既存のクラスが全滅する
527デフォルトの名無しさん (ワッチョイ bf93-FpIe)
2018/07/11(水) 00:40:08.40ID:OI/RESej0 誤解を与えてすまん
c#8でインターフェースのデフォルト実装がサポートされるので価値は高まるという認識でok
null不許容も含めて大きく変わるねえ
c#8でインターフェースのデフォルト実装がサポートされるので価値は高まるという認識でok
null不許容も含めて大きく変わるねえ
528デフォルトの名無しさん (ワッチョイ bf93-FpIe)
2018/07/11(水) 00:50:36.62ID:OI/RESej0 null非許容を乱暴に説明すると
参照型の変数にnullが入らないのがデフォになる。よって多くのシナリオでnull落ちになるケースが激減する。基本的にプログラミングが楽になる。
変数にnull許可する場合には明示的に宣言が必要になる。
既存のソースに対しては破壊的変更になるからコンパイルオプションとかになるんじゃないかな。
参照型の変数にnullが入らないのがデフォになる。よって多くのシナリオでnull落ちになるケースが激減する。基本的にプログラミングが楽になる。
変数にnull許可する場合には明示的に宣言が必要になる。
既存のソースに対しては破壊的変更になるからコンパイルオプションとかになるんじゃないかな。
529デフォルトの名無しさん (ワントンキン MM3f-JP/P)
2018/07/11(水) 01:02:22.00ID:veaNU89qM OOP的にも綺麗でテーブルが正規化されてればnull非許容は受け入れられるかもね
業務システムではあまり役に立たなそうだ
業務システムではあまり役に立たなそうだ
530デフォルトの名無しさん (アウアウエー Sa1f-z1ya)
2018/07/11(水) 01:04:51.55ID:zbj7oPBja >よって多くのシナリオでnull落ちになるケースが激減する。基本的にプログラミングが楽になる。
岩永氏の例の記事にもそう書いてあるが、何度考えてもこれは逆だと思うなw
いわゆる「例外を握りつぶす」筋悪コードと同じ弊害をもたらすだけだろう
岩永氏の例の記事にもそう書いてあるが、何度考えてもこれは逆だと思うなw
いわゆる「例外を握りつぶす」筋悪コードと同じ弊害をもたらすだけだろう
531デフォルトの名無しさん (ワントンキン MM3f-JP/P)
2018/07/11(水) 01:08:15.17ID:veaNU89qM 凄まじい列数でほとんどがnullのテーブル
あれをなんとかしないとアプリケーションからnullを排除することは難しい
インフラの問題だからホスト言語のちょっとした改善でどうにかなるものじゃない
あれをなんとかしないとアプリケーションからnullを排除することは難しい
インフラの問題だからホスト言語のちょっとした改善でどうにかなるものじゃない
532デフォルトの名無しさん (ワッチョイ bf93-FpIe)
2018/07/11(水) 01:22:37.10ID:OI/RESej0 最近の言語がそういう流れだからだろうね
DB絡みに外部結合やORM、既存ライブラリやサービスがある以上、null考慮は回避できないだろうから使い分けになるだろうね
nullまみれのテーブルも いまだにみかけるし
新規コードでサクサク組んでいくには便利やと思う
DB絡みに外部結合やORM、既存ライブラリやサービスがある以上、null考慮は回避できないだろうから使い分けになるだろうね
nullまみれのテーブルも いまだにみかけるし
新規コードでサクサク組んでいくには便利やと思う
533デフォルトの名無しさん (ワッチョイ 5f5d-bAjg)
2018/07/11(水) 01:24:04.27ID:mrqtDgK70 >>525
レスありがとうございます
確かに、ReadOnlyという言葉がIReadOnlyList<>を継承するものにかかっていると考えると
IList<>がIReadOnlyList<>を継承するのは妙な感じですね
ただ現実として、>>526でも指摘していただいているようにList<>はIReadOnlyList<>を
実装していますので、ReadOnlyという言葉はあくまでIReadOnlyList<>自身にかかっていると
とらえてしまってもいいのかなと考えています
その現状の言葉遣いが間違っているのだから直すべきだというご主張なら、
実現可能性は私には難しくて分かりませんが、とても興味深いご意見だと思います
>>526
レスありがとうございます
書いていただいた文章を読むと、インターフェースは継承元のインターフェースと
同じ名前のメソッドを持てない、もしくはインターフェースの明示的実装に悪影響があると
考えていらっしゃるように見受けられたのですが、この部分がよく理解できなかったので
申し訳ないのですが詳しくご説明していただけるとありがたいです
>>527-528
レスありがとうございます
私の方こそ、変な深読みをしてしまい失礼しました
私は初学者なので機能の増強は単純に楽しみなのですが、
既存のソースを多くお持ちの方にとっては大幅な変更はいいことばかりでもないのですね
>>528-531
興味深いお話をどうもありがとうございます
自分からnull非許容の話を出しておいて恥ずかしいのですが、
実はこれが具体的にどういうものなのかほとんど理解できていないのです
var a = new string[1]; は許されるのか?とか、許されるならそれは
var a = new string[1] { string.Empty }; と同じ意味なのか?とか、
もしそれが正しいなら、クラス毎に Empty 的なものを用意しないといけないのか?とか
疑問は膨らむばかりです
レスありがとうございます
確かに、ReadOnlyという言葉がIReadOnlyList<>を継承するものにかかっていると考えると
IList<>がIReadOnlyList<>を継承するのは妙な感じですね
ただ現実として、>>526でも指摘していただいているようにList<>はIReadOnlyList<>を
実装していますので、ReadOnlyという言葉はあくまでIReadOnlyList<>自身にかかっていると
とらえてしまってもいいのかなと考えています
その現状の言葉遣いが間違っているのだから直すべきだというご主張なら、
実現可能性は私には難しくて分かりませんが、とても興味深いご意見だと思います
>>526
レスありがとうございます
書いていただいた文章を読むと、インターフェースは継承元のインターフェースと
同じ名前のメソッドを持てない、もしくはインターフェースの明示的実装に悪影響があると
考えていらっしゃるように見受けられたのですが、この部分がよく理解できなかったので
申し訳ないのですが詳しくご説明していただけるとありがたいです
>>527-528
レスありがとうございます
私の方こそ、変な深読みをしてしまい失礼しました
私は初学者なので機能の増強は単純に楽しみなのですが、
既存のソースを多くお持ちの方にとっては大幅な変更はいいことばかりでもないのですね
>>528-531
興味深いお話をどうもありがとうございます
自分からnull非許容の話を出しておいて恥ずかしいのですが、
実はこれが具体的にどういうものなのかほとんど理解できていないのです
var a = new string[1]; は許されるのか?とか、許されるならそれは
var a = new string[1] { string.Empty }; と同じ意味なのか?とか、
もしそれが正しいなら、クラス毎に Empty 的なものを用意しないといけないのか?とか
疑問は膨らむばかりです
534デフォルトの名無しさん (ワッチョイ bf93-FpIe)
2018/07/11(水) 01:52:22.43ID:OI/RESej0 シンプルなコードで良い疑問やなあ
実際導入されたら混乱しそう…
右辺のArrayがnullを許さないからコンパイラに怒られそう
初期値入れたらいけそう
もし仮にstringの規定値がemptyになる仕様になれば初期化無しでもコンパイルとおるかも
c#7系以前と同じ挙動にするなら
var a = new string[1]?;
という記述になるはず
List系使うから配列を生で使う機会は減ったけどね
実際導入されたら混乱しそう…
右辺のArrayがnullを許さないからコンパイラに怒られそう
初期値入れたらいけそう
もし仮にstringの規定値がemptyになる仕様になれば初期化無しでもコンパイルとおるかも
c#7系以前と同じ挙動にするなら
var a = new string[1]?;
という記述になるはず
List系使うから配列を生で使う機会は減ったけどね
■ このスレッドは過去ログ倉庫に格納されています
