X



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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2020/05/27(水) 10:14:39.92ID:wHIUQvvs
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://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/index
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
2020/09/10(木) 14:39:00.62ID:jhilEFNS
>>804
日本語でおk
2020/09/10(木) 15:11:13.13ID:kNAPgoJG
>>805>>806
private int _value1;
getsetの中身書くときはこうやってバッキングフィールド作ってるんだがそれを自動生成してもらいたいって事
_value1指定じゃなく下みたいに書ければ最高なんだが

public int Value1
{
get => AutoField;
set
{
if (value == AutoField) return;
AutoField = value;
OnPropertyChanged(AutoField);
}
}
2020/09/10(木) 15:19:22.13ID:8iTjeGBd
複数プロパティがあったら読みづらそう
2020/09/10(木) 15:24:21.99ID:liDa04ql
C#で行けてるダッシュボードライブラリありますか?
2020/09/10(木) 16:03:46.25ID:oRytwQm5
>>807
それの何が嬉しいの?
2020/09/10(木) 16:40:27.15ID:kNAPgoJG
>>810
バッキングフィールドのコーディングを省ける
別のフィールドを参照するミスを無くせる
2020/09/10(木) 16:47:07.58ID:Xme5aVsY
>>807
Kotlinのimplict backing field的なものだと思うけどC#にはない
https://github.com/dotnet/csharplang/blob/master/meetings/2020/LDM-2020-04-01.md#field-keyword-in-properties

どうしてもやりたければ自分でAttributeを書けばできるんじゃないかな
2020/09/10(木) 17:02:36.52ID:yDXd1gWF
code generatorが来たら自分で生成するコード書いときゃ実現できる話かな?
2020/09/10(木) 17:46:15.27ID:+mPYCvwp
暗黙的に変数が定義されちゃうのはよくないと思うが
getterとsetterから見えれば十分というケースも多いことは確かなので

int Hoge
{
  var bf;
  get {retun bf;}
  set {bf = value;}
}

こういう特殊なローカル変数が定義できたら便利かもしれないね
2020/09/10(木) 17:50:39.83ID:+mPYCvwp
ちなみに、VBはインスタンスと同じ寿命のローカル変数が定義できるけど
>>814みたいなことはやっぱりできなかったはず。
2020/09/10(木) 18:23:32.80ID:sC8DJVf9
未確認飛行のブログでも同じことが触れられてたな

↓の一番下
ttps://ufcpp.net/blog/2020/4/pickuproslyn0408/

この記事見る限りだと将来的にも仕様が追加されることはなさそう
2020/09/10(木) 18:25:49.14ID:AEy96ITZ
そんなどうでもいい機能よりさきに構造体のprivateコンストラクタよこせや
2020/09/10(木) 18:43:00.82ID:oRytwQm5
まあSourceGeneratorでやってくれって話だな
2020/09/10(木) 18:46:46.94ID:kNAPgoJG
まあマクロが実装されればこれに限らずあらゆる点は解決されるんだがなぁ
2020/09/10(木) 18:53:36.61ID:oRytwQm5
>>819
SourceGeneratorじゃなくて?
2020/09/10(木) 19:43:38.93ID:kNAPgoJG
>>820
SourceGeneratorって要するにマクロでしょ
2020/09/10(木) 20:47:54.12ID:C5BpJj/6
全然違うよw
あれをマクロというのはかなり無理がある
コンパイラをコードから機械語に変換するだけのマクロでしょとか言う?
2020/09/10(木) 20:51:45.01ID:C5BpJj/6
C++のtemplateを要するにマクロでしょ、で済ませる?
generatorはtemplateより多彩なことができるのにマクロに含まれるの?
2020/09/10(木) 20:55:09.46ID:g9owWbpq
またくだらないマウント合戦始めた
2020/09/10(木) 22:28:11.10ID:oRytwQm5
まあマクロって言葉しか知らなかったんやろな
2020/09/10(木) 22:37:49.44ID:Z2xPjLcN
構文解析の結果受けてソース生成できる
付随されてるコメントの内容すら拾えるから今回みたいな例なら目的のプロパティに特定のコメント付いてたらソース生成するとかもできる
まぁ特定の属性が付いてたら、って条件のほうが良いとは思うけど
2020/09/10(木) 22:43:20.64ID:Z2xPjLcN
最終的にどんな実装になるかわからんが高機能な分、扱いはめんどくさくなると思うよ
defineマクロみたいなのを想像してたらたぶんこんな複雑なの求めてねーよ!ってなると思う
コピペに近いようなコードを数百個単位で記述しなきゃならんような状況なら大活躍すると思う
2020/09/11(金) 01:52:09.21ID:4BwL6K3k
久々にC#がトレンド入り記念ぱぴこ

【C#】インターフェイスの利点が理解できない人は「インターフェイスには3つのタイプがある」ことを理解しよう
https://qiita.com/yutorisan/items/d28386f168f2f3ab166d
2020/09/11(金) 10:20:23.18ID:KNnaGpRD
>>828
それぞれ異なるレイヤーのものを3つまとめて併記されるとモヤるな

>「インターフェイスには目的に応じて3つのタイプがある」
>1. 疎結合を目的としたインターフェイス
>2. クラスの機能を保証することを目的としたインターフェイス
>3. クラスへの安全なアクセスを提供することを目的としたインターフェイス
2020/09/11(金) 11:02:48.67ID:Agc0sYKy
記事読まずに(笑)批判するけど、たぶん初心者にいきなり抽象論で説法するタイプの記事なんだろうね
初心者は抽象論の記事なんか読まなくていいよw
時間の無駄だから

抽象論は後回しにして実際の使われ方を見た方が100倍効率的
抽象は具象からの演繹なんで具象をよく知ってる人の方が理解が早いし、
具象を知らない状態で抽象が理解できないとしても恥じることない
これも抽象論だけど
2020/09/11(金) 11:25:10.88ID:/NrwCQnT
>>830
自分自身への見事なブーメランになってるぞw
2020/09/11(金) 11:27:01.28ID:/NrwCQnT
>>829
3つのタイプというから語弊があるけど、3つの目的(重なることもある)と読み替えれば、そんなに悪くないと思う
2020/09/11(金) 11:58:34.46ID:Y/Y0LcuP
実際のところインターフェース独自の利点なんて無限に引っ付けられるってところだけじゃないの?
継承と共通の利点なら沢山あるけどさ
2020/09/11(金) 12:19:35.54ID:/cTVelwp
インターフェイスとか必要ないと確信してる
マジで要らない
2020/09/11(金) 12:49:51.48ID:KNnaGpRD
>>832
抽象度の異なるものをごちゃ混ぜにしても平気な神経って結構やばいで

1はインターフェースの目的(存在意義)
2はその目的を実現するための実装ルール
3はインターフェースを活用したパターンの一例

意図したのかはわからないけど抽象度の高い順に並んでる
下位の目的は上位の目的を満たした上でなければ成り立たないので
重なることがあるんじゃなくて常に重なってる
2020/09/11(金) 14:00:10.01ID:Agc0sYKy
そんなことないと思うよw
抽象論好きな人は疎結合だの依存性がどうのにやたらこだわるけど(理論として「美しい」からねw)
実際の現場ではそんな目的でも何でもなくむしろどーでもいいことの方が多い。
2020/09/11(金) 14:04:36.27ID:y/Gz+a0e
>>828
インターフェースはインターフェースはいいとしても、その例で示してるクラスは記事削除できるような設計が単におかしいとしか思わなかった
2020/09/11(金) 14:28:32.12ID:rnsLXOV6
日本語でおk
2020/09/11(金) 15:26:57.22ID:qEgHhc43
その記事書いた奴は基底クラスとか継承とか理解してないとしか思えん
2020/09/11(金) 16:35:17.20ID:rmY/ILRi
>>839
継承は単なる実装共有の手段であり、インターフェイスを定義するものではない、というかぶっちゃけ無くてもいい
っていうのが今時のオブジェクト指向なんで、そこは的外れ
841デフォルトの名無しさん
垢版 |
2020/09/11(金) 16:37:07.75ID:pFVcr0yG
Diamondだね
2020/09/11(金) 16:49:02.30ID:JNr8vBI0
抽象的な話を理解できない人でもインターフェースを使えば無駄な依存性が途切れてビルドが速くなると言えばそれはイイネと取り組んでくれる
それを聞いてもまだ拒否するやつは長いビルド中に休憩してるサボリ魔とみなしてよい
2020/09/11(金) 17:03:01.47ID:wYjppPp4
C++なら分かるけどC#で長いビルド時間って何百万行のコード?
10万行程度だと一瞬なんだけどなあ
2020/09/11(金) 17:09:53.59ID:KNnaGpRD
インターフェース使わないと実行時のオーバーヘッドが減って速くなると言えばそれはイイネと取り組んでくれる

かもw
2020/09/12(土) 17:32:41.75ID:NisQsc7a
インターフェイスはコンテナに突っ込む時の取っ手
846デフォルトの名無しさん
垢版 |
2020/09/12(土) 18:27:01.14ID:5DtQrmwa
見てみたけど、1と2は一緒だし、3は間違えてるってところだろう
2020/09/12(土) 18:54:40.33ID:iYw8cktk
自分の頭で考えて3つにまとめたことは評価できるけど中身がね・・・

>なんと、読み手が勝手に人の書いた記事を消せてしまいます。
消せてないからw

>自分の記事に自分でLGTMできちゃいます。
LGTMできちゃってないからw

>なぜこのような問題が起きるのかというと、ズバリ「QiitaPostクラスにアクセスするための適切なインターフェイスが定義されていないから」に尽きると思います。

問題起きてないからw
2020/09/12(土) 18:58:08.91ID:leYa1Fk6
おじさんLTCMしか知らん
20年以上前に破綻したけど
2020/09/13(日) 02:12:35.92ID:S9IYhVJO
webアプリの勉強がてらwinformsで作ったアプリをwebアプリに置き換えてみようかと思ったんですけどASP.NETって需要あるのかな
2020/09/13(日) 02:26:54.88ID:WHRl74f1
ASP.NETと言っても色々ある
国内でASP.NETというと一般的には WebForms (Classic ASP.NET)のことを指すことが多いけど、これは.NET5で廃止される
そして今後はASP.NET Coreに一本化されるんだけど、国内ではほとんど使われていない
2020/09/13(日) 02:28:45.05ID:B0Qk5cLa
>>850
ほとんど使われていないってどこ情報?そしてASP.NET MVCについて全く触れていないのはなぜ?
2020/09/13(日) 07:10:27.23ID:3Iu47hUo
winformsで勉強してもASP.NETとは殆ど関係無いからなぁ
webアプリ作りたいなら、素直にPHPなどのサーバーサイド側の言語と
フロントエンド側のjavascript等を勉強した方がいいと思う
windowsアプリもelectronなどで作った方が今は良いかも知れない
2020/09/13(日) 10:15:51.35ID:S4pGSahN
windowsのデスクトップアプリをelectronはデプロイが面倒でのう
854デフォルトの名無しさん
垢版 |
2020/09/13(日) 10:20:37.14ID:XLuhIw+a
安全性等、ライトウエイト言語勢に比べてASP.Net coreにアドバンテージがある点も多くあるけどさ
ただ、今から始めるもんじゃないわ
2020/09/13(日) 10:40:37.32ID:B0Qk5cLa
いやPHPはねーよ…
2020/09/13(日) 10:42:43.96ID:d/ryA4WH
ASP.NET MVCやASP.NET Core MVCは
Webアプリのフレームワークとしてはオーソドックスでわかりやすいので
C#理解してる人がWebアプリの作り方を学ぶ目的なら一番いい

業務アプリとしての需要はそこそこあるし
他言語でWebアプリ作る場合でも基本は同じだから無駄にはならないよ

他の言語、特にJavaScriptとかスクリプト系の言語を
C#と同じレベルで使えるならそっちで学ぶのもあり
2020/09/13(日) 13:14:52.60ID:ypa++uC2
世界的に見ると業務システムでのASP.NET(Core含む)の採用は実はかなり多いと聞いたことがあるがソースがねえんだよな
WEB系では複雑怪奇なドメインを安全確実に実装するという需要が少ないからかスクリプト言語ばっかり
858デフォルトの名無しさん
垢版 |
2020/09/13(日) 13:44:19.92ID:BWD1TNNw
プログラミングの発想に
マイクロソフトも使ってる大麻
そのオイルのユーザーレビュー特集 http://shop-rakuten-ch.2chblog.jp/archives/6406884.html

こちらは1万円で買える Windows10搭載ノートパソコン
http://shop-rakuten-ch.2chblog.jp/archives/7030035.html

フリーウェアやシェアウェア、キャリアアップなどにご利用ください
日本も解禁しましょう
2020/09/13(日) 13:46:43.05ID:7u18v5bo
プマそ、まで読んだ
2020/09/13(日) 14:09:19.50ID:2mV3y2ns
C#は言語としては好きだけどASP.NET COREはそんなに好きじゃない
JavaのJSFのようなエンタープライズフレームワークが欲しい
2020/09/13(日) 15:35:08.60ID:B0Qk5cLa
>>860
なんで好きじゃないの?
2020/09/13(日) 15:47:30.54ID:bi+be7V2
>>861
全体的に嫌いというわけではなくビューエンジンが微妙ってカンジだな
部分ビューの非同期更新とか面倒くさいじゃん
2020/09/13(日) 17:00:13.32ID:B0Qk5cLa
>>862
それがJSFだとどう改善されるの?
2020/09/13(日) 17:04:44.85ID:zkzBJL4I
>>863
面倒な手続きなく実装できるようになる
2020/09/13(日) 17:11:41.66ID:Xp7zp8nz
JSFってJavaBeans使うんだっけ。
プロパティが反映されなくて調べまくったらgetterのスペルミスというオチだった思い出。
2020/09/13(日) 19:19:02.80ID:B0Qk5cLa
>>864
具体的には?
867デフォルトの名無しさん
垢版 |
2020/09/13(日) 19:46:19.11ID:e9EK7dt7
面倒とかいってるから日本は貧乏くさいウェブサイトしかないのかな
2020/09/13(日) 20:08:48.26ID:X0wiqlNd
>>860
じゃあ初心に戻ってアセンブラは?
2020/09/13(日) 21:28:56.21ID:3Iu47hUo
>>855
いやASP.NETなんかより遥かに需要も利用もされているよ
pythonとか言う人いるけどwebで開発だと微妙だしな
node.jsでexpressとかもあるけど、まぁPHPが一番無難かと思うよ
2020/09/13(日) 22:21:31.38ID:D3NoWaWo
需要があるから良いものってわけでもない
2020/09/13(日) 23:26:29.40ID:B0Qk5cLa
>>869
正気かよ…
2020/09/14(月) 08:52:11.41ID:h4D3dIgF
PHPってExcel方眼紙のようなもの
2020/09/14(月) 11:51:52.79ID:3/OLw0Bw
神PHPもあるのかな
2020/09/14(月) 22:25:18.13ID:kZod4u98
でも田舎土方はPHPばっかりな事実
2020/09/14(月) 22:43:22.93ID:zcgwn94o
土方目指すんならPHPでいいんじゃね?
2020/09/15(火) 00:16:30.29ID:2odR6mEp
VB6でもやってろ禿
2020/09/15(火) 01:04:55.79ID:uGwrRbLz
何回も出た話題なのかもしれんけどASP.NET とCOREの違いがわかりません
COREは上位互換なの?
878デフォルトの名無しさん
垢版 |
2020/09/15(火) 03:54:59.13ID:pnTNLJvZ
>>876
わたしはハゲとらん、アホ
2020/09/15(火) 10:14:14.37ID:TyfOfY37
ハゲてるのでVB6やってきます
2020/09/15(火) 10:14:30.69ID:QmZZ3Onl
>>877
ASP.NET Coreは.NET Coreへの移行にあわせて作り直した新しいWebフレームワーク
WebFormsは完全に廃止されているので、業務系にとっては名前が似ているだけで概念レベルから根本的に全くの別物と思っておけばよい
なおASP.NET MVCをベースにしてはいるがMVCとも互換性はない
881デフォルトの名無しさん
垢版 |
2020/09/15(火) 10:33:20.79ID:nbPbSfcD
>>879
VB6やるからハゲるのだ
2020/09/15(火) 12:04:51.67ID:IfSXNbex
>>877
ASP.NET
.NETベースのWebフレームワーク・関連技術の総称

ASP.NET Web Forms
Winformsを使ったデスクトップ開発に近い感覚でWebアプリを作れるようにしたフレームワーク
ビジュアルデザイナでFormを作ってそのFormに紐づくコードビハインドにイベントハンドラを書いていくスタイル
一般的なWebフレームワークとは違って独特

ASP.NET MVC
Railsを参考に作られたMVCアーキテクチャのWebフレームワーク
他言語の一般的なWebフレームワークと類似してるがWindows/IIS上でしか動かない

ASP.NET Core MVC
ASP.NET MVCを.NET Coreベースで作り直してマルチプラットフォーム化したもの
Windows/IIS上だけでなく、LinuxやmacOS、NginxやApache上でも動く

MVCとCore MVCの細かい違いはリファレンス見て
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/choose-aspnet-framework?view=aspnetcore-3.1
2020/09/15(火) 12:24:07.25ID:uGwrRbLz
>>880 >>882
どうもありがとうございます
Apacheで動かそうとしたら.NET CORE一択なんですね
884デフォルトの名無しさん
垢版 |
2020/09/15(火) 12:46:49.79ID:7m8e8jTL
Apacheをリバースプロキシに使うのは、何気にASP.Net Coreとの相性がいいな
特にフリーウエアでクッキーベースのロードバランサを作れるのは珍しい
2020/09/15(火) 14:24:19.34ID:5uVwOM3u
リバースプロキシ・ロードバランサーと言えば、Nginx
2020/09/15(火) 14:32:02.93ID:dHOvpMD8
昨日までthis付ける派だったんだけど
新しくベクトル系の構造体作ったらthis this thisthis...って並んでて発狂しそうになった

xの一文字を指定する為にthis.の五文字打つのが凄まじく無駄な気がしてならない
悔い改めるべきなのかな…
2020/09/15(火) 15:20:03.22ID:DLlVy6Pm
>>882
この乱立したゴミフレームワークひでえな
2020/09/15(火) 15:23:25.82ID:0YuOoQv0
合理性は?と自問して答えられないようなのはただの思い込みだろうね。
明示的にthisを付けるべき場面がそうそうあると思えない
2020/09/15(火) 17:37:50.28ID:dHOvpMD8
>>888
this.と打つ分だけ仕事してる感が増す
これは結構大きいと思う
2020/09/15(火) 18:03:53.96ID:MkCz/lj0
>>889
数万行のコード保守すること考えたら5文字の違いは大きいよな!
…つまらんことにこだわるのは他で成果が出せないからだ
2020/09/15(火) 18:26:46.69ID:QeyXg+3+
コードクリーンアップで全箇所にthisを自動でつけるのできなかったっけ?
this消すはできた気がするけど
2020/09/15(火) 19:19:35.90ID:2odR6mEp
なにthisってんの
893デフォルトの名無しさん
垢版 |
2020/09/15(火) 19:38:44.93ID:7m8e8jTL
>>885
ASP.Net Coreのサイトでロードバランシングしたかったら無料版じゃできないぜ
2020/09/15(火) 21:06:33.62ID:U3NCutqA
>>893
そうなん?
2020/09/16(水) 00:29:08.20ID:lvCIVXxG
>>885
これいつも読み方忘れる
2020/09/16(水) 00:30:44.63ID:ExNaveLa
>>893
え?
2020/09/16(水) 08:27:32.45ID:yr1DUgCH
>>895
にんじんX(違
2020/09/16(水) 08:29:23.52ID:Z3vQBqB4
VB6/WinRT
2020/09/16(水) 08:57:50.10ID:DLCjHrlg
>>895
んぐんぐ
2020/09/16(水) 14:07:28.69ID:vxKpYawZ
初めて.NETCoreで作ったんだけどビルドすると単純なコンソールアプリなのにexeのファイルサイズが170KBくらいあるのはどういうこと?
2020/09/16(水) 14:38:31.56ID:6Cheug9B
>>900
ランタイムにあたる部分を内包しているから
無駄が多いとか思ってもMSがそう作っているんだからどうしようもない
2020/09/16(水) 14:49:33.33ID:AOSIq8NT
最近覗いてみたソースがこんな風に都度新しく生成して返すようになってたんだけどさ

return new float3(l.x + r.x, l.y + r.y,...)

こういうのって直接フィールド書き換えるよりパフォーマンス良かったりするの?
2020/09/16(水) 15:14:47.83ID:t9nFTYZt
生成したオブジェクトをどう使うか分からないから回答できません。

次の方どうぞ
2020/09/16(水) 15:18:23.06ID:BkyZoSl2
値型だしどうせコピーするんだからどっちでもええやろ
905デフォルトの名無しさん
垢版 |
2020/09/16(水) 15:44:35.74ID:wZC9/K7G
C#なら普通
レス数が900を超えています。1000を超えると表示できなくなるよ。