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

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

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

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part135
http://mevius.5ch.net/test/read.cgi/tech/1517749348/

■コードを貼る場合は↓を使いましょう。
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: default:vvvvv:1000:512:----: EXT was configured
397デフォルトの名無しさん
垢版 |
2018/03/21(水) 15:39:11.17ID:5e+TVXSM
>>396
そんな事ねーだろw
むしろ逆なんじゃないの?
ブログから書籍なら分かるけど
2018/03/21(水) 15:49:39.72ID:x2r2V1ra
>>396
MSDNのリファレンスは書籍が元になってんのか?
2018/03/21(水) 15:52:34.67ID:PUZ7K5bP
PSVRでもやればいいのに(´・ω・`)

スクエニ、「結婚指輪物語 VR」を5月25日配信--漫画の世界に入る新しいVR表現
https://japan.cnet.com/article/35116459/
2018/03/21(水) 15:58:17.79ID:OlOe5UzE
書籍が情報の原点だという意味では
まぁそんなこと言い出したら知識伝播の原点は壁画時代にまで遡る
2018/03/21(水) 16:08:01.93ID:Rl1NS7de
>>398
せめてdocsにしとけよ
2018/03/21(水) 19:42:34.12ID:k50DXUVk
>>394
そんなにやっていて初心者のスレで真っ赤になった上にバカにされるんだ
こんなプログラマにはなりたくないな
そして忘れ去られる元の質問者
403デフォルトの名無しさん
垢版 |
2018/03/21(水) 20:08:29.59ID:1JiLJjJR
努力で解決しちゃう奴がプログラミングをやると>>394みたいになりがち
2018/03/21(水) 20:11:51.61ID:zVVJT8mf
永遠の初心者よりいいと思うけどw
コピペしかできない人間にはなりたくない
2018/03/21(水) 20:19:04.30ID:ElQ36cp9
>>404
それで食えるならそれでもおk
406デフォルトの名無しさん
垢版 |
2018/03/21(水) 20:20:02.58ID:1JiLJjJR
いや、その永遠の初心者が>>394なのだが
2018/03/21(水) 20:31:38.84ID:mIV9xLj7
いちいち、僻み発言はしなくていいから
408デフォルトの名無しさん
垢版 |
2018/03/21(水) 20:33:38.71ID:cPEv79wC
そんな真新しくプログラム作ることってなくないか?
自分のライブラリ使うのもコピペに入るならほとんどコピペみたいなもんやろ
ネットから拾ってただコピペは知らん
2018/03/21(水) 20:46:37.97ID:zVVJT8mf
彼はコピペしかできない人達の何かを刺激してしまったんだなw
410デフォルトの名無しさん
垢版 |
2018/03/21(水) 20:47:32.26ID:mPtLWMTP
コピペって言えばQiitaやHatenaの記事は酷いもんがあるよな
間違ったテクニックや誤魔化す技が一度紹介されたら、そのコピーブログが量産されてくんだ
411デフォルトの名無しさん
垢版 |
2018/03/21(水) 21:53:57.93ID:1JiLJjJR
>>410
酷くていいんだよ
ああいうのは>>394みたいな努力系プログラマーが排出するゴミの受け皿なんだから
2018/03/21(水) 22:10:14.55ID:YzH/Qu94
マ板でやれよ...
2018/03/21(水) 22:55:56.39ID:zVVJT8mf
初心者のベテラン叩きかっこええ
2018/03/21(水) 23:04:09.39ID:/A9S8Tke
ここでいいかな。
分かる人いたら教えてください。

C# で作成する webアプリで、web.config の appSettings セクション?の下の add には
通常では key と value の組で設定の名称と値を保存していますが、key と value の他に独自のプロパティを追加して、たとえば

<appSettings>
<add key="名称" value="設定値" explanation="この項目の説明"/>
</appSettings>

みたいな事をしたいのです。
ずっと前に appSettings の拡張クラスを定義する事によって可能になるというような記事を読んだ記憶があったような気がするのですが
いまは見つけられませんでした。

上のようなやり方の是非はともかく、実現の可否と、やり方を教えてください。
2018/03/22(木) 00:08:52.98ID:/twRZ4qU
>>414
Custom Configuration Section とかでググるといいと思う
https://msdn.microsoft.com/ja-jp/library/2tw134k3.aspx
2018/03/22(木) 00:15:01.17ID:/twRZ4qU
ここの説明のほうがわかりやすいかも
https://blogs.perficient.com/microsoft/2017/01/4-easy-steps-to-custom-sections-in-web-config/
2018/03/22(木) 00:24:24.25ID:G0SZ4nh0
できるけど面倒くさいぞそれ
設定は別のファイルにしたほうがいい
2018/03/22(木) 02:52:41.51ID:R5Phquw0
exeというのはCやC#をコンパイルしたものですか?
PyhronやRubyをコンパイルすると拡張子は何になりますか?
2018/03/22(木) 02:58:58.59ID:R5Phquw0
参考にしたい実行ファイルがあるんですがexeはどれもCやC#にデコンパイルできるんでしょうか?
構文の勉強をするにはどうすればいいですか?
2018/03/22(木) 04:12:18.59ID:JQhOGY5j
exeはWindowsの実行ファイル
PythonやRubyはインタプリタが実行することが多いけど、exeにする方法もある

簡単にでコンパイルできるとは限らない
必要に応じて逆アセンブルを読む
2018/03/22(木) 04:47:45.97ID:tdHViWJs
1. 各言語 → 実行ファイル
2. 各言語 ← 実行ファイル

1. のように、各言語をコンパイルして、実行ファイルを作ることはできるが、
2. のように、実行ファイルを逆コンパイルして、
各言語のソースコードに直すことは、無理

特に、他人が作ったものは、年十年も研究しないと無理

1. のように、まず自分でプログラムする事を、勉強した方が速い
2018/03/22(木) 07:06:16.48ID:dIG91/vu
>>419
C#で作られたものならILSpyなどのデコンパイラを使えばかなり高精度でソースを復元できる
でも他人のソース見て勉強したいならGithubでOSSを読むのが一番だと思う
上の人はこの板の名物基地外だから無視するように
2018/03/22(木) 08:16:03.10ID:Cb8k5JAF
ていうかc#って難読化しないとソースが丸々実行ファイルに入ってるよね
2018/03/22(木) 09:00:19.19ID:Yz4YgUU6
>>423
難読化しても丸々入るやろ
2018/03/22(木) 09:04:15.42ID:Cb8k5JAF
>>424
読まれちゃうよね
2018/03/22(木) 14:56:38.14ID:fyCa2g0B
読まれたら困るような技術やマルウェアでも仕込んでんのか?
2018/03/22(木) 15:38:32.20ID:Cb8k5JAF
>>426
僕たちの技術が安売りされておる!
2018/03/22(木) 17:44:35.45ID:s6EbUNWz
>>419
CとC#が同じように見えるレベルででデコンパイルで勉強とか無理
それ以前に言語スレで質問するときは最低限その言語で「Hello World!」実行できるようになってから
2018/03/22(木) 19:07:00.07ID:JQhOGY5j
Cで書いても逆アセンブルすればだいたい読めるじゃん
2018/03/22(木) 19:12:37.50ID:2OJ71Hoj
>>429
それは質問の要件に合う話?
431414
垢版 |
2018/03/22(木) 19:18:29.35ID:+BApurZo
>>415-416
ありがとう。
調べてみます。

>>417
茨の道っぽいかもですね。
まあ先の用例のケースなら <!-- --> でコメントを入れてもいいので、適宜、工数を考えてみます。
でも <!-- --> でコメント入れると、行挿入したときとかに勝手に改行が入ったりするので。。
2018/03/22(木) 19:41:14.86ID:cv696+3f
読み込んだ画像を縦横に連結して新しく出力したい。
横への結合はあるけれど、縦・横並べるにはどうしたらいいんだ



■■■
■■■

こういう風にしたい
2018/03/22(木) 19:45:29.56ID:kZrJsqkn
読み込んだ画像を上下にずらしながら描画すればいいんじゃねーの?
2018/03/22(木) 19:59:53.87ID:52tkzdW9
>>432
C#以前に画像の大きさと座標を考えるだけじゃないの
横に連結できるのに縦横ができない方が意味不明
2018/03/22(木) 20:05:24.46ID:T2vZ1xLC
>>432
どこに出力するのかぐらい書けや
2018/03/22(木) 20:47:55.73ID:ni48WVgw
class TypeA: IType{}
class TypeB: IType{}
IType[] table;

こんな感じの構成で配列にI/Fを格納してステートマシンをやりたいのに、
何をnewして配列を初期化したらいいのか分からない誰かたすけて
2018/03/22(木) 21:04:10.32ID:uk+GlZCh
Listを使うようにしたらいいよ
2018/03/22(木) 21:16:31.83ID:/twRZ4qU
>>436
IType[] table = { new TypeA(), new TypeB() }
とか?
2018/03/22(木) 21:17:50.71ID:ni48WVgw
ごめん
IType tmp = new IType[2];
としたら普通に出来た

インターフェースはnew不可能って嘘言ってる奴は死ねばいいのに
2018/03/22(木) 21:26:09.52ID:06GLHVJW
Interfaceはnew出来ないぞ。
それは配列をnewしてるのであってInterfaceをnewしてるわけでは無いんだよ。
2018/03/22(木) 23:23:13.81ID:R5Phquw0
>>421,428
サイト見ながらハイ&ローゲームを作ったけどめっちゃ難しかった
でもマインクラフトなんかよりずっと面白いな!
お前らみたいに長年プログラムを書いてるとソースコードを見ただけで吐き気がしたり嫌になったりすることもあるの?
今でも楽しく書けてる?もうロボットになっちゃった?
2018/03/23(金) 10:18:12.37ID:dRbnJSq+
ソースなんか見なくても
テストが全くない、仕様書はない、前任者が逃亡
のどれかを聞いたら吐く
2018/03/23(金) 15:25:59.96ID:4mHfCYml
好きなことは趣味だけにとどめておけとは良く言うな
まぁ広い世界を見るのと見ないのじゃ、得るものも考えも違ってくるけど
2018/03/23(金) 18:41:53.25ID:K8shiMoF
起動中の任意のウィンドウをクリックスルーさせるアプリを作りたいんですが開発言語は何がいいでしょうか?
C#で作れますか?
2018/03/23(金) 18:48:37.93ID:KCL7rjza
> クリックスルーとはウェブサイト上の広告をクリックすることによって広告主のコンテンツに移動することであり、
> ウェブサイトの広告効果を測る一つの尺度である。

残念ながら意味不明
2018/03/23(金) 19:16:30.96ID:WXYYX9lz
エスパーすると任意のwindowの後ろの座標クリックしたいんじゃね?
2018/03/23(金) 19:16:54.09ID:K8shiMoF
言い方が悪かったですね
クリックスルーとは手前に表示されているウィンドウではなくその奥にクリックイベントを送ることです
私の作った造語です。
クリックをスルーさせる。なら分かったでしょうか?
2018/03/23(金) 19:19:36.49ID:f2Ovt9hj
windowマネージャー次第じゃね
2018/03/23(金) 19:20:07.85ID:K8shiMoF
>>446
そうです
2018/03/23(金) 19:26:06.63ID:oo1PkjPG
WndProcでマウス関連のメッセージが来たらそれを後ろのウインドウに送れ
2018/03/23(金) 19:41:03.71ID:K8shiMoF
関数も知らない初心者なのでよくわかりませんが、
ありがとうございます
頑張ってみます
2018/03/23(金) 20:04:04.89ID:Wu9wrvWh
C#でWindows7や10の通知を検知する方法ありますか?
2018/03/23(金) 20:07:18.14ID:YkCX9UZt
>>450
これだと自分自身のフォームに対するクリックしか対応できないんじゃね?
>>448で自作する話かと思った
454デフォルトの名無しさん
垢版 |
2018/03/24(土) 02:01:16.50ID:eOg1kWoS
int[] ii = {1,2,3,4,5,6,7,8,9,10};
var i = ii.Where(x=>x>=11).FirstOrDefault();
Console.WriteLine(i);
こんな感じのことをしたいのですが、iに0が入っていたときに0が検索結果なのか?それともデフォルト値の0が返されたのか?を調べる方法ってないのでしょうか?
2018/03/24(土) 02:12:40.29ID:RAJoRlJs
>>454
var i = ii.Where(x=>x>=11).Cast<int?>().FirstOrDefault();
これならデフォルトはnullになる
2018/03/24(土) 02:22:55.04ID:f2IRc2qS
11以上の0てw
457デフォルトの名無しさん
垢版 |
2018/03/24(土) 02:23:26.48ID:eOg1kWoS
>455
ありがとうございます
null許容型にしてしまう技は全然思いつきもしませんでした
2018/03/24(土) 03:52:47.12ID:vYyJGm6o
普通に.Any()みたいのでチェックしたほうがいい気がする
2018/03/24(土) 06:34:16.57ID:kwFJV00Z
普通にanyとFirstでやるほうがいいと思う
null許容型を嫌っている人も多いし
2018/03/24(土) 11:02:27.65ID:nWAEGsYu
forでやればいいと思うけど一行で無理やりやるとしたら

var i = ii.ToList().FindIndex(x => x > 11);

で位置が取れる
見つからなかったら-1が帰る

値はii[i]

※これはLINQじゃない
2018/03/24(土) 11:07:47.22ID:nWAEGsYu
見直したら

var i = Array.FindIndex(ii, x => x > 11);

でも行けた
失礼
2018/03/24(土) 11:54:28.18ID:I8UGP+gf
そういうラムダ式ってぶん回してるとGCガリガリしそうな気がする俺は素直にforで判定してる
2018/03/24(土) 12:07:26.69ID:Y8GXLzWd
GC大量発生しているじゃないか!とGen0と1の数字で大騒ぎしているお客さんみたいなこと言わないでよ
2018/03/24(土) 12:20:02.80ID:qA6u9GtS
俺はRustで書く
2018/03/24(土) 12:36:49.22ID:I8UGP+gf
>>463
VRが90fpsなんて無茶を求めて来なきゃ俺だってLINQとか使いたいよ
2018/03/24(土) 12:42:55.44ID:9NxgdLlD
Listの実装にもよるけどvector的ならインスタンス1つ増えるだけでしかも速やかに回収される
GCからみたらただの良い子だね
2018/03/24(土) 13:07:03.68ID:7/CvCtkV
要件違うんだから争いはしないでよね
2018/03/24(土) 13:12:57.55ID:l0JTVUuX
>>465
お前の自己紹介スレじゃないんで
2018/03/24(土) 14:15:34.65ID:gWAI6lWw
いくらLINQでも探索でGCガリガリなんてするわけないじゃん
470デフォルトの名無しさん
垢版 |
2018/03/24(土) 14:17:13.44ID:iw5iXVod
パフォーマンス追求するときは使わなきゃいいだけじゃん
何回目だよ
2018/03/24(土) 14:22:26.64ID:qA6u9GtS
何度でも言うよ
2018/03/24(土) 14:37:03.09ID:8uBzLhlU
>>470
だったら使うの止めてよ
パフォーマンスが要求されるところで使えないんでしょ
普通に組めばいい話じゃん
2018/03/24(土) 15:03:34.89ID:kwFJV00Z
コンパイラーによって最適化された結果リンクの方がパフォーマンスがいいときもある
勝手に使えないと決めつけるんじゃなくてちゃんと調べた方がいいよ
2018/03/24(土) 15:10:01.14ID:FeWoBRlr
>>473
その調査で生じる賃金はどこのどなたが払って下さるんですか?
2018/03/24(土) 15:13:32.64ID:o+lnSplR
今回はLINQ関係ないだろ
Listのメソッド使ったんだから

ラムダが嫌ならPredicateのdelegate渡せばいい
2018/03/24(土) 15:52:30.11ID:kwFJV00Z
リンクだろうとラムダ式だろうとパフォーマンスは実際にやってみないとわからないってのが言いたかった
こんな所でボトルネックなんてでないから好きに書けばいいと思うけど
477デフォルトの名無しさん
垢版 |
2018/03/24(土) 16:25:40.93ID:iw5iXVod
>>472
簡単だし楽だから使うよ
おまえは全部C++でやっとけよ
2018/03/24(土) 16:32:05.01ID:7/CvCtkV
どのくらいのパフォーマンスが必要なのかも分からないのにパフォーマンス必要だから止めろって奴何なの?
2018/03/24(土) 16:42:29.03ID:vRs+3qfJ
>>478
でも遅いことは確定なんだよね?
2018/03/24(土) 16:44:31.30ID:o+lnSplR
くだらないことで揉めるんじゃない
ただanyからのfirstは無駄だとは思う
2018/03/24(土) 16:55:19.70ID:dHFi9bQj
またはじまった
2018/03/24(土) 17:05:10.25ID:1VnhiIny
無駄というか作法的にイマイチ
IEnumerableは列挙するたびに結果が変わったり一度しか使えなかったりする実装もあり得るから、
終端操作を二度やるのは一般には良くないね
2018/03/24(土) 17:08:19.43ID:7/CvCtkV
>>479
何に対して何が遅いと言っている?

あと許容出来る遅さと許容出来ない遅さは区別することを前提でお願いね。
2018/03/24(土) 17:12:04.07ID:uMtlf+0x
質問でも回答でもないのなら他でやれ
2018/03/24(土) 17:32:20.25ID:vYyJGm6o
>>480
>ただanyからのfirstは無駄だとは思う

なんでそう思うの?
2018/03/24(土) 17:35:46.41ID:+6yqXiQK
>>485
本来同時に得られるはずの情報をわざわざ二度の処理で求めているからだろ
処理効率は別にしても、マルチスレッドとか考慮するとバグの元になる可能性もある
2018/03/24(土) 17:36:08.58ID:kwFJV00Z
anyで条件付きのループした後にfirstで同じことをするより、2回目は直接該当データを参照する方が早そうって感覚
2018/03/24(土) 17:42:42.62ID:1VnhiIny
列挙元の内容が変更されないことが保証されているのは列挙子が有効な間だけ(変更されたら列挙子が無効になる)
Anyの直後のFirstは新しい列挙子を使用して列挙をやり直すので、
前回から列挙元の内容が変更されていない保証は一般には無い
2018/03/24(土) 17:46:38.61ID:Yt7o4U/B
>>488
正しいよ
でもお呼びじゃないんだカス
静かにしててくれる?
2018/03/24(土) 18:01:34.62ID:kwFJV00Z
>>488
anyは存在確認でfirstはデータ取得が目的だから順序が変わっても問題なし
むしろfindindexからインデクサでデータ取得する時の方が大事になってくるかな
だから、>>461はいいけど、>>460は少し危ない気がする
2018/03/24(土) 18:04:19.15ID:0F1bgfLW
いや正しくないってw
別のスレッドでコレクションが変更される可能性があるならそもそもLINQは使えない。

LINQのメソッドが返す列挙子はオリジナルのコレクションのコンポジションに過ぎないことを
忘れちゃダメよ
2018/03/24(土) 18:06:03.71ID:0F1bgfLW
>>490
問題あるとかないとか以前に、同じコレクションを2回スキャンするのは
無駄だなと思うことはプログラマの最低要件だと思う
2018/03/24(土) 18:13:37.30ID:kwFJV00Z
>>492
別にそこは否定してないんだけど
また、リストや配列のメソッドはスレッドセーフじゃなかったと思うからanyがとか以前にロックしなきゃ駄目かな
それはまた別の話だから別に触れないけど
2018/03/24(土) 18:14:09.89ID:9NxgdLlD
こんな場合には使えないんだ!←わかる
だから絶対にどんな場合にも使うな!←キチガイ
2018/03/24(土) 18:16:14.46ID:vYyJGm6o
>>486
うーん、考え方としては理解できるんだけど、
現実問題としてintみたいにdefault値に0を返す型の場合で
whereでフィルタした結果に要素があるかないかで処理を分けたいときにどうしてるの?

>>455みたくnull許容型にキャストするのは一案だけど読みやすさは低くなるよね
2018/03/24(土) 18:41:22.21ID:RopZoVkn
>>495
場合によっては Enumerable.DefaultIfEmpty 使うものあり
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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