ふらっと 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/19(火) 20:10:42.40ID:kAXRFxrM0
>>214
https://dobon.net/vb/dotnet/index.html
http://www.atmarkit.co.jp/fdotnet/csharp_abc/index/
http://ufcpp.net/
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/
ここで勉強するというかやりたいことを「C#」に続けてググるとだいたいこのあたりがヒットする
2018/06/19(火) 20:12:26.56ID:ygjnsczhM
>>213
そこで、トゥルースリーパーとパチもんハズキルーペ買った。
パチもんの方はメガネにLEDライトが付いてたからつい。薄暗いとこであれはめちゃ便利(稀にしか使わないけど…orz)。(100金の老眼鏡でいいと思う。しょせん凸レンズの一種だから。)
トゥルースリーパーは半年くらいたってまだ箱の中orz
2018/06/19(火) 21:01:02.40ID:RAxnAMrUr
c#のコーティング方法で検索すること多いけど、なぜかLINQで解説しているサイトがほとんどない
日本語サイトも海外サイトも

なんで?
2018/06/19(火) 21:02:44.86ID:LBhs/jk2M
>>217
実践的なアプリ開発で使われる機能だから、コピペTips系サイトのサンプルコードで必要になることはほとんど無い
219デフォルトの名無しさん (ワッチョイ 2e81-7EFb)
垢版 |
2018/06/19(火) 21:53:01.39ID:EPHYIqEL0
素人に使われると価値が下がるからね
素人は年収300万で死ぬまでくだらないコードを書いていればいいんだよ
2018/06/19(火) 22:04:52.94ID:kI3CAS1L0
>>217
ほとんどないわけねーよwww
2018/06/19(火) 22:16:45.72ID:EE12WGu0M
>>217
LINQは手段であって目的じゃないからじゃないかなああああ
222デフォルトの名無しさん (ワッチョイ 428a-5g47)
垢版 |
2018/06/20(水) 09:42:33.52ID:+y79X+880
FileSystemWatcherのChangedイベントの発生条件は、監視しているディレクトリ内のファイルまたはディレクトリのサイズ、システム属性、最後の書き込み時刻、最後のアクセス時刻、またはセキュリティ アクセス許可の変更のようですが、
このうちのどれが変更されたか種痘するにはどうすればよいでしょうか?
2018/06/20(水) 11:51:07.40ID:ZYBHUW1Qr
>>218
そういうもんなの?

>>220
スタックオーバーでたまに外人さんがLINQで答えてるのあるくらい
割合的に3%くらいな印象

みんな使わないんだね

>>221
手段でも目的でもどっちでもいいの
2018/06/20(水) 12:05:31.86ID:7vWN9rvKa
>>222
使ったことないけど、イベントハンドラで受け取れる引数(FileSystemEventArgs)
で普通に分かるんじゃなくって?
https://msdn.microsoft.com/ja-jp/library/system.io.filesystemeventargs.aspx
2018/06/20(水) 12:06:45.48ID:5eL+NvGEa
>>222
あらかじめ情報をどこかに持っておいて比較するしかないかな

>>224
変ったという情報しかくれない
2018/06/20(水) 12:14:29.61ID:7vWN9rvKa
>>225
いやいや、ちゃんと提示したリンクよく先見ました?
2018/06/20(水) 12:16:40.94ID:7vWN9rvKa
>>225
あー失礼。
よく見ると結局詳細な情報は得られないみたいね
2018/06/20(水) 12:22:49.35ID:7vWN9rvKa
ちょっとググって見た感じ、結構面倒だけど、
知りたい変更の数だけ適切にNotifyFilterプロパティを設定したFileSystemWatcherを作れば
一応可能な感じはするね
2018/06/20(水) 12:29:31.18ID:4Nq0pqOcd
>>223
みんな使ってるよ
230デフォルトの名無しさん (ブーイモ MM62-P/8h)
垢版 |
2018/06/20(水) 22:31:23.62ID:hTxlP2+IM
ググり方を知らない典型
2018/06/21(木) 21:35:06.03ID:hmU1hN6P0
エクセルbook1を開かずにsheet2の2列目に入ってる項目をコンボボックスに入れたいのですが、どうやるんですか?
2018/06/21(木) 21:41:20.00ID:vdaQuC2wp
中身を見ずに言い当てる手品のやり方なんか知らねーよ。
2018/06/21(木) 21:43:13.77ID:pTjgD9kkM
地獄に落ちろ
2018/06/21(木) 21:51:22.49ID:lTKRVfWU0
Excel.exe使わずにって意味ならいくらでもあるだろ
2018/06/21(木) 22:32:53.55ID:7/J4zdhU0
御託はいいから答えろゴミクズ
236デフォルトの名無しさん (ワッチョイ 9fe3-Yk5b)
垢版 |
2018/06/21(木) 23:11:39.87ID:HAta7DXc0
xlsxならclosedxmlつかえば
2018/06/22(金) 00:26:01.32ID:/gqu33js0
ファイル開かずにならもちろん無理。
見えないだけなら可視しなければいいだけやん。
2018/06/22(金) 00:49:53.36ID:OqpGVa7ea
日本人のエクセルスキーは異常
海外にも神エクセルってあるんだろうか
2018/06/22(金) 01:45:41.77ID:fZhhlNhQ0
>>231
コンボボックスとは?
2018/06/22(金) 03:12:37.07ID:XVd2TvDg0
どんなものを作ればいいのかわからない
何をつくればいいんだ
教えてお前↓
2018/06/22(金) 03:21:00.63ID:6eBOmsiI0
JavaMachine
2018/06/22(金) 06:50:27.01ID:PzKWFNpyd
会社が未だにxpが数台あって、数多くあるエクセルを開いて処理して閉じる開いて処理して閉じるってやると重いけどなんか早くなる方法ってある?
database?SQL?
VB6でそうやってエクセルファイルを扱って処理してるんだけど
2018/06/22(金) 06:57:20.38ID:6eBOmsiI0
5万円のPCを買ってくる
2018/06/22(金) 07:07:33.30ID:Fs6DCFa0a
>>238
外人はそもそも罫線をあまり使わない
方眼紙に文字を詰め込むのは日本猿特有の習性
2018/06/22(金) 07:09:51.33ID:6eBOmsiI0
私は猿なのでVSの枠がはっきりしないフラットデザインが馴染めません。
2018/06/22(金) 07:20:32.82ID:Y47lTZ4XM
日本猿も江戸時代はプレーンテキストだったのに、どこで間違えたんだろうな
2018/06/22(金) 09:37:09.99ID:bJJwlRlwM
>>231
開かないとわかりません
2018/06/22(金) 09:59:49.98ID:atRhX3PgM
>>245
同意
各項目の意味付けが曖昧になってすごく見づらい。退化と言いたいくらい。
そのうち立体的にするとわかりやすいやろって波が来ると思う。
2018/06/22(金) 10:09:55.10ID:lIRytxFLM
そもそも細々としたアイコンやメニューを大量に配置するのに適したUIではないわ
Azureコンソールとか見てても思うけど、マイクロソフトにUXデザイナーがいないってのは恐らく本当
2018/06/22(金) 10:13:34.27ID:etP9oQEYM
VSCodeのUIは使いやすいけどな
本家VSもボタン全部無くしてコマンドにするべきだわ
2018/06/22(金) 10:18:33.53ID:KB00qr+FM
web service(asmx)について教えてください。
利用する複数のアプリで使い回したいものをstatic変数に保持したいのですが、寿命が尽きるタイミングは分からないでしょうか?
具体的にはデータベースのconnectionでして、セッションをケチるために1つだけを使い回そうと考えています。寿命が尽きる時にdisposeしたいのですが、できない場合問題でしょうか?
2018/06/22(金) 10:26:12.51ID:xMgX8Fdkr
C#の設計思想とか、どういう設計でコード書いたらいいかみたいなのがわかりやすい書籍ってある?
2018/06/22(金) 10:51:01.98ID:32SF4tM80
>>244
値を縦に並べて合計との間に一本横線引いてあるだけとか、海外の資料じゃ良くあるよね

>>245
馴染めないという程じゃないけど、もうちょっと境界をはっきりして欲しいな
Windowsのデザインからしても最近のMSのトレンドなんだろうけど
2018/06/22(金) 12:00:58.68ID:fAckkxP+p
>>252
c#実践開発手法がいいと思う
設計する上で重要な思想が学べるはず
2018/06/22(金) 12:11:16.45ID:mIOgjjA8a
フラットデザインは最近はやりのユニバーサルデザインとは真逆
2018/06/22(金) 12:11:51.14ID:U+1NZIRBr
>>254
よさげ
とりあえずKindle版ぽちった。
ありがとう!
2018/06/22(金) 12:19:03.29ID:D0ZAUiXgM
第2版が出てたんだな
ステマか
2018/06/22(金) 14:40:02.21ID:+QjyPCKBM
ダイレクトやろ
2018/06/22(金) 17:59:11.25ID:32SF4tM80
むしろサードパーティマーケティング
2018/06/22(金) 18:01:56.90ID:v3P4scZFM
今年独り社内SEとして入社しC#を選んだ者ですが、コンストラクタをオーバーロードして引数が有るものと無いものを作りました

よくよく考えると引数が無いコンストラクタのインスタンスを作って引数有りを前提にしたメソッドをコールすると最悪例外を出してしまうのですが、これは設計不良として検討し直しでしょうか?よくある事として許容されるでしょうか?
2018/06/22(金) 18:07:20.69ID:j0bZxxMK0
>>260
>引数が無いコンストラクタのインスタンスを作って(コンストラクタの)引数有りを前提にしたメソッド
人に聞くまでもなく作り直さないとだめだろう
2018/06/22(金) 18:21:23.38ID:v3P4scZFM
やっぱり設計の問題ですよね
フィールドに初期値入れれば例外は起きないと思いますが、引数必須のインスタンスを作られたら無意味なメソッドが完成するというのは設計者失格ですよね
2018/06/22(金) 18:35:58.53ID:j0bZxxMK0
>無意味なメソッドが完成する
メソッド書き直すとかないんだ・・・
普通は条件が違えば呼ばれないようにするとかメソッド内部で分岐させるとかいろいろあると思うんだが
2018/06/22(金) 19:36:18.31ID:fkpP2SFC0
>>251
>寿命が尽きるタイミングは分からないでしょうか
基本的には分からない
つかキャッシュ使え
そもそもDBコネクションならほとんどの場合でドライバ側でプーリングされてると思うが
2018/06/22(金) 19:43:22.50ID:RGVBxohIa
>>260
設計不良は大げさ過ぎw
普通に考えて

(1) 引数ありのメソッドは廃止。代わりにそのデータはプロパティでセットできるようにする。

(2) 引数なしのコンストラクタが呼ばれた時はプロパティの値は規定値が設定されるようにする

こんだけでしょう
2018/06/22(金) 19:58:18.66ID:KB00qr+FM
>>264
データベース管理者から、なるべく接続を増やすなと言われてます。複数のPCから複数のアプリでアクセスするので、窓口を一本化するイメージです。
なのでプーリングはアプリ分の接続が残るので逆効果。
キャッシュを使うとは具体的にはどうするのですか?ググるヒントをもう少しください。
2018/06/22(金) 20:38:24.35ID:fkpP2SFC0
>>266
>複数のPCから複数のアプリでアクセスするので
それサーバ側の話?
アクセスって何に?DBにアクセスするのは誰?

つか、そもそもそれWEBサービスに同時アクセスあったときにどうする気?
2018/06/22(金) 20:58:02.81ID:atRhX3PgM
>>260
使う側からすると、引数に渡す値ね〜よのときは、引数なしのほうがいいな。
(なしのときは null渡すとかにしたくないな。私見)
2018/06/22(金) 22:05:33.33ID:rFBnrjcr0
>>266
接続ユーザー分排他でもするのかよw
2018/06/22(金) 23:04:03.86ID:TC2xExz/0
4msのインターバルタイマを実現するのにおすすめの方法を教えてください
2018/06/22(金) 23:08:50.34ID:6eBOmsiI0
リアルタイムOSをインストールする
2018/06/23(土) 00:01:03.09ID:9nwowUkH0
USBシリアル付きマイコンから適当にパルスを送ってもらう
数百円ぐらい
2018/06/23(土) 00:04:23.96ID:4A65QZOx0
>>267
クライアントPCからデータベースに接続します。webサービスで排他処理します。
サーバーの負担を増やしたくないとの事で、とにかく同時期にセッションを増やさないという方針は決定してます。
なので排他処理はどこかでやる事になるのですが、どこかのPCで動くアプリよりやり取りも含めて楽かなと思ったのですが。
2018/06/23(土) 00:07:55.71ID:OXSP1qkx0
>>271
CreateWaitableTimerなるものを見つけました
試してみます

>>272
URLはよ!はよ!
2018/06/23(土) 00:27:06.35ID:YVqCYnTIa
>>273
データアクセスのためのAPI作れば
2018/06/23(土) 01:52:54.43ID:OXSP1qkx0
>>272
Arduino Nano互換 でいいのね?
よーし、パパがんばっちゃうぞー
2018/06/23(土) 02:29:38.11ID:RCtrcOsy0
>>273
>クライアントPCからデータベースに接続します。webサービスで排他処理します。
webサービスは何をもらって何を返す気なんだ
なんにしても俺には想像もつかない方式を検討してそうだ
2018/06/23(土) 06:55:53.26ID:DOoRmJ6HM
>>273
webサービスの中で普通にコネクションを開いて使い終わったらすぐにDisposeすればいいよ
ライブラリがいい感じにコネクション数を調整してくれる

どうしてもマニュアルでコネクションの数を制御したいならDB要求をループで処理し続けるスレッドを走らせて、他のスレッドとはキューで連携させる
2018/06/23(土) 07:53:25.35ID:5eZj9LlZM
web側でmax connection pool sizeを設定するだけの話に見えるが
そういう設定が無いからどうしたらいいかって話なの?
280デフォルトの名無しさん (ワッチョイ 1f75-E6HK)
垢版 |
2018/06/23(土) 09:10:53.59ID:kilEB0fc0
tes
281デフォルトの名無しさん (ワッチョイ 1f75-E6HK)
垢版 |
2018/06/23(土) 11:25:15.28ID:kilEB0fc0
test
282デフォルトの名無しさん (ワッチョイ 1f75-E6HK)
垢版 |
2018/06/23(土) 11:28:34.91ID:kilEB0fc0
fwくぇ
283デフォルトの名無しさん (ワッチョイ 1f75-E6HK)
垢版 |
2018/06/23(土) 11:42:17.32ID:kilEB0fc0
fwq
284デフォルトの名無しさん (ワッチョイ 1f75-E6HK)
垢版 |
2018/06/23(土) 11:44:04.15ID:kilEB0fc0
fwqef
2018/06/23(土) 12:01:17.59ID:AshQdjwf0
よそでやれ
2018/06/23(土) 12:23:56.69ID:RL7TWjJda
>>262
引数なしのコンストラクタをprivateに
2018/06/23(土) 17:51:20.90ID:RCtrcOsy0
>>286
それだと(外部から)引数必須なインスタンスしか作れなくなる
それが設計通りならそれでいいけど

引数必須なインスタンスと引数なしのインスタンスが同一クラスである必要あるのか疑問だ
引数なしのクラスを継承して引数ありのクラス作れば良い気がするぞ
2018/06/23(土) 18:04:38.51ID:61tHQZae0
引数一個で騒々しいソースコードですね
2018/06/23(土) 22:33:46.94ID:RCtrcOsy0
動けば良いってなら好きにすればいいさ
設計論として考えるとどうしても大仰になるのはしかたない
2018/06/23(土) 22:44:50.08ID:AshQdjwf0
クレデンシャルを持ってる場合だけ一部の関数が使えるとか
別に珍しい設計じゃないと思うけどね
2018/06/24(日) 00:05:43.76ID:LwX9ZOYW0
>>289
動けばいいことの他に何を気にしてるの?
実行速度?
2018/06/24(日) 00:10:47.78ID:tHXuj/n7a
ああ、なんか質問を読み違えてたけど、
要は現実の使われ方として、特定のプロパティがまったく必要とされないケースがあるってことね。

単純に考えると>>287がシンプルで分かりやすいように思うけど
ケースバイケースではあるが、一つのプロパティを追加しただけのサブクラスってのも
存在意義がはっきりしないというか、名前付けに困るようなクラスになりがちのようにも思う

コンストラクタで明示的に指定されない場合はプロパティの値が規定値としておくのが
無難なケースの方が多いと思うけどね
2018/06/24(日) 01:25:17.80ID:GW8ybopf0
>>291
設計論だっていってるんだから、設計の美しさだよ
美しさの基準は人によって違うからほとんど宗教論なんだがなw

>>291
>コンストラクタで明示的に指定されない場合はプロパティの値が規定値
コンストラクタで指定するものが、プロパティで指定できるようなものなら確かにそれが一番無難
ただそれなら引数つきコンストラクタの存在意義がなぁ
たんにコードが短くなるぐらいだが、オブジェクト初期化子でプロパティ設定するのと大差ない気がするし
2018/06/24(日) 23:01:38.61ID:euoTg7OM0
webBrowser1.documentText=hoge;
で生成したHTML中にページ内リンクがあります。
(<span id="xxx"></span>)
クリック操作をせずにこのアンカーにジャンプすることはできるのでしょうか?
2018/06/24(日) 23:35:19.41ID:+Dnac0xs0
webBrowser1.Document.GetElementById("xxx").InvokeMember("Click");
2018/06/24(日) 23:43:26.59ID:euoTg7OM0
エラーは出ないのですが、ジャンプはしてくれませんでした。
単なるアンカーなので、直接それをクリックしても意味はなくて、
<a href="#xxx">XXX</a>をクリックするようにしないとジャンプしないのではないでしょうか?
(なお、ページ内に↑を用意していないので、これをクリックすることはできません)
2018/06/25(月) 10:34:01.89ID:CeO6DCCqM
GetElementById(...).ScrollIntoView(...)
2018/06/25(月) 11:16:30.33ID:sIr2ygWz0
>>297
いけました!
ありがとうございます!
2018/06/25(月) 16:58:03.78ID:L8J9ADJ70
ListVIewでクリックされたアイテムのインデックスを取得するにはどうしたらいいでしょうか?
例えば、以下の画像だと、"ListSubItem 3"がクリックされた時に、1,2 (1は列,2は行)といった値を取得したいです。
http://www.planetsourcecode.com/Upload_PSC/ScreenShots/PIC20042291953273057.jpg
2018/06/25(月) 17:57:14.07ID:TcWThoAPM
引数有り無しのコンストラクタで相談した者ですが色々とご意見ありがとうございます
先輩無しの独り開発なので参考になります

何が正しいかはプロジェクトの性質に左右されそうなので突き詰めませんが、驚き最小の法則的に見ると、無意味なメソッドをコール出来るとかどんな気持ちでしょうか?

私は後々混乱しそうなので避けたいのですが、さほど驚かれないならこのまま実装しようかとも
2018/06/25(月) 21:33:53.83ID:1sQ+cvRC0
>>299 HitTest
302デフォルトの名無しさん (ワッチョイ ff7f-E6HK)
垢版 |
2018/06/25(月) 21:56:47.71ID:lw6peYFv0
暇つぶしにunityでプチゲームを作ろうとしているのですが
以下のような処理をしています。
https://dotnetfiddle.net/p6v66Z
スキルが増えるごとにSkillFactoryとTypeToParameterに分岐が増えていってしまって
なんだかなあという感じなのですが、もうちょっとマシな方法はないでしょうか。
SkillParamが諸悪の根源のような気もしていますがほかにうまい方法がおもいつかず。。
303デフォルトの名無しさん (スプッッ Sd7f-E6HK)
垢版 |
2018/06/25(月) 22:01:12.17ID:XS6tlG59d
githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか?
2018/06/25(月) 22:10:35.49ID:XRDiWZAB0
ワークシート1のb2から空になる最終行までフォーム1のコンボボックスに入れにはどうしたらいいですか?
2018/06/25(月) 22:15:12.37ID:Bspx7Xiu0
>>303
VisualStudioで作成したファイルって具体的には何のこと?
306デフォルトの名無しさん (ワッチョイ ffe8-GwbS)
垢版 |
2018/06/25(月) 22:30:53.83ID:QLHuH/320
ListでKey値が一致する要素を探して
内容を更新するにはどうすればいいの
ループで検索するしかない?
2018/06/25(月) 22:41:13.84ID:DXP13toJ0
>>306
DictionaryならともかくListでKey値って何よ
308デフォルトの名無しさん (ワッチョイ ffe8-GwbS)
垢版 |
2018/06/25(月) 22:49:08.14ID:QLHuH/320
>>307
2次元にしてキー項目を自分で作ったのよIndex用に
2018/06/25(月) 23:11:47.70ID:cq0DHw7f0
KeyedCollectionクラス
2018/06/26(火) 09:16:48.94ID:UPxy/vlK0
なぜDictionaryにしなかったのか
2018/06/26(火) 09:21:11.66ID:A+/Pd/Nq0
君は何故全力を尽くしても駄目なのか
312デフォルトの名無しさん (ワッチョイ ff76-XQuB)
垢版 |
2018/06/26(火) 09:58:06.77ID:1CiOys6I0
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型は基本のようなので、根本的な所を理解していないのかも知れませんが
よろしくお願いします。
2018/06/26(火) 10:22:41.47ID:d46l513VM
>>312
Hogeのobjはbを知らないから……かな?
2018/06/26(火) 12:16:48.98ID:U/nLOHiUM
>>312
objectをdynamicに変えるといいよ
2018/06/26(火) 12:22:10.81ID:yFHnMB/La
>>312
つdynamic
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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