ふらっと 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/07/11(水) 20:39:44.95ID:sCxl2UHN0
>>549
このレスからにじみ出る頭のよさ
2018/07/12(木) 00:31:45.14ID:07VYm5500
var すら毛嫌いされちゃうとこなのでコードレビューなんかやったらストレスで禿げるわ
2018/07/12(木) 01:31:48.84ID:Mt10qC0c0
それぞれのコーディング規約に従えばいいんじゃないですか
2018/07/12(木) 02:20:50.58ID:uvVknaw70
>>555
さすがに>>550のコードは例としてはあれだが
C#でforの中でしか使わん変数をforの外で定義しろと?
どんなメーカーだよ。つかメーカーってなんのメーカーだよ
2018/07/12(木) 05:53:25.42ID:ddTdn7l60
C#8のデフォルトインターフェースメソッドって、
インターフェースでほぼコーディングを終わらせてしまうことも可能、
って解釈で良いのかな。
2018/07/12(木) 06:34:40.79ID:0C7UQQhF0
クエリとlinqとlinqToXmlの違いがなにかよくわからないです
これらはなんですか

クエリはfromやselectとか思ってたのですが
"from a 〜 select a"も "XXXXXX.Select(〜)" の両方ともクエリ?

linqの中にクエリがある感じですか?
用語の違いを知りたいです
2018/07/12(木) 06:53:16.73ID:TSQ/qQegM
>>561
C組込上がりが閑職で社内システムを任されるとありそう

関数の先頭で宣言しろ宣言
2018/07/12(木) 07:09:00.83ID:8dshyEbGd
>>563
メソッド式とクエリ式でググれ
2018/07/12(木) 07:38:41.95ID:VF8Jnm1rH
NumericUpDownで、ホイール下回転で値をUpさせる方法ないですか?
2018/07/12(木) 08:08:47.97ID:CB78gZS5M
>>562
ライブラリ実装者が破壊的変更の影響を最小化
細かいパフォーマンスを最適化
するためのものなので乱用しないで
拡張やダイヤモンド継承による名前の重複など問題はまだ残ってる
2018/07/12(木) 09:04:57.23ID:FtAr8eR70
>>553
管理者のパスワードって、単なるスーパーユーザーのパスワードのことだろきっと
2018/07/12(木) 12:49:07.46ID:96DaRN210
だったらなんなんだよ
570デフォルトの名無しさん (ワッチョイ 11a5-kMcx)
垢版 |
2018/07/12(木) 15:12:12.67ID:iIGcGb6Z0
久しぶりにまたC#勉強してみようかと思ってるんだけど
最近の動向ってどうなの?雑誌でもあまり見かけなくなったけど
2018/07/12(木) 15:52:53.09ID:Yg7MNvpld
さあ、プログラミングの雑誌読んでる奴は最近少ないでしょ
プログラミング情報は基本ネットだからな
572デフォルトの名無しさん (ワッチョイ 89d3-Y8gp)
垢版 |
2018/07/12(木) 16:16:23.83ID:S+gZjDN60
>>570
マイクロソフトはAndroidのアプリC#で作る環境起こしたり結構力入れてる
573デフォルトの名無しさん (ワッチョイ 11a5-kMcx)
垢版 |
2018/07/12(木) 16:37:53.91ID:iIGcGb6Z0
>>572
へえ〜そうなんだ
金のにおいプンプンするね
574デフォルトの名無しさん (ワッチョイ 11a5-kMcx)
垢版 |
2018/07/12(木) 16:40:31.97ID:iIGcGb6Z0
そういえばWindowsフォンとかいうのもあったね
2018/07/12(木) 16:45:06.48ID:Mt10qC0c0
>>572
iOSもな
2018/07/12(木) 17:23:36.80ID:S4vKnl6/d
雑誌とか書籍とか、本屋の棚を見てると勢力図が判るね。
Python強い。
2018/07/12(木) 17:25:15.60ID:PtJZmudoM
MVC使ってるんですが、アルゴリズムをSQLに書くのは邪道でしょうか?

Modelを用意している時点でC♯でアルゴリズムを書くのが正攻法なのかなという気がして

でもクエリにある程度書いた方がパフォーマンスは良さそうで悩んでいます
2018/07/12(木) 19:07:16.04ID:MbhSnhO70
>>566
NumericUpDownの派生コントロールを作ってOnMouseWheelを書き換える
方法 : 既存の Windows フォーム コントロールから継承する
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/how-to-inherit-from-existing-windows-forms-controls
コード例
public class NumericUpDownEX : NumericUpDown
{
protected override void OnMouseWheel(MouseEventArgs e)
{
  if (null == e) return;
  decimal m = this.Value;
  int a = e.Delta > 0 ? -1 : 1;
  m += a * this.Increment;
  m = m > this.Maximum ? this.Maximum : m;
  m = m < this.Minimum ? this.Minimum : m;
  this.Value = m;
}
}
2018/07/12(木) 19:39:16.71ID:5nesTxgP0
どうでもいいことだけどEventArgsがnullで渡ってくるケースってあるの?
2018/07/12(木) 20:09:54.21ID:yTzbc7hIM
>>577
邪道です
ビジネスロジックがSQLを侵食すると保守性が下がりスパゲティクエリが量産されます
結果的にパフォーマンスも劣悪なものとなるでしょう
2018/07/12(木) 21:06:22.46ID:uvVknaw70
そのSQLはどこに書かれているのだね
2018/07/13(金) 06:58:05.36ID:DDbEgWasM
SQLはクエリ管理クラスでC♯で管理してます
ストアドで書かれてたらC♯がどうこういう話では無いですね

つかストアドは世間様の開発では一般的なのでしょうか

改修に弱そうなイメージがありシステム構成の検討任されたら自分なら選択しなさそうですけど
2018/07/13(金) 08:21:33.93ID:KJTjy0eMM
ビジネスロジックをストアドに集めるってのは
見たことあるなぁ。
既存言語はFEP構築だけに使う。

どちらかに徹底してりゃ良いんじゃね。鼻ホジ
2018/07/13(金) 12:34:59.94ID:p9f6lddDD
>>583
システムのリプレイスとデータベースのリプレイスのどちらが多いかだよな

後者でストアド依存は死ねると思う
2018/07/13(金) 14:43:56.67ID:0KYXvOut0
DBのバージョンアップじゃなくてリプレイスで
システムをリプレイスしない案件なんてほぼ考えられん
2018/07/13(金) 15:22:59.85ID:r56MKyepM
可能な限り全部SQLでいいよ
多くの場合SQLの方が圧倒的に簡潔だしテストも容易だし
ストアドは管理が面倒だし見通しも悪いからソースに書きたいが
2018/07/13(金) 16:31:35.87ID:JMEmIQPoM
SQLに書いてもいいけどシステムが死ぬまで面倒を見て、他のメンテナーに迷惑をかけないでくださいね
2018/07/14(土) 14:54:07.96ID:pS7j55swr
データベースにSQLite使ってるんだけど、データ量が増えたらSELECTがクッソ重くて無反応になる
無料でもっとまともなDBってないかな?
2018/07/14(土) 14:57:09.03ID:8JxBJ14s0
そもそもインデックスとか
ちゃんと使ってるのかね
2018/07/14(土) 15:00:44.83ID:pS7j55swr
もちろん
2018/07/14(土) 15:02:50.58ID:LIsDU/xsM
PostgreSQLだな
2018/07/14(土) 15:06:32.58ID:EtwCAyCb0
C#から使うならSQLServerでしょ
2018/07/14(土) 15:26:32.37ID:pS7j55swr
どちらも無料なの?
2018/07/14(土) 15:40:56.72ID:jYJ6FXN8a
>>579
nullで渡すと
2018/07/14(土) 15:44:26.58ID:3U2LRmJo0
標準ライブラリのことでは?
2018/07/14(土) 16:03:24.84ID:DkLuqI8LM
プライベートの開発ではpostgresql一択
2018/07/14(土) 16:12:40.69ID:XotIEGF50
>>588
データ量がどのくらい増えたとかテーブルのスキーマ構成とかSELECT文みてみないとなんとも言えんな
DBMS変えたら劇的に変わるもんでもないし
2018/07/14(土) 16:56:06.37ID:pS7j55swr
>>596
売るアプリだから無料のがよい

>>597
すまんすまん
indexの順番変えたらかなり改善した
複合indexを先に設定して、その後単一index作ってた
これを入れ替えた感じ
2018/07/14(土) 16:57:19.10ID:pGWO+29la
無料ならSQLServerはかなり制限がある
PostgreSQLは完全に無料で、性能・機能とも圧倒的に上
SQL ServerはWin上でGUIでお手軽に運用できるしMS製品で完結するのでドカタには愛されてる
2018/07/14(土) 16:59:28.09ID:3U2LRmJo0
俺はデータをカテゴリに分けてそれぞれに専用のテーブルを用意して振り分けて高速化したことある
2018/07/14(土) 17:06:29.29ID:zT+O/n6K0
PostgreとMySQL比べるとどんな感じ?
602デフォルトの名無しさん (ワッチョイ 6681-38gj)
垢版 |
2018/07/14(土) 17:06:52.80ID:bK14KKak0
>>599
かなりって例えば?
ストアドも使えるしDBサイズも10GBまで使えるし基本問題ないっしょ。サイズ超えそうになったらバックアップDBとしてアーカイブすりゃいいしね。C#ならSQLServerがいいよ
2018/07/14(土) 17:09:02.22ID:zT+O/n6K0
俺もSQLServer使ってたけど10GB制限がキツイし全てのレコードを読めないと不都合だから別のDB探してたけどMySQL使おうかと思ってたところだった
2018/07/14(土) 17:18:11.14ID:DkLuqI8LM
MySQLは共通テーブル式が使えなくて捨てた
2018/07/14(土) 17:25:20.01ID:FtH+pgzSM
>>601
最近はPostgreSQLも盛り上がってるね
PostgreSQLは機能が非常に豊富で極めて柔軟、非定形データだろうが地理空間情報だろうが何でも扱える
ライセンスもMySQL(GPL)より緩い
2018/07/14(土) 17:25:32.60ID:pS7j55swr
>>599
まじか
postgreに変えようかな

>>602
10GBならかなり余裕あるね
ならSQLServerも良いかなあ

MySQLはWebアプリではよく使ってるけど

そもそもわかってないことがあるんだけど、SQLってSQLサーバーで動いてるわけじゃん?
SQLite以外はWinFormアプリで作ったアプリだけで動かないの?
SQLアプリみたいなのが生成されるの?
2018/07/14(土) 17:27:38.30ID:3U2LRmJo0
マシンにDBサーバーをたてるんだろ
2018/07/14(土) 17:30:16.00ID:zT+O/n6K0
>>604-605
なるほどありがとう
それならせっかくだしそっちにしてみようかな
SQLServerはEntityFramework簡単に使えたけどもPostgreSQLもライブラリとか使いやすいのかな?
MySQLは接続文字列がおかしいのかテーブル指定がおかしいのかイマイチ上手く動かせなかった
2018/07/14(土) 19:18:56.84ID:VO5okbkP0
ASP.NET Core MVCはオワコンになって今後はASP.NET Core Razorが主流になっていく感じですか?
2018/07/14(土) 19:54:51.34ID:GmLXhPvN0
>>609
お前なんか勘違いしてんぞ
2018/07/15(日) 10:06:31.58ID:vbOfg8AFM
今は各言語ごとにフルスタックのフレームワークがあるけど無駄に見える
どれか一個がセンターにあって後は各言語対応のAPI提供というパターンにならないのか
2018/07/15(日) 10:20:38.72ID:aio6qM3qa
少なくとも.NETはASP.NET Coreが統一フレームワーク
2018/07/15(日) 10:33:05.77ID:X2092vNg0
まさに.NETのことだね
2018/07/15(日) 10:46:24.73ID:CFAGuM1zM
各言語ごとにフルスタックフレームあるけど
シェア3位のdjangoすら5%以下らしい
それ以下のASP.Net coreの存在意義がかなり薄いと思うけどないといけないものなのか
2018/07/15(日) 10:54:00.74ID:7Enq42ndr
現実
https://hotframeworks.com
2018/07/15(日) 10:55:19.57ID:7Enq42ndr
Coreは存在すらしていないっぽいな
2018/07/15(日) 10:59:15.18ID:upsCSZLnM
検索でClassic ASP.NET/MVC/Coreは区別がつかないから混ざってるんだろ
2018/07/15(日) 11:08:09.00ID:p0LeSK9sd
Coreじゃなくても.NETなら多言語対応だし
2018/07/15(日) 12:32:26.47ID:mrrFOD8id
>>616
StackOverflowのデータ見てみろよ
2018/07/15(日) 12:53:44.01ID:7Enq42ndr
なんかSQLiteがおっせーって書いた者だけど、他のサーバー型SQLよりぶっ飛びで速いんだな
このまま使い続けるか
621デフォルトの名無しさん (ワッチョイ 6681-38gj)
垢版 |
2018/07/15(日) 14:17:55.92ID:LJ5Na9vP0
>>620
速度求めるならメモリ使えば?
DBのinoutは別スレッドでコントロール
2018/07/15(日) 19:34:53.12ID:Bovqh3Um0
使ったことないからよく知らんけどローカルファイルへのアクセスだからレイテンシが小さいとか?
2018/07/15(日) 20:22:37.76ID:5Xgvchi7M
javaに比べると圧倒的に仕事が少ないC#ですがjavaの有償化で仕事は増えるでしょうか
2018/07/15(日) 20:38:51.55ID:BpM21w6AM
レガシーJavaをすぐさまC#に移植するってのは現実的じゃない
レガシーの面倒を見るためにとりあえず金を払ってライセンスを買うしかない
ライセンス買ったならじゃあいいかとなってJavaを引き続き使っていくことになる
2018/07/15(日) 20:54:44.00ID:31mTAsFB0
Java厨ザマアw
626デフォルトの名無しさん (ワッチョイ 66e8-LQig)
垢版 |
2018/07/15(日) 20:57:17.95ID:OJzI1T4t0
でもC#は無料なの?
いいえ、有償です
2018/07/15(日) 20:59:55.51ID:WCfEKFtx0
大人しくオラクルのケツ舐めて1CPUあたり25ドル払っとけって
2018/07/15(日) 21:00:24.79ID:31mTAsFB0
2ドルだろ
2018/07/16(月) 01:40:16.05ID:0WZqyTt50
application/jsonを使ったRPCの実装方法でスタンダードなやり方ってありますか?
ぐぐってもREST APIの実装方法ばっかり出てくるんですが…
2018/07/16(月) 03:10:13.20ID:yOmS9IaY0
>>629
.netならWCFかWEB API

REST APIは主流だが
規模的に保守が辛くなるなら
gRPC gatewayも良いと思う
2018/07/16(月) 03:53:04.58ID:M+rWa9nq0
>>609
MVCのVの部分がRazorエンジンになっただけやで。
2018/07/16(月) 10:04:00.08ID:R/aUtilHr
>>621
アプリ起動時とかにSQLからメモリテーブルにコピーして、追加更新削除があれば別スレッドでinoutする感じ?
2018/07/16(月) 15:04:39.14ID:f5ww7Pxw0
プログラミング初心者なんですが、Randomオブジェクトの扱われ方がよく分かりません
なぜ別にクラスを作らなくてもインスタンスを生成出来るのでしょうか
2018/07/16(月) 15:14:56.71ID:Tg2I8Krt0
>>633
「なぜ class Random { ... } とクラスを定義しなくても new Random() と書けるのか?」
という質問なら、「Random クラスは最初から定義されてるから」が答えになると思います

質問の意図が違うなら、「XXXと書くのが正しいと思うが、実際にはYYYと書くのはなぜか?」
というように具体的なコードを交えてもう一度質問してもらえませんか?
2018/07/16(月) 15:17:03.84ID:f5ww7Pxw0
>>634
それで合ってます 返答どうもです
636デフォルトの名無しさん (ワッチョイ 6db5-p+0f)
垢版 |
2018/07/16(月) 15:18:23.77ID:MLoWNAtR0
usingで指定されて無いと幾ら最初から有っても使えないけどな。
637デフォルトの名無しさん (ワッチョイ 6db5-p+0f)
垢版 |
2018/07/16(月) 15:19:55.32ID:MLoWNAtR0
そう言う意味では、最初からusingでネームスペースが指定されているって言わないと正しくない。
2018/07/16(月) 15:21:33.95ID:fVJkfJ21M
JSFみたいな使いやすいフレームワークねえかなぁ
C#は言語そのもののセンスは良いけどエコシステムがショボいよな
2018/07/16(月) 15:50:12.73ID:jQHectJ10
>>636
namespace省略せずに書けば使えるぞ
2018/07/16(月) 15:55:20.48ID:N67OeEDm0
>>634みたいにも?
2018/07/16(月) 15:58:33.82ID:XBIjWYki0
>>640
書けないけど「使える」

>>636
> usingで指定されて無いと幾ら最初から有っても使えないけどな。

自分の書き込みぐらい覚えとけ
2018/07/16(月) 16:00:41.87ID:CrUViZU+0
偶にこういうコード見かけるんだけど、コーディング規約に全部書けとかあるのかな?

using System.IO;

System.IO.File.ReadAllBytes(hoge);
2018/07/16(月) 16:54:46.97ID:jQHectJ10
自分が作っていないクラスを使用するのに必要なのはアセンブリ/COMの参照設定。
(基本的なアセンブリは最初から設定されてる)

usingするかはどうかは別の話。
参照していないのにusingだけ書いてももちろん使えない。
2018/07/16(月) 17:47:55.17ID:SOPUXhzxM
>>642
そのスコープのFileクラスの定義が重複している場合
曖昧さを解消するために名前空間を全て書く必要がある

普通は標準ライブラリと名前が衝突する事態の方を避けるだろうけど
2018/07/16(月) 18:31:19.12ID:zG1+5npqa
>>642
そんな不合理な規約はないと信じたいねw

あえてフルネームで書くことを肯定できる(少なくとも否定的に思わない)ケースは
そのソースファイルでその名前空間の要素そ参照するのが1、2か所しかない場合ぐらいかなあ

意見は分かれるかもしれんが、バッティングを避ける目的ならエイリアスを使うのが普通でしょう
using IO = System.IO;
みたいに
2018/07/16(月) 19:06:40.67ID:XBIjWYki0
>>645
> そのソースファイルでその名前空間の要素そ参照するのが1、2か所しかない場合ぐらいかなあ
それならusingも書かないだろ、バカかよ
2018/07/16(月) 19:11:38.45ID:zG1+5npqa
何言ってるのか意味わからないねw
2018/07/16(月) 19:29:52.77ID:65+uaC9H0
その名前空間を使うのがここだけだと思ってフルで書いたが
やっぱり他でも使ったのでusing追加した
元の箇所は直していない

まあ、そんな感じじゃないかと
2018/07/16(月) 19:56:41.16ID:Tg2I8Krt0
>>634 に不適切なコードを書いたために混乱を招いてしまいました
また、 >>643 で適切な補足をしていただいていますが、
初めからこのような補足が必要ないようにできているだけでも
混乱は避けられたかもしれません。大変失礼しました
650デフォルトの名無しさん (ワッチョイ 6db5-p+0f)
垢版 |
2018/07/16(月) 21:01:32.11ID:MLoWNAtR0
同じ名前のクラスがあるんだよw
だからフルネームで書かないと怒られるんだw
2018/07/16(月) 21:45:18.03ID:PnkuF1BZ0
>>650
あるあるw
バッティングすると悪夢なのなw
曲線をPathって名前にしてファイルパスもPathって名前にして
usingを呼んじゃってからエラーが出たぜハイ直せってやられると最悪
せめて改名してからusing呼べやクソがって思うんだが
馬鹿な奴に限ってバッティングさせるし作業手順も考えない
しかもそれでコミットしてくる
2018/07/16(月) 22:03:10.98ID:0I7EzBy0r
[]で読み込むDLLの意味がよくわからない
どこで呼んでもいいみたいだけど、あれってどういう仕組みなの?
2018/07/16(月) 22:12:47.48ID:Fqt7znsC0
ランタイムがLoadLibraryなりで動的にロードしてよろしくやってるだけやで
ネイティブ側を書いたことないとイメージしづらいのかもしらんが
2018/07/16(月) 22:24:51.27ID:fVJkfJ21M
>>651
バッティングどうこうよりもファイル操作と図形操作を同じファイル内に実装してる時点で最悪だね
誰が悪いかというとそんな設計書を書いたバカが最悪だ
2018/07/16(月) 22:25:49.96ID:N67OeEDm0
アホかな?
2018/07/16(月) 22:32:54.10ID:PnkuF1BZ0
>>654
いや、別だよ
でもたまたま引っ張ってきたusingにPathが入っててバッティングしちゃったんだ
.netframeworkにはじめから入ってるPathも入ってかなり手強かったよ
657デフォルトの名無しさん (ワッチョイ 6db5-p+0f)
垢版 |
2018/07/16(月) 22:50:59.26ID:MLoWNAtR0
いやいや、それは例えが悪いだけで、マイクロソフト様ですら同じ名前のクラス名付けてて、たまにどっちだボケって聞いて来るからなぁ
2018/07/16(月) 23:09:50.26ID:m2D0dvJF0
>>638
JSFときたかwww
具体的に何が足りないと?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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