!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part149
http://mevius.5ch.net/test/read.cgi/tech/1608085775/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part150
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2b02-+i0H)
2021/03/23(火) 12:58:24.10ID:ACoFzk2L0408デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/26(月) 21:00:37.58ID:zRuX+7dna >>405
本来はToolStrip自身じゃなくて、ToolStripやMenuStripを持った
Formを継承した方がいいような気もするけどね。
まあそれじゃ満たせない要件なのかもしれないけど。
でもToolStripやMenuStripってFormの継承と相性悪いんだよな確か。
修正されずに放置されてるバグがてんこ盛りだった気がする
本来はToolStrip自身じゃなくて、ToolStripやMenuStripを持った
Formを継承した方がいいような気もするけどね。
まあそれじゃ満たせない要件なのかもしれないけど。
でもToolStripやMenuStripってFormの継承と相性悪いんだよな確か。
修正されずに放置されてるバグがてんこ盛りだった気がする
409デフォルトの名無しさん (アークセー Sxd7-On6t)
2021/04/26(月) 22:26:58.02ID:VGqr4loSx410デフォルトの名無しさん (ワッチョイ fb54-C+b/)
2021/04/26(月) 23:28:26.99ID:fsnGR4b00411デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/27(火) 00:39:04.06ID:H7ElJCU2a >>410
「〇〇を変更した時には××も変更すべし」みたいな自明じゃないルールが存在すると、
そのルールをコードを保守する人が忘れているか知らない場合には
正常に動作しなくなるリスクが発生していることになる。
プログラミングの目的は要件を満たすことなので、他に手段がなければ
あえてそういうリスクのある方法を採用することはあってもいいけど、
今の話は明らかにそうじゃない
「〇〇を変更した時には××も変更すべし」みたいな自明じゃないルールが存在すると、
そのルールをコードを保守する人が忘れているか知らない場合には
正常に動作しなくなるリスクが発生していることになる。
プログラミングの目的は要件を満たすことなので、他に手段がなければ
あえてそういうリスクのある方法を採用することはあってもいいけど、
今の話は明らかにそうじゃない
412デフォルトの名無しさん (ワッチョイ 9b5f-f+Su)
2021/04/27(火) 00:47:33.70ID:8Unh/3dq0 Windows,LInux,Macで動作するものを作る場合は.Net coreとmonoどっちがおすすめですか?
413デフォルトの名無しさん (ラクッペペ MM34-/WW/)
2021/04/27(火) 00:58:04.31ID:ezafVa/dM 今からなら.NET 5 (.NET Coreの後継)
今年中には更に後継の.NET 6が登場予定
.NET Coreは既に終了済、monoはモバイル向け(.NET 6に統合される予定)
今年中には更に後継の.NET 6が登場予定
.NET Coreは既に終了済、monoはモバイル向け(.NET 6に統合される予定)
414デフォルトの名無しさん (ワッチョイ d0f2-2tiM)
2021/04/27(火) 01:08:57.42ID:8OBs4sir0 なんか次々思い付いてはゴミのように捨てていくよな
415デフォルトの名無しさん (ワッチョイ 9b5f-f+Su)
2021/04/27(火) 01:13:33.58ID:8Unh/3dq0 そうなんですね
.NET 5調べてみます!
.NET 5調べてみます!
416デフォルトの名無しさん (ワッチョイ f82d-T6Cp)
2021/04/27(火) 01:19:08.19ID:DUr8YxD70 .NET Core 3.1の次バージョンを.NET 5とリネームしただけだから.NET Coreが終わったわけじゃない
417デフォルトの名無しさん (ワッチョイ 66ad-JI0G)
2021/04/27(火) 08:59:07.35ID:nkW/cvkg0 >>413
既に終了済み??
既に終了済み??
418デフォルトの名無しさん (ワッチョイ b701-J6CO)
2021/04/27(火) 09:09:39.16ID:+C/fTs2P0 インターフェースや抽象クラスのメリットとは?
つまりvirtualで処理をかかない純粋仮想関数を作る意味はあるのかということです。
そもそもvirtual指定するのであればデフォルト処理というものを書いておけば必要に応じてオーバーライドすればよいと思うのですが。
つまりvirtualで処理をかかない純粋仮想関数を作る意味はあるのかということです。
そもそもvirtual指定するのであればデフォルト処理というものを書いておけば必要に応じてオーバーライドすればよいと思うのですが。
419デフォルトの名無しさん (ワッチョイ 1a63-3cD6)
2021/04/27(火) 09:56:11.35ID:zT7wmnFt0420デフォルトの名無しさん (ワッチョイ b701-J6CO)
2021/04/27(火) 10:13:30.82ID:+C/fTs2P0421デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/27(火) 13:59:45.19ID:MoRpu0yA0 ちゃんとifやcase文で書いた方が実は後で楽だけどね
使うかどうかはかっちょええかどうかである場合が多い
使うかどうかはかっちょええかどうかである場合が多い
422デフォルトの名無しさん (ワッチョイ bcb0-On6t)
2021/04/27(火) 14:31:58.08ID:H51IIUOO0 将来的にスパゲティ化することを防ぐために多少手間でもインタフェースや抽象クラスを使って制約を設けるもんじゃないの?
423デフォルトの名無しさん (ワントンキン MMb8-XmRv)
2021/04/27(火) 15:29:38.21ID:5DBHgWrVM そういうのは大抵、いざ要件が増えたときには、今の引数だけでは〇〇の情報が足りないとか、拡張を想定していなかった部分を拡張しなければならなくなったとかで破綻するんだよ
要件にないなら後で実際に拡張が必要になってからリファクタリングした方がよい
要件にないなら後で実際に拡張が必要になってからリファクタリングした方がよい
424デフォルトの名無しさん (ワッチョイ bf87-dNqc)
2021/04/27(火) 16:06:23.66ID:NpDZDySr0 俺は>>422派だな。
要件が増えたときにパラメータが増えたとしても、ファクトリーに渡す拡張用の値増やすだけで元の処理に手を入れなくていいから
要件が増えたときにパラメータが増えたとしても、ファクトリーに渡す拡張用の値増やすだけで元の処理に手を入れなくていいから
425デフォルトの名無しさん (ワッチョイ b701-J6CO)
2021/04/27(火) 17:44:39.71ID:+C/fTs2P0 もしかして抽象クラスとインターフェースって使う必要ない?
メリットはスパゲティコードにしない制約を追加するだけで有れば設計ミスの方じゃないか?
メリットはスパゲティコードにしない制約を追加するだけで有れば設計ミスの方じゃないか?
426デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/27(火) 17:54:44.27ID:MoRpu0yA0 >>425
まあでも知ってると他の誰かが使ったときに欠点がわかるよ
下地がそうやってできてるのにそれに逆らって作ってもしゃーないし
合わせるのは大事
ただメリットはよくわからん
List<object>やobject型の悪用とあんま変わらん気がする
落ちてもどこで落ちたかわからんのもいっしょ
まあでも知ってると他の誰かが使ったときに欠点がわかるよ
下地がそうやってできてるのにそれに逆らって作ってもしゃーないし
合わせるのは大事
ただメリットはよくわからん
List<object>やobject型の悪用とあんま変わらん気がする
落ちてもどこで落ちたかわからんのもいっしょ
427デフォルトの名無しさん (ブーイモ MM5e-ZDuA)
2021/04/27(火) 17:58:00.62ID:3vzUzKx8M >>425
同時平行開発するときは有用だな
同時平行開発するときは有用だな
428デフォルトの名無しさん (ワッチョイ a27c-On6t)
2021/04/27(火) 18:04:24.32ID:pi+NfSuo0 interfaceはこのクラスにはこのメソッドがありますよと言う事を約束するだけで
実装が共通化しようもないようなものに使うものだし
(例としてforeachで回せるようにする為のIEnumerable)
抽象クラスは良くある例はFruitクラスの子クラスがAppleやら関連性のあるものに対して使うものだろうし
そもそも用途が違うような
実装が共通化しようもないようなものに使うものだし
(例としてforeachで回せるようにする為のIEnumerable)
抽象クラスは良くある例はFruitクラスの子クラスがAppleやら関連性のあるものに対して使うものだろうし
そもそも用途が違うような
429デフォルトの名無しさん (アウアウエー Sa6a-hbXt)
2021/04/27(火) 18:05:20.92ID:eLMexJPua430デフォルトの名無しさん (アウアウエー Sa6a-hbXt)
2021/04/27(火) 18:06:48.09ID:eLMexJPua >>428
アルゴリズム書くときには便利かもね
アルゴリズム書くときには便利かもね
431デフォルトの名無しさん (スッップ Sd70-I7vP)
2021/04/27(火) 18:14:04.55ID:RVxlIcyJd クラスを他の人に使わせてまうとあとで変えれなくなってのっぴきならなくなることがあるからやがな。
interfaceにしておくことでサイズゼロにしておくことが出来る。
相手が不特定多数だと「変更したから変えてくれ」とはいえないわけですわ。
interfaceにしておくことでサイズゼロにしておくことが出来る。
相手が不特定多数だと「変更したから変えてくれ」とはいえないわけですわ。
432デフォルトの名無しさん (ワッチョイ bcb0-On6t)
2021/04/27(火) 18:16:27.98ID:H51IIUOO0 多態性を利用するために必須なんだから使わなきゃ不便じゃない?
純粋に楽になるついでに、構造に制約を設けて将来的に品質維持する保険にもなるっていう複数のメリットあるので、使わない理由が無いというか
一回つくって終わりの書き捨てならいらないけど
426の後半2行は意味がよくわからない
純粋に楽になるついでに、構造に制約を設けて将来的に品質維持する保険にもなるっていう複数のメリットあるので、使わない理由が無いというか
一回つくって終わりの書き捨てならいらないけど
426の後半2行は意味がよくわからない
433デフォルトの名無しさん (ワッチョイ d863-x7P5)
2021/04/27(火) 18:32:34.55ID:/yDoZvzG0 下手の考え休むに似たりって本当だよな
434デフォルトの名無しさん (ワッチョイ b701-J6CO)
2021/04/27(火) 18:33:38.95ID:+C/fTs2P0 >>432
多様性を使う為に必須というのは初耳だった
別に普通のクラスでも継承してインスタンス化すれば多様性は使えると思ってたんだけど
同じ親クラスやvarの配列にしてfor回したり
そこでインターフェースや抽象クラスにしてしまうよりかは
少なくとも何も処理しないダミー関数でも書いて仮想メソッドで実装しておいた方が良いとおもてる
多様性を使う為に必須というのは初耳だった
別に普通のクラスでも継承してインスタンス化すれば多様性は使えると思ってたんだけど
同じ親クラスやvarの配列にしてfor回したり
そこでインターフェースや抽象クラスにしてしまうよりかは
少なくとも何も処理しないダミー関数でも書いて仮想メソッドで実装しておいた方が良いとおもてる
435デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/27(火) 18:35:08.09ID:MoRpu0yA0 >>431
いやいやinterfaceから触るでしょうよw
いやいやinterfaceから触るでしょうよw
436デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/27(火) 18:37:58.55ID:MoRpu0yA0 ちゃんとcase文書いた方がいくつ分岐してるかわかっていいじゃん
これをメリットと思えないのってなんでなの?
ソース読むときいくつに処理が別れてるか知らずに済むことって皆無だと思うけど
これをメリットと思えないのってなんでなの?
ソース読むときいくつに処理が別れてるか知らずに済むことって皆無だと思うけど
437デフォルトの名無しさん (エアペラ SD03-eDU7)
2021/04/27(火) 18:48:41.39ID:K2ItIfw9D 今って多態性じゃなく多様性って言うのが主流なの?
438デフォルトの名無しさん (ワッチョイ c252-W/SR)
2021/04/27(火) 18:49:53.91ID:tjxIRyEc0 >>436
いくつに分岐しているかを気にしなくてすむのがinterfaceによる抽象化のメリットの1つだろうに
いくつに分岐しているかを気にしなくてすむのがinterfaceによる抽象化のメリットの1つだろうに
439デフォルトの名無しさん (ワッチョイ fc63-On6t)
2021/04/27(火) 18:51:27.27ID:LNs0Wm240 いいえ多態性です
440デフォルトの名無しさん (ワッチョイ 74e5-4uvq)
2021/04/27(火) 18:53:45.11ID:QWBqF+Zq0441デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/27(火) 18:59:04.44ID:izPR1pTAa OOPの歴史も30年以上あるのでさすがに本質的に不要なものが
淘汰されずに生き残っているってことはないよ。
インターフェイス不要論とか抽象クラス不要論とか
staticおじさん級に幼稚で非生産的な書生論w
もっとマシなことに時間使った方がいいよ
淘汰されずに生き残っているってことはないよ。
インターフェイス不要論とか抽象クラス不要論とか
staticおじさん級に幼稚で非生産的な書生論w
もっとマシなことに時間使った方がいいよ
442デフォルトの名無しさん (ワッチョイ a27c-On6t)
2021/04/27(火) 19:07:16.33ID:pi+NfSuo0 >>440
実装しなくても良いのではなく、interfaceそのものには実装は書けない。必要なメソッドを定義するだけ
良くある例としてIDisposableがあるけど
using(var obj = new TestClass()) {
}
みたいな使い方したければ上記のTestClassにDispose()メソッドを用意してねって事で
class TestClass : IDisposable
{
public void Dispose() {何らかの終了処理}
}
みたいに実装を用意しないとそもそもエラーになる
実装しなくても良いのではなく、interfaceそのものには実装は書けない。必要なメソッドを定義するだけ
良くある例としてIDisposableがあるけど
using(var obj = new TestClass()) {
}
みたいな使い方したければ上記のTestClassにDispose()メソッドを用意してねって事で
class TestClass : IDisposable
{
public void Dispose() {何らかの終了処理}
}
みたいに実装を用意しないとそもそもエラーになる
443デフォルトの名無しさん (ワッチョイ bcb0-On6t)
2021/04/27(火) 19:27:42.16ID:H51IIUOO0444デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/27(火) 19:49:20.62ID:MoRpu0yA0 >>441
ハイ、じゃあメリットは?
ハイ、じゃあメリットは?
445デフォルトの名無しさん (ラクッペペ MM34-/WW/)
2021/04/27(火) 19:53:09.03ID:zk58yDApM >>440
単一継承しか許されないクラスと違い多重継承が許されるインタフェースでは、実体を実装するとC++同様に基底メンバの衝突の問題が発生する
この問題を回避するために実装を派生先に委ねてしまうことにしてインタフェース内では実装は禁止されている
単一継承しか許されないクラスと違い多重継承が許されるインタフェースでは、実体を実装するとC++同様に基底メンバの衝突の問題が発生する
この問題を回避するために実装を派生先に委ねてしまうことにしてインタフェース内では実装は禁止されている
446デフォルトの名無しさん (ワッチョイ 56bd-n2H/)
2021/04/27(火) 20:06:45.34ID:3YkNPMA00 教えて下さい。VBから書き換えて勉強してます。
フォーム1と2があり、それぞれTextBoxが無数にあります。フォーム1→2まで入力をして最後入力した情報を保存したいのですが、どういった形式、方法で保存するのが望ましいですか?
VBは区切り文字を入れ、datファイル1つに2行で書き込んでます。再度呼び出す際にsplitでそれぞれのTextBoxに入れてます。
が、何かのタイミングでTextBoxが増減したとか面倒そうなんですが一般的にはどんな感じでしてるんですかね?
フォーム1と2があり、それぞれTextBoxが無数にあります。フォーム1→2まで入力をして最後入力した情報を保存したいのですが、どういった形式、方法で保存するのが望ましいですか?
VBは区切り文字を入れ、datファイル1つに2行で書き込んでます。再度呼び出す際にsplitでそれぞれのTextBoxに入れてます。
が、何かのタイミングでTextBoxが増減したとか面倒そうなんですが一般的にはどんな感じでしてるんですかね?
447デフォルトの名無しさん (ワッチョイ 7cda-ZDuA)
2021/04/27(火) 20:21:32.78ID:cvesXM3a0 辞書を作りたまえ
DDXって死語け?
DDXって死語け?
448デフォルトの名無しさん (ワッチョイ 92da-eOAD)
2021/04/27(火) 21:09:28.77ID:3TA75SVH0 json
449デフォルトの名無しさん (ワッチョイ ae06-3cD6)
2021/04/27(火) 21:15:25.28ID:YZq/AI+30 自分で使ったことはないけどinterfaceはデフォルト実装持てるようになってなかったっけ?
450デフォルトの名無しさん (ワッチョイ 9ebd-1ACq)
2021/04/27(火) 21:17:18.55ID:AfIT+tVg0 >>449
なってるけどあんま使いたくないな
なってるけどあんま使いたくないな
451デフォルトの名無しさん (ワッチョイ 66ad-KKaU)
2021/04/28(水) 01:26:19.18ID:C+xRRq0o0 まあどうしてもバイナリ互換性を崩したくない時に使うもんだよね
452デフォルトの名無しさん (ワッチョイ c0b5-8KU9)
2021/04/28(水) 02:42:21.15ID:2iApvDDg0 バイナリ互換性って何?
453デフォルトの名無しさん (ワッチョイ 66ad-KKaU)
2021/04/28(水) 03:00:12.55ID:C+xRRq0o0 あるdll(A)にインターフェイスが定義されており、別のdll(B)にその実装があった場合、Aを修正してもBに影響がなければバイナリ互換性があると言う。
たとえばAのインターフェイスに実装を持たないメンバーを追加するとBはコンパイルエラーになってしまうので互換性が崩れる。
Aにメンバーを足す際にデフォルトの実装を書いてあげれば、Bはコンパイルエラーにならない。
破壊的変更にならないようにフレームワークやライブラリを改修したいってのがインターフェイスのデフォルト実装の動機。
たとえばAのインターフェイスに実装を持たないメンバーを追加するとBはコンパイルエラーになってしまうので互換性が崩れる。
Aにメンバーを足す際にデフォルトの実装を書いてあげれば、Bはコンパイルエラーにならない。
破壊的変更にならないようにフレームワークやライブラリを改修したいってのがインターフェイスのデフォルト実装の動機。
454デフォルトの名無しさん (ワッチョイ d863-x7P5)
2021/04/28(水) 03:09:37.20ID:QdyWhJOJ0 まあCOMみたいにナントカ2とかナントカ3とか増えるのもまたアレ感があるんで
455デフォルトの名無しさん (ワッチョイ 3702-6Fjd)
2021/04/28(水) 06:00:02.52ID:Nr1kHF1d0 "IsDisabled": false,
"Name": "Tap",
"Arguments": [
"Keys.O",
"112",
"12600",
"True"
これって、キーボードのOを112ms間押して、12600ms離すって意味だよね?
約24時間、キーボードのPを押す時間も離す時間もランダム(10〜10000msの範囲で)にしたい場合どう入力したらいいの?
あと24時間以内にとある画像を認識した場合、認識したその都度W、S、A、Fを押すという時どう入力したらいいの?
"Name": "Tap",
"Arguments": [
"Keys.O",
"112",
"12600",
"True"
これって、キーボードのOを112ms間押して、12600ms離すって意味だよね?
約24時間、キーボードのPを押す時間も離す時間もランダム(10〜10000msの範囲で)にしたい場合どう入力したらいいの?
あと24時間以内にとある画像を認識した場合、認識したその都度W、S、A、Fを押すという時どう入力したらいいの?
456デフォルトの名無しさん (ワッチョイ d0f2-2tiM)
2021/04/28(水) 11:10:31.63ID:905Z8E/r0 それ何の言語なの?
457デフォルトの名無しさん (ワッチョイ 29ad-iXMK)
2021/04/28(水) 11:34:29.86ID:o3+T5GoG0 json
458デフォルトの名無しさん (ワッチョイ b701-J6CO)
2021/04/28(水) 12:01:20.73ID:k6d6iGQO0 アップキャストを行うと何が嬉しいのでしょう?
インスタンス化は普通
クラスA a = new クラスA();
なのに
クラスB b = new クラスA();
ってする意味です。入れれるのと使えるメソッドはイメージ通りですが、使うタイミングが不明です。
インスタンス化は普通
クラスA a = new クラスA();
なのに
クラスB b = new クラスA();
ってする意味です。入れれるのと使えるメソッドはイメージ通りですが、使うタイミングが不明です。
459デフォルトの名無しさん (ワッチョイ f82d-T6Cp)
2021/04/28(水) 12:12:07.08ID:CT/VgEdf0460デフォルトの名無しさん (ワッチョイ 5368-WHtW)
2021/04/28(水) 15:39:41.26ID:z2mXZLfz0 >>458
foreachでまとめて処理するのに使ったかな。
foreachでまとめて処理するのに使ったかな。
461デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/28(水) 16:32:07.21ID:snAX0stPa >>458
あえて言えばサブクラスで隠蔽(new)を使ってるメソッドやプロパティがあると、
サブクラスのインスタンスをスーパークラスの変数に入れた場合に
動作が変わってくるんだけど、恐らくそういう目的でそれをやるケースは
ほとんどないんじゃないかな。
ほとんどの場合、それは積極的な意味を持たないと思う。
あえて言えばサブクラスで隠蔽(new)を使ってるメソッドやプロパティがあると、
サブクラスのインスタンスをスーパークラスの変数に入れた場合に
動作が変わってくるんだけど、恐らくそういう目的でそれをやるケースは
ほとんどないんじゃないかな。
ほとんどの場合、それは積極的な意味を持たないと思う。
462デフォルトの名無しさん (ワッチョイ 0662-miHF)
2021/04/28(水) 16:58:01.56ID:MNdo4yxk0463デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/28(水) 17:52:40.77ID:snAX0stPa >>462
大阪人「は」人間なので、そんなことは不要。
class Human { }
class Osakan : Human { }
....
var o = new Osakan();
var hs = new List<Human>();
hs.Add(o);
大阪人「は」人間なので、そんなことは不要。
class Human { }
class Osakan : Human { }
....
var o = new Osakan();
var hs = new List<Human>();
hs.Add(o);
464デフォルトの名無しさん (ワッチョイ bcb0-On6t)
2021/04/28(水) 17:59:49.82ID:1SQ+syPV0 アップキャストってそれ自体を目的にするものなのかな?
意識せずに使ってるだけで、見方を変えればアップキャストが目的とも言えるのかもだが
意識せずに使ってるだけで、見方を変えればアップキャストが目的とも言えるのかもだが
465デフォルトの名無しさん (ワッチョイ 0662-miHF)
2021/04/28(水) 19:54:14.62ID:MNdo4yxk0 >>463
それ暗黙的にアップキャストをしてるから不要ではないよね?
質問が、アップキャストの嬉しさについてだから例としては適切だと思うけど
アップキャストとしての嬉しさではなく、
クラスB b = new クラスA();という変数を作る意味があるのかって話なら、大抵は暗黙的なキャストてどうにかなるからやる意味はない
それ暗黙的にアップキャストをしてるから不要ではないよね?
質問が、アップキャストの嬉しさについてだから例としては適切だと思うけど
アップキャストとしての嬉しさではなく、
クラスB b = new クラスA();という変数を作る意味があるのかって話なら、大抵は暗黙的なキャストてどうにかなるからやる意味はない
466デフォルトの名無しさん (ワッチョイ 7d2d-eUQK)
2021/04/28(水) 20:13:50.67ID:VZRYywec0 var s = new LinkedList<char>();
_ = Console.ReadLine().Select(x => s.AddLast(x));
これでsに標準入力が入る気がするのですが実際何も入りません
どうすればいいんでしょうか?
_ = Console.ReadLine().Select(x => s.AddLast(x));
これでsに標準入力が入る気がするのですが実際何も入りません
どうすればいいんでしょうか?
467デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/28(水) 20:44:33.40ID:snAX0stPa ポカミスだと思うけど、Selectはシーケンスを返すだけだよね。
Selectが実行された時点ではstringの中のcharを列挙したりしない。
Selectが実行された時点ではstringの中のcharを列挙したりしない。
468デフォルトの名無しさん (ワッチョイ 7d2d-eUQK)
2021/04/28(水) 20:50:43.89ID:VZRYywec0 >>467
var s = new LinkedList<char>();
_ = Console.ReadLine().Select(x => s.AddLast(x)).Count();
こうですね...
遅延評価にハマりました
ありがとうございました
var s = new LinkedList<char>();
_ = Console.ReadLine().Select(x => s.AddLast(x)).Count();
こうですね...
遅延評価にハマりました
ありがとうございました
469デフォルトの名無しさん (ワッチョイ 7d2d-eUQK)
2021/04/28(水) 21:04:25.17ID:VZRYywec0 var s = new LinkedList<char>(Console.ReadLine());
というかこれで良かったみたい
というかこれで良かったみたい
470デフォルトの名無しさん (ワッチョイ f82d-T6Cp)
2021/04/28(水) 21:35:36.25ID:CT/VgEdf0 Select(x => s.AddLast(x))
はやっちゃ駄目だろう
はやっちゃ駄目だろう
471デフォルトの名無しさん (ワッチョイ 38e6-4uvq)
2021/04/28(水) 21:38:57.70ID:ohiKXwgS0 ToLinkedListを実装するのが絶対的正義
472デフォルトの名無しさん (ワッチョイ c0b5-8KU9)
2021/04/28(水) 21:54:47.35ID:2iApvDDg0473デフォルトの名無しさん (ワントンキン MM3b-D+2G)
2021/04/28(水) 22:01:00.21ID:N4TU29msM 階層構造を持たせられる
項目の追加が楽
シリアライザが充実している
方言の多いCSVと違い、仕様が統一されている
項目の追加が楽
シリアライザが充実している
方言の多いCSVと違い、仕様が統一されている
474デフォルトの名無しさん (ラクッペペ MM34-x7P5)
2021/04/28(水) 22:13:27.34ID:RJLrCSIQM CSVの方がよさそうならCSVって回答するけど
このスレくらいの質問者だと背景や用途を喋らないので最大公約数的回答になる
このスレくらいの質問者だと背景や用途を喋らないので最大公約数的回答になる
475デフォルトの名無しさん (ワッチョイ 9b5f-On6t)
2021/04/28(水) 22:18:25.06ID:SKK3EpB30 俺はjsonの方が好きだからjsonを使う
476デフォルトの名無しさん (アウアウエー Sa6a-hbXt)
2021/04/28(水) 22:33:03.67ID:roTNJzpQa CSVとかトラブル製造機じゃん
477デフォルトの名無しさん (ワッチョイ c0b5-8KU9)
2021/04/28(水) 22:43:14.57ID:2iApvDDg0 >>473-476
ありがとうございます
なるほど、XMLでも階層構造は持たせられるけど仰々しいですよね
ああ、あれをシリアライザって呼ぶんですね
昔、一回JavaだかでJSON読んでみて満足した記憶があります
GW明けの使い捨てのスクリプトではJSONで書いて読んでみます
ありがとうございます
なるほど、XMLでも階層構造は持たせられるけど仰々しいですよね
ああ、あれをシリアライザって呼ぶんですね
昔、一回JavaだかでJSON読んでみて満足した記憶があります
GW明けの使い捨てのスクリプトではJSONで書いて読んでみます
478デフォルトの名無しさん (ワッチョイ 87e3-On6t)
2021/04/29(木) 00:09:54.46ID:uAu0lWj/0 CSVは方言多すぎてそこらのパーサー使うの怖いわ
479デフォルトの名無しさん (テテンテンテン MM34-SWap)
2021/04/29(木) 04:38:08.16ID:mJShgxJuM unityでc#ぼちぼち覚えてきたけどc#って何ができるんや
480デフォルトの名無しさん (スププ Sd94-WHtW)
2021/04/29(木) 05:53:27.68ID:Pwf8A7W+d >>479
何でも出来るさ。ライブラリが揃えば。
何でも出来るさ。ライブラリが揃えば。
481デフォルトの名無しさん (ワッチョイ 972c-uCoU)
2021/04/29(木) 05:59:02.89ID:RErNGDPY0 [ {"a" : "1"}, {"b" : "x"} ]
a列のみとか、b列のみしかないJSON が、CSV では、
a,b
1,
,x
a列のみとか、b列のみしかないJSON が、CSV では、
a,b
1,
,x
482デフォルトの名無しさん (ブーイモ MM5e-i9BS)
2021/04/29(木) 09:03:47.11ID:lalb0v+EM >>481
わからん
わからん
483デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/29(木) 09:48:46.58ID:IBkpf/CX0484デフォルトの名無しさん (アウアウエー Sa6a-hbXt)
2021/04/29(木) 09:55:18.98ID:gug0J2oaa 楽じゃない
485デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/29(木) 10:10:10.40ID:IBkpf/CX0486デフォルトの名無しさん (スププ Sd70-5v27)
2021/04/29(木) 10:27:55.67ID:EFYWvXghd 楽じゃないな。
きちんとした形してるなら階層持ってるデータのほうがマシ。
正規化するよね?常識的に考えて。
きちんとした形してるなら階層持ってるデータのほうがマシ。
正規化するよね?常識的に考えて。
487デフォルトの名無しさん (ワッチョイ 6cac-Tv8Z)
2021/04/29(木) 10:28:53.11ID:qu9Hv39D0 jsonはそのままクラスに持たせられるから便利
あとパースできない読めないってことが少ない
xmlもcsvと比較するとjsonに近い
csvはそのまま行と列のデータだからDBにいれるだけなら悪くないしそれならサイズ的に軽い
改行ダブルクォーテーションとかあと上で言う方言とかあるから、なかなかトラブルを消しきれないこともある
Excelでもよみたいとか要件があるならcsvかな
あとパースできない読めないってことが少ない
xmlもcsvと比較するとjsonに近い
csvはそのまま行と列のデータだからDBにいれるだけなら悪くないしそれならサイズ的に軽い
改行ダブルクォーテーションとかあと上で言う方言とかあるから、なかなかトラブルを消しきれないこともある
Excelでもよみたいとか要件があるならcsvかな
488デフォルトの名無しさん (スププ Sd70-5v27)
2021/04/29(木) 10:37:53.58ID:EFYWvXghd >>487
エクセルで読ませたら先頭のゼロ消すやつとか日付のフォーマット変えるやつとか、ハイフンがついた数字を日付にするやつが現れがちなのですごく嫌かな。
エクセルで読ませたら先頭のゼロ消すやつとか日付のフォーマット変えるやつとか、ハイフンがついた数字を日付にするやつが現れがちなのですごく嫌かな。
489デフォルトの名無しさん (ワッチョイ 9b02-wQF1)
2021/04/29(木) 10:49:23.57ID:PVZP3gNe0 目的の違うデータ形式を個々人で違う基準で評価してあーだこーだ言っても仕方ないのと違うか。
ただ。
json 形式の意味があるのか分からない深い階層を持つデータに対応するクラス作ってたときは本気でイヤになったけど。w
きちんと正規化して意味のない階層だとかを排除してくれるなら扱いやすい方式だとは思う。 < json
ただ。
json 形式の意味があるのか分からない深い階層を持つデータに対応するクラス作ってたときは本気でイヤになったけど。w
きちんと正規化して意味のない階層だとかを排除してくれるなら扱いやすい方式だとは思う。 < json
490デフォルトの名無しさん (ワッチョイ c04f-3cD6)
2021/04/29(木) 11:15:55.38ID:Ta5ufSky0 csvのrow/columnをjsonで表現できるが逆はできないからcsv⊂jsonだけど
大量のデータを扱うにはjsonは冗長だよな。
大量のデータを扱うにはjsonは冗長だよな。
491デフォルトの名無しさん (ワッチョイ 92da-eOAD)
2021/04/29(木) 11:30:58.28ID:b5j8CNbM0 jsonで大量データだと、容量削減のために要素名を変数1文字とかやりだすしな
492デフォルトの名無しさん (アウアウエー Sa6a-hbXt)
2021/04/29(木) 11:40:51.69ID:gug0J2oaa CSVよりJSON Linesですわな
493デフォルトの名無しさん (テテンテンテン MM34-D+2G)
2021/04/29(木) 12:43:50.51ID:Gvkp+FCpM494デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/29(木) 12:52:51.92ID:IBkpf/CX0 >>493
デカイ階層データで気になるのは処理速度だから圧縮されると余計時間かかる
デカイ階層データで気になるのは処理速度だから圧縮されると余計時間かかる
495デフォルトの名無しさん (アウアウウー Sa83-Im0W)
2021/04/29(木) 13:06:57.09ID:C0wDcO7Sa シリアル化方法(CSVをシリアル化とは普通は呼ばない気がするけど便宜上)を選択する上での
評価基準としては、
(1) 可搬性
(2) 対応するデータ構造の自由度
(3) 変換速度
(4) バージョン耐性
(5) テキストとしての可読性(これが重要なケースはほとんどないと思うが...)
こんなとこかね。
CSVで評価できるのは(1)ぐらいなので積極的に使う理由はないね当たり前だけど
評価基準としては、
(1) 可搬性
(2) 対応するデータ構造の自由度
(3) 変換速度
(4) バージョン耐性
(5) テキストとしての可読性(これが重要なケースはほとんどないと思うが...)
こんなとこかね。
CSVで評価できるのは(1)ぐらいなので積極的に使う理由はないね当たり前だけど
496デフォルトの名無しさん (アウアウエー Sa6a-hbXt)
2021/04/29(木) 13:39:52.49ID:gug0J2oaa エクセルおじさん用のデータ交換フォーマットと割り切ったほうがいい
497デフォルトの名無しさん (ワッチョイ f0ad-5v27)
2021/04/29(木) 13:47:05.06ID:MqlSo6MR0 >>494
展開時間かかる代わりにアクセス時間が相当減るから、変わらんか早くなるよ。
展開時間かかる代わりにアクセス時間が相当減るから、変わらんか早くなるよ。
498デフォルトの名無しさん (ワッチョイ bcb0-On6t)
2021/04/29(木) 14:36:43.78ID:t8Qsv63f0 用途次第だけどjsonのままDBにつっこめばいいじゃん()
499デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 14:44:24.17ID:hnM2dBp9M >>497
そんなのCPUとI/O次第としか言えん
そんなのCPUとI/O次第としか言えん
500デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/29(木) 15:11:48.04ID:IBkpf/CX0 >>498
え?どうやって?
え?どうやって?
501デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/29(木) 15:19:29.90ID:IBkpf/CX0 結局、データベースに入れる運命なのに今の時代に階層データにするやつなんか頭悪いんだよ
502デフォルトの名無しさん (ラクッペペ MM34-/WW/)
2021/04/29(木) 15:28:12.72ID:zh8QYWZnM いまどきはどんなDBMSでもjson形式のデータインポートくらい出来るだろ
LINQでクエリ走らせるだけだろ
LINQでクエリ走らせるだけだろ
503デフォルトの名無しさん (ワッチョイ c04f-3cD6)
2021/04/29(木) 15:32:29.05ID:Ta5ufSky0 >>496
じゃあjsonはテキストエディタおじさん用か。
じゃあjsonはテキストエディタおじさん用か。
504デフォルトの名無しさん (スププ Sd70-5v27)
2021/04/29(木) 16:10:49.54ID:1OxYHKr7d505デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 16:16:56.06ID:4wXFV0waM >>504
いや、リードが速きゃ圧縮してなくても速いわけだが…
いや、リードが速きゃ圧縮してなくても速いわけだが…
506デフォルトの名無しさん (ワッチョイ bcb0-On6t)
2021/04/29(木) 16:48:57.18ID:t8Qsv63f0 >>500
もう言われてたけどjson型サポートされてるRDBMSもある。触ったことないのでパフォーマンスは知らぬ
mysql,PostgreSQLはカラムの型としてサポート済で、oracleとsqlserverは文字列型で格納して制約や関数でjsonとして扱う感じなのかな?
PostgreSQLだとjsonのキーに対してもインデックス作れるんだね。便利そう
もう言われてたけどjson型サポートされてるRDBMSもある。触ったことないのでパフォーマンスは知らぬ
mysql,PostgreSQLはカラムの型としてサポート済で、oracleとsqlserverは文字列型で格納して制約や関数でjsonとして扱う感じなのかな?
PostgreSQLだとjsonのキーに対してもインデックス作れるんだね。便利そう
507デフォルトの名無しさん (ワッチョイ 8ea7-BCeV)
2021/04/29(木) 17:02:11.90ID:IBkpf/CX0 激レアケースを例にあげて自分の失策を正当化するのは良くないぞ
今の時代にデータベースに入れにくいデータ構造にしたのは明らかにバカ
それがわからないならお前らも結局時代に対応できないんじゃんwぷw
今の時代にデータベースに入れにくいデータ構造にしたのは明らかにバカ
それがわからないならお前らも結局時代に対応できないんじゃんwぷw
508デフォルトの名無しさん (ワッチョイ d863-x7P5)
2021/04/29(木) 18:39:45.09ID:Yt1JhF/90 1ビット脳の生活って楽しそうだよね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★8 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 高市首相が異例の“買春行為の罰則化の検討”に言及…世界では“買う側”に罰則を科すのが先進国のスタンダード ★2 [樽悶★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【ガチ正論】一般人「中国に規制制裁されて、『中国ムカつく』じゃなくて矛先が『許さんぞ高市』になってる奴、頭おかしいの?」 ★2 [153490809]
- ケーキってどの店で食べても味一緒じゃん?
- 中国「痛撃を加える」ワイ「うわあぁ!何が来るんだ?!」中国「パンダ」 [308389511]
- 陸上自衛隊員(43)逮捕 赤坂ライブハウスの出演女性刺傷 殺人未遂容疑 [377482965]
- 鼻糞の残糞感がずっと消えない
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
