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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2018/08/05(日) 19:55:44.50ID:tZmoj8I+
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
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/
2018/09/24(月) 00:01:35.94ID:OxVBaH7R
>>809
ん〜それも検討したけどVS/VSCodeの手動フォーマッティングと設定共有できないっぽいから見送った

>>808
とくにひねりもなくOmniSharpとビルドスクリプトを使うことにしたよ
2018/09/24(月) 09:28:32.62ID:yFnU/yKn
リファクタリングってやってる?
いつも気付くと似たような処理や非効率な処理が増えてて辛い……
凄腕のマなら最初から効率的なコード書けるんだろうけどさ……
2018/09/24(月) 09:35:05.11ID:/23hZmm4
動いているコードに手をつけるリファクタリングは最悪。
2018/09/24(月) 09:38:03.20ID:yFnU/yKn
でもでもっ!
ちょっと弄るだけで処理が効率よくなり、コードがリーダブルになり、exe(dll)のサイズも小さくなりますよ?
テスト前ならいいよね?
2018/09/24(月) 09:39:36.03ID:sPlVwsRd
>>811
世界的に有名な凄腕ですら最初から完璧は無理だからリファクタリングしろと口を揃えて言っている
程度が低いプログラマほどリファクタリングをしない
815デフォルトの名無しさん
垢版 |
2018/09/24(月) 09:43:14.50ID:UOx+eYoH
>>813
だめや、くだらん時間つこてないでテストせえ
816デフォルトの名無しさん
垢版 |
2018/09/24(月) 09:46:42.21ID:ySiXDenR
>>814
実は有名な凄腕はリファクタリングなんかしていない。
あとから出てくる有能なやつをつぶす目的でリファクタリングなるものを生み出した。
817デフォルトの名無しさん
垢版 |
2018/09/24(月) 09:48:31.14ID:osKypOlL
>>811
私は時々やりますけどね
新しいネタ仕入れたときとか試してみたり
普段あまり先を考えずに逐次的な処理を思いつきで描くので
冗長になりがちだし
数年自分で使ってみると不必要な機能や処理が見えてきて
そいつをそぎ落としたりする
2018/09/24(月) 09:55:37.87ID:OxVBaH7R
業務系はメンテを他社がやることが多い
なので競争相手の負担になるようにリファクタリングしていない汚いコードを納品したほうが資本主義的に正しい
819デフォルトの名無しさん
垢版 |
2018/09/24(月) 09:59:35.91ID:KDQ780rJ
マ板でやれ
2018/09/24(月) 10:01:45.14ID:KHvr4x1U
クローンコードは……無能の証……
細かく……機能毎に……クラス化……メソッド化せよ……
有能なマなら……30行程度までの……小さなメソッドが……いくつもできる……
当然……役割で機能クラス化し……マジックナンバーも使わない……
無能は……1クラスにメソッドを詰め込み……メソッドも100行を超えることがある……
クローンコードだらけで……おまけにマジックナンバーがあり……保守性が……非常に悪い……
821デフォルトの名無しさん
垢版 |
2018/09/24(月) 10:01:45.99ID:osKypOlL
ここは初心者スレ
822デフォルトの名無しさん
垢版 |
2018/09/24(月) 10:03:47.23ID:ySiXDenR
初心者相手だからこそ善導せねばならない。
リファクタリングとやらにうつつを抜かす暇があるなら目前のコードを正しく読む力を会得するべきである。
2018/09/24(月) 10:04:15.61ID:KHvr4x1U
>>818
競合他社「ぷげらっwwwあの会社のマはこんなコードしか書けねぇ無能っすよ?www」
お客人「マジかよwww次からお前んとこにするわwww」
2018/09/24(月) 10:09:35.45ID:RUArc1Op
そもそも何を目的としてリファクタリングなんてするわけ?
次の開発は来ないかも知れないじゃない?
また、次の開発を目的とするなら仕様がわかってから手を出せばいい

全てにおいてトンチンカン
2018/09/24(月) 10:20:00.26ID:rB4zdy0A
伸びてるときはガイジしかいないな
2018/09/24(月) 10:21:07.52ID:iTzVBLdT
>>820
普通この辺りってネットで調べたら一番に出てくるのに、なんで糞コード量産されちゃうんだろう・・・
827デフォルトの名無しさん
垢版 |
2018/09/24(月) 10:26:35.15ID:SrcYdwzB
>>826
調べないから。
基本他人のコードをコピーして今回の要件を満たすように
書き換える仕事。意味がわからないところとか
通らないロジックがあっても気にしない
828デフォルトの名無しさん
垢版 |
2018/09/24(月) 10:46:02.74ID:ySiXDenR
>>825
リファクタリングなんての持ちだして初心者を混乱させるガイジが多くて困るよ
829デフォルトの名無しさん
垢版 |
2018/09/24(月) 10:49:53.69ID:TmR9qzOH
そういや、VSCodeのswitch文の変な整形って何時になったら直るんかねえ?
2018/09/24(月) 11:10:08.31ID:L/eVK/99
else句を多く使うのは三流PG
一流のPGは極力else句を避けるものだ
else if なんてのは論外だ
returnせよ!
2018/09/24(月) 11:21:43.89ID:OxVBaH7R
>>823
競合他者「難しくメンテ出来ません(´;ω;`)納期間に合いません(´;ω;`)」
お客人「使えねえな。おまえんとこはもう二度と使わん(´;ω;`)」
2018/09/24(月) 11:23:43.58ID:OxVBaH7R
>>824
開発、テスト、デバッグ、仕様変更対応をしやすくするためにやるんだとさ
確かに楽に安く高品質になるんだけど、ビジネス的にはコスト増やして請求も増やすほうが儲かるのにもったいないよね
2018/09/24(月) 11:33:19.66ID:VSctwqS/
「ガイジ」なんて汚い言葉を平気で使える奴って自分で自分がどんな人間か
語るに落ちてることも気づかないんだろうな
2018/09/24(月) 11:41:30.08ID:VSctwqS/
>>832
こういう思考回路の人がマ板とかでブラック企業とか人買いとか吠えてるんだろうな。
2018/09/24(月) 11:42:43.02ID:A8fPcUdc
キミたちc#で何作ってるの?
俺はFormアプリしか作ってない
Webアプリはrubyかphpで構築
Formアプリなんかクッソ時代遅れ感あるけど
2018/09/24(月) 11:49:48.03ID:zTc6LZBq
ガイジを連呼する差別主義者は自分が社会の最底辺だと気がついてないんだろうな

リアルな社会でもガイジ連呼して白い目でみられればいい
2018/09/24(月) 11:53:59.68ID:sWz4zxrJ
>>811
完成までの間にいつもやってる。
とりあえず適当に動くモノを作ってみる → 自分の担当部分を見直して整理する
最初に動くモノが出来るまでが貰った期間の 1/4 〜 1/3 くらいの時点、あとは時間が許す限り(組み直して遊んでる)。

やってるうちに最初から(自分なりに)組み直しする必要のないコードが書けるようになってく。
でもそのときは自分の技量が上がってるから別のやり方を試したくなるので堂々巡り。

受け入れる側とすればコードのわかりやすさとか以前に試験しろよと思う。
なんでこっちがバグ出ししてやらなきゃならねーんだよ、と。
2018/09/24(月) 13:46:58.45ID:nocx8ro5
>>832
高品質って?
何を基準に?
同じ金使って次の改修が見えてから動いたほうが遥かに品質高くない?
2018/09/24(月) 13:57:10.32ID:OxVBaH7R
>>838
メトリクス計測すればコードの品質は一目瞭然だけどそういうことじゃなくて?
何を言いたいの?
2018/09/24(月) 14:01:02.69ID:OJN25ACF
いくら暇だからってこの流れはひどい
2018/09/24(月) 14:14:52.92ID:Gw7mXU1y
c#スレだぞ
2018/09/24(月) 14:21:56.83ID:UjLVuG2t
偶然だぞ
843デフォルトの名無しさん
垢版 |
2018/09/24(月) 14:26:57.52ID:7nAgeebM
複数の戻り値ほしいとき、タプルを使うべきか、refつけてメソッド内で対応しちゃうか皆さんどうしてます?
2018/09/24(月) 14:28:50.76ID:zTc6LZBq
今はタプルで前はクラス作ってた
2018/09/24(月) 15:08:38.45ID:oYzwCf5A
>>839
メトリクス計測と売上に相関でもあるの?
2018/09/24(月) 15:30:13.77ID:DNs+Nta1
>>831
世知辛い世の中だな
俺なんてまとまった処理毎にコメントまで入れてんのに
やむを得ずダラダラ書くことになる時はリージョンで畳んだりとかもしてるのに
2018/09/24(月) 15:34:39.00ID:DNs+Nta1
>>843
タプルはイミュータブルなのがな・・・
クラス内ならプライベートクラスや無名クラスでやっちゃうかな
2018/09/24(月) 16:27:41.20ID:EJ4GFkIW
イミュータブルのほうが良くない?
なんでc#は引数をfinalできないのか不思議なんだけど理由あるの?
2018/09/24(月) 16:52:39.91ID:5Y6v7jeg
>>848
in
2018/09/24(月) 19:10:00.11ID:p57JLdmZ
クリックした点から点まで連続線を引いてダブルクリックで連続線を終える。
これって難しいですか?参考サイトとかありませんか?
2018/09/24(月) 19:21:40.73ID:sZ9gwywh
>>850
ダブルクリックで最後の点+終了なら多分難しくない
MouseDownのイベントのe.Locationでコントロール上の座標を変数に格納する
前回の格納された座標があればそこから2点間の直線を描く
画像、印刷(GDI+)編メニュー https://dobon.net/vb/dotnet/graphics/index.html
線を描く https://dobon.net/vb/dotnet/graphics/drawline.html
2018/09/24(月) 20:14:41.97ID:zTc6LZBq
bool 編集モード =false;
bool 線を引いてるか =false;
Point 前のポイント =new Point();

こういうのを使っていけばいいんじゃないかな

クリックしたら
編集モードで線を引いてない(最初の点)なら点を表示
編集モードで線を引いてるなら前のポイントから今のクリック場所まで線を引く

ちゃんとやるならListに座標を記録
2018/09/24(月) 20:40:10.70ID:sZ9gwywh
>>850
ヒマだったから書いてみた。ダブルクリックで画像初期化
//新しいWinフォームをDrawlinetestとして作ってForm1.csに以下の内容を差し替え
using System.Drawing;
using System.Windows.Forms;
namespace Drawlinetest
{
public partial class Form1 : Form
{
PictureBox pbox = new PictureBox();
Point pt = new Point(-1, -1);
public Form1()
{
InitializeComponent();
pbox.Location = new Point(0, 0); pbox.Size = new Size(500, 500);
this.Controls.Add(pbox); this.ClientSize = pbox.Size;
pbox.Image = new Bitmap(pbox.Width, pbox.Height);
pbox.MouseDown += MD;
}
private void MD(object sender, MouseEventArgs e)
{
Point p = e.Location;
if (e.Clicks > 1) { pbox.Image = new Bitmap(pbox.Width, pbox.Height); return; }//ダブルクリックで画像リセット
int x = pbox.Width - 1, y = pbox.Height - 1;
if (pt.X < 0 || pt.X > x || pt.Y < 0 || pt.Y > y) { pt = p; return; }
Graphics g = Graphics.FromImage(pbox.Image);
g.DrawLine(Pens.Black, pt.X, pt.Y, p.X, p.Y);
pbox.Refresh(); g.Dispose(); pt = p;
}
}
}
2018/09/24(月) 20:43:24.90ID:2M6hZk6X
ideoneにはりゃいいのに
2018/09/24(月) 20:57:07.31ID:E4VB1fuR
この程度ならいいんじゃね
いちいちidone開くのもかったるいし
2018/09/24(月) 21:01:33.03ID:VSctwqS/
暇だから書いてみたけど何もおもろないなw
public class PolygonalLineEditor
{
  private List<Point> mPoints = new List<Point>();
  public Pen Pen { get; set; }
  public bool Clolsed { get; private set; }
  public Control TargetControl { get; private set; }

  public PolygonalLineEditor(Control target)
  {
    TargetControl = target;
    Pen = new Pen(Brushes.Black);
    TargetControl.Paint += TargetControl_Paint;
    TargetControl.MouseClick += TargetControl_MouseClick;
    TargetControl.DoubleClick += TargetControl_DoubleClick;
  }

  private void TargetControl_MouseClick(object sender, MouseEventArgs e)
  {
    if (Clolsed) return;
    mPoints.Add(e.Location);
    TargetControl.Invalidate();
  }

  private void TargetControl_DoubleClick(object sender, EventArgs e)
  {
    if (mPoints.Count < 2) return;
    Clolsed = true;
  }
2018/09/24(月) 21:02:30.35ID:VSctwqS/
  private void TargetControl_Paint(object sender, PaintEventArgs e)
  {
    if (mPoints.Count < 2) return;
    e.Graphics.DrawLines(Pen, mPoints.ToArray());
  }
}

>>854
どうせこの手のコードはイデオンじゃ実行できないしねw
2018/09/24(月) 21:08:01.56ID:VSctwqS/
スレと全然関係ないけど、今ふと思って検索してみたらIDEONEの読みがマジでイデオンだと
勘違いしてる人が結構おって笑ったw
2018/09/24(月) 21:23:12.15ID:2M6hZk6X
シンタックスハイライトとかの問題でいったんだけどまあいいや
2018/09/24(月) 21:39:39.67ID:zEHGGd29
>>858
読み方はしらないが笑われて腹立ったので全方位にミサイルぶちまけてやる。
2018/09/24(月) 21:41:12.17ID:oYzwCf5A
ダッサ
ズームもできない
2018/09/24(月) 22:00:47.20ID:WUo/Kz5h
>>849
使ってるVSが古くてinが使えないの・・・orz
863デフォルトの名無しさん
垢版 |
2018/09/24(月) 22:48:46.86ID:7nAgeebM
>>858
アイディーイーワン?
2018/09/24(月) 22:54:59.15ID:oYzwCf5A
>>858
最後は全員死ぬんやで
2018/09/24(月) 23:06:45.85ID:2M6hZk6X
>>858
IDE+ONEだとわかった上で読んでるに決まってるだろ
2018/09/25(火) 05:23:26.45ID:FXqod28S
まあ>>858がどんなところを検索して見て言ってるのかよくわからんけど、そう言う事をいちいち指摘して優越感に浸るちっちぇー奴だと言うことはわかった
2018/09/25(火) 06:10:41.82ID:O9LsAU4v
IDEONEてイデオネじゃないの?
868428
垢版 |
2018/09/25(火) 06:15:54.53ID:FB7NCruc
イデワンだな
2018/09/25(火) 06:17:26.32ID:2mkvFBxM
井出ラッキョ
870デフォルトの名無しさん
垢版 |
2018/09/25(火) 06:47:16.83ID:qhYBdzAc
K-1みたいなもんだな
2018/09/25(火) 12:38:40.86ID:TdPE3gl/
>>858
何そのガンダムの武器みたいな読み方
2018/09/25(火) 17:17:17.11ID:A3nOLsOi
>>852
>>853
>>856
ありがとうございます。明日書いてみます。
873デフォルトの名無しさん
垢版 |
2018/09/25(火) 19:18:27.96ID:KdSwzQd3
文字数を正確にカウントしたい場合、文字コードも意識しないとだめでしょうか?
今まで気にしてなかったのですが、どうするのがベストなのでしょうか?
2018/09/25(火) 19:28:47.41ID:vBc9NGOH
正確な文字数の定義によるのと違いますか?
何が正確な文字数なのかオープンにしたままどうするのがベストって言われても誰も答えられないと思う

「彳亍」とか「プ」とかを1とカウントしたいとか?
2018/09/25(火) 19:40:25.03ID:3aZELiV7
>>873
目的次第
文字のレンダリングに使うのでない限り、多くの場合は普通にLengthを使ったほうがうまくいく
2018/09/25(火) 20:23:35.47ID:rqJ67nwC
>>873
http://www.atmarkit.co.jp/fdotnet/dotnettips/726countchars/countchars.html
2018/09/25(火) 20:42:56.15ID:TMsX+vFr
他の言語に比べるとc#スレはいつも人いるな。おかしいな。android開発っつたらjava,kotlinだしiosはswiftだし、サーバーサイドでも.netの存在感そこまである訳じゃないし。
これからwpfやuwpでデスクトップアプリ作ってやろうというやつ多いのか?
2018/09/25(火) 20:47:31.66ID:TMsX+vFr
それとも5chはおっさんが多いからおっさん世代ようはwindows パソコン世代が多くc#学んだ人多いからスレ賑わってるのか?

問題は新規ユーザーの質問する側が少なくて答える方が大量にいるというw
2018/09/25(火) 20:49:20.07ID:xzq+iCgr
スマホアプリでC#はunityいるんだから多いでしょ
2018/09/25(火) 20:58:14.72ID:TMsX+vFr
あっそうか。unityがあったね
2018/09/25(火) 20:59:01.93ID:LOGsyFiL
そのわりにUnityの話題がでないな
2018/09/25(火) 21:03:56.27ID:AGUJmjmE
じゃあなんでこんな栄えてるの?
2018/09/25(火) 21:04:54.46ID:AGUJmjmE
趣味ならC#?
フォームアプリ簡単に作れるしIDEが最強だし
2018/09/25(火) 21:05:22.69ID:bUhsTzCn
長い間VB6で開発していた連中がやっとこさ移る先としてはVB.netかc#が多いんじゃないかなと思う。
なので底辺が多い。俺は底辺だ。
2018/09/25(火) 21:16:12.43ID:1aVWaT8Y
Hello 底辺 World!
2018/09/25(火) 21:23:42.47ID:LOkxuMnS
>>883
IDEのインストールが簡単ってのも大きいと思う
2018/09/25(火) 21:27:33.39ID:vBc9NGOH
スレ違いだと釘を刺しつつ乗っかるけど、今この板で一番勢いがあるのは何とExcel VBAのスレ。
別に茶化すつもりでもなんでもなく、ちょっと前にそのスレで「驚いた」って素直な感想を書いたら
被害妄想全開で食って掛かってくる奴が大勢いて面食らったw
888デフォルトの名無しさん
垢版 |
2018/09/25(火) 21:47:14.55ID:BRabQ1iT
RADによるformアプリケーション作成
これが便利すぎるからC#が使われているんだろ
2018/09/25(火) 22:02:33.05ID:AGUJmjmE
RADってなんだよ
おまえそれが言いたかっただけだろ
2018/09/25(火) 22:40:08.58ID:LOGsyFiL
そもそもFormアプリケーションって需要あるの?
2018/09/25(火) 22:48:48.73ID:AGUJmjmE
趣味なら
2018/09/25(火) 22:50:32.00ID:LOkxuMnS
業務アプリでは結構需要あるぞ
2018/09/25(火) 22:53:12.33ID:AGUJmjmE
オレのバイトしてる工場のタッチパネルの中のソフトのアイコンもフォームアプリのやつだな
2018/09/25(火) 22:57:33.24ID:7b7yOD+1
>>889
Rapid Application Development
2018/09/26(水) 00:27:21.31ID:I5Qjn6E/
変数名やプロパティ名に日本語って使ってる?
2018/09/26(水) 00:54:12.10ID:/SQHk11B
テストメソッドにはたまに使ったりするけど
2018/09/26(水) 01:52:56.92ID:2U1C1lvF
日本語めちゃ使ってる。
日本特有の物事を扱うにあたって無理に英訳しても幸せがない。
2018/09/26(水) 02:35:39.36ID:Swk4SbL4
変換キー押すのがめんどい
2018/09/26(水) 06:02:08.78ID:ltim0pD2
ウォーターフォールって否定されるようになったよな
前は大正義くらいの勢いだったのに
2018/09/26(水) 07:18:55.79ID:zkJaWWrb
米国では内製が基本だから、見積り工数を大きくオーバーしても少々不具合出しても自己責任なので問題ない
そのため厳格なウォーターフォールに拘る必要がなく、決まった枠で確実に作り上げるよりもデリバリーの早さを重視する開発プロセスに移行している
一方ジャップアイランドではいまだに受託開発が中心だからウォーターフォール脱却は不可能よ
「工数枠内でベストを尽くしますが、完成は保証しません」
君が客ならこんなこと抜かすベンダーに仕事任せられるかな?
2018/09/26(水) 08:31:58.81ID:2U1C1lvF
ここC#スレ
2018/09/26(水) 08:32:36.88ID:7p5c/cxx
>>895
そっか、使えるんだな
でも怒られそう…
2018/09/26(水) 09:26:00.52ID:/A0Do83h
お前が権力を握れば怒られない
(ただし裏でクソクソ言われるだろうけど)
2018/09/26(水) 11:53:42.08ID:CiEUu7ig
全く不具合が発生せず、何かあっても全部自己解決出来るのなら怒られない
2018/09/26(水) 11:57:37.99ID:5G9UpHy0
プロジェクトチームひとり

超少数精鋭部隊
2018/09/26(水) 13:06:57.76ID:CT4RAtHl
日本語識別子、自分が使って書くのは嫌だけど人が書いたのを読むのは全然問題ないよ。
入力しづらいだけで読みづらいわけじゃないから

ただ英語でちゃんとした命名ができない人は日本語能力にもちょっと不安を感じるねw
907デフォルトの名無しさん
垢版 |
2018/09/26(水) 19:39:07.27ID:bAgXFgQN
MVCがわかりません
どのサイト見ても概念とか考え方しか書いてない

一般的なWEB構成でいう
M=Webアプリ(サーバー)
V=html+CSS(ブラウザ)
C=Javascript(ブラウザ)

役割はこういうイメージであってますか?
908デフォルトの名無しさん
垢版 |
2018/09/26(水) 19:41:02.84ID:+un+mAjX
もともとボヤっとしたもんやからなんでもええねんMVCて
909デフォルトの名無しさん
垢版 |
2018/09/26(水) 19:45:11.00ID:bAgXFgQN
そうなんですか

C#でフレームワークはMVCを使用するって言ってるとこあるけど
これはASPのMVCを使うよって事なのかな
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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