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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
垢版 |
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
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/10/22(月) 16:42:10.00ID:NGaoO2J9d
サブクラス化でダブルクリックのメッセージを盗む
2018/10/22(月) 16:49:58.28ID:PhEYlXMOa
>>195
簡単だろ...と思ったけどそうでもないみたいね
CreateParamsオーバーライドしても出来なかった
https://bytes.com/topic/c-sharp/answers/492805-enable-trackbar-doubleclick-event

ダブルクリックの成立条件がOSの設定と別になるのは諦めて
自分でダブルクリックを実装するしかない気がする。知らんけど

private Stopwatch mStopWatch = new Stopwatch();
protected override void OnClick(EventArgs e)
{
  base.OnClick(e);

  const int maxDoubleClickInterval = 500;
  if (mStopWatch.IsRunning && mStopWatch.ElapsedMilliseconds <= maxDoubleClickInterval)
  {
    OnDoubleClick(e);
    mStopWatch.Stop();
  }
  else mStopWatch.Restart();
}
2018/10/22(月) 16:50:32.09ID:PhEYlXMOa
>>196
メッセージ自体が飛んでこないのよ
2018/10/22(月) 17:10:21.59ID:z/eoCJYy0
>>197
あーーやはり根本から用意されてないんですね……
自分の初歩が間違ってるのかなと思っていたのですが少し安心しました
ありがとうございます!
200デフォルトの名無しさん (ワッチョイ f3a5-Fc6z)
垢版 |
2018/10/23(火) 08:10:29.01ID:WlOKeoDJ0
素人のボヤキで恐縮ですが
何度も書いては直しを繰り返し書き足したコードが
最後の最後、どうしてもデバッグが通らなくなりまして
いくら調べても動かない原因か分からず
もう考えるの面倒くさくなって
新規のFormに一から同じコード書き直してみたら・・・動くじゃん!
たぶん何度もトライ&エラーしたから何処かで操作間違えて
IDEが自動で生成したコードにゴミが混じったんじゃないかと思ったのですが
この動くコードと動かないコードの違いを簡単に発見できませんかね?
今、全ての.csファイルを一行ずつ比較してますが・・・もう飽きましたwww
メインのコードは全く同じでした
ちなみにデバッグで出るエラーは、あるクラスのメソッドの定義が無いというやつです
2018/10/23(火) 08:58:05.56ID:4KRTdb+90
定義がなくてエラーを吐くところまで分かるなら
動くほうのコードをその定義名で検索してコピペすればいいのでは……?
202デフォルトの名無しさん (ワッチョイ f3a5-Fc6z)
垢版 |
2018/10/23(火) 09:16:11.92ID:WlOKeoDJ0
自作のメソッドじゃないのです
usingでちゃんとクラス指定してますし
少なくとも手で入力したコードは同じなので
2018/10/23(火) 09:37:53.24ID:4KRTdb+90
いや、だから自動生成のコードも比較してるんだよね
普通にそこにヤマ当てて検索すればいいのでは…………???
2018/10/23(火) 10:00:22.54ID:XCdCnqpbd
List<int>型をカンマ区切りの文字列にしたいんだけども一個ずつforeachで要素取り出して繋げるしかないかな?
2018/10/23(火) 10:03:28.47ID:XCdCnqpbd
joinをレスかいた後に見つけました!
すみません
2018/10/23(火) 10:43:05.65ID:IN4ounIY0
質問した直後に答えが見つかるのはありがちである
2018/10/23(火) 10:55:13.88ID:cDc5Fd7gM
質問する際に文字に起こすことによって頭が整理されるためである
2018/10/23(火) 11:08:35.71ID:mgVace2od
staring[] strLine = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)

strLine = strLine[0].Split(chrCut)

return strLine;

フォーム1で一回通ったあとフォーム2で2回目通るときにエラーで別のプロセスで使用されているって出るんですがどういったエラーですか?
ファイル開いてるってことですか?
209デフォルトの名無しさん (ワッチョイ bee8-nBLa)
垢版 |
2018/10/23(火) 11:14:39.42ID:Vkutn+dk0
>>207
あるある
2018/10/23(火) 11:29:22.32ID:IN4ounIY0
探すのをやめたとき見つかることもよくある話で
2018/10/23(火) 14:06:54.25ID:GxUzOGox0
>>208
そう
ただFile.ReadAllLinesはオープンからクローズまでやってくれるので普通は発生しない
他でそのファイルを触ってない?
あと自プログラム上はクローズしたけどアンチウィルスソフトがまだ触ってるってケースがある
2018/10/23(火) 21:57:42.31ID:H4AFqJh00
>>211
原因を探る方法ってなんかあります?
2018/10/23(火) 22:47:02.21ID:beMFeyu90
>>208
Readだとそもそも他でロックしていても別のプロセスで使用されているってエラーにならないはずなんだけど
書き込みモードで開いたままとかよっぽど変なことしていないか?
>>212
とりあえずダミーで
string[] strLine = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)
のすぐ下に別の配列への読込み
string[] strLine2 = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)
を入れて見てエラーになるかならないか確認してエラーが出たらお手上げ
エラーが出ないのならstring[] strLine = system.IO.File.ReadAllLines(tarTxtPath,System.Text.・・・)から2回目の実行時にエラーの原因がある
2018/10/23(火) 22:54:16.72ID:t0pM1C750
Windowsで簡単なデスクトップアプリ、コマンドプロンプトアプリを作るのが目的で
無料のVisual Studio 2013 for Desktopをインストールしている

最近調べたらVisual Studio 2017 Community版なるものが無料でリリースされてるようだけど
2013 for Desktopから乗り換える価値あると思う?
それとも2013 for Desktopをそのまま使い続けていた方がいい?
2018/10/23(火) 23:19:13.87ID:beMFeyu90
>>214
2013だと最新のC#や.NetFrameWorkwpターゲットにしたものが作れないと思うけどVisualStudioのスレで聞いて
メリットとデメリット詳細に説明するのは難しいと思うから
2018/10/23(火) 23:37:40.87ID:EnOD72ofM
>>214
VS communityは商用利用に制約が有ります。
Express 2017 for Windows Desktopを利用しましょう。
Express 2017 for webはないのでwebはVSCODEに移行しました。
2018/10/24(水) 00:13:22.70ID:mtZGy2HS0
dd
2017 for Windows Desktopに乗り換えまつ
2018/10/24(水) 00:29:43.28ID:XKgg3tJUa
>>216は間違い
VS Communityは組織の規模に制限があるが用途に制限はない
2018/10/24(水) 07:44:57.85ID:s6gpcYwid
>>213
書き込みモードで放置してました。
お手数おかけしました!
2018/10/24(水) 10:07:14.94ID:3/mFq1HRd
>>216
5人以上での開発からじゃなかったっけ
2018/10/24(水) 13:09:57.36ID:AbQuJmTL0
プログラマーとして転職するにはどんな本までマスターしてれば大丈夫ですか?
ゴールからはじめるC#は読めました。
222デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/24(水) 13:24:18.69ID:pa4PW987a
基礎としては入門で十分。

読んでから作るのではなく、作りながら読む。
必要だと感じないと頭に入らない。
2018/10/24(水) 13:34:18.54ID:KNarJnl6M
C#ってあんまり未経験OKの仕事ないからJavaから入るのがいいと思うよ
JavaならFizBuz書ければ十分仕事できる
2018/10/24(水) 13:46:07.47ID:uTlH1PNGr
まじかよ
2018/10/24(水) 13:53:12.06ID:8s24r2uo0
>>221
本ならEssential C#
まぁ作った物を見せるのが一番だけどな
2018/10/24(水) 18:41:34.40ID:HJod1vGPM
VS2013でweb formを作っています。
以前VS2008の時代、AjaxControlToolkitのModalPopupExtenderを使って設定用のポップアップを作っていました。
今回同じような事をしたいのですが、VS2013の環境で、同等の事を簡単にできるよい方法はありませんか。
2018/10/24(水) 19:08:39.26ID:KNarJnl6M
>>226
WebFormsに頼るのはやめてBootstrapを使ってください
2018/10/24(水) 20:20:05.07ID:a4OXlgOjM
>>220
開発者の数じゃない
でかい企業は開発者の人数関係なく使っちゃダメ
小さい企業は5人までならいいってこと
なので会社が小さくても3人の開発者が2チームいたらアウト

■個人開発者
あらゆる個人開発者は Visual Studio Community を利用でき、無償または有償のアプリケーションを作成できます。
■ 組織
以下のシナリオでは Visual Studio Community を利用者数に制限なく利用することができます: 教室の研修環境、学術的調査、オープン ソース プロジェクトへの貢献
■その他のすべての利用シナリオ:
●エンタープライズではない組織において 5 ユーザーまでは Visual Studio Community を利用できます。
●エンタープライズ組織 (PC 台数 250 台以上または年商 100 万ドル以上) は上記の教室の研修環境、学術的調査、オープン ソース プロジェクトへの貢献以外では従業員や請負契約者ともに利用を認められません。
https://visualstudio.microsoft.com/wp-content/uploads/2017/05/Visual-Studio-2017-Licensing-Whitepaper-March-2017_Japanese.pdf
2018/10/24(水) 20:23:21.79ID:pUZreFeO0
リリース用のビルドマシンは1台で
他は全部expressや

ってやったらどうなるの?
2018/10/24(水) 20:24:41.18ID:j9WcSB4FH
年商1億って結構安いよな
ケチ
2018/10/24(水) 20:28:06.50ID:mBAz6liX0
>オープン ソース プロジェクトへの貢献
ってすごい曖昧な定義だよな
2018/10/24(水) 20:43:45.15ID:lYnaZc560
Javaは設定ファイル多すぎて挫折したけどdotnet new mvcですぐ始められるのは良いね
サーバーもいらないし
2018/10/24(水) 20:45:46.94ID:FS+T0WbLa
>>229
意味ない
ビルドだけなら.NETさえ入ってればmsbuild一発でできる
2018/10/24(水) 21:02:31.52ID:uTlH1PNGr
MSが委託請負が開発したCommunityでビルドしたアプリまで特定できるの?
2018/10/24(水) 21:04:15.38ID:3/mFq1HRd
tiff画像をBitmapクラスを使って読み込みたい
読み込みはできたのだけど、1ピクセル辺りに要するバイト数が想定と違って困ってます

Bitmap b = new Bitmap(file)
BitmapData d = b.LockBits(new Rectangle(0,0,b.width,b.height),ImageLockMode.ReadWrite,b.PixelFormat)

b.pixelFormatがどうやらサイズが間違っているようなんだけども
ここってどう指定すべきなのでしょうか
2バイトのところ4バイトのARGBが入ってるのでサイズがめちゃことなってしまって
2018/10/24(水) 21:39:43.47ID:pUZreFeO0
>>233
Visualstudioのお金払う必要無いって言ってる?
ライセンスの話ね
2018/10/24(水) 21:55:47.42ID:0ETaBBAFa
>>235
tiff使ったことはないけどここ参考になったりしない?
https://teratail.com/questions/136266
2018/10/24(水) 22:47:55.18ID:FS+T0WbLa
>>236
ビルドだけが目的ならVSなんか全く必要ないよ
2018/10/24(水) 23:48:44.98ID:sUnPoBu6d
>>237
回答があるようでない感じやねありがとう
ファイルの先頭ポインタから何番目ってをIntPtrで変換とかはStreamReaderでできるんかな?
2018/10/25(木) 00:00:10.59ID:6CwUNa2j0
>>238
じゃ、Visualstudioって実質金出さんでもいいの?
2018/10/25(木) 00:02:26.32ID:bJEmGRRpM
>>240
開発生産性を度外視するならその通り
2018/10/25(木) 02:14:51.71ID:LTnIM1RR0
最近ほぼVisualStudioCodeしか使ってないわ
2018/10/25(木) 09:35:23.68ID:BG3PZmBX0
>>235
まずその想定してるっていうPixelFormatは正しいのかExplorerからプロパティ>詳細のビットの深さ見て確認する
> 2バイトのところ4バイトのARGBが入ってる
想定とBitmapDataでどっちがどっちなのか読み取れないけど1ピクセル2バイトってRGB565とかその辺なの?
2018/10/25(木) 11:59:33.09ID:dYjhTuUoa
たぶん直接の原因は>>237にある通りじゃないのかな
文面を見る限り質問者はあまり注意深い人に思えないしw
2018/10/25(木) 12:11:30.07ID:dYjhTuUoa
ところで、LockBitsってインスタンスメソッドなのに何で自分自身のPixelFormatを
引数で要求するんだろう。
2018/10/25(木) 13:07:15.03ID:r31i+JfIM
GDI+のAPIがそうなっているから、それを何も考えずに猿のようにラップしてそうなっただけ
2018/10/25(木) 19:40:29.60ID:gTpJa4iN0
>>246
Q. では何故GDI+のAPIはそうなっているのですか?

A. The pixel format of the temporary buffer does not have to be the same as the pixel format of this Bitmap object.
[https://docs.microsoft.com/en-us/windows/desktop/api/gdiplusheaders/nf-gdiplusheaders-bitmap-lockbits]
2018/10/25(木) 20:44:40.21ID:n3Rz+F82a
>>247
フルカラーをトゥルーカラーにしたり、アルファーチャンネルを付け加えたり、
そういうフォーマットの変換機能も兼ねてるってことなのかな

MSDNのLockBitsの解説にはそんなこと書いてないけど。

不細工な設計だねw
2018/10/25(木) 21:41:33.94ID:JIQ6DfsAp
>>248
> 不細工な設計だねw
なんで?
2018/10/25(木) 22:26:50.74ID:n3Rz+F82a
>>248
フォーマットの変換機能は別に持たせた方がスマートでしょ
(現にCloneでできるみたいだし)

少なくともLockBitsにPixelFormatを引数にとらないバージョンがあってしかるべき。

GDI+はやっつけで作ったのかこういう不条理な実装他でも見た記憶があるなあ
2018/10/25(木) 22:33:36.48ID:mF3BZxvh0
GDI+は処理の遅さが致命的
2018/10/25(木) 23:29:37.31ID:JIQ6DfsAp
>>250
ソース元のフォーマットに制限されず指定のフォーマットで読み書きできた方が普通に便利でしょ
別のビットマップが欲しいわけじゃないのにCloneを仲介する方が意味わからん
(LockBits自体は自動的に複製を作るようなもんだけどね)
2018/10/25(木) 23:30:45.76ID:oh52xQKG0
cbo1のテキストと同じものを3行目の3列目から右に同じものを見つかるまで探し、見つかったセルから下へループし、「※」印がある場合のみ「※」印の行の1列目の氏名を配列に入れ、cbo2にADD。
注)入れる際に同一氏名がすでに配列にある場合除外。
これをやるために、closedxmlで書いて見ましたがちょっと処理が遅い。

コードの書き方的には右にforで最終列までループ処理→ifで一致
forで一致した列の最終行まで下へループ処理→ifで一致したら配列に詰め込む。

現在ここで重複排除のやり方が分からないのでとりあえず全て配列にいれてます。
どうやって、書くのが最善ですか?

https://i.imgur.com/hEMt9ir.jpg
2018/10/26(金) 00:14:26.87ID:mydHUNdj0
>>253
格納するときに現在あるやつ全部とダブリチェックでいーじゃん
2018/10/26(金) 00:36:10.18ID:pE8f1AMra
>>253
低い抽象度でものを考えすぎている
お前がやりたいのはExcelの操作を自動することではなくて目的とする結果を得ることだろ?
まず要件を明確にし、それをそのままコードに落とすだけだ
カーソルだのセルだのは最後の最後に出てくるどうでもいい瑣末な部分だ
2018/10/27(土) 08:30:41.59ID:F8L6v78S0
複数の.csvファイルを一つの.xlsxファイルに簡単に纏められる?
2018/10/27(土) 08:55:21.44ID:BNqfM2zkM
VBAでできることはC#でも全く同じ方法でできる
C#ではなく "VBA CSV 複数 結合" でググったら一発でサンプルは出てくる
そして "C# Excel 操作" でググって出てきたサンプルを真似してC#に機械的に書き直せ
それ以上細かいことはスレ違い
2018/10/27(土) 09:14:14.56ID:if75aWaZ0
>>256
できる
2018/10/27(土) 11:23:15.72ID:AkygrdAXM
>>256
やればできる
2018/10/27(土) 15:22:42.49ID:GAIyH11Qr
やれば出来るだろうが、手間は掛けられん。
簡単に出来るなら、ちょっと考えてみるかな。

ありがとう。
261デフォルトの名無しさん (ワッチョイ 5b9f-3knh)
垢版 |
2018/10/27(土) 15:42:55.29ID:QwPOuwmq0
>>256
テキストの状態で全ファイル連結して一つのcsvファイルを作り、それをExcelで開いてxlsxで保存。

というローテクな方法でもできる。
2018/10/27(土) 15:57:45.83ID:if75aWaZ0
>>260
普通にc#からエクセルファイル操作できるから
2018/10/27(土) 15:58:58.91ID:ntx2HiKDa
便所掃除ができることをドヤ顔で言わなくてよろしい
2018/10/27(土) 22:41:19.36ID:Qgr0BHqv0
>>262
お前の「普通に」って何だよwww
初心者用なんだしやり方を詳しく教えろやくださいませ

まさかopenXMLのAPIのことじゃないよね
2018/10/27(土) 23:31:57.17ID:/aRXu6mM0
VBEでC#書けたりするの?
2018/10/27(土) 23:56:23.88ID:cqzal98J0
C#のクラスを考えるときにテストのことを考えるとさ
privateの関数や変数は持たない方が望ましいと聞いたんだがそこまで意識してプログラミングしてる?
役割を逸脱してる可能性が高いと言われてるのだがコード的にそうはさせない方法とかあるのだろうか
2018/10/28(日) 00:27:12.07ID:hf5/u8050
えなにそれ
publicな変数にしろってこと?
2018/10/28(日) 01:01:32.10ID:sLs9tkqy0
>>267
全部パブリックにしろって話ではないと思うのだが、
クラスとしてちゃんと機能してるかをテストしやすくするものとして確認しやすいように設計をするようにと言われた
アクセッサを準備しろってことなのか
、protectedで作って継承してテストをしやすくしろってことなのかはわかってない
2018/10/28(日) 01:01:48.04ID:z9u8vCUJ0
>>266
なにそのキチガイ発言
2018/10/28(日) 01:05:59.90ID:sLs9tkqy0
>>269
たぶん本質は内部所持して扱う変数を極力減らしましょうってことなんかなって思ってる
クラスを使うのにA・B・Cを事前に呼び出して内部変数の設定をしないと使えないですとかだと
バグのもととかになるから条件縛りを減らしましょうとかってことなんじゃないかと
2018/10/28(日) 06:10:51.67ID:e0hkCJOP0
全部public staticにしろ
2018/10/28(日) 08:05:20.34ID:3RT+wTpd0
日曜プログラマです
理屈に疎いので教えてください
Win32APIをマーシャリングしてプログラムを作成中なのですが
コールバックをデリゲートでやってるので
これは必然的にFormとは別のスレッド(マルチスレッド)という理解で正しいでしょうか?
このコールバックからの信号をトリガーにForm上のコントロールを触ると
「別スレッドからアクセスした」と怒られます
これを回避するために別のデリゲートを挟んでコントロールを触っていますが
これ以外に方法ないでしょうか?
デリゲート挟むと時々信号取りこぼすみたいで
上手くコントロールが反応しないことがあるんで改良したいのです
2018/10/28(日) 08:25:18.25ID:SibvNmKY0
どうでもいいけどココって本当に初心者用スレなのかね
2018/10/28(日) 08:56:08.45ID:kvhoQsiz0
>>272
> コールバックをデリゲートでやってるので
> これは必然的にFormとは別のスレッド(マルチスレッド)という理解で正しいでしょうか?

どこのなんのコールバックなのかこっちは知らんのだが
「別スレッドからアクセスした」と怒られるんならそうなんでそ

> これを回避するために別のデリゲートを挟んでコントロールを触っていますが

デリゲートを挟んでとあるけど、前提としてコントロールを触る処理はInvokeメソッドにちゃんと投げてる?
2018/10/28(日) 10:44:38.69ID:zjm6bfwn0
すみません、c#の初心者です。UnityでRPGを製作しているのですが、質問があります。

if (条件式1) {
条件式1が真の時のダメージ処理;
...;
}else if(条件式2) {
条件式1が偽で条件式2が真の時のダメージ処理;
...;

これに、ダメージを999以下に抑えたいので<=999を入れたいのですが、どこに入れればいいのでしょうか?

簡単な質問で申し訳ありませんがよろしくお願いします。
2018/10/28(日) 10:51:17.84ID:JM6DGBKw0
>>275
ダメージ処理終わった最後
int dmg=0;
if (条件式1) {
条件式1が真の時のダメージ処理;dmg+=a;
...;
}
}else if(条件式2) {
条件式1が偽で条件式2が真の時のダメージ処理;dmg+=b;
...;
}
dmg=dmg>999?999:dmg;//またはif (dmg>999) dmg=999;
2018/10/28(日) 10:59:20.84ID:zjm6bfwn0
>>276
早速のご回答ありがとうございます!やってみます!
2018/10/28(日) 11:20:25.94ID:zjm6bfwn0
無事反映されました!ありがとうございます。
279デフォルトの名無しさん (ワッチョイ f7a5-Az/2)
垢版 |
2018/10/28(日) 11:48:33.54ID:3RT+wTpd0
>>274
Invokeメソッドに投げるとはこういうことでしょうか?
private void _TS()
{
TextShowDelegate dlgTS = new TextShowDelegate(TextShow);
IAsyncResult ar1 = BeginInvoke(dlgTS, null);
}
Tipsの寄せ集めでやってるので理屈はあまりよくわかってませんwww
280デフォルトの名無しさん (ワッチョイ 6bb8-3KA+)
垢版 |
2018/10/28(日) 11:54:36.96ID:Lzmpvi1g0
FXのEA(自動売買ツール)を提供しています。
興味がありましたら見てみてください。
http://hbgfvtgvfvr.weblog.to/
2018/10/28(日) 13:12:56.47ID:sLs9tkqy0
>>271
クラス化してる意味がほぼ無さそう....

コンストラクタで引数渡してメンバ変数にデータを覚えさせて使うのと
ことあるごとに内部関数の引数にデータを渡すのってどちらのが良いのだろう?
影響範囲とか小さくすることを考えると後者なのかなって思うけども
2018/10/28(日) 16:02:02.80ID:gvAysy2V0
>>281
あるメソッドで使うからコンストラクタで渡すって考え方自体おかしいかな
メンバはそのクラスが持つ必要があるから持っているわけでメソッドで使うから持っている訳では無い
例えば体クラスでBMIを計算するときは体重、身長は体情報だからクラスのメンバで持たせる
身長クラスでBMI計算するときは身長はメンバで持って体重はメソッドの引数で渡す
2018/10/28(日) 17:25:54.20ID:sLs9tkqy0
>>282
クラスの役割的にはそれであってるのだと思う
聞きたかったのは例えばその身長クラスに特化した話で
身長をそもそもメンバに持つ必要性はあるのだろうか?って話
2018/10/28(日) 17:38:11.82ID:ISWax1KhM
何か正しいかはユースケース次第
クラス単独での設計の正解なんか存在しない
2018/10/28(日) 18:47:58.26ID:VnMv7Anc0
身長クラスではなくBMI計算機クラスがいいのかな
2018/10/28(日) 20:53:14.99ID:c1Io2A4L0
>>279
https://qiita.com/mounntainn/items/8a2b4f1cf47bd02657f3

自分は上のに近いのでやってる
InvokeRequiedで判定してスレッドセーフにするのが定石みたいだね
287デフォルトの名無しさん (ワッチョイ 05a5-Az/2)
垢版 |
2018/10/29(月) 11:51:55.81ID:IQ5w1AIM0
>>286
情報ありがとうございます
勉強させていただきます
288デフォルトの名無しさん (ワッチョイ 5781-dYvX)
垢版 |
2018/10/29(月) 13:34:23.83ID:09l7CDuO0
C#ではnumpy.randomみたいにSeed値を指定するようなことってできるんでしょうか?
2018/10/29(月) 13:36:55.22ID:f3zS/OjjM
できる
2018/10/29(月) 14:41:55.61ID:xwSUZkbbd
とても初歩的な質問なんですが

protected AbBb _abbb;

こんな感じのプログラムってなんていいますか?
2018/10/29(月) 14:44:34.42ID:f3zS/OjjM
クソコードというんじゃない?
フィールドをprotectedにしているプログラムはC#では一般的にはそう呼ばれる
2018/10/29(月) 14:47:11.97ID:xwSUZkbbd
>>291
なんていうか、_と書くことで別のところから持ってこれるようになる方法のことです
2018/10/29(月) 14:52:04.17ID:oAZGLoeZ0
_から始まろうがそうでなかろうがC#では普通の識別子であって言語的に意味の違いはない
メタ的に意味はあるかもしれんがそれは文脈次第

なのでもうちょっと文脈を示してもらわないと意味分らん
294デフォルトの名無しさん (ワッチョイ d3eb-o1DS)
垢版 |
2018/10/29(月) 14:52:15.80ID:ZsrJ9icq0
>>292
DIっていうんだよ
2018/10/29(月) 20:42:23.22ID:1yFXm6Bf0
>>294
初心者相手なんだから略してない名称も書いてあげたら
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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