ふらっと C#,C♯,C#(初心者用) Part132
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part131
http://mevius.5ch.net/test/read.cgi/tech/1504861931/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured なんか突っ込みどころが多すぎて
登場人物全部抜けてる気がする
File.Exists メソッド
String.IsNullOrEmpty メソッド >>391
どっちも静的メソッドだよねそれ
どっちも機能的には明らかにプロパティじゃないのにプロパティ風の名前になってるのは
妥協の産物でしょう。 >>379
原則状態はプロパティ、動作がメソッド
ただし、利用者はプロパティはループ毎にキャッシュせず読んでもいいくらいに軽い処理だと考える場合があるので、時間がかかるならメソッドにしたほうがよいかも プロパティはもちろん取得系のメソッドも何度も呼んでいいよ
実測した結果、遅くなってると分かったらキャッシュを導入する
パフォーマンスだけのために説明変数を追加するのはNG >>396
初心者スレでマウントとりたいだけのバカは邪魔なのでわんくまにでも行ってどうぞ >>395
var cachedUnko = GetBigUnko();
こういうやつ - IsItemExitsはHasItemに
- Existsは引数を取るので基本メソッド
- IsNull、IsEmpty, HasValue等の問い合わせ系は悩ましいので選択基準を規約で決めておく
問い合わせ系については引数不要で十分チープなら
.NET Frameworkでは基本的にプロパティが使われている
ただメソッドにしないといけないケースも少なからずあるので
個人的にはメソッドに統一しといたほうがいいと思ってる
https://msdn.microsoft.com/en-us/library/ms229054(v=vs.100).aspx 回帰分析とかで説明変数って聞くけど他じゃあまり聞かない HasItemってどんなときつかうんだろうか
もしそれがコレクションならContain使うよ
引数ないならプロパティって暴論あるけど リファクタリングやリーダブルコードにも説明変数って出てくるぞ それはないと思うよw
説明変数なんて割とよく聞く言葉だと思う。
まあどうでもいいので終了。 bool HasItems => _items.Count() >= 0; >>401
if (treasureBox.HasItem) {…} 仕事で統計の説明変数という言葉を使うので
全然別の定義の説明変数という言葉があるなら知っておきたい >>406
オブジェクト指向の原理主義的には典型的なアンチパターンだよそれ
空なら何もしないとかアイテムが入ってればプレイヤーのアイテム袋に入れるとかは宝箱のOpenメソッドの中に実装するべき >>408
要するに可読性を上げるためだけに使用される一時変数のこと
数学だったら「ここで〜をxとおくと」みたいなあれ
var count = 3;
var sum = a + b + c;
return sum/count; >>410
「プログラミング 説明変数」でググってみては? >>411
うん、そこは論点じゃないから
IsItemExistな名前はHasItemに変えられるよってこと
>>401はItemという名前からコレクションの要素を連想してるみたいだから
そうじゃないのをイメージしやすい例を出したの
HasSomethingでもいいよ >>394
ポリモーフイズムの関係で実測があてにならん状況も多いんだよね
Countは実装依存でo(1)だったりo(n)だったり、データベース呼び出しが走る可能さえある
それに対してLengthプロパティはo(1)でインライン展開されるだろうと高をくくってもだいたい問題ない
ネックになればそのときに測定 >>415
ポリモー関係ないじゃん
もしかしてストップウォッチ派? >>415
CountプロパティをO(n)で実装するのは良くない
ガイドラインに反してる
CollectionのCountはプロパティで
EnumerableのCountはメソッドになってる理由と同じ >>413
今ググったらプログラミングで説明変数って使い方をしてるのはごく一部だという印象
一般的に使われてない 統計の説明変数はexplanatory variable
リーダブルコードの人がExplaining Variableという名前を付けて書籍に残した
日本語訳するときに適当な言葉が思いつかなかったので説明変数にした
翻訳者に学がなかった >>419
酷い言い掛かりw
違う分野でダブってる専門用語なんていくらでもあるだろうに
そもそも変数だって関数だって数学からの借り物だが全然別の意味で使ってる いやそーいうことじゃなくて日本では同じ表現だけど向こうじゃ別だから厄介
国内でも説明変数で通じるかどうか >>421
フツーに考えてexplanatory とexplaining が別の言葉だと思えませんけどw
現に"explanatory variable" "explaining variable"でググると結構混用しちゃってる例が見つかるよ ついでに、思いっきり脱線で申し訳ないけど、前から疑問に思ってたけど
プログラミングの世界の分割統治はdivide and conquer、
古代ローマの植民地支配戦略の分割統治はdivide and ruleというが、
これもたぶんどっちでも通じると思うんだよね 自分の知らない言葉が出てきた時に
その人の性格が現れるのかもしれないねw 396の時点で
馬鹿が一丁前に発狂してしばらくは荒れるんやろなと思っとったが
やはりだろう
まったくクソボケは期待を裏切らないな IList<T>の中身をソートしたいのですがどうすればいいでしょうか?
SortメソッドはListクラスにあってIList<T>インターフェースにはありません。
LINQのOrderByは元のコレクションの中身をソートしませんよね??
IList<T>の中身を直接入れ替えたいのです。 >>428
var sorted = ilistobj.OrderBy(...).ToArray();
ilistobj.Clear();
foreach (var item in sorted)
ilistobj.Add(item); 入力フォーム画面から入力されたデータを集めてDBなり別の出力クラスに渡すプログラムを.NET2.0の頃に作った時は、入力フォームとデータクラスの関連付けにBindingとか使ってた記憶あるんだけど、今もその辺は変わってないの? WinFormなら.NET 2.0のあとで機能追加されたのってChartぐらいじゃないっけ
BindingSourceは.NET 2.0でもう入ってたよな >>430
ToArray→Array.Sort→書き戻し
のほうが速いはず >>433-434
Web漁ってもWPFネタばかりだったわ・・・ Formのバインディングはずいぶん前だけどわんくまの人が結構まとまった記事書いてたはず
コードはVBだと思ったが >>439
intの変数とテキストボックスをバインディングして
実行時にテキストボックスに「うんこ」って入れると死ぬじゃん
普通どうやって作るの? >>440
普通にフォームのTextプロパティと同じ型にするんだろ 前から変なレスしているアウアウオーがいる
アウアウオー Sae2-jbpI
これNGしとけ >>442
でもさ、入れる値は数値なのに一旦文字列にしないとじゃん? >>444
文字列にしないと Text プロパティに値を設定できないじゃん? テキストボックスのコントロール側でバリデーションしろよ >>445
数値が欲しくても入力チェックの必要があるときは一旦文字列でもてって言ってる? >>447
Text プロパティは文字列なんだからバインド云々以前に一旦文字列にするのは当たり前
(どこかで 数値 <--> 文字列 の変換が必要)
って意味で言った
でも ErrorProvider 使えば数値型プロパティでいい感じにバインドできるんじゃないかと今思った list<list<string>> hoge
このようなデータ構造のものをdatagridviewに表示させたいのですが、datasorceにhogeをセットすると入れ子のlistのcount数が表示され、肝心の中身が表示されません。
解決方法おしえてください つか、数値入力はカスタムコントロールかビヘイビア作って対応しろや
Valueプロバティーなど作ってintやdoubleと直接バインド出来る NumericUpDownさんの立つ瀬がない
>>449
適当なクラス作ってList<string>をそっちに移し替えるのが一番楽だよ >>451
WPFにそれ無くて愕然としたわ
Nugetから拾ってねってことなんだろうけど、流石にForm時代のコントロールは用意しとけよと 今更好きになる必要はない
死んだプラットフォームだよ Formを拡張してくれてもいいのに、
新機能はWPFを使えとかだからなぁ 明らかにビジネスニーズを外してると思うんだが
やっぱり海外でも同じなんだろうなって思う 質問に関係ない雑談は他でやれ
>>449
Listを直接表示する機能はないのでDataTableにしてからDataSourceとして代入してください
MSDNでもそうなっている
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview.datasource(v=vs.110).aspx >>457
class作る場合はcolumn数固定だし、この方法が良さそうです。
ありがとう。 多次元配列について
二つの変数i,jを代入したときに三次元ベクトルの値が帰ってくるような多次元配列の書き方を教えてほしいです。 大学の研究で使いたいですorz
どこのサイト調べたら乗ってますか、、、 >>463
たぶん俺だけじゃないと思うけど、何言ってるのか全然わからないよw >>465
要件を切り分けよう。そうしたら自分でググれる
>>463の内容だとC#以前に日本語として通じない for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
??? = Vector3; //Vector3はiとjで定まるベクトル
}
この???に入る関数の正しい形がわからなくてずっとエラー吐き出してます f(a, b) -> (a, b, a・b)
これを配列でやりたいんかねえ
無茶言うな >>468
多次元配列ならarray[i, j]
ジャグ配列ならarray[i][j] >>468
Vector3ってx,y,zがいるよね。そこでi,jから算出したいって言われてもわからないよ
クラスまたは構造体にそれを格納したいの?
>>471のように配列にしたいの? var array[,]=new ベクトル型の名前[100, 200];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
array[i, j] = ベクトルオブジェクト;
}
} >>473は間違えてCみたいに書いちゃった
var array=new ベクトル型の名前[100, 200];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
array[i, j] = ベクトルオブジェクト;
}
} ベクトルの各成分は既存のプログラムで決まっています
説明不足ですみません ダメだ、、
やっぱりエラーはでないけど描画に意図しないものがでます。
UNITYとリープモーションを使っているのですが、以下の一文が入るとおかしくなってしまいます。
boneText.GetComponent<BoneText>().bonL[i][j] = sphere.position;
この一文でsphere.positionの値は変わらないですよね、、 よくこんな何言ってるのか訳分からん質問に回答できるな
エスパーなのかw つーかこれ日本のIT業界の縮図を見る思いだよw
客側は仕様を決める能力がない。
受ける側も客が欲しい物を聞き出す能力がない。
だからああでもないこうでもないと不毛なやり取りが延々に続く。
どちらの側に「まず最初に問題を明確にしよう」って言える奴がいれば効率は何倍にもなるのに
それが出来ない。 visualstudioと参考書を使ってC#の簡単なプログラムを作りながら学んでいるのですが
ちょっと難しいプログラムを作ろうとネットにあるサンプルコードをコピペしても
アセンブリ参照を確認してくださいの連発でうまく動きません
参考書だとイベントハンドラの作り方とかがひとつひとつ載っているのですが
ネット上のサンプルコードだとそういうのが省略されていることが多いです
やはり経験不足なのでしょうか?地道に簡単なものをたくさん作っていった方がいいのでしょうか?
コピペしただけではプログラムが作れないというのが難しいです >アセンブリ参照を確認してくださいの連発でうまく動きません
それで悩んでる様だと、全く基礎が出来ていないと思われるので
ちゃんと基礎から学習した方が良い 「c# アセンブリ参照を確認」で検索しても探せない
一言一句、正確なエラーメッセージで検索すべき。
エラーメッセージを少しでも、変えたらダメ!
検索できなくなるから
「c# アセンブリ参照」で検索! foamアプリケーションを使ってるのですが、例えば配列に格納されたデータをプリンターで印刷したいって時はどうしたらいいのでしょうか? >>488
三浦雄一郎なんて85歳だけど未だ山に登ってスキーの滑降に挑戦すると言ってる。
日本のit業界でそんな人居るか? >>486
>>487のページを参考に
pd_PrintPageメソッド内の
if (printingPosition == 0)
{
printingText = printingText.Replace("\r\n", "\n");
printingText = printingText.Replace("\r", "\n");
}
を
if (printingPosition == 0)
{
printingText = string.Join(",", sringArray);
}
に置き換える。(stringArrayは印刷したい文字列配列) ■ このスレッドは過去ログ倉庫に格納されています