!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part156
https://mevius.5ch.net/test/read.cgi/tech/1663479569/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part157
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f201-IwB9)
2022/11/25(金) 13:16:08.91ID:HZEumDr50297デフォルトの名無しさん
2023/01/15(日) 13:38:07.36ID:GqZOBUMQ0 ByteArrayContentの件ですが、ほかのヘッダーと同様にHttpRequestMessage.Headers プロパティでContent-Typeを設定していましたが、これではContent-Typeだけリクエスト文に現れませんでした。
しかし、ByteArrayContentのHttpContentHeaders.ContentType プロパティに設定することで無事、目的のContent-Typeが送信されるようになりました。
ご協力ありがとうございました。
しかし、ByteArrayContentのHttpContentHeaders.ContentType プロパティに設定することで無事、目的のContent-Typeが送信されるようになりました。
ご協力ありがとうございました。
298デフォルトの名無しさん (オイコラミネオ MMe5-7DGa)
2023/01/15(日) 17:02:40.66ID:pBiKKGenM おもしろhttpclient代替ライブラリの出番はなかったと
残念
残念
299デフォルトの名無しさん (ブーイモ MMde-fQuj)
2023/01/15(日) 17:03:22.46ID:i8CV0envM >>296
>リポジトリのインターフェースがきちんと定義されてて
データベースなどの入れ替えに対応させるためですね。
>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装
これはいまいちピンとこないです。
どういう問題を持っているのですか。
>リポジトリのインターフェースがきちんと定義されてて
データベースなどの入れ替えに対応させるためですね。
>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装
これはいまいちピンとこないです。
どういう問題を持っているのですか。
300デフォルトの名無しさん (オイコラミネオ MMe5-7DGa)
2023/01/15(日) 17:27:16.78ID:pBiKKGenM 動かない時点で問題だろ
依存を切ってるはずなのに
依存を切ってるはずなのに
301デフォルトの名無しさん (ブーイモ MMde-fQuj)
2023/01/15(日) 18:01:55.48ID:i8CV0envM >>299について、>>300さんへ
言い方がまずかったです。
>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装
これがどういう実装になってるのかなと。
リポジトリから返される型とは、モデルクラスでしょう。エンティティのことだと思います。
この型の名前を変えるとは、モデルクラスの名を変えるということですかね。
単純にかんがえると、コンパイル段階でエラーになると思います。
SQL文も動かなくなるとは、リポジトリがエンティティを受け入れる段階をいうのかな。
でも、リポジトリの永続化メソッドの引数の型と、エンティティの型が合わないという話なら、やはりコンパイルでエラーになる。
こういう話ではないのかな?
言い方がまずかったです。
>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装
これがどういう実装になってるのかなと。
リポジトリから返される型とは、モデルクラスでしょう。エンティティのことだと思います。
この型の名前を変えるとは、モデルクラスの名を変えるということですかね。
単純にかんがえると、コンパイル段階でエラーになると思います。
SQL文も動かなくなるとは、リポジトリがエンティティを受け入れる段階をいうのかな。
でも、リポジトリの永続化メソッドの引数の型と、エンティティの型が合わないという話なら、やはりコンパイルでエラーになる。
こういう話ではないのかな?
302デフォルトの名無しさん (ブーイモ MMde-laSj)
2023/01/15(日) 18:44:05.72ID:Tpvfm3sDM >>299
ここにEF使ったリポジトリとSqlCommandやDataReaderを使ったリポジトリの両方を実装してるサンプルであるから見てみるといい
https://www.shoeisha.co.jp/book/download/9784798150727/detail
>>270が動かなくなる実装の一例
ここにEF使ったリポジトリとSqlCommandやDataReaderを使ったリポジトリの両方を実装してるサンプルであるから見てみるといい
https://www.shoeisha.co.jp/book/download/9784798150727/detail
>>270が動かなくなる実装の一例
303デフォルトの名無しさん (オイコラミネオ MMe5-7DGa)
2023/01/15(日) 19:07:02.30ID:pBiKKGenM >>301
なんで段落じゃなくて毎回改行してんの?
なんで段落じゃなくて毎回改行してんの?
304デフォルトの名無しさん (オッペケ Sr6d-2lig)
2023/01/15(日) 19:07:55.22ID:IyrCQBsgr >>270が動かなくなるって具体的にどういうこと?
カラムnを実際のテーブルの列名と違う名前にしようとしたとかそういうこと?
カラムnを実際のテーブルの列名と違う名前にしようとしたとかそういうこと?
305デフォルトの名無しさん (ワッチョイ 1579-UUjv)
2023/01/15(日) 20:23:54.22ID:k2EAOSQD0 正直、不必要なレベルの過剰な依存性の排除だと思うけどな
もしやるならDBを使わない選択が必要な程の
もしやるならDBを使わない選択が必要な程の
306デフォルトの名無しさん (アウグロ MM72-iekx)
2023/01/16(月) 07:18:54.98ID:3crLqciiM >>276
うーん?
どこかでやらなきゃいけないのを
先延ばしにしただけのような?
俺はその構造になんの意味も感じなかった
なぜなら絶対にどこかで指定する必要があってその場所が変わるだけだから
間に一つ挟んだら取り決めが増えるだけで何も変わらんよ
うーん?
どこかでやらなきゃいけないのを
先延ばしにしただけのような?
俺はその構造になんの意味も感じなかった
なぜなら絶対にどこかで指定する必要があってその場所が変わるだけだから
間に一つ挟んだら取り決めが増えるだけで何も変わらんよ
307デフォルトの名無しさん (スッップ Sdea-029W)
2023/01/16(月) 09:06:23.76ID:15MDnu2bd308デフォルトの名無しさん (ワッチョイ ad6e-sRsu)
2023/01/17(火) 03:21:23.70ID:Pa/g9qeO0 ASP.NETの勉強を始めました。具体的にはASP.NET MVC5 実践プログラミングって本を使っています。
その中でentity frameworkを使ってdbcontextをうにゃうにゃしてデバッグ実行時にデータベースが制作されるようにしてページに表示して…みたいなことをやりました。
それでmdfファイルってのが出来あがってたのですがそれについて質問です。
これが出来上がったデータベースであって、sqlserverがデータを保存する形式ってのは分かりました。
これつまりC#(entity framework?)サイドからするとsqlserverは別に起動してなくてもデータベース本体だけあれば読み込めるということなんでしょうか。
それとも起動時に勝手に裏でsqlserverが立ち上がってたりするのでしょうか。
一応本の流れにそってSQL Express LocalDB edition 11.0なるものはインストールしています。
すいませんこれまでの開発でmanagement studio経由でいじるとかそれくらいしか経験無いんでよく分かってないです。
厳密にはC#の質問じゃないと思うんですけどよろしくお願いします。
その中でentity frameworkを使ってdbcontextをうにゃうにゃしてデバッグ実行時にデータベースが制作されるようにしてページに表示して…みたいなことをやりました。
それでmdfファイルってのが出来あがってたのですがそれについて質問です。
これが出来上がったデータベースであって、sqlserverがデータを保存する形式ってのは分かりました。
これつまりC#(entity framework?)サイドからするとsqlserverは別に起動してなくてもデータベース本体だけあれば読み込めるということなんでしょうか。
それとも起動時に勝手に裏でsqlserverが立ち上がってたりするのでしょうか。
一応本の流れにそってSQL Express LocalDB edition 11.0なるものはインストールしています。
すいませんこれまでの開発でmanagement studio経由でいじるとかそれくらいしか経験無いんでよく分かってないです。
厳密にはC#の質問じゃないと思うんですけどよろしくお願いします。
309デフォルトの名無しさん (ワッチョイ ca01-FIs7)
2023/01/17(火) 03:46:50.51ID:g2NvLQQ30 >>308
すでに立ち上がってるSQLServerと通信する形となります
SQLServerが動いてなかったらもちろん意味を成しません
アプリから処理を呼び出し→SQLServerに接続→SQLServerがmdfファイルを編集
という感じだと思います
すでに立ち上がってるSQLServerと通信する形となります
SQLServerが動いてなかったらもちろん意味を成しません
アプリから処理を呼び出し→SQLServerに接続→SQLServerがmdfファイルを編集
という感じだと思います
310デフォルトの名無しさん (ワッチョイ ca01-FIs7)
2023/01/17(火) 03:48:48.44ID:g2NvLQQ30 SQLServerは起動しっぱなしですね
応答により電源がついたり消えたりするという形ではないです
応答により電源がついたり消えたりするという形ではないです
311デフォルトの名無しさん (アウグロ MM21-iekx)
2023/01/17(火) 07:20:20.73ID:s3m6BVtYM LANケーブル抜けたら?
312デフォルトの名無しさん (ラクッペペ MMde-+m4i)
2023/01/17(火) 09:30:13.79ID:mymdZu3lM >>311
差し直しましょう
差し直しましょう
313デフォルトの名無しさん (ワッチョイ 4149-kID6)
2023/01/17(火) 09:37:04.80ID:FlIYwx2Q0 神に祈れば掃除のおばちゃんがエアコンを切らない
314デフォルトの名無しさん (ワッチョイ ad6e-sRsu)
2023/01/17(火) 21:28:25.23ID:Pa/g9qeO0 >>309
ありがとうございました。sqlserverちゃんと起動してるかとか確認しないとだめですね
ありがとうございました。sqlserverちゃんと起動してるかとか確認しないとだめですね
315デフォルトの名無しさん (ワッチョイ a501-O1Xn)
2023/01/18(水) 00:09:04.38ID:hk0QW4ON0 あの紫の本かな 現状MVCのテキストってあれくらいしかないよね
ちょこっと読んで放置してたけど読み直すか
ちょこっと読んで放置してたけど読み直すか
316デフォルトの名無しさん (ワッチョイ 292f-EsBK)
2023/01/18(水) 00:28:03.93ID:3sYvYO2/0 >>314
CompactとかLocalDBとかは常にインスタンスが上がってるような形じゃないけどな
CompactとかLocalDBとかは常にインスタンスが上がってるような形じゃないけどな
317デフォルトの名無しさん (ワッチョイ 1579-iekx)
2023/01/18(水) 08:28:02.80ID:rq0JYZ+R0 >>312
再接続するプログラムになってるかな?
再接続するプログラムになってるかな?
318デフォルトの名無しさん (ワッチョイ ca01-FIs7)
2023/01/18(水) 08:53:04.91ID:vYh8JMIk0 >>314
( ̄ー ̄)bグッ!
( ̄ー ̄)bグッ!
319デフォルトの名無しさん (ワッチョイ dde5-+m4i)
2023/01/18(水) 11:14:23.74ID:2vbdQEqi0 LANケーブルを指しなおすプログラム?
320デフォルトの名無しさん (アウアウウー Sa91-jIAo)
2023/01/18(水) 12:06:41.51ID:wDe6wdJea 掃除のおばちゃんを制御するプログラムを弄れ
321デフォルトの名無しさん (アウアウウー Sa91-EebW)
2023/01/18(水) 12:18:27.54ID:LLGrNdcqa 再接続というのは物理的に切断されたものが復旧した時に再度コネクションすることだぞここでは
322デフォルトの名無しさん (アウアウウー Sa91-ue0x)
2023/01/18(水) 12:39:01.52ID:3lDNp2YJa >>316
そいつらはインプロセスだからある意味呼び出し側が起動してたらLocalDBのプロセスも上がってるってことだが
それ以前にCompactはもう忘れたけどLocalDBはSQL-Serverと同じでDBMSの起動とインスタンスの起動は違うぞ
SqlLocalDB.exe start / stop でインスタンスを起動/停止できる
https://learn.microsoft.com/ja-jp/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-ver16
そいつらはインプロセスだからある意味呼び出し側が起動してたらLocalDBのプロセスも上がってるってことだが
それ以前にCompactはもう忘れたけどLocalDBはSQL-Serverと同じでDBMSの起動とインスタンスの起動は違うぞ
SqlLocalDB.exe start / stop でインスタンスを起動/停止できる
https://learn.microsoft.com/ja-jp/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-ver16
323デフォルトの名無しさん (ワッチョイ 41da-N12H)
2023/01/18(水) 13:27:16.30ID:igIZvBCZ0 >応答により電源がついたり消えたりするという形ではないです
ここが分からんw
鯖が物理的に別にあるってことかな
ここが分からんw
鯖が物理的に別にあるってことかな
324デフォルトの名無しさん (ワッチョイ 292f-EsBK)
2023/01/18(水) 14:36:35.17ID:3sYvYO2/0 >>322
LocalDBはインプロセスじゃない
インスタンス事前に起動させて複数プロセスからアクセスとかできなくはない
まあ大概は自動でインスタンス上がるんだが、手動でもできるってだけ
つかその文脈、DBMS(の起動)とインスタンス(の起動)ってどういう使い分けなの?
LocalDBはインプロセスじゃない
インスタンス事前に起動させて複数プロセスからアクセスとかできなくはない
まあ大概は自動でインスタンス上がるんだが、手動でもできるってだけ
つかその文脈、DBMS(の起動)とインスタンス(の起動)ってどういう使い分けなの?
325デフォルトの名無しさん (スップ Sdea-dnaz)
2023/01/18(水) 15:18:33.28ID:UiCoGtZYd selenium webdriverのC#版の話題ってここでいいですか?
操作対象のdriverオブジェクトから、
Winformsで言う普通のウィンドウハンドル(NativeWindowHandle)を取得したいんですが、driver.CurrentWindowHandleプロパティで得られる値はselenium専用のウィンドウ識別用の文字列のようで使えませんでした。
stackoverflowとか見てもプロセスからタイトル名で探索する、みたいないまいち冴えない方法しか何故か見つかりませんでした。
ブラウザを操作してるのに一意なハンドル情報を得る方法が無いなんて考え難いので、何か方法はあると踏んでるのですが、たどり着きませんでした。上の冴えない方法より洗練された方法があれば教えて下さい。
操作対象のdriverオブジェクトから、
Winformsで言う普通のウィンドウハンドル(NativeWindowHandle)を取得したいんですが、driver.CurrentWindowHandleプロパティで得られる値はselenium専用のウィンドウ識別用の文字列のようで使えませんでした。
stackoverflowとか見てもプロセスからタイトル名で探索する、みたいないまいち冴えない方法しか何故か見つかりませんでした。
ブラウザを操作してるのに一意なハンドル情報を得る方法が無いなんて考え難いので、何か方法はあると踏んでるのですが、たどり着きませんでした。上の冴えない方法より洗練された方法があれば教えて下さい。
326デフォルトの名無しさん (アウアウウー Sa91-ue0x)
2023/01/18(水) 15:20:53.55ID:Hg1RmCSYa >>324
> LocalDBはインプロセスじゃない
すまん、ボケてたわ
単にリモート接続できないSQL-Serverだったな
> つかその文脈、DBMS(の起動)とインスタンス(の起動)ってどういう使い分けなの?
DBMSはSQL Server VSS Writerサービス(sqlwriter.exe)の話
インスタンスはリンク先読めばわかる
複数インスタンスとか使ったことないのかな?
> LocalDBはインプロセスじゃない
すまん、ボケてたわ
単にリモート接続できないSQL-Serverだったな
> つかその文脈、DBMS(の起動)とインスタンス(の起動)ってどういう使い分けなの?
DBMSはSQL Server VSS Writerサービス(sqlwriter.exe)の話
インスタンスはリンク先読めばわかる
複数インスタンスとか使ったことないのかな?
327デフォルトの名無しさん (ワッチョイ 954f-wtyD)
2023/01/18(水) 16:15:25.52ID:/+rmiMsB0328デフォルトの名無しさん (オッペケ Sr6d-2lig)
2023/01/18(水) 16:36:04.45ID:oNP58X/Tr >>325
以前に探して見つからなかった記憶
そのときはやりたいことがウィンドウの最小化ぐらいだったんで
RemoteWebDriver.Manage().Window.Minimize()
を探し出して解決
以前に探して見つからなかった記憶
そのときはやりたいことがウィンドウの最小化ぐらいだったんで
RemoteWebDriver.Manage().Window.Minimize()
を探し出して解決
329デフォルトの名無しさん (スップ Sdea-dnaz)
2023/01/18(水) 20:05:06.38ID:UiCoGtZYd330デフォルトの名無しさん (ワッチョイ 292f-EsBK)
2023/01/18(水) 20:57:22.30ID:3sYvYO2/0 >>326
WriterをしてDBMSとか言うやつは初めて見たわ
通常の文脈であればDBMSはDBエンジンをメインとした一式で
SQL Serverにおいてはまさにインスタンスなんだが
つかSQL ServerのVSS Writerって、べつに必須じゃなかった気がするけど
シャドウコピーできなくなるからオンラインバックアップ取れないだけで
いわゆるlazy writerみたいなDB Writerと勘違いしてるのかね
WriterをしてDBMSとか言うやつは初めて見たわ
通常の文脈であればDBMSはDBエンジンをメインとした一式で
SQL Serverにおいてはまさにインスタンスなんだが
つかSQL ServerのVSS Writerって、べつに必須じゃなかった気がするけど
シャドウコピーできなくなるからオンラインバックアップ取れないだけで
いわゆるlazy writerみたいなDB Writerと勘違いしてるのかね
331デフォルトの名無しさん (ワッチョイ a501-ue0x)
2023/01/18(水) 21:17:36.32ID:q1S59c8f0 >>330
> つかSQL ServerのVSS Writerって、べつに必須じゃなかった気がするけど
SQL-Server VSS Writer とシャドーコピーサービスは別物だぞ
あとSQL-Serverのインスタンスはプロセスとは関係ない
sqllocaldb create\|c "instance name" [version-number] [-s]
とかで増やすこともできるけど増やしてもプロセスやスレッドは増えないよ
ちなみにOracleでもインスタンスの用語はデータベースファイルセットの意味で使われてる
https://docs.oracle.com/cd/F32587_01/cncpt/oracle-database-instance.html#GUID-67247052-CE3F-44D2-BA3E-7067DEF4B6D5
> つかSQL ServerのVSS Writerって、べつに必須じゃなかった気がするけど
SQL-Server VSS Writer とシャドーコピーサービスは別物だぞ
あとSQL-Serverのインスタンスはプロセスとは関係ない
sqllocaldb create\|c "instance name" [version-number] [-s]
とかで増やすこともできるけど増やしてもプロセスやスレッドは増えないよ
ちなみにOracleでもインスタンスの用語はデータベースファイルセットの意味で使われてる
https://docs.oracle.com/cd/F32587_01/cncpt/oracle-database-instance.html#GUID-67247052-CE3F-44D2-BA3E-7067DEF4B6D5
332デフォルトの名無しさん (ワッチョイ 292f-EsBK)
2023/01/18(水) 22:36:22.92ID:3sYvYO2/0 >>331
シャドウコピーはOSが提供してる機能のことで、VSS WriterはSQL Serverがそれを使うためのサービスな
>SQL-Serverのインスタンスはプロセスとは関係ない
SQL Serverのインスタンスの実態はsqlserver.exeってプロセスだが?
ローカルDBでも、インスタンスごとにsqlserver.exeってプロセスが動くんだが?
シャドウコピーはOSが提供してる機能のことで、VSS WriterはSQL Serverがそれを使うためのサービスな
>SQL-Serverのインスタンスはプロセスとは関係ない
SQL Serverのインスタンスの実態はsqlserver.exeってプロセスだが?
ローカルDBでも、インスタンスごとにsqlserver.exeってプロセスが動くんだが?
333デフォルトの名無しさん (ワッチョイ 636e-ffW7)
2023/01/25(水) 14:22:50.07ID:VgR3j9B70 C#のexeやdllはILマシン語にコンパイルされるというのを知りました
でも例えばCのexeはそのCPUに対応するマシン語になりますよね
ですけどC#のexeは一旦JITを通して実行される
この一度通すっていうのをどうやって判断しているんでしょうか
C#のexeをCのexeみたいに直接実行しようとして実行できねーよってならないのはどういう仕組みなんでしょうか
でも例えばCのexeはそのCPUに対応するマシン語になりますよね
ですけどC#のexeは一旦JITを通して実行される
この一度通すっていうのをどうやって判断しているんでしょうか
C#のexeをCのexeみたいに直接実行しようとして実行できねーよってならないのはどういう仕組みなんでしょうか
334デフォルトの名無しさん (ブーイモ MM87-a62K)
2023/01/25(水) 14:57:50.37ID:cPQ/8DlSM C#のexeに「僕に含まれてるデータをJITを通して実行してね」て、CPUに対応するマシン語で書いてあるんじゃね?
335デフォルトの名無しさん (ワッチョイ 3333-liM6)
2023/01/25(水) 14:58:14.37ID:KPuKutaL0336デフォルトの名無しさん (ササクッテロラ Spc7-H1Sa)
2023/01/25(水) 15:01:44.79ID:UaGoD80Hp 8086系は相対ジャンプや相対コールが無かったから
プログラム実行前にアドレス解決しなきゃならないとか
色々前処理が必要だったんだ
その延長で前処理に色々やらせる処理を追加してるなんて
普通にやっているんだよなぁ
プログラム実行前にアドレス解決しなきゃならないとか
色々前処理が必要だったんだ
その延長で前処理に色々やらせる処理を追加してるなんて
普通にやっているんだよなぁ
337デフォルトの名無しさん (ワッチョイ cfbb-loBM)
2023/01/25(水) 15:09:07.39ID:YO+oGQTm0 C#が関係なくなっちゃうけど、主要Linux系OSは同じような仕組みで他のCPU用の実行ファイルとかまで動いちゃう
338デフォルトの名無しさん (ワッチョイ cff8-qYbV)
2023/01/25(水) 16:41:58.38ID:SH9Oxo2M0 VC# datagridviewにて
CurrentCellChangedイベントで選択セルの結果を取得したいと思いました。
(rowfilterなどで変化した場合もとりたいため、clickイベントにしませんでした)
しかし、DBから読み込んだ時点ですぐ発生するイベントにて
System.NullReferenceExceptionがでます。
CurrentCell.Value == null で判断できるのかと思いましたが違うようでした。
データがなかったときに何もしないというコードはどう書くべきなのでしょうか。
今までPHPで簡単なものを作っておりましたが、
コントロールプロパティやイベントが何を返してて、
どう対処するのかが基礎的なものがわかりません。
nullが返ってくるんだから if nullじゃないの?というのが間違ってる...のでしょうか?
https://ideone.com/J0iDmr
CurrentCellChangedイベントで選択セルの結果を取得したいと思いました。
(rowfilterなどで変化した場合もとりたいため、clickイベントにしませんでした)
しかし、DBから読み込んだ時点ですぐ発生するイベントにて
System.NullReferenceExceptionがでます。
CurrentCell.Value == null で判断できるのかと思いましたが違うようでした。
データがなかったときに何もしないというコードはどう書くべきなのでしょうか。
今までPHPで簡単なものを作っておりましたが、
コントロールプロパティやイベントが何を返してて、
どう対処するのかが基礎的なものがわかりません。
nullが返ってくるんだから if nullじゃないの?というのが間違ってる...のでしょうか?
https://ideone.com/J0iDmr
339デフォルトの名無しさん (ワッチョイ 636e-ffW7)
2023/01/25(水) 17:00:33.96ID:VgR3j9B70 >>335
あーこれは本当に素晴らしい記事でした。ありがとうございました。
windowsローダーとかPEフォーマットとかまーったく知らなかったですね。機械語の塊の実行ファイルをOSが読んでいくくらいにしか思ってませんでした。これやっぱ常識なんですかね。
C#の本読んでも当たり前のようにCLRとか出てきてよくわかんねぇとかなってましたけどこれが前提知識ならそりゃ分からんわってなりました。
あーこれは本当に素晴らしい記事でした。ありがとうございました。
windowsローダーとかPEフォーマットとかまーったく知らなかったですね。機械語の塊の実行ファイルをOSが読んでいくくらいにしか思ってませんでした。これやっぱ常識なんですかね。
C#の本読んでも当たり前のようにCLRとか出てきてよくわかんねぇとかなってましたけどこれが前提知識ならそりゃ分からんわってなりました。
340デフォルトの名無しさん (ワッチョイ cf7b-jJmO)
2023/01/25(水) 17:49:01.17ID:+bDum9h60 >>338
他のクラスでも同じだがCurrentCell.Value == nullの前にCurrentCell== nullを判定しないとnullに属するメンバを指定したら存在するはずがないのでエラーになる
if (dgv.CurrentCell== null || dgv.CurrentCell.Value == null)
{
return;
}
他のクラスでも同じだがCurrentCell.Value == nullの前にCurrentCell== nullを判定しないとnullに属するメンバを指定したら存在するはずがないのでエラーになる
if (dgv.CurrentCell== null || dgv.CurrentCell.Value == null)
{
return;
}
341デフォルトの名無しさん (ワッチョイ 434f-DmZS)
2023/01/25(水) 17:56:26.24ID:Q2YcVXM80342デフォルトの名無しさん (ワッチョイ cff8-qYbV)
2023/01/25(水) 17:59:52.43ID:SH9Oxo2M0 >>340
ありがとうございます!!
>DataGridView.CurrentCell.get が null を返しました
おかげさまでようやく
このエラーメッセージが何を言いたいのか理解できました。
ありがとうございます!!
>DataGridView.CurrentCell.get が null を返しました
おかげさまでようやく
このエラーメッセージが何を言いたいのか理解できました。
343デフォルトの名無しさん (ワッチョイ a3e5-ZVkQ)
2023/01/25(水) 18:01:47.91ID:E6MdhQPL0 .NET Frameworkランタイム入れていない
古いWindowsで開くと形式がおかしいとか言われたはず
古いWindowsで開くと形式がおかしいとか言われたはず
344デフォルトの名無しさん (ワッチョイ cff8-qYbV)
2023/01/25(水) 18:03:19.22ID:SH9Oxo2M0 >>341
ありがとうございます!!
いま改めて見たら
dgv.CurrentCellがnull であって
dgv.CurrentCell.value ではなかったです。
この違いにまったく気づいてなく
頭をかかえていました。
ありがとうございます!!
いま改めて見たら
dgv.CurrentCellがnull であって
dgv.CurrentCell.value ではなかったです。
この違いにまったく気づいてなく
頭をかかえていました。
345デフォルトの名無しさん (ワッチョイ 636e-ffW7)
2023/01/25(水) 22:33:14.66ID:VgR3j9B70 datagridviewは本当に色々とめんどくさいよね
起きるイベントの順番とかタイミングとかカオスでバグが出まくる
起きるイベントの順番とかタイミングとかカオスでバグが出まくる
346デフォルトの名無しさん (スッップ Sd1f-RQPf)
2023/01/26(木) 01:02:50.84ID:41WP6aJtd >>345
お前が馬鹿なだけ
お前が馬鹿なだけ
347デフォルトの名無しさん (ワッチョイ e379-TshA)
2023/01/26(木) 22:49:39.84ID:lq03KzKz0 多分なんちゃらview全般に言えるのでは
348デフォルトの名無しさん (アウグロ MM27-Geqo)
2023/01/27(金) 17:54:28.03ID:taOXdrfWM 別に変なことしたくねーのに
変なことしたいでしょ?
って前提で作られててな
微妙なイベントの順番をハンドリングしないと普通のことも
できないのは正直クソだと思う
変なことしたいでしょ?
って前提で作られててな
微妙なイベントの順番をハンドリングしないと普通のことも
できないのは正直クソだと思う
349デフォルトの名無しさん (ワッチョイ 17a7-fO7+)
2023/01/28(土) 13:20:46.28ID:I9B5TSew0 シンプルなテーブルを作るにあたりDataGridViewとListViewどっち使うか毎度悩む
そしてこいつらは行や列の結合セルを作れない事に気付いてTableLayoutPanelに移行しようとするもこっちはこっちでデータとのバインディングが面倒で断念
最終的にはただのControlクラスを継承したまっさらな白紙にOnPaintで自力描画する事に落ち着くのである
そしてこいつらは行や列の結合セルを作れない事に気付いてTableLayoutPanelに移行しようとするもこっちはこっちでデータとのバインディングが面倒で断念
最終的にはただのControlクラスを継承したまっさらな白紙にOnPaintで自力描画する事に落ち着くのである
350デフォルトの名無しさん (ワッチョイ 8754-QtSo)
2023/01/28(土) 14:52:36.43ID:iXjFLTNM0 null 許容参照型について教えて下さい。
class Person
{
// null 非許容だと警告が表示されるので、null 許容にしています。
public string? Name { get; set; }
}
上記のケースで、null 非許容のまま警告を回避する為に、プロパティ宣言時に、下記のようにしようと考えています。
public string Name { get; set; } = string.Empty;
ただ、Name プロパティを参照する時に求める要件は「null でない事」ではなく「人名が代入されている事」なので、
string.Empty で null 警告を回避しても、string.Empty は人名ではない為、意味がありません。
この場合、Name を参照する側では、
if ( person.Name != null )
をチェックするか
if ( person.Name != string.Empty )
をチェックするかが変わるだけで、null 許容参照型にするメリットを感じないのですが、メリットはあるのでしょうか?
class Person
{
// null 非許容だと警告が表示されるので、null 許容にしています。
public string? Name { get; set; }
}
上記のケースで、null 非許容のまま警告を回避する為に、プロパティ宣言時に、下記のようにしようと考えています。
public string Name { get; set; } = string.Empty;
ただ、Name プロパティを参照する時に求める要件は「null でない事」ではなく「人名が代入されている事」なので、
string.Empty で null 警告を回避しても、string.Empty は人名ではない為、意味がありません。
この場合、Name を参照する側では、
if ( person.Name != null )
をチェックするか
if ( person.Name != string.Empty )
をチェックするかが変わるだけで、null 許容参照型にするメリットを感じないのですが、メリットはあるのでしょうか?
351デフォルトの名無しさん (ワッチョイ 1a42-+rQD)
2023/01/28(土) 15:02:12.75ID:acHVjvs20 ケースによるが、コンストラクタを用意して
public Person(string name)
{
Name=name;
}
public Person(string name)
{
Name=name;
}
352デフォルトの名無しさん (ワッチョイ 1a42-+rQD)
2023/01/28(土) 15:03:19.66ID:acHVjvs20 とやって、全てのオブジェクトには名前があるように保証できるようにするのが俺のやり方だわ
353デフォルトの名無しさん (スップ Sd5a-ez1I)
2023/01/28(土) 16:32:58.07ID:SSo2rJoBd354デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/01/28(土) 16:37:13.72ID:qgiHv5Wf0 >>350
空文字は許容されてなくてnull関連の演算子も使わないならどっちでもいいんじゃね
空文字は許容されてなくてnull関連の演算子も使わないならどっちでもいいんじゃね
355デフォルトの名無しさん (アウアウウー Sa47-rfgy)
2023/01/28(土) 18:21:00.62ID:DKSWYQK4a >>350
null許容の場合は空文字とnull両方を考慮しないといけないだろう
null許容の場合は空文字とnull両方を考慮しないといけないだろう
356デフォルトの名無しさん (アウアウウー Sa47-lxhl)
2023/01/29(日) 06:55:37.48ID:Tvr/A6EZa >>349
WPFでやれば楽よ
WPFでやれば楽よ
357デフォルトの名無しさん (ワッチョイ a702-fO7+)
2023/01/29(日) 10:10:30.46ID:Bt1+Pj/S0358デフォルトの名無しさん (ワッチョイ ff79-gzqp)
2023/01/29(日) 10:26:49.48ID:tvJJpmA20359デフォルトの名無しさん (ワッチョイ 1a42-+rQD)
2023/01/29(日) 11:24:21.80ID:1KUwXnGJ0 大昔からString.IsNullOrWhiteSpaceでチェックしていたから気にしたことなかったわ
360デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/01/30(月) 22:17:23.47ID:4W3kbClF0 JsonSerializerでdynamic型の配列に異なる型のオブジェクトを混在させたのもをSerializeしてからDeserializeするときに型を復元するにはどうすればよいでしょうか。
361デフォルトの名無しさん (アウアウウー Sa47-JCD8)
2023/01/30(月) 22:26:24.35ID:rXBejGf/a キャスト
362デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/01/30(月) 23:02:54.21ID:4W3kbClF0 キャストする型が不定なので保持しておきたいのですがそのような機能はないでしょうか。
参照関係はメタデータとして保持できるのですが…
なければ独自で型情報を保持するしかないと思うのですが、List<Hoge>のような型が存在する場合にGetType().Nameを読み取ってもList`1のような謎の文字列になってしまい…
参照関係はメタデータとして保持できるのですが…
なければ独自で型情報を保持するしかないと思うのですが、List<Hoge>のような型が存在する場合にGetType().Nameを読み取ってもList`1のような謎の文字列になってしまい…
363デフォルトの名無しさん (ワッチョイ a75f-WGy9)
2023/01/30(月) 23:08:33.77ID:oFd10dGn0 普通はtypeofとかisとか使うんじゃね?
364デフォルトの名無しさん (ワッチョイ a75f-WGy9)
2023/01/30(月) 23:10:20.10ID:oFd10dGn0 object型で何で扱って、typeofとかisとか使ってマッチさせるんじゃねえの?
365デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/01/30(月) 23:12:24.68ID:4W3kbClF0 全てのパターンの型でマッチするものを探すようなコードを実装するということでしょうか。
汎用的なものは難しいですかね
汎用的なものは難しいですかね
366デフォルトの名無しさん (アウアウウー Sa47-JCD8)
2023/01/30(月) 23:33:12.81ID:EKczJlFVa jsonに型情報なんか入ってないからプログラマが型を教えてやるしかねーぞ
入れられるならプロパティとして入れとけ
入れられるならプロパティとして入れとけ
367デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/01/30(月) 23:41:03.69ID:4W3kbClF0 うーむ…中々難しいのですね。
辞書に色々ごちゃごちゃにぶち込んで一発でシリアル化、一発で逆シリアル化とはいかないですか。
辞書に色々ごちゃごちゃにぶち込んで一発でシリアル化、一発で逆シリアル化とはいかないですか。
368デフォルトの名無しさん (アウアウウー Sa47-JCD8)
2023/01/30(月) 23:50:54.82ID:EKczJlFVa プロがやれば何とかなると思うから依頼してみなよ
さすがに詳しいことをここで聞いたり説明したりするのはめんどいわ
さすがに詳しいことをここで聞いたり説明したりするのはめんどいわ
369デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/01/30(月) 23:52:57.23ID:4W3kbClF0 確かになんとかはなるかもしれませんね…
簡単にはいかないのは確か、というところでしょうか。
JsonSerializerが参照情報だけではなく型情報もメタデータとして保持できればよかったのですがね。
簡単にはいかないのは確か、というところでしょうか。
JsonSerializerが参照情報だけではなく型情報もメタデータとして保持できればよかったのですがね。
370デフォルトの名無しさん (ワッチョイ 5f10-3kgq)
2023/01/30(月) 23:58:17.04ID:IhW3z+yo0371デフォルトの名無しさん (ワッチョイ 5f10-2biX)
2023/01/31(火) 09:16:17.88ID:d4xiAPDr0 XMLでよければXmlSerializerがあるがな。
372デフォルトの名無しさん (ワッチョイ 8379-jh2e)
2023/01/31(火) 19:05:24.58ID:t9l1A9G+0 jsonのと比べてXmlSerializerだと何か良いことがあるのかね
373デフォルトの名無しさん (ワッチョイ 5f10-2biX)
2023/01/31(火) 21:43:56.67ID:d4xiAPDr0 >>372
型情報を含んでる
型情報を含んでる
374デフォルトの名無しさん (ササクッテロラ Sp3b-WGy9)
2023/01/31(火) 21:48:53.87ID:tyybi/5mp 型情報あっても、その型を解釈出来なけりゃ意味が無いからなぁ
送り手と受け手で同じ型宣言つかわにゃ
送り手と受け手で同じ型宣言つかわにゃ
375デフォルトの名無しさん (アウアウウー Sa47-MG55)
2023/01/31(火) 22:18:53.12ID:eUQUkrMna おなじ宣言つかえばいいのでは
376デフォルトの名無しさん (ササクッテロラ Sp3b-WGy9)
2023/01/31(火) 22:25:35.04ID:tyybi/5mp 作成者が同じとも限らないし、言語が違うとかもあるし
限定的な使い道しか無いんだよなぁ
限定的な使い道しか無いんだよなぁ
377デフォルトの名無しさん (ワッチョイ 733a-iJPr)
2023/01/31(火) 22:37:59.59ID:JUpN+VeK0 何がしたいんだ?
自分も使えないデータを知らない人に渡して活用してもらうのか?
自分も使えないデータを知らない人に渡して活用してもらうのか?
378デフォルトの名無しさん (ワッチョイ a702-fO7+)
2023/01/31(火) 22:39:07.69ID:lNQXIXaf0 そもそもどういう理由でJSONを選んだのか
シリアライザも色々あるから、それに適さないデータを無理に扱おうとしても苦労するだけよ
シリアライザも色々あるから、それに適さないデータを無理に扱おうとしても苦労するだけよ
379デフォルトの名無しさん (ワッチョイ 8335-6BSU)
2023/02/01(水) 01:00:31.32ID:gXlE0Qft0 用途→状態保存
なぜ→特になし
なぜ→特になし
380デフォルトの名無しさん (ワッチョイ 1aad-K8fF)
2023/02/01(水) 04:01:10.47ID:RyGmTTdX0381デフォルトの名無しさん (ワッチョイ 733a-iJPr)
2023/02/01(水) 07:07:59.79ID:OQq7+g560382デフォルトの名無しさん (アウアウウー Sa47-DSsr)
2023/02/01(水) 11:28:10.11ID:BH4poKX+a Marshal だろ。たいていの言語にある。
でも、言語のバージョンが異なると互換性がない
dRuby みたいな分散・リモートオブジェクト。
送信先で、オブジェクトを復元できる機能
ただし、プロセスID など、各システムで固有のものは送れない・復元できない
例えば、システムA のプロセスID・100 を送っても、
システムB の100に出来ない
でも、言語のバージョンが異なると互換性がない
dRuby みたいな分散・リモートオブジェクト。
送信先で、オブジェクトを復元できる機能
ただし、プロセスID など、各システムで固有のものは送れない・復元できない
例えば、システムA のプロセスID・100 を送っても、
システムB の100に出来ない
383デフォルトの名無しさん (アウアウウー Sa47-6BSU)
2023/02/01(水) 11:59:27.64ID:UTKch+wba そもそもクラス名を指定すれば復元できるんだからクラスを保存するのは普通
ただのデータ構造
ただのデータ構造
384デフォルトの名無しさん (ワッチョイ 5fae-wzUf)
2023/02/01(水) 14:10:05.95ID:ebRzTgdK0 async/awaitが出た頃に「BackGroundWorkerは時代送れだから使うな」
って聞いた気がするけども、ググると新しい記事でも使っています。
用途次第なのでしょうが、BackGroundWorkerも使って良いのでしょうか?
って聞いた気がするけども、ググると新しい記事でも使っています。
用途次第なのでしょうが、BackGroundWorkerも使って良いのでしょうか?
385デフォルトの名無しさん (スフッ Sdba-tUmd)
2023/02/01(水) 15:00:43.93ID:v1HsWaA1d >>384
廃止になる情報は見つからないね
廃止になる情報は見つからないね
386デフォルトの名無しさん (ワッチョイ 5fda-1HNb)
2023/02/01(水) 15:09:07.40ID:Ke8/ro290 古いframeworkのバージョンしか使えない場合とか
387デフォルトの名無しさん (ワッチョイ 5b79-A/EM)
2023/02/01(水) 19:04:34.85ID:dDom2t/30 async汚染が気になって使えない
388デフォルトの名無しさん (ササクッテロラ Sp3b-WGy9)
2023/02/01(水) 19:55:41.40ID:maza5pHhp プロパティに非同期呼び出しがあって詰んだ思い出
389デフォルトの名無しさん (アウアウウー Sa47-K8fF)
2023/02/02(木) 06:15:09.17ID:upKEKEWBa >>384
性能は同じだから、どっちを使っても良いと思う
性能は同じだから、どっちを使っても良いと思う
390デフォルトの名無しさん (ワッチョイ 5f12-ozkd)
2023/02/03(金) 17:52:58.42ID:Dixtr4kT0 win32apiのTextOut関数を使ってコントロールへ文字を表示したいのですが
マウスをドラッグして、そのコントロールを含むフォームのサイズを変更したときに
タイミングによっては例外が発生してしまいます、どのように修正するのが正当なやり方でしょうか?
void MyTextOut(){
TextOut(......)
}
protected override void OnPaint(){
MyTextOut()
}
マウスをドラッグして、そのコントロールを含むフォームのサイズを変更したときに
タイミングによっては例外が発生してしまいます、どのように修正するのが正当なやり方でしょうか?
void MyTextOut(){
TextOut(......)
}
protected override void OnPaint(){
MyTextOut()
}
391デフォルトの名無しさん (ワッチョイ da7c-+rQD)
2023/02/03(金) 21:39:19.06ID:Ug5oxsRH0 まずどんな例外が発生しているのかそういう情報が無いと誰も答えられないような
392デフォルトの名無しさん (ワッチョイ a702-fO7+)
2023/02/03(金) 21:48:19.59ID:0nuP02J20 そもそも、なんでTextOutなんて使ってんの
393デフォルトの名無しさん (ワッチョイ da7c-+rQD)
2023/02/03(金) 22:00:34.75ID:Ug5oxsRH0394デフォルトの名無しさん (ワッチョイ a702-fO7+)
2023/02/03(金) 22:06:21.54ID:0nuP02J20 C#は、基本設計として危険な生のハンドル操作をする必要がない作りになっている
ろくにエラー処理もしない(出来ない)奴が直接Win32APIを叩くのがそもそも間違ってる
ろくにエラー処理もしない(出来ない)奴が直接Win32APIを叩くのがそもそも間違ってる
395デフォルトの名無しさん (ワッチョイ 4e7b-f7VM)
2023/02/03(金) 22:17:15.42ID:j/Zv+95r0 >>390
質問する際は>>391の言う通りどんな例外かを示さないとエスパー呼んでくるしかない
あとせっかくコードを出すのなら再現する最低限のコード書けば答える側もわかりやすいし、最低限のコード作って確認したら自分で解決もしやすい
個人的にはどうでもいいだろうけど、protected overrideなのにbase呼んでないのが気になった
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms/controls/overriding-the-onpaint-method?view=netframeworkdesktop-4.8
質問する際は>>391の言う通りどんな例外かを示さないとエスパー呼んでくるしかない
あとせっかくコードを出すのなら再現する最低限のコード書けば答える側もわかりやすいし、最低限のコード作って確認したら自分で解決もしやすい
個人的にはどうでもいいだろうけど、protected overrideなのにbase呼んでないのが気になった
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms/controls/overriding-the-onpaint-method?view=netframeworkdesktop-4.8
396デフォルトの名無しさん (ワッチョイ 4f01-u/Qh)
2023/02/04(土) 01:30:11.94ID:Oed2Ku7T0 LINEのc#のオープンチャットがあったので入ってみたらスマホのめちゃくちゃ狭い画面でソース貼ってやりとりしてて笑った
正気か?
正気か?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 「遺体、安倍、会いたい」👈逆から読んでみて [175344491]
- 【悲報】SANA、発言撤回拒否 [769931615]
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 【悲報】トランプ聖帝「高市…さん…でしたっけ?」 [878970802]
- 嫌儲、復活 [377388547]
- 山上、死刑回避し減刑か 山上母の供述で一気に酌量ムードへ [804169411]
