ふらっと C#,C♯,C#(初心者用) Part132at TECH
ふらっと C#,C♯,C#(初心者用) Part132 - 暇つぶし2ch444:デフォルトの名無しさん
17/10/24 17:02:08.12 hsifRvdf0.net
>>429
>>430

445:デフォルトの名無しさん
17/10/24 17:19:30.78 VubGQCWPM.net
>>430
ToArray→Array.Sort→書き戻し
のほうが速いはず

446:デフォルトの名無しさん
17/10/24 21:04:22.55 Y6LvzYD50.net
>>433-434
Web漁ってもWPFネタばかりだったわ・・・

447:デフォルトの名無しさん
17/10/24 21:51:38.33 NHCjs86oa.net
Formのバインディングはずいぶん前だけどわんくまの人が結構まとまった記事書いてたはず
コードはVBだと思ったが

448:デフォルトの名無しさん
17/10/24 21:55:17.75 s18UOlL+a.net
>>439
intの変数とテキストボックスをバインディングして
実行時にテキストボックスに「うんこ」って入れると死ぬじゃん
普通どうやって作るの?

449:デフォルトの名無しさん
17/10/24 22:14:43.68 lLS52e6w0.net
脳みそウンコはママにオムツでもしてもらえ

450:デフォルトの名無しさん
17/10/24 22:39:01.84 lU4ejLPG0.net
>>440
普通にフォームのTextプロパティと同じ型にするんだろ

451:デフォルトの名無しさん
17/10/24 23:18:41.89 kX+BI6hp0.net
前から変なレスしているアウアウオーがいる
アウアウオー Sae2-jbpI
これNGしとけ

452:デフォルトの名無しさん
17/10/25 00:11:21.67 vZNm40SOa.net
>>442
でもさ、入れる値は数値なのに一旦文字列にしないとじゃん?

453:デフォルトの名無しさん
17/10/25 00:36:46.65 WIc18nYy0.net
>>444
文字列にしないと Text プロパティに値を設定できないじゃん?

454:デフォルトの名無しさん
17/10/25 00:37:56.23 Q2yRg5qV0.net
テキストボックス�


455:フコントロール側でバリデーションしろよ



456:デフォルトの名無しさん
17/10/25 00:41:23.45 7bqawKXsa.net
>>445
数値が欲しくても入力チェックの必要があるときは一旦文字列でもてって言ってる?

457:デフォルトの名無しさん
17/10/25 02:32:41.64 WIc18nYy0.net
>>447
Text プロパティは文字列なんだからバインド云々以前に一旦文字列にするのは当たり前
(どこかで 数値 <--> 文字列 の変換が必要)
って意味で言った
でも ErrorProvider 使えば数値型プロパティでいい感じにバインドできるんじゃないかと今思った

458:デフォルトの名無しさん
17/10/25 06:04:30.07 6FPeEgMNM.net
list<list<string>> hoge
このようなデータ構造のものをdatagridviewに表示させたいのですが、datasorceにhogeをセットすると入れ子のlistのcount数が表示され、肝心の中身が表示されません。
解決方法おしえてください

459:デフォルトの名無しさん
17/10/25 08:28:58.19 M5t9KVaY0.net
つか、数値入力はカスタムコントロールかビヘイビア作って対応しろや
Valueプロバティーなど作ってintやdoubleと直接バインド出来る

460:デフォルトの名無しさん
17/10/25 09:36:00.51 +tJOBv1wM.net
NumericUpDownさんの立つ瀬がない
>>449
適当なクラス作ってList<string>をそっちに移し替えるのが一番楽だよ

461:デフォルトの名無しさん
17/10/25 09:38:13.76 lkuOTBBm0.net
>>451
WPFにそれ無くて愕然としたわ
Nugetから拾ってねってことなんだろうけど、流石にForm時代のコントロールは用意しとけよと

462:デフォルトの名無しさん
17/10/25 12:10:32.13 5tcC17L/0.net
WPFを好きになれない

463:デフォルトの名無しさん
17/10/25 12:25:41.50 Lk4Aq805H.net
今更好きになる必要はない
死んだプラットフォームだよ

464:デフォルトの名無しさん
17/10/25 14:53:18.95 NEHk3FBt0.net
Formを拡張してくれてもいいのに、
新機能はWPFを使えとかだからなぁ

465:デフォルトの名無しさん
17/10/25 17:48:18.55 QxbqfPpga.net
明らかにビジネスニーズを外してると思うんだが
やっぱり海外でも同じなんだろうなって思う

466:デフォルトの名無しさん
17/10/25 18:09:40.11 hcA39hyC0.net
質問に関係ない雑談は他でやれ
>>449
Listを直接表示する機能はないのでDataTableにしてからDataSourceとして代入してください
MSDNでもそうなっている
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

467:デフォルトの名無しさん
17/10/25 18:14:21.08 Ho4Id2OA0.net
仕切り屋ウゼエ

468:デフォルトの名無しさん
17/10/25 18:48:44.36 BTS+nNEQM.net
>>457
class作る場合はcolumn数固定だし、この方法が良さそうです。
ありがとう。

469:デフォルトの名無しさん
17/10/25 19:51:15.93 NJvUwgFjr.net
お年寄りには無理かもねww

470:デフォルトの名無しさん
17/10/26 21:25:01.19 wrijmML40.net
>>460
何歳からお年寄り?

471:デフォルトの名無しさん
17/10/26 21:35:06.39 axdI+VLP0.net
「最近の若いもんは」とか言い出したら年寄り

472:デフォルトの名無しさん
17/10/26 23:11:07.62 32PzTYul6.net
多次元配列について
二つの変数i,jを代入したときに三次元ベクトルの値が帰ってくるような多次元配列の書き方を教えてほしいです。

473:デフォルトの名無しさん
17/10/26 23:16:22.52 ZYb1HzvY0.net
宿題はNG

474:デフォルトの名無しさん
17/10/26 23:26:46.05 32PzTYul6.net
大学の研究で使いたいですorz
どこのサイト調べたら乗ってますか、、、

475:デフォルトの名無しさん
17/10/26 23:28:13.23 /JkeP1u6a.net
>>463
たぶん俺だけじゃないと思うけど、何言ってるのか全然わからないよw

476:デフォルトの名無しさん
17/10/26 23:32:24.39 gKJtyuf20.net
>>465



477:v件を切り分けよう。そうしたら自分でググれる >>463の内容だとC#以前に日本語として通じない



478:デフォルトの名無しさん
17/10/26 23:34:06.91 32PzTYul6.net
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)

??? = Vector3; //Vector3はiとjで定まるベクトル
}
この???に入る関数の正しい形がわからなくてずっとエラー吐き出してます

479:デフォルトの名無しさん
17/10/26 23:35:43.85 LSWABSRs0.net
f(a, b) -> (a, b, a・b)
これを配列でやりたいんかねえ
無茶言うな

480:デフォルトの名無しさん
17/10/26 23:36:15.67 LSWABSRs0.net
わー全然違った

481:デフォルトの名無しさん
17/10/26 23:37:53.64 Fjma9sq90.net
>>468
多次元配列ならarray[i, j]
ジャグ配列ならarray[i][j]

482:デフォルトの名無しさん
17/10/26 23:40:05.56 gKJtyuf20.net
>>468
Vector3ってx,y,zがいるよね。そこでi,jから算出したいって言われてもわからないよ
クラスまたは構造体にそれを格納したいの?
>>471のように配列にしたいの?

483:デフォルトの名無しさん
17/10/26 23:41:13.22 Fjma9sq90.net
var array[,]=new ベクトル型の名前[100, 200];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)

array[i, j] = ベクトルオブジェクト;
}
}

484:デフォルトの名無しさん
17/10/26 23:41:54.41 32PzTYul6.net
>>471
ありがとうございます!

485:デフォルトの名無しさん
17/10/26 23:43:25.01 Fjma9sq90.net
>>473は間違えてCみたいに書いちゃった

var array=new ベクトル型の名前[100, 200];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)

array[i, j] = ベクトルオブジェクト;
}
}

486:デフォルトの名無しさん
17/10/26 23:43:59.46 32PzTYul6.net
ベクトルの各成分は既存のプログラムで決まっています
説明不足ですみません

487:デフォルトの名無しさん
17/10/26 23:51:07.89 32PzTYul6.net
ダメだ、、
やっぱりエラーはでないけど描画に意図しないものがでます。
UNITYとリープモーションを使っているのですが、以下の一文が入るとおかしくなってしまいます。
boneText.GetComponent<BoneText>().bonL[i][j] = sphere.position;
この一文でsphere.positionの値は変わらないですよね、、

488:デフォルトの名無しさん
17/10/27 00:41:11.00 f8YP8m/jM.net
>>477
知恵袋で質問してる人?

489:デフォルトの名無しさん
17/10/27 00:49:37.03 1uP28vOGa.net
よくこんな何言ってるのか訳分からん質問に回答できるな
エスパーなのかw

490:デフォルトの名無しさん
17/10/27 00:53:50.14 f8YP8m/jM.net
大学行って周りに聞けってレベル

491:デフォルトの名無しさん
17/10/27 00:57:10.14 pAogLeJi0.net
エラー見ろよ

492:デフォルトの名無しさん
17/10/27 01:02:08.49 1uP28vOGa.net
つーかこれ日本のIT業界の縮図を見る思いだよw
客側は仕様を決める能力がない。
受ける側も客が欲しい物を聞き出す能力がない。
だからああでもないこうでもないと不毛なやり取りが延々に続く。
どちらの側に「まず最初に問題を明確にしよう」って言える奴がいれば効率は何倍にもなるのに
それが出来ない。

493:デフォルトの名無しさん
17/10/27 02:16:34.70 Xsu5cNz50.net
visualstudioと参考書を使ってC#の簡単なプログラムを作りながら学んでいるのですが
ちょっと難しいプログラムを作ろうとネットにあるサンプルコードをコピペしても
アセンブリ参照を確認してくださいの連発でうまく動きません
参考書だとイベントハンドラの作り方とかがひとつひとつ載っているのですが
ネット上のサンプルコードだとそういうのが省略されていることが多いです
やはり経験不足なのでしょうか?地道に簡単なものをたくさん作っていった方がいいのでしょうか?
コピペしただけではプログラムが作れないというのが難しいです

494:デフォルトの名無しさん
17/10/27 02:25:22.36 WVUdRiE90.net
>アセンブリ参照を確認してくださいの連発でうまく動きません
それで悩んでる様だと、全く基礎が出来ていないと思われるので
ちゃんと基礎から学習した方が良い

495:デフォルトの名無しさん
17/10/27 04:49:12.54 mZaDwhR60.net
「c# アセンブリ参照を確認」で検索しても探せない
一言一句、正確なエラーメッセージで検索すべき。
エラーメッセージを少しでも、変えたらダメ!
検索できなくなるから
「c# アセンブリ参照」で検索!

496:デフォルトの名無しさん
17/10/27 06:00:59.69 CkoVgn7Ba.net
foamアプリケーションを使ってるのですが、例えば配列に格納されたデータをプリンターで印刷したいって時はどうしたらいいのでしょうか?

497:デフォルトの名無しさん
17/10/27 06:38:45.76 nY5Kn9TXa.net
>>486
URLリンク(dobon.net)

498:デフォルトの名無しさん
17/10/27 08:09:29.44 EVxrWE8wr.net
>>461
年齢低くても年寄みたいな人多いよねw

499:デフォルトの名無しさん
17/10/27 09:04:00.13 EuwrSOCJM.net
>>488
三浦雄一郎なんて85歳だけど未だ山に登ってスキーの滑降に挑戦すると言ってる。
日本のit業界でそんな人居るか?

500:デフォルトの名無しさん
17/10/27 10:34:42.22 HHV5h0f26.net
>>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は印刷したい文字列配列)

501:デフォルトの名無しさん
17/10/27 10:35:39.48 HHV5h0f26.net
>>486
>>490はミスった。

>>487のページを参考に
pd_PrintPageメソッド内の
if (printingPosition == 0)
{
printingText = printingText.Replace("\r\n", "\n");
printingText = printingText.Replace("\r", "\n");
}
を、
if (printingPosition == 0)
{
printingText = string.Join("\n", sringArray);
}
に置き換える。(stringArrayは印刷したい文字列配列)

502:デフォルトの名無しさん
17/10/27 10:50:10.66 SMci25s2r.net
言語仕様を軽く調べて良さそげだったのでC#使ってみたいんだけど
既に簡単なプログラムや重い処理はC/C++
計算系はscilab、DNNはPython、サーバ系はnode.jsてな感じで使い分けしてるので
どういう用途で使うとgoodなのか分からない
C#て何に使える?Unity?

503:デフォルトの名無しさん
17/10/27 10:57:55.98 DFrdiJ4Ra.net
その簡単なプログラムというのをc#に持ってくるのがいいんではないかな
あとそこで上がってないのはPC上のGUI使ったものだけど
それには向いてる
window向け
.net framework向け
VS使って開発したい人向け

504:デフォルトの名無しさん
17/10/27 11:01:00.18 CkoVgn7Ba.net
>>487>>491
ありがとうございます!参考に頑張ってみます

505:デフォルトの名無しさん
17/10/27 11:06:36.02 DFrdiJ4Ra.net
もともとGUIを実装するのが難しい環境で育った人達はGUIを毛嫌いするけど
それはクソだった環境を恨むべきでGUIは無罪

506:デフォルトの名無しさん
17/10/27 11:14:51.14 WDMSp6pvM.net
>>492
Windowsのアプリケーション開発に使える。
c#のIDEほどユーザーに至れり尽くせりなのは無いと思う。

507:デフォルトの名無しさん
17/10/27 11:16:26.26 HHV5h0f26.net
>>492
一般のウィンドウ付きGUIソフトウェアの開発はC#+VS一択

508:デフォルトの名無しさん
17/10/27 11:18:42.72 SMci25s2r.net
>>493,496,497
GUIプログラムか……
C++WINAPIでのトラウマから今の所HTML+JSで作る事が多い
主にFormとWPFの2つ方法があるらしいけど(ストアアプリは作らないのでUWPは除外)
WPF資料少ないし流行ってないし仕様が難解なのだけど
それでもこっち使うメリットある?

509:デフォルトの名無しさん
17/10/27 11:46:58.51 WDMSp6pvM.net
>>498
WPFは男前なUIが比較的簡単に作れる。
html知ってりゃ画面デザインのハードルは低い。

510:デフォルトの名無しさん
17/10/27 11:47:53.01 DFrdiJ4Ra.net
>>498
両方


511:やればいい 最初はformsで次にWPF 両方使えたらいろいろ面白い



512:デフォルトの名無しさん
17/10/27 11:50:25.84 HHV5h0f26.net
WPFむずくね?

513:デフォルトの名無しさん
17/10/27 11:54:13.46 WDMSp6pvM.net
>>501
Electronよりは簡単でしょ

514:デフォルトの名無しさん
17/10/27 11:54:19.55 DFrdiJ4Ra.net
>>501
難しい
学ばなければいけない新概念が多すぎる
いついつまでに作らないといけないとか
こういったものを確実に実装したいなど
ゴールが決まってる場合選ぶべきじゃない
特に適切な学習テキストがないのが致命的
手間や時間をかけて徐々に学習してステップアップしていける人向け

515:デフォルトの名無しさん
17/10/27 11:54:44.78 HHV5h0f26.net
>>502
Electronの方が簡単だと思ったけど

516:デフォルトの名無しさん
17/10/27 12:07:59.78 viJc7lmzd.net
>>504
求める機能と開発者のバックグラウンドで様々

517:デフォルトの名無しさん
17/10/27 12:12:08.77 SMci25s2r.net
男前なUIは魅力的だけどやはり難しいのか…
WPF勉強しつつ何か作らなきゃいけない時はForms使うって感じでやってみます

518:デフォルトの名無しさん
17/10/27 12:27:22.92 WDMSp6pvM.net
>>504
入門レベル以上のモノを作ろうとするとハードル高くないか?

519:デフォルトの名無しさん
17/10/27 12:40:38.27 2zDM9gUL0.net
伸びてるときは読まなくていい法則

520:デフォルトの名無しさん
17/10/27 12:43:28.55 1mFeKpWgM.net
>>508
そんな事を言いながら読んでレスまでしていると

521:デフォルトの名無しさん
17/10/27 12:50:31.66 37wzv4nSM.net
>>503
学習コストの低いプログラム環境なんて飯の種にはならない。それ以前にいまどき学習コストの低いものなんて無いし。

522:デフォルトの名無しさん
17/10/27 13:06:19.09 I66AtiXV0.net
wpfはMaterial Design In XAML Toolkitなんか使えば、単にコントロール並べるだけでも格好いいの出来る
URLリンク(github.com)
並べるだけならGridの仕組み覚えれば何とかなりそうだし、言うほど敷居が高いわけじゃない

523:デフォルトの名無しさん
17/10/27 13:06:50.40 cQIvF6YS0.net
【1位は3年連続Scalaの424万円!】2017年版プログラミング言語別給与ランキング
URLリンク(hrog.net)

524:デフォルトの名無しさん
17/10/27 13:12:47.78 SMci25s2r.net
>>511
これ凄いな
MVVMの真髄を見た

525:デフォルトの名無しさん
17/10/27 13:14:13.55 xbgVr3k+6.net
WPFはバインドが難しい

526:デフォルトの名無しさん
17/10/27 13:16:10.91 DFrdiJ4Ra.net
MVVMと関係ないだろw
FCUで鳴り物入りで始まった新デザインは放置されてるよな

527:デフォルトの名無しさん
17/10/27 14:18:43.50 I66AtiXV0.net
>>514
先入観持たなければ、バインド自体は半日もネットで勉強したら理解できる範囲
難しいのはスタイルとかアニメーションとかビジュアルステイトマネージャとかビヘイビアあたり

528:デフォルトの名無しさん
17/10/27 14:43:10.59 HHV5h0f26.net
リストの項目を複数選択してそれぞれの属性値を使って処理しようとしてもWPFだと難しい

529:デフォルトの名無しさん
17/10/27 14:45:18.40 HHV5h0f26.net
単純に1つのアイテムをクリックした時にその要素のデータに対応した処理をしようとしてもなかなか出来なかった気がする

530:デフォルトの名無しさん
17/10/27 15:20:00.66 I66AtiXV0.net
確かにListBoxとListBoxItemと実態データの関係はわかりづらいし、それをしっかり説明している文書も見たこと無いな
あと、ListBoxを理解するのに必須のItemContainorStyleとItemTemplateの解説とか
ノウハウだけはいくらでもネットに転がっているから、最初は単純にコピペから始めるしか無いかもね

531:デフォルトの名無しさん
17/10/27 16:01:30.28 EVxrWE8wr.net
その辺は、"WPF ItemsControl"辺りでGoogle先生の御神託を受けると
なるほど!なサイトが啓示される

532:デフォルトの名無しさん
17/10/27 16:02:39.61 EVxrWE8wr.net
WPFは簡単とは言わないが
慣れると「楽」ではある

533:デフォルトの名無しさん
17/10/27 16:47:05.61 /3yfU/y80.net
>>489
歳とともに新しい概念を吸収する能力はどうしても衰えるからな
日本だけに限った話ではない
日本だと竹内郁雄あたりが一番の古株

534:デフォルトの名無しさん
17/10/27 17:11:12.50 Xsu5cNz50.net
以下のサイトを参考にAccord.NETで画像判定を行いたいのですが
URLリンク(www.ipentec.com)
コピペだけでは上手く行かなくて悩んでいます。
NuGetでAccord.NET frameworkは導入済
フォーム名をFormMainにして
デザイナからボタン3つのイベントハンドラを作って
残りはコピペしたのですが赤線エラーが連発です。
何が足りないんでしょうか?

535:デフォルトの名無しさん
17/10/27 17:14:31.76 pAogLeJi0.net
見た目ではわからんない変な見えない文字でもあるんじゃね?

536:デフォルトの名無しさん
17/10/27 17:17:20.47 WVUdRiE90.net
昨夜のヤツか
だから何でもかんでもコピペで済ませようとせずに、ちゃんと基礎を学習しろって
>赤線エラーが連発です。
>何が足りないんでしょうか?
先ず、そのエラーの内容を全部正確に書き出せ
何が足りないっつーなら、人に物を訊ねるのに提示する情報が足りてない

537:デフォルトの名無しさん
17/10/27 17:28:28.47 5X4PuMCla.net
金出して入門書を買うべき

538:デフォルトの名無しさん
17/10/27 17:32:12.47 Xsu5cNz50.net
ごめんなさい
以下が私のコピペして作ったコードです
URLリンク(pastebin.com)
エラーは以下の21個です
URLリンク(pastebin.com)
何かアドバイス頂けたら幸いです。

539:デフォルトの名無しさん
17/10/27 17:34:34.18 Xsu5cNz50.net
入門書は作って覚えるvisualC#2017という本を買い
コピペではありますが本に載っているプログラムを一通り作ってみました。

540:デフォルトの名無しさん
17/10/27 18:10:14.92 eOTTzU3j0.net
このサンプルがゴミ
他のサイトで試そうぜ

541:デフォルトの名無しさん
17/10/27 19:04:59.18 +TQssIne0.net
>>527
usingでエラー出ているから手の付けようがないんだが
Accord.MachineLearningがあってその下のAccord.MachineLearning.VectorMachines;が無いって出ているのだから
Accord.NET frameworkやらの導入に失敗しているか拡張か何かが必要なのにそのことが書いてないか
検証するには同じように導入しなきゃならないけど俺には無理w
身もふたもないこと書くけど、コピペでしかやらないのならプログラムじゃなくてソフトウェア板でツール探したほうがいいと思うよ

542:デフォルトの名無しさん
17/10/27 19:06:56.02 fMt9E+qB0.net
while文を使って「10000」を「2」で何回割ると
「100以下」になるかを調べるプログラムってどう記述すればいいですか?
教えてくださいお願いします

543:デフォルトの名無しさん
17/10/27 19:10:40.47 +TQssIne0.net
>>531
int count=0;
int x=10000;
while (x>100)
{
x=x/2;
count++;
}

544:デフォルトの名無しさん
17/10/27 19:24:20.57 8mvsL+zrd.net
課題の答えを教えてもらうスレみたいになってるな

545:デフォルトの名無しさん
17/10/27 19:30:24.53 pAogLeJi0.net
>>530
俺は実際にやったんだがまず最新バージョンだとダメだった
サイトに書いてるバージョンをインストールしたら名前空間未解決は全部消えたけどImageItemクラスが見つからないって出たわ

546:デフォルトの名無しさん
17/10/27 19:47:20.37 fMt9E+qB0.net
>>532さんありがとうございます

547:デフォルトの名無しさん
17/10/27 20:06:30.51 mnqGPV0ma.net
>>531-532
Math.Log使って算術的に求めればいいのに、と一瞬思ったけど底の変換で誤差が出るからだめかw
でも解析的に溶けるはずの問題を力技でやるのは面白くないな馬鹿っぽくて

548:デフォルトの名無しさん
17/10/27 20:58:27.40 pAogLeJi0.net
1000/(2^x)<=100
∴x>=-ln(100/1000)/ln(2)
整数単位なら
ceil(-ln(100/1000)/ln(2))
C#なら
(int)Math.Ceiling(-Math.Log(100.0/1000.0)/Math.Log(2.0))

549:デフォルトの名無しさん
17/10/27 21:00:22.12 pAogLeJi0.net
1000じゃなくて10000だった

550:デフォルトの名無しさん
17/10/27 21:10:00.24 Kbs4W3Kw0.net
質問です
WPFで、MenuのItemSourceをXMLとデータバインドして、ItemContainerStyleでXMLに書かれたアイコンのパスからアイコンを表示してます
テキストはうまく並びますが、アイコンは現在最後の1個だけ表示される状態です
試行錯誤したのですがなんかうまくいきません
教えてください!

551:デフォルトの名無しさん
17/10/27 21:15:13.29 Xsu5cNz50.net
>>534
ありがとうございます
バージョンをサイトのに合わせたらエラーが以下の7つにまで減りますね
URLリンク(pastebin.com)
ちょっと希望が見えてきました

552:デフォルトの名無しさん
17/10/27 21:18:58.21 pAogLeJi0.net
>>539
>>1のサイトにコード貼ってうp

553:デフォルトの名無しさん
17/10/27 21:20:12.73 FTyfNVM40.net
>>539
faqネタ
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

554:デフォルトの名無しさん
17/10/27 21:22:05.47 +vbTuR/l0.net
>>533
俺なんか、実際プログラミングの授業さっぱりわからなかったから気持ちはわかるw
卒業して全然違う職に就いてから、独学で勉強して業務アプリ作ってるけど
やっぱ理系の大学教授って教えるの下手だよなぁ

555:デフォルトの名無しさん
17/10/27 22:31:09.83 Kbs4W3Kw0.net
>>542
ありがとうございます!
x:Sharedを調べてきます
>>541
もうちょっとがんばってみます

556:デフォルトの名無しさん
17/10/27 22:33:56.47 FTyfNVM40.net
>>544
画像のようなリソースは共有できないのだ。

557:デフォルトの名無しさん
17/10/27 22:34:54.26 FTyfNVM40.net
>>543
正直、工学部のレベルが落ちてると思うよ。

558:デフォルトの名無しさん
17/10/27 22:44:05.65 jS4JzIKN0.net
作れる、と組める、はかなり違うスキルだと思う

559:デフォルトの名無しさん
17/10/27 22:45:42.16 EnZPczDa0.net
作れるけど組めないタイプです

560:539
17/10/27 22:51:06.59 Kbs4W3Kw0.net
できましたありがとう!
ResourceDictionaryにx:Shared="false"でできました!
本当に感謝です! これでスマートに書けます!

561:デフォルトの名無しさん
17/10/27 23:08:50.40 5w2xVZwP0.net
>>549
それデザイナーだと、ちゃんと出るからたちが悪いよ。
エッセンシャルWPFとか読んでないとわからんと思う。

562:デフォルトの名無しさん
17/10/27 23:10:50.85 SAD9Ru6t0.net
WPFのグリッドコントロールが死ぬほど遅いのって解消された?

563:デフォルトの名無しさん
17/10/28 01:15:13.63 Ng05dLeH0.net
いいえ
WPFの思想を正しく理解してたらグリッドコントロールなんか必要ないとわかるはず
それを面倒に感じるようなタイプのアプリならWinFormsかASP.NETで作るべき

564:デフォルトの名無しさん
17/10/28 07:09:18.71 t/WJitLPp.net
どういうことだってばよ

565:デフォルトの名無しさん
17/10/28 07:46:40.11 03EiXsZ60.net
>>551
EnableColumnVirtualizationプロパティをTrueにする

566:デフォルトの名無しさん
17/10/28 08:04:18.05 WUINebrs0.net
Gridじゃなくて、DataGridかよ。

567:デフォルトの名無しさん
17/10/28 08:47:45.45 03EiXsZ60.net
忖度です

568:デフォルトの名無しさん
17/10/28 10:45:25.48 DalFF2zW0.net
Gridが遅いなんて話聞いたことないからわかるだろ

569:デフォルトの名無しさん
17/10/28 11:52:51.58 KdTyFqmQ0.net
>>552
賛同

570:デフォルトの名無しさん
17/10/28 12:46:46.71 PsP4EoQE0.net
つか、


571:DataGridに数千数万突っ込む仕様がどうかしている どうせ使う人もそこまでスクロールするはず無いんだがなぜか作らされる理不尽さ



572:デフォルトの名無しさん
17/10/28 13:03:06.41 bdNJdn2b0.net
>>559
ほんとこれ

573:デフォルトの名無しさん
17/10/28 13:09:55.85 pcT2EQ6Aa.net
>>559
役所のアプリってそのぐらいの人数
簡単にいくじゃん
どういう画面にするか迷う

574:デフォルトの名無しさん
17/10/28 13:14:31.33 pcT2EQ6Aa.net
某大手に依頼されたログ閲覧ツールも
200機近くある機械がそれぞれ秒単位で
ログ出すから一万とかあっという間に超える
こういうのいい作り方ない?

575:デフォルトの名無しさん
17/10/28 13:20:52.94 pcT2EQ6Aa.net
とりあえずDataGridもDataGridViewも
10万件ぐらいなら余裕で表示できるよ
でも無限に表示するわけにも行かないのに
3年ぐらいのデータはみたいとか言うんだよな
役所のアプリに限っては住民だから
全員並列でデータに上下がなくて
完全にどうやって表示したらいいかわからない

576:デフォルトの名無しさん
17/10/28 13:36:39.82 Ng05dLeH0.net
>>562
elasticsearchに突っ込んで終わり

577:デフォルトの名無しさん
17/10/28 13:48:34.24 4tOv+jEh0.net
>>561
もうエクセルでいいだろwww

578:デフォルトの名無しさん
17/10/28 14:00:05.81 LD30atSwM.net
全部表示しないでクエリで絞り込んで表示したらいい
何万件目視する必要はないと思うけど

579:デフォルトの名無しさん
17/10/28 14:31:38.49 /OSTeRXvM.net
能力のない人が要件定義するとそういうアホなことになるよね
客からすれば大抵そういうのはその場のノリで適当に言っただけのどうでもいいことで、
それが生み出す価値と引き換えになる品質やコストを天秤に載せれば明らかにやるべきではないような要件を「やりません」と言えない

580:デフォルトの名無しさん
17/10/28 14:55:50.55 lTHigkwZr.net
上の人達が頭悪いととにかく迷惑なのは確かではある

581:デフォルトの名無しさん
17/10/28 16:06:44.30 e5FcL5GRa.net
どうせユーザーは全部のデータは見ないから~、とか
適当に絞り込んだ表示にしろとかいう意見ははさすがにちょっと頭悪すぎると思うw
んなアホな
っていうか仮想化すれば済む程度の話で客や上司を無能扱いする奴って
どんだけ図々しいバカだよ

582:デフォルトの名無しさん
17/10/28 16:18:29.56 IlD7K6Hl0.net
string型に行番号とかの変数を追加したいのですが
シール型で継承できないとエラーになりました
こんなときどうしたらいいでしょうか

583:デフォルトの名無しさん
17/10/28 16:49:12.51 i6LcJWfh0.net
エクステンションを使うべし

584:デフォルトの名無しさん
17/10/28 16:57:29.76 H0P2VwFl0.net
>>570
Stringじゃなくてクラス作って行番号や行の情報を変数として持つのは駄目なの?

585:デフォルトの名無しさん
17/10/28 16:58:11.15 rZWSN5VzM.net
class Line {
private readonly string _contents;
private readonly int _lineNumber;
public Line(string contents, lineNumber) {
Contents = contents;
LineNumber = lineNumber;
}
public string Contents {
get => _contents;
set {
if (value == null) throw new ArgumentNullException(nameof(Contents));
_contents = value;
}
}
public int LineNumber {
get => _lineNumber;
set {
if (value <= 0) throw new ArgumentOutOfRangeException(nameof(LineNumber));
_lineNumber = value;
}
}
}

586:デフォルトの名無しさん
17/10/28 17:04:36.31 IlD7K6Hl0.net
>>571
エクステンションだと↓を見る限り変数は追加できないですよね?構文糖衣みたいのを作る時は便利ですけど
URLリンク(docs.microsoft.com)


587:s-and-structs/extension-methods



588:デフォルトの名無しさん
17/10/28 17:09:57.61 IlD7K6Hl0.net
>>572
いたる所に行番号やらが必要になったstring変数があってあんま変えたくないのですが、
結局そうするしかないんでしょうかね

589:デフォルトの名無しさん
17/10/28 17:13:47.24 i6LcJWfh0.net
>>574
そのメソッドが所属するクラスにはプロパティorメンバー宣言出来ないって書いてあるかな?

590:デフォルトの名無しさん
17/10/28 17:19:01.18 EvuLUtue0.net
1行挿入したらそれ以降の行を全部更新しないといけないけど
そういう心配は不要な使い方なの?

591:デフォルトの名無しさん
17/10/28 17:42:01.52 m7p7dboTa.net
>>575
手を動かす(コードを書き始める)前によく考えなかったツケとしか言いようがないね
修正箇所が多いことは間違った設計を正当化する理由にはならんでしょう。
>>576
拡張メソッドの実体はただの静的メソッドなので基本状態を持てませんw
thisをキーにするDictionaryでも持てばやってできないこともないだろうけど、
努力の方向が間違ってる感が半端ない

592:デフォルトの名無しさん
17/10/28 18:19:38.89 ot1H0tr20.net
>>576
>実際に、拡張メソッドは、それらが拡張している型のプライベート変数にはアクセスできません。
>>574のこの部分だな
宣言できても外部から使えない

593:デフォルトの名無しさん
17/10/28 18:42:13.42 Ei3q78sJ0.net
なぜ諦めろと言えないのか

594:デフォルトの名無しさん
17/10/28 18:48:53.63 LD30atSwM.net
intに行番号追加したいと言ったらアホかで終わる
stringだとなぜアホかでおわらないのかな

595:デフォルトの名無しさん
17/10/28 18:54:17.52 rXHf5Axha.net
>>581
00001(*゚∀゚)using system;
00002(*゚∀゚)using unko;
00003(*゚∀゚)using chinko;
デリミタ(*゚∀゚)
みたいな

596:デフォルトの名無しさん
17/10/28 18:55:16.39 rXHf5Axha.net
ごめん
やっぱアホやと思う

597:デフォルトの名無しさん
17/10/28 19:15:45.09 rZWSN5VzM.net
>>581
OOPでは文字列というかプリミティブ型をそのまま使う方が間違い
行という概念が対象とする業務にあるならそういうクラスを作る

598:デフォルトの名無しさん
17/10/28 20:14:28.12 X1c8HG7Y0.net
とりあえずstringと暗黙に相互変換できるクラス作ればいいんじゃね

599:デフォルトの名無しさん
17/10/28 20:49:55.33 WUINebrs0.net
>>570
継承(is-a)じゃなくて包含(has-a)にすべきパターン

600:デフォルトの名無しさん
17/10/28 21:14:06.22 EvuLUtue0.net
>>575
>いたる所に行番号やらが必要になったstring変数
この「行番号やら」とstring変数の用途というか使用目的は?

601:デフォルトの名無しさん
17/10/28 21:16:11.03 lTHigkwZr.net
>>586
素直に委譲するべきですな
継承してstringの全メソッドを公開してしまうアホさ加減が理解出来ない人多いよねw

602:デフォルトの名無しさん
17/10/28 21:35:30.21 m7p7dboTa.net
>>586
>>588
この質問者のケースは単なる設計ミス(というよりあまりに思慮が足りない)だけであって
継承かコンポジションかの対立じゃありませんw

603:デフォルトの名無しさん
17/10/28 22:59:54.69 rZWSN5VzM.net
設計ミスの原因は値オブジェクトの作成をサボったこと

604:デフォルトの名無しさん
17/10/29 01:41:15.85 niGJJWdU0.net
Form1のコントロールに他クラスからアクセスするとき、VB.NETだと
Form1.DataGridView1.~
のようにアクセスできたけど、C#は同じようにできなかった
URLリンク(teratail.com)
ここのページのように実装したけど、みんなはどうしてる?

605:デフォルトの名無しさん
17/10/29 01:56:06.10 9lQAHngl0.net
>>591
いやできるけど

606:デフォルトの名無しさん
17/10/29 02:40:31.76 WQc+sGcxa.net
>>591
C#だとデフォフトのアクセスレベルがprivateになってる(VBはpublic)から
これをpublicとかに変更してやればできる。(デザイナのプロパティグリッドだとデザイン/Modifier)
でもやるな。
コントロールを外から操作したいなんて99%考え方が間違ってる。

607:デフォルトの名無しさん
17/10/29 03:16:14.16 ijP0HOZf0.net
>>591
エラーメッセージくらい読めよ

608:デフォルトの名無しさん
17/10/29 08:12:26.70 eDIrk2le0.net
>>592-594
ありがとうございます
Winフォーム作成→dataGridView貼り付け→dataGridViewのModifiersをPublic→
新しいクラスClass1.csを作成→
public void Test() {Form1.dataGridView1.Rows.Add("hoge");}
エラー CS0120 静的でないフィールド、メソッド、またはプロパティ 'Form1.dataGridView1' で、オブジェクト参照が必要です
とでます。Form1. の時点でインテリセンスにも表示されませんでした
どこが間違っているか指摘していただけるとうれしいです
VB.NETもおなじようにやってみましたが、Form1.のインテリセンス候補も10倍くらいの量がありました
>でもやるな。
>コントロールを外から操作したいなんて99%考え方が間違ってる。
ちなみにどのようにされていますか?

609:デフォルトの名無しさん
17/10/29 09:36:49.69 xy4cL51x0.net
クラスのインスタンスを電文フォーマットに基づくバイト列に変換するのって
どうするのが一般的ですか?
BitConverterで一つずつやるつもりでいたんだけど、電文の種類が多くて大変なんで
マーシャリングかシリアライザー使って何とかならないかなと考えています。
バイトオーダの変換はありませんが
文字コードの変換はあります。

610:デフォルトの名無しさん
17/10/29 09:57:15.12 lQWP9L+J0.net
>>595
クラスのインスタンスからアクセスしないといけない
他のクラスにインスタンス無しでアクセスできるのはエラーのとおりstaticなメンバーにだけ
自分で貼ったリンク先を読み返すか
URLリンク(dobon.net)
ここを参照

611:デフォルトの名無しさん
17/10/29 10:00:00.89 8/yZ+26EM.net
>>596
独自形式?
ならまずはプロトコルの変更を検討

612:デフォルトの名無しさん
17/10/29 10:25:39.66 8DklepZ/0.net
>>596
電文フォーマットが有名な国際規格ならNugetにコンバータが落ちているだろうからそれ使えだけど、独自形式なら電文に応じてコンバータ作るしかないんじゃね
2.0時代の時は文字コード指定したBinaryWriterに1項目ずつ書き込んだけど、今だともっと良い方法あるのかね?

613:デフォルトの名無しさん
17/10/29 10:38:20.65 niGJJWdU0.net
>>597
説明が足りなかったです
最初のレスで貼ったリンク先の方法で実現できたのですが、VB.NETのように特別な設定等なくてもアクセスできないのかなと思いまして

614:デフォルトの名無しさん
17/10/29 10:46:16.93 lQWP9L+J0.net
>>600
意味が分からないのだけどインスタンス無しでアクセスしたいのなら無理
デフォルトをpublicにする設定なら知らない
datagridviewをpublicにしたくないのなら同じクラスに読み書きするためのpublicなメソッドをおいてそこに外からアクセスする

615:デフォルトの名無しさん
17/10/29 11:57:28.03 PXhFkrdq0.net
LINQの川俣本買ってきた
確かに変態的だがw、なかなか面白い

616:デフォルトの名無しさん
17/10/29 12:24:50.28 niGJJWdU0.net
>>601
勉強になりました
ありがとうございました

617:デフォルトの名無しさん
17/10/29 13:04:46.79 ZduY/p1d0.net
>>602
彼が本の中で出している例が、彼が実際に作っている同人ゲームというのが痛々しい
その痛さは中身とは直接関係ないけどね

618:あ
17/10/29 13:54:10.92 KCquvjW+d.net
>>596
電文コンバータと、そのコンバータ用のattribute作った事ある。
ちまちまやっても辛いが、電文は自システム外との接点で一番健全であるべきだと思うから、
あんまりその辺のライブラリ使わずに、ベンダサポ


619:ートのあるものを買うか自作した方が良いと思う。



620:デフォルトの名無しさん
17/10/29 19:15:01.89 DPr9B5TC0.net
double値で0~1の乱数一個発生させた後何倍かしたあと50足して50~100の乱数表示させたいんだが「何倍かして」をどう打ち込んでやればいいのか分から

621:デフォルトの名無しさん
17/10/29 19:27:01.08 JiBt02fUa.net
>>606
0~1の乱数 * 50 + 50

622:デフォルトの名無しさん
17/10/29 19:30:31.42 UHlhCeyba.net
それが分からないってどんだけ数学苦手なんだよw
小学生でもわかる気がするけどw

623:デフォルトの名無しさん
17/10/29 20:04:49.47 QVv5Qzoo0.net
>>606
こたえ は らんすう かける (いちばんおおきいかず ひく いちばんちいさいかず) たす いちばんちいさいかず

624:デフォルトの名無しさん
17/10/29 20:24:05.16 XZx0dOgn0.net
List<string>をcomboBoxの内容に入れ替えたいんですが、
list.Clear();
foreach (var item in comboBox1.Items)
{
list.Add(item.ToString());
}
もっといい書き方ありますか?

625:デフォルトの名無しさん
17/10/29 20:35:08.53 2obBvs8R0.net
>>610
list = comboBox1.Items.Cast< string >().ToList();

626:デフォルトの名無しさん
17/10/29 20:37:54.07 2obBvs8R0.net
listを作り直すのが嫌だったら
list.Clear();
list.AddRange( comboBox1.Items.Cast< string >() );

627:デフォルトの名無しさん
17/10/29 20:39:32.25 GAnQ71f80.net
>>610
DataSourceにデータソースをバインドしてDisplayMemberとValueMemberをゴニョニョする方が良いと思う

628:デフォルトの名無しさん
17/10/29 20:42:13.20 GAnQ71f80.net
ごめん、忘れて

629:デフォルトの名無しさん
17/10/29 20:53:42.20 XZx0dOgn0.net
>>611-612
ありがとうございます。
やってみます。

630:デフォルトの名無しさん
17/10/29 21:38:31.04 AI+osUJX0.net
あるstringのデータを
コンソールで表示すると
1 2 3 4
5 6
となるのですが
フォームアプリケーションのtextBoxで表示すると
1 2 3 45 6
となってしまいます
これはどうしてでしょうか?
コンソールアプリケーションと同じように表示する方法はありますか?

631:デフォルトの名無しさん
17/10/29 21:42:40.40 YJExHDlc0.net
textBox.Multiline = true;

632:デフォルトの名無しさん
17/10/29 21:46:02.25 +ffco7dx0.net
>>616
フォームデザイナーでテキストボックス選択すると出てくる三角マークで出てくるチェックボックスにチェック

633:デフォルトの名無しさん
17/10/29 21:49:41.90 AI+osUJX0.net
>>617>>618
Multilineはチェックしています

634:デフォルトの名無しさん
17/10/29 21:50:16.20 +ffco7dx0.net
>>606
「*」の入力の方法
URLリンク(i.imgur.com)

635:デフォルトの名無しさん
17/10/29 21:50:47.43 +ffco7dx0.net
>>619
改行コードは\nじゃなくて\r\n

636:デフォルトの名無しさん
17/10/29 21:53:57.78 AI+osUJX0.net
>>621
なるほど、データの\nを\r\nに置換すれば良いのですね
プログラム内で出来る様やってみます
ありがとうございました!

637:デフォルトの名無しさん
17/10/29 22:29:57.26 3xWluLewM.net
>>606
乱数で1~0じゃなくて
乱数で0~50出して50足せばいいよ

638:デフォルトの名無しさん
17/10/29 23:09:13.97 lLtElflAr.net
>>610
悪いこと言わんからlistを入れ換えなさい

639:デフォルトの名無しさん
17/10/29 23:41:17.91 XZx0dOgn0.net
>>624
>>611-612
では問題あるのでしょうか?

640:デフォルトの名無しさん
17/10/30 00:51:20.04 ZjjJl5MKr.net
>>625
その二つが違うんですけどね (´・ω・`)

641:デフォルトの名無しさん
17/10/30 02:19:11.99 WHu/EAiX0.net
>>600
VB.NETの既定のインスタンスのことかな?
VB.NETではフォームのインスタンスをnewすることなく使える
URLリンク(www.atmarkit.co.jp)
ただ、VB6との互換というか、ごまかしだから避けるのが基本
メリットが薄い割に後々混乱やバグのもとになる

642:デフォルトの名無しさん
17/10/30 06:37:07.25 VzdyAy7l0.net
>>610
コンボボックスのデータソースにリスト当ててやればおけ

643:デフォルトの名無しさん
17/10/30 16:27:34.12 uU3Z1NO30.net
C#凄く難しい。
みんなよく覚えられるね。

644:デフォルトの名無しさん
17/10/30 17:05:11.69 ZRry2d4e0.net
最も無駄がなく整理されて簡潔な言語なのに

645:デフォルトの名無しさん
17/10/30 17:11:32.17 +mMPfUc40.net
互換性の為の無駄はあるよ
そして難しくはないっつーかかなり簡単な部類
仕様とライブラリが膨大で覚える事が多いだけ

646:デフォルトの名無しさん
17/10/30 17:13:03.05 em1IyeD/0.net
Dictionaryを使って
stringとfloat型で特定の人物の電話番号を
WriteLineでコンソールに出力するプログラムを作りたいのですが
例えば0001234567という電話番号だったりすると
000の部分が省略されて1234567の部分しかコンソールに出力できません
float型では0は扱えないのでしょうか?

647:デフォルトの名無しさん
17/10/30 17:16:37.50 1Rgk/fXB6.net
なぜ電話番号を浮動小数で表すのか謎だがこのサイト見ながらで書式設定すればできる
URLリンク(docs.microsoft.com)

648:片山博文MZ
17/10/30 17:21:42.29 ct0tj9Za0.net
>>632
電話番号には文字列を使いなよ。国際電話を使うかもしれないぜ。

649:デフォルトの名無しさん
17/10/30 17:28:01.76 dYkZ5PSi0.net
>>632
float型だろうがdecimalだろうが頭に0が付かないのは当たり前。電話番号は文字列として扱え
数値以外の要素のチェックが必要なら面倒でもチェック用のメソッドを作る
>>633
それができるのは桁数が決まっているものだけだから電話番号には使えない

650:デフォルトの名無しさん
17/10/30 17:35:14.59 ZipmH/zBd.net
>>629
何に比べてどこが難しいの?

651:デフォルトの名無しさん
17/10/30 17:37:33.80 em1IyeD/0.net
>>634
>>635
文字列として扱ったら表示されました!
ありがとうございました!

652:デフォルトの名無しさん
17/10/30 17:42:51.79 MXOIFBwWa.net
スレ的に笑っちゃいけないのかもしれないけどその発想はなかったw
だけど常識的に考えて、0と00が別の値として認識される数値型があったら変だろうw

653:デフォルトの名無しさん
17/10/30 17:43:10.06 1Rgk/fXB6.net
電話番号って幅バラバラなんだ初めて知った

654:デフォルトの名無しさん
17/10/30 17:44:12.67 1Rgk/fXB6.net
確かにバラバラだわ

655:デフォルトの名無しさん
17/10/30 17:46:47.02 MXOIFBwWa.net
東京の局番が増えたのついこの間だったろう...と思ったらもう20年以上前かw

656:デフォルトの名無しさん
17/10/30 17:48:26.11 +mMPfUc40.net
まあ固定電話と携帯電話でも桁数違うし

657:デフォルトの名無しさん
17/10/30 17:57:55.85 qj0DpEco0.net
電話番号は真面目に考えると結構複雑
nugetでPhoneNumberを調べるとすでに作ってる人がいるので参考にするなり拝借するなり
してきた方がいいかもしれない

658:デフォルトの名無しさん
17/10/30 18:01:26.63 Bbjg4pNZa.net
問題点番号26
110と119、117が登録できない
永久凍結(笑)

659:デフォルトの名無しさん
17/10/30 18:02:40.83 zMAqCiK10.net
常識的に考えて緊急電話がサービスに登録してこない
電話帳かな?

660:あ
17/10/30 18:03:59.63 53AKimFld.net
電話番号って番号だからなぁ。一応。
単純に文字列が良いかと言うと、ソートは国番号、市外局番、市内局番、内線番号で数字順にやりたい、とか、局番のハイフンは数字じゃないじゃんとか、市外局番変わるので洗い替えます、とか結構うんざりする。
業務系だと電話番号クラス作る(というかプリミティブな型をデータを表す型に使わない)けど、そこまでやってるとキリないしな。

661:デフォルトの名無しさん
17/10/30 18:05:30.03 +mMPfUc40.net
結局、要件定義次第だからね
将来的な変更を見越して型を作るのはアリだと思うけど

662:デフォルトの名無しさん
17/10/30 18:27:19.96 1DqnyPzkM.net
電話番号は番号というより記号
数字としての役割はしてない

663:デフォルトの名無しさん
17/10/30 18:32:37.98 6LR7RaNa6.net
x 数字
o 数値

664:デフォルトの名無しさん
17/10/30 19:14:48.75 ums4+xqt0.net
>>630
MSDNの糞っぷりは天下一級品

665:デフォルトの名無しさん
17/10/30 19:17:16.26 BJc9Pwjb0.net


666:デフォルトの名無しさん
17/10/30 19:20:01.70 Bbjg4pNZa.net
>>650
よく書いてあるじゃん
vc6の頃なんてリンク切れだったぜ

667:デフォルトの名無しさん
17/10/30 19:28:47.29 ums4+xqt0.net
>>652
VC6と比べると幾らかマシと言うレベルで褒められたもんじゃない。
.NETの少しマイナーなクラスだと「そんな説明で分かるかボケ」か説明すらない状態だ。

668:デフォルトの名無しさん
17/10/30 19:31:46.66 Bbjg4pNZa.net
>>653
最近サンプルソースも充実してるじゃん

669:デフォルトの名無しさん
17/10/30 19:36:22.59 ums4+xqt0.net
>>654
その充実(笑)なサンプルソースとStackOverflowの親切な外人様のおかげでなんとかなってる状態w

670:デフォルトの名無しさん
17/10/30 19:46:34.67 YIhgL7yL0.net
>>655
docsの間違いか?

671:デフォルトの名無しさん
17/10/30 19:48:27.09 4jg/LOEr0.net
ワシみたいな趣味グラマーは公式ドキュメントなんか読まないからノープロブレム

672:デフォルトの名無しさん
17/10/30 19:49:37.11 s0I2evXG0.net
await/asyncの良い資料ってどこかに無いかね
ParallelやTaskの奴なら昔MSが出してたParallel Programming with Microsoft .NETが参考になったけど、こっちは全然見当たらない

673:デフォルトの名無しさん
17/10/30 20:09:03.29 1DqnyPzkM.net
>>658
具体的に何が必要?

674:デフォルトの名無しさん
17/10/30 20:18:18.09 s0I2evXG0.net
>>659
解説に加えてパターンやアンチパターンがあるとわかりやすいからありがたいけど、ググってもブログでちょっと触ってみましたみたいな記事しか無いんだよな

675:デフォルトの名無しさん
17/10/30 20:30:18.29 wEmOlfDHr.net
つかってりゃあ解るレベルのもんなんで何とも

676:デフォルトの名無しさん
17/10/30 20:32:27.51 RKfFK5VC0.net
OracleやAppleに比べるとMSDNは神レベル

677:片山博文MZ
17/10/30 20:35:57.71 ct0tj9Za0.net
>>662
MSDNは情報は多いが、ひどくのろまな亀だ。

678:デフォルトの名無しさん
17/10/30 20:40:19.79 OohuTOK70.net
c#初心者のDTですが質問良いですか?
Visual Stdio 2017 でプログラムの実行方法が分かりません猫でも解るC#を見て打ち込んだのはいいのですが走りません
アドバイスをおぬがいします

679:デフォルトの名無しさん
17/10/30 20:40:41.88 RKfFK5VC0.net
単に使いこなせてないだけかもね

680:デフォルトの名無しさん
17/10/30 20:41:05.20 BomO59sy0.net
>>627
C#とVB.NETは構文が違うだけでだいたい一緒っていうイメージがありましたが、そういう側面もあるんですね
参考になりました
ありがとうございます

681:デフォルトの名無しさん
17/10/30 20:41:46.20 +mMPfUc40.net
>>664
先ずコードを晒せ、話はそれからだ
>猫でも解るC#を見て打ち込んだのはいいのですが
て事は、大して長いコードでも無いんだろうし

682:デフォルトの名無しさん
17/10/30 20:48:55.38 59na0HEH0.net
>>664
情報が少なすぎる
とりあえずなにかを動かしたいのか?
「新しいプロジェクト」

「コンソールアプリ」のプロジェクトを作成

static void Mainしたの中括弧


683:の中にConsole.WriteLine(“Hello World”); を追記する ↓ 画面の上にある再生ボタンを押す



684:デフォルトの名無しさん
17/10/30 21:01:28.13 OohuTOK70.net
>>668
説明が足りなくてすいません
URLリンク(imepic.jp)
こんな感じで本を見て書いたやつを走らせたい息子が困っていまして

685:デフォルトの名無しさん
17/10/30 21:05:25.57 qj0DpEco0.net
全裸でデバッグする奴なら知ってるが
まさかチンコでタイプするツワモノがいたとは

686:デフォルトの名無しさん
17/10/30 21:10:30.63 Bbjg4pNZa.net
>>669
プロジェクト作ってないな
>>668の通りやってみるが吉

687:デフォルトの名無しさん
17/10/30 21:12:08.05 OohuTOK70.net
>>671
ありがとうございます

688:デフォルトの名無しさん
17/10/30 21:12:54.40 dYkZ5PSi0.net
>>669
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)

689:デフォルトの名無しさん
17/10/30 21:13:18.64 +mMPfUc40.net
>>669
画面に顔が映り込んでんぞw
プログラミングの前に、リテラシーを何とかしようぜ……

690:デフォルトの名無しさん
17/10/30 21:13:48.43 wouAVMNAH.net
Visual Studio 2017じゃない気がするんだけど

691:デフォルトの名無しさん
17/10/30 21:14:34.02 OohuTOK70.net
>>674
アドバイスありがとう

692:デフォルトの名無しさん
17/10/30 21:16:25.50 dYkZ5PSi0.net
>>675
VS codeだな
>>676
今使っているのはテキストエディタでしかないのでVisual Studioを使ってください

693:デフォルトの名無しさん
17/10/30 21:22:59.03 OohuTOK70.net
Visual Studioを使っているのですがなかなか走らないんですよ
URLリンク(imepic.jp)
ちなみに今こんな感じ

694:デフォルトの名無しさん
17/10/30 21:26:13.22 ums4+xqt0.net
>>669
まさかのVisual Studio Code

695:デフォルトの名無しさん
17/10/30 21:26:25.16 WQOxFad40.net
動いてるじゃん

696:片山博文MZ
17/10/30 21:26:49.92 ct0tj9Za0.net
>>678
プロジェクトがウィンドウになってるぞ。
コンソールプロジェクトを作れ。

697:デフォルトの名無しさん
17/10/30 21:28:40.71 OohuTOK70.net
>>681
的確なアドバイスありがとうございます

698:デフォルトの名無しさん
17/10/30 21:30:53.30 ums4+xqt0.net
>>678
NECのPC使ってるヤツには何も教えません。
NEC肉けりゃPCまで

699:デフォルトの名無しさん
17/10/30 21:32:42.46 OohuTOK70.net
>>683
仕方がないんですよリアル中1の息子ですから
ちなみに成功しましたありがとうございます

700:デフォルトの名無しさん
17/10/30 21:45:36.97 RIfFu6mhM.net
>>683
NECに何の恨みがあると言うのだ
素晴らしい企業だろう

701:デフォルトの名無しさん
17/10/30 21:52:18.37 +mMPfUc40.net
素晴らしいかどうかはともかくとして、特定企業に対する好き嫌いは宗教みたいなもんだから
深くツッコミを入れてはいけない
>>678
デジカメで画面を撮影するんじゃなく、スクショを撮る様にした方がいいぞ

702:デフォルトの名無しさん
17/10/30 21:54:35.90 su8UHeMj0.net
>>678
Formに文字列を表示する方法はいくつかあるけど
簡単な方法としてはラベルに文字列を代入する
("Label1"みたいなデフォルトの文字列はプロパティから削除しておく)

703:デフォルトの名無しさん
17/10/30 22:03:18.54 W3U3EqvHM.net
>>678
他の人も書いてるけど、それはVisual StudioじゃなくてVisual Studio Codeだから
VSを使ったほうがいいと思う

704:デフォルトの名無しさん
17/10/30 22:13:38.49 ZlZ2sOP4M.net
>>688
よく見たほうがいいよw

705:デフォルトの名無しさん
17/10/30 22:16:21.64 W3U3EqvHM.net
>>689
ああ…
いやそのスマホの小さい画面で
恥ずかしい

706:デフォルトの名無しさん
17/10/30 22:29:33.11 pVIch9qW0.net
みんなやさしくて泣けた。

707:デフォルトの名無しさん
17/10/30 22:33:12.77 YIhgL7yL0.net
>>688
www

708:あ
17/10/31 00:03:40.89 VssU1hfBd.net
>>648
>>646
で、数字として扱わなければいけない理由書いたつもりだがな。

709:デフォルトの名無しさん
17/10/31 00:13:41.09 LbNkhFzoa.net
その議論は不毛だ思うよw
まあ、電話番号の最小単位の数字が単なる符号(記号というより符号だね)であったとしても
数字に符号されているんだから、コードでそれを表現する時には素直に順序付きの数字の並び(の並び)
として表現した方がいろんな処理場便利なのは確かだと思う
普通はやらねえと思うけどケタの表現にenumなんか使ってもいいことないねw

710:デフォルトの名無しさん
17/10/31 00:25:17.81 cFpPTw5nM.net
>>693
番号に#とか使ってたり
アメリカみたいにアルファベット入れてたら数字じゃダメだよ

711:デフォルトの名無しさん
17/10/31 00:30:44.11 CDGz4c1c0.net
電話番号だからどうとか関係ない
用途によって扱いが違うだけ
コンソールに表示したいんだから文字列にする

712:デフォルトの名無しさん
17/10/31 00:50:48.14 FwO1SqIy0.net
>>678
まあ、>>681 でいいわけだがVSから入るとMain と Formの関係がなかなか理解できんよな
そういうの解説してる入門書は少なくて
オレは高橋なんとかの「やさしいC#」の最初の方読んでようやく分かった

713:デフォルトの名無しさん
17/10/31 01:25:40.38 kCH+s2JN0.net
スッキリのJSとかC#バージョンを出版して下さい

714:デフォルトの名無しさん
17/10/31 06:51:13.60 Pxy1busQ0.net
Entity Frameworkにの和書って絶望的に無いけどお勧めある?
使ってるヤツ居るんか。

715:デフォルトの名無しさん
17/10/31 07:38:32.26 vjYSWXcI0.net
>>699
webなら普通に使ってる
ef単体に絞った本は見たことない
asp.net mvc の本ならefに触れてるはず
でも正直本は役に立たんかったわ
stackoverflowが一番役立った

716:デフォルトの名無しさん
17/10/31 08:00:58.58 tTECqdhTa.net
最近書籍弱いよね
本屋に行ってもオワコンなのか?と思うぐらい何もない

717:デフォルトの名無しさん
17/10/31 08:04:53.37 UxJjc40bM.net
>>701
ブログとかの情報で十分な場合がほとんど

718:デフォルトの名無しさん
17/10/31 08:13:56.58 1Z5oHBJNr.net
>>702
それが大きそうだね

719:あ
17/10/31 08:16:12.54 VssU1hfBd.net
>>695
番号にシャープを入れるんじゃなくて、電話番号クラスのうち、シャープ特番クラスを作る方が良いのでは?
そうなると電話番号インターフェイスになるが。
アメリカのアルファベットは、ありゃ数字だ。数字をアルファベットで表現してるだけ。
なので、これは元言ってた電話番号クラスに数字列と表現列を作る他ないな。
そーすりゃ日本の語呂合わせ番号も(必要があるからはおいといて)保存できる。

720:デフォルトの名無しさん
17/10/31 08:31:09.08 znhbZmhV0.net
日本の携帯と固定電話に対応すれば殆ど対応できるんだから、後はメモ欄でも付けてそこに書けでいいと思うんだが
そうは問屋が卸してくれないよな

721:デフォルトの名無しさん
17/10/31 08:39:41.31 ABdbotTTM.net
>>700
Webにあるのはef4の頃の古いのしか見当たらないね。
mvcの本はあるけど全然役には立たん。
StackOverflowが一番役に立つ悲しい現実。

722:デフォルトの名無しさん
17/10/31 08:44:22.32 ABdbotTTM.net
>>701
洋書は沢山あるんだけどねぇ。
Linux本が一般書店に平積みしていた時代が懐かしい。

723:デフォルトの名無しさん
17/10/31 09:09:00.05 dHXhqPbt0.net
~next();と~next double();て整数乱数発生させるか実数乱数発生させるかの違い?

724:デフォルトの名無しさん
17/10/31 10:42:59.91 tTECqdhTa.net
実数の乱数ってそりゃ誤差じゃねぇのけ?w
狙った値が作れないから
整数で出して桁合わせする
俺はね

725:デフォルトの名無しさん
17/10/31 11:11:37.78 0nZAN2Wka.net
電話番号に#や*は使わないと思うよw
あれは自動応答を操作するためのトーンを割り当ててるだけじゃないの?
そんな番号があったらダイアル回線からかけられないじゃん

726:デフォルトの名無しさん
17/10/31 11:57:51.15 Q2spe3T60.net
もともとパルスの頃は数値ではあったな
0は10回パルスだった
DTMF利用して余ったとこに#と*割り当てて
独自に使い始めたんじゃないかなあ

727:デフォルトの名無しさん
17/10/31 12:06:40.36 Jn8FhbAo6.net
電話スレか

728:デフォルトの名無しさん
17/10/31 12:08:18.63 yzv1EbBg0.net
>>710
ずーっと前からあるぞ
URLリンク(web116.jp)

729:デフォルトの名無しさん
17/10/31 12:09:33.06 lgb8DbLAM.net
>>710
*はサブアドレスで使われる。
#は内線でよく使われるな。

730:デフォルトの名無しさん
17/10/31 12:12:12.86 lgb8DbLAM.net
>>713
そういえば、そんなのもあったな。
すっかり忘れてた。

731:デフォルトの名無しさん
17/10/31 12:21:20.41 OH9+jtHeM.net
>>711
今でもパルス回線はあるだろ。
国際電話番号の表記には+81とかある。

732:デフォルトの名無しさん
17/10/31 12:33:50.13 HOZp+Kdp0.net
その+は国番号を表す記号であって
実際に+をダイヤルするわけじゃない
まあ-も()もダイヤルしないから電話番号の一部じゃないけど

733:デフォルトの名無しさん
17/10/31 12:42:10.67 0nZAN2Wka.net
>>713
NTTの回線からしかつながらないものを電話番号と言ってよいかは微妙でしょう
>>714
後者はあきらかに電話番号とは違うような...
前者は微妙だけど、普通のアナログ回線からは掛けられないものを電話番号と言えるかどうか
まあ元のお題にもどれば、テクニカルに電話番号であろうがなかろうが
電話番号として扱えるようにすべきだとは思うけど

734:あ
17/10/31 12:50:04.95 VssU1hfBd.net
>>718
と言うかコメはもともとアナログ回線で掛けてるときにいまからトーン送るぞってボタンだったんだが。
内線番号に関しては、待ってりゃ交換台出るだろ。

735:あ
17/10/31 12:51:28.39 VssU1hfBd.net
電話番号でないものを電話番号として扱う、がわからんなぁ。
電話番号は電話番号として扱え、ならなるほどだけど。

736:デフォルトの名無しさん
17/10/31 13:01:26.31 yzv1EbBg0.net
>>718
>NTTの回線からしかつながらないものを電話番号と言ってよいかは微妙でしょう
これはプッシュホンのサービスと同時に開始されたサービスで、当時は電話サービスを電電公社が独占していたので、他の回線なんか存在しなかった
国際電話があるじゃねーかと言うかもしれんが、国際電話から繋がらない110などの特番は電話番号じゃねー というならその反論は認めよう

737:デフォルトの名無しさん
17/10/31 13:02:30.63 0nZAN2Wka.net
>>719
それは違うでしょう。
あれは(どこのメーカーが最初に始めたのか知らないけど)ただの電話機の機能で
恐らくNTTの定めた規格でも何でもない
自由化直後の電話機はダイアル回線モードだと*押そうが何仕様が
トーン出なかったような気が
まあいい加減どうでもいいねw
>>720
DTMFを認識する自動応答マシンにトーンを送るのは電話を掛けると言わないし
明らかに電話番号じゃないでしょう。

738:デフォルトの名無しさん
17/10/31 14:57:18.16 PGoVot5B0.net
ここまで電話スレ

739:デフォルトの名無しさん
17/10/31 16:58:47.83 tljKmL6i0.net
visualC#のXNAでブロック崩し作ってるけどクソめんどくさいな作成+整理整頓するだけで混乱する
コンソールでしょぼいので完璧だって思ってると痛い目見るな

740:デフォルトの名無しさん
17/10/31 20:15:22.60 VEAfn5MF0.net
へぇ~できたら公開して見せてよ

741:デフォルトの名無しさん
17/10/31 21:03:25.88 tTECqdhTa.net
こうやってプログラム=タダって概念が世の中に蔓延したよね
広告費で稼ぐ世の中になったけど

742:デフォルトの名無しさん
17/10/31 22:07:06.75 UyVEd0rJ0.net
飢餓ベネズエラ「1600%インフレ率」で仮想通貨が生活の柱|ビットコインマイニング(採掘)で生き残る
URLリンク(virtualmoney.jp)
「ビットコイン」新世界のベネズエラ:自由を求める、採掘者たちの反逆
URLリンク(www.fuze.dj)
ベネズエラ、ビットコインマイナーが10万人規模に
URLリンク(btcnews.jp)
ジンバブエではビットコインが80万円?自国通貨がインフレしている国の仮想通貨需要について
URLリンク(coinpost.jp)
ビットコインとは?投資で儲かる仕組みと危険性を分かりやすく解説
URLリンク(enjoyrock.jp)

743:デフォルトの名無しさん
17/10/31 22:10:24.98 ryJZgMRZM.net
ビットコインとはなんぞや?

744:デフォルトの名無しさん
17/10/31 22:46:58.06 4MZcs+cX0.net
FindWindowで見つけたウインドウの画面をキャプチャすることはできますか?
ウインドウが隠れていてもキャプチャできるようにしたいのですが
PrintWindowと組み合わせようとしてもよくわからないです

745:デフォルトの名無しさん
17/10/31 22:57:04.76 QkT+8axj0.net
隠れている部分はそもそも描いてないでしょ

746:デフォルトの名無しさん
17/10/31 23:28:17.44 P79QNeNU0.net
そんなXP時代じゃないんだから…
隠しAPIのDwmGetDxSharedSurfaceが定番やね
今でも使えるのか知らんけど

747:デフォルトの名無しさん
17/10/31 23:31:19.87 4MZcs+cX0.net
DWMも使ってみたいのですが日本語解説のサイトが全くなくて…
英語出来ないとやっぱりだめですね

748:デフォルトの名無しさん
17/10/31 23:59:12.73 RzsX96BS0.net
>>732
最小化されてなければ重なってようが画面からはみ出ていようが適当なBitmap作って
using (var g = Graphics.FromImage(bmp)) PrintWindow(hWnd, g.GetHdc(), 1);
とかでも済みそうだが。環境依存だろうから.NETには碌に無いしWin32APIの領分だなぁ

749:あ
17/10/31 23:59:53.09 KKSGwBSw0.net
>>722
確かに、規格ではないな。そういう意味では、それこそ自由化されたあとはNTTのローカルルールに縛られず、すべてが番号として取り扱われるべきなのかもしれん。
自動応答マシンの特定のメニューまで進むのを「番号」と言っていいと思うぞ、俺は。

750:デフォルトの名無しさん
17/11/01 00:21:59.34 L5KemQuba.net
Win32関数のリファレンス日本語だけになっちゃったんだw
ほんといらんことするよなMSもGoogleもw

751:デフォルトの名無しさん
17/11/01 04:36:44.91 dB2PwCEI0.net
URLリンク(ideone.com)
別のプログラムのキャプチャを取りたいのです
別のプログラムのProcessオブジェクトを取得してPrintWindow関数につっこみたいのですが
どうしたらよいでしょうか?

752:デフォルトの名無しさん
17/11/01 04:39:54.64 dB2PwCEI0.net
GetProcessesByNameでオブジェクトを取得した後
↑に貼ったコードのCaptureControlにthisの代わりにどうやって渡せば良いでしょうか?

753:デフォルトの名無しさん
17/11/01 05:32:38.62 vhfog6b10.net
>>736-737
FindWindowと云うからP/Invokeは理解しているのかと思いきや、躓いてるのはソコかいってかコピペかい
ProcessオブジェクトにはメインウィンドウハンドルだけならMainWindowHandleプロパティが既に用意されてる
枠の有無でGetWindowRectやGetClientRect等のWin32APIでサイズ取得、枠無しならnFl


754:agsにPW_CLIENTONLY(1)を指定 LPRECTをout Rectangleとしても互換性はあるが、メンバの意味は異なるので注意。あとOpenGL画面とかは怪しかった気もする



755:デフォルトの名無しさん
17/11/01 12:54:43.00 wiqlBWqs0.net
初歩的なことで申し訳ないですが、
C#をx86でコンパイルしたときlong型は何バイトですか?
32ビットですよね?
long型な引数を持つC++で作られたDLLを呼ぼうとしてるんですが
C#側もlong型にするとバイオレンスエラーが出るんです

756:デフォルトの名無しさん
17/11/01 13:00:28.87 xMsiUXHhM.net
>>739
64じゃないの

757:デフォルトの名無しさん
17/11/01 13:01:02.25 DoTChEv+0.net
C# の long型 の .NET型は System.Int64
64ビットだよ

758:デフォルトの名無しさん
17/11/01 13:30:22.67 JNwvccyI0.net
どうでもいいけどバイオレンスじゃなくてバイオレーションな

759:デフォルトの名無しさん
17/11/01 13:34:10.98 G3xjFDeG0.net
デジタル バイオレンス 略して DVか

760:デフォルトの名無しさん
17/11/01 13:43:47.20 wiqlBWqs0.net
ありがとうございます。
x86指定でもC#は64ビットですか。
つまり、x86なC++のlong = C#のint ってことですね
ありがとうございました。

761:デフォルトの名無しさん
17/11/01 14:07:25.95 vhfog6b10.net
>>744
x86なC++というかILP32ね、LLP64でもlongは32bitだから、Windowsに限り常に32bit
C#は常にintが32bit、longが64bit、IntPtrがポインターサイズでCIL名native int

762:デフォルトの名無しさん
17/11/01 14:12:57.28 a3/dOAjga.net
バイオレンスww

763:デフォルトの名無しさん
17/11/01 14:36:04.02 wgMqyCilM.net
>>745
IntPtrは64bitと32bitで自動的にサイズが変わる罠があるよね

764:デフォルトの名無しさん
17/11/01 14:53:25.19 58WxqpRI0.net
罠じゃなくてそれをマネージド上で扱うことを目的とした型やねんで

765:デフォルトの名無しさん
17/11/01 15:34:33.63 DJIAeWHo0.net
>>725
当分出来ねえから期待しないでおけ

766:デフォルトの名無しさん
17/11/01 15:53:44.71 dB2PwCEI0.net
>>738
すいません高度すぎてちょっとよくわからないです
FindWindowでウィンドウハンドルを取得して画面をキャプチャするプログラムは作れたのですが
ウインドウハンドルしか取得してないのでウインドウの大きさが設定できなくて困っています
(現在ピクセル数で設定)
GetWindowRectやGetClientRectを使おうとしてもRECT構造体の定義がよくわからなくて出来ません。
GetProcessesByNameで取得したProcessオブジェクトからハンドルとオブジェクトの大きさを取り出すにはどうしたら良いでしょうか?

767:デフォルトの名無しさん
17/11/01 16:36:24.43 4v6bi03L0.net
>>750
URLリンク(www.pinvoke.net)

768:デフォルトの名無しさん
17/11/01 16:43:34.62 wgMqyCilM.net
>>750
URLリンク(msdn.microsoft.com)

769:デフォルトの名無しさん
17/11/01 17:06:28.99 dB2PwCEI0.net
>>751
よくわからないですが後で読んでおきます
>>752
そのページは見たことあるんですが意味がよくわからないです…
すごく低レベルな質問だと思うのですが
Process[] ps = Process.GetProcessesByName("notepad");
foreach (System.Diagnostics.Process p in ps)
{
textBox1.Text = p.MainWindowTitle;
}
だと問題ないのに
Process[] ps = Process.GetProcessesByName("notepad");
textBox1.Text = ps[0].MainWindowTitle;
では動作しないのは何故でしょうか?

770:デフォルトの名無しさん
17/11/01 17:12:20.00 a3/dOAjga.net
>>753
後者だけ動かない理由はないから何か勘違いしてるんでしょう

771:デフォルトの名無しさん
17/11/01 17:29:00.13 wgMqyCilM.net
>>753
動作しないの内容が曖昧です。

772:デフォルトの名無しさん
17/11/01 17:35:15.46 dB2PwCEI0.net
すいません動きました!
メモ帳開いていなかっただけでした…

773:デフォルトの名無しさん
17/11/01 17:37:14.82 qqAk/1TWM.net
勉強用トイプログラムで抽象クラスを継承したクラスにインタフェースを継承したのですが、実務の世界ではよくやる事でしょうか?



774:抽象クラス側にインタフェースのメソッドを書くとか美しく無いので邪道な事をしてるかもと心配になりまして



775:デフォルトの名無しさん
17/11/01 17:46:07.56 xAl8OFsq0.net
>>744
公式にアンマネージとマネージでのデータ形式のリファレンスがあるからそこ見ておいた方がいい
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
C#でlongは紛らわしいから使わない方がいいと思う
>>753
構造体がわからないとWinAPI使えないよ
URLリンク(docs.microsoft.com)

776:デフォルトの名無しさん
17/11/01 17:55:43.82 DJIAeWHo0.net
ボールとか壁に当たって反転させるときに
int speed=1;
更新処理
position.x+=speed;
if(800<position.x)
{
speed*=-1;
}
こうゆう反転っておkなの?+=って無駄じゃねえかとか言われない?

777:デフォルトの名無しさん
17/11/01 19:13:00.27 dB2PwCEI0.net
URLリンク(ideone.com)
見よう見まねでRECT構造体を使おうとしているのですが
17行目の&rectWinという所で以下の2つのエラーが出てしまいます
何が間違っているのでしょうか?
ポインターおよび固定サイズ バッファーは、unsafe コンテキストでのみ使用することができます。
引数 2 はキーワード 'out' と共に渡す必要があります。

778:デフォルトの名無しさん
17/11/01 19:18:35.70 JgbY2jhcM.net
>>760
その文面でググれば多分わかる
というよりメッセージどおりだよ
引数に out 付けよう
意味が分からないなら調べよう

779:デフォルトの名無しさん
17/11/01 19:18:49.98 C3RJkmbpd.net
>>757
人間クラスと継承した社員クラスがあるとして
体重身長インターフェイスは人間クラスに、入社日退職日インターフェイスは社員クラスにってのが普通だと思うけど
抽象クラスだから付けないって考え方は美しくないんじゃないかな?

780:デフォルトの名無しさん
17/11/01 19:22:01.17 dB2PwCEI0.net
>>761
できました!有難う御座います!!!!!!!

781:デフォルトの名無しさん
17/11/02 04:46:41.42 leSyCza7a.net
なにこれ
URLリンク(www.bityet.us)
URLリンク(goo.gl)

782:デフォルトの名無しさん
17/11/02 07:15:17.22 pmQPnNAeM.net
>>762
なるほどその通りですね
営業志望の未経験者なのにC#開発しろと言われ正しくOOしてるか不安でした
参考になります
OOとは徹頭徹尾ヴァーチャルマシーンと言われてもピンと来なくて。。。

783:739
17/11/02 13:32:08.71 wZG1ntZl0.net
みなさんありがとうございました。
C++側で void test(long aa[2]);
みたいに定義されてるやつをC#から使うときも IntPtr でやりくりするしかないんですよね。

784:デフォルトの名無しさん
17/11/02 14:07:36.43 RiVwOr7+M.net
c#はインタープリタなので遅いって言われたw

785:デフォルトの名無しさん
17/11/02 15:50:21.67 i1tOzlAd6.net
バイナリプログラムもCPUがインタープリットしてるしインタープリタだなw

786:デフォルトの名無しさん
17/11/02 16:06:47.45 /X9eIi7aM.net
>>766
いやintを2つ並べただけの構造体を用意してrefかout使えばいい

787:デフォルトの名無しさん
17/11/02 16:12:10.17 KloAouzuM.net
>>767
コンパイラ型なんだけど。。
あほなの?

788:デフォルトの名無しさん
17/11/02 16:17:55.02 wZG1ntZl0.net
>>769
pack意識したうえで配列という手もありますね
どっちにしろコード量は増えますね
C# 側で ref を付けるだけで
勝手にIntPtrやらマーシャル確保・代入・解放してくれたらいいのに・・・
char * → string みたいな超絶ラクチンな方法でさ

789:デフォルトの名無しさん
17/11/02 16:20:47.53 wZG1ntZl0.net
ちょっと早合点で書き込んでしまいましたが
[StructLayout(LayoutKind.Sequential, Pack = 4)
struct struct_aa
{
public int aa1;
public int aa2;
}
struct_aa aa;
としたうえで
test(ref aa);
で出来ちゃうんですか!?

790:デフォルトの名無しさん
17/11/02 16:43:51.34 /X9eIi7aM.net
>>772
それでいけるはず

791:デフォルトの名無しさん
17/11/02 17:08:27.57 hwMc8ywnM.net
>>770
昭和のおっさんなので仕方ない

792:デフォルトの名無しさん
17/11/02 17:12:38.78 oE5JXb4z0.net
配列でそのまま渡せばいいのにわざわざ変な方法使うとか
>>766
C#から渡すときはvoid test(int[] aa);でいいんだよ。Visual Studio以外なら知らん
>>772>>773
アンマネージ側で定義されていない構造体を勝手に作って渡すって考え方がおかしい
アンマネージ側で要求されている引数の形式に合わせるのが基本だろ

793:デフォルトの名無しさん
17/11/02 17:42:00.04 wZG1ntZl0.net
ググって最初のほうに出てくるサイトで char * 以外は全てマーシャってるので
てっきり IntPtr を駆使すると思い込んでました。
配列じゃないポインタ渡しは ref/out で何の造作もなく出来ました。
(マーシャル関連のコードを大量に書いていたのが馬鹿らしくなるほど)
んで配列ですが
// C++(x86)
extern "C" __declspec(dllexport) void test(long a[2]);
// C#
[DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void test(out int[] a);
int[] a = new int[2];
test(out a);
で、バイオレーションエラー出ちゃいます。。。

794:デフォルトの名無しさん
17/11/02 17:52:53.60 oE5JXb4z0.net
>>776
C++側からC#にoutする形で返したいのならC#からポインタにして渡す
そのコードのC#側のout(ref)だと変な動きにしかならない。消せ

795:デフォルトの名無しさん
17/11/02 18:01:00.66 wZG1ntZl0.net
うわぁ、ありがとうございます。
先方で値が書き換わる場合には ref/out を付けないといけない
(付けなかったら配列だろうが値渡しになる)
だと先入観で思い込んでました。
配列だったらC++と同じくポインタ渡しになるんですね!
// C#
[DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void test(int[] a);
int[] a = new int[2];
test(a);

で、うまくいきました。
(C++側で設定された値が戻ってきた)

796:デフォルトの名無しさん
17/11/02 18:34:34.93 OVuNv67Pa.net
>>778みたいな場合、アンマネージド関数の宣言の仮引数にOutAttributeを付ける必要が
あるのかないのか、MSDN読んでもいまいちよく分からん
URLリンク(msdn.microsoft.com)(v=vs.90).aspx
を読むとBittableな型の一次元配列の場合不要のようにも思えるが、
URLリンク(msdn.microsoft.com)(v=vs.90).aspx
のサンプルでは属性がついてる

797:デフォルトの名無しさん
17/11/02 22:14:18.55 FJPOLiu40.net
>>779
そのリンク先に書いてあるぞ
これらの型は、呼び出し元と呼び出し先が同じアパートメントに属する場合には、In/Out パラメータとしてマーシャリングされるように見えることがあります。
ただし、そのような型は実際には In パラメータとしてマーシャリングされるため、引数を In/Out パラメータとしてマーシャリングする必要がある場合には、InAttribute 属性と OutAttribute 属性を適用する必要があります。
Outがないと保証されない

798:デフォルトの名無しさん
17/11/02 22:48:20.45 uoctVHYW0.net
>>778
ref/outは書き換え云々というより変数の参照で初期化の必要があるかどうか、P/Invokeでは構造体くらいにしか使わぬ
配列は参照型なので参照の参照になるし、そのままでもオブジェクトヘッダ+要素数を含むのでネイティブ配列へはちょっとズラしている
>>779
上のページに>>780の通りずばり書いてないか?コピーと固定 # 書式指定された Blittable クラスのメモとかにも。そういう事ではなく?

既定のマーシャリング動作を理解し、MarshalAs属性とIn/Out属性を駆使すれば、Marshalメソッドの出番はあまりなくなる
Marshal.UnsafeAddrOfPinnedArrayElementとかもArrayWithOffsetというお誂え向きな構造体がある
手動でIntPtrを捏ね回すのが有効なケースもあるが。ちぃと古いけど↓の記事はよく纏められている
URLリンク(msdn.microsoft.com)

799:デフォルトの名無しさん
17/11/02 22:54:42.83 vimPIuS6M.net
GCがうざいならstackallocを使う手もあるよ
unsafeになるけど、マネージ配列のマーシャリング使ったとしても境界外へアクセスしたら普通にクラッシュするんだし
むしろ危険な操作は明らかに危険とわかったほうがマシ

800:デフォルトの名無しさん
17/11/02 23:07:34.82 OVuNv67Pa.net
>>780-781
レスどうも
よく分からない箇所は結局、>>780に引用してある部分の
>同じアパートメントに属する場合には
この但し書きかな。
同じアパートメントって何だ?
>>778のケースでは結局Out属性なしでも期待通り動くみたいだけど、
逆にBittableであっても明示的にOutを付けないといけないのはどういう
場合なんだろうか

801:デフォルトの名無しさん
17/11/03 01:31:28.84 zjyHgUY90.net
>>782
stackallocはスタックを理解していなければ危険すぎないか、少量で確保速度が最重要ならアレだけど
unsafeポインターを使うならfixedでも境界チェックは外れるし、そのあたりで…
>>783
アーその辺はCOMの話かな、COMマーシャリングが挟まれると固定では済まなくなるという
URLリンク(msdn.microsoft.com)
具体例については…直接COM使った経験がC++でちょろっとしか無いのでわっかんないや(無能

802:デフォルトの名無しさん
17/11/03 04:43:40.14 ZqwqQq4y0.net
Parallelの動きがわからん
10個のZIPを同時に解凍する処理するとして
Parallel.Forで実行したらどうなる?
ちなcore i7
エラー?

803:デフォルトの名無しさん
17/11/03 09:51:59.78 wXWM393Ar.net
1.5倍(適当)くらい速くなる

804:デフォルトの名無しさん
17/11/03 10:02:10.84 YKGzMcXY0.net
>>785
同時実行数はCPUのスレッド数だから8個同時に展開して、2個は待ちになるんじゃね
CPUより展開後ファイルサイズによってはHDD書き込みがネックになりそうな気もするけど

805:デフォルトの名無しさん
17/11/03 11:00:02.96 QTbHfBOQ0.net
>>787
オイ!

806:デフォルトの名無しさん
17/11/03 15:48:21.85 m874gEkx0.net
>>786
1.5ってすごくいいよ
>>787
動き知りたいんよ
どうなるか

807:デフォルトの名無しさん
17/11/03 15:52:47.69 OoLmNkMra.net
何を期待してるか知らないけどやればいいじゃないか

808:デフォルトの名無しさん
17/11/03 17:10:18.04 bRMk/YPf0.net
c#で画像の黄色部分だけを白にして残りを黒にする様なことはできますか?

809:デフォルトの名無しさん
17/11/03 17:32:15.18 tw8puOLsM.net
>>791
ProcessでImageMagick呼べば一瞬でできる
似た色はどこまで許容するのかとかいちいち個別に作ってたらキリがない

810:デフォルトの名無しさん
17/11/03 18:22:36.00 QTbHfBOQ0.net
DataTable dt = new DataTable();
bool foofunc(ref DataTable dt)
{
  ・・・・
  adapter.Fill(dt);
こんなコード見たんだが何かメリットあるのか?

811:デフォルトの名無しさん
17/11/03 18:28:01.91 tw8puOLsM.net
>>793
それ書いた奴が参照型を理解してないんだと思う
何の意味もないので絶対に真似してはいけない

812:デフォルトの名無しさん
17/11/03 18:37:57.11 QTbHfBOQ0.net
>>794
c#歴10年のヤツのコードなのだ。
当然foofunc内でtry/catchがあり戻り値にエラー有無が返る。
愚痴ってスマヌ。

813:デフォルトの名無しさん
17/11/03 18:41:43.76 lrZzjWeI0.net
>>792
そういうのって、C#でって言うのかな。

814:デフォルトの名無しさん
17/11/03 19:35:14.12 Xp/sMfFK0.net
>>791
最低限の要件だけ勝手に解釈してこんな感じ
URLリンク(ideone.com)

815:デフォルトの名無しさん
17/11/03 19:43:53.45 ZqwqQq4y0.net
imagemagickってソースに組み込める何か提供してるん?

816:デフォルトの名無しさん
17/11/03 19:44:48.34 EmHaDWp+0.net
大昔にマスク画像を作っていたのを思い出した

817:797
17/11/03 20:02:57.12 Xp/sMfFK0.net
ついでに補足しておくとMarshal.ReadInt32でなくMarshal.Copyでバイト配列で4バイトずつ読めば
Blue,Green,Red,Alphaが取れるから許容範囲設定とかしたかったらそっちで

818:デフォルトの名無しさん
17/11/03 20:15:49.55 WHWgtK+kr.net
経験年数と理解度?にどれだけの相関関係があるのか
疑問が生じている今日この頃

819:デフォルトの名無しさん
17/11/03 20:20:24.80 aVxxhWTE0.net
相関関係はある
但し個人差は大きい

820:デフォルトの名無しさん
17/11/03 20:26:05.42 QTbHfBOQ0.net
>>798
URLリンク(www.imagemagick.org)

821:デフォルトの名無しさん
17/11/03 22:49:49.36 om2fc3b00.net
>>793-794
refで渡せば、呼び出し先の関数で、呼び出し元の変数のインスタンスを変更できる
これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて
なんの意味もないわけではない

822:デフォルトの名無しさん
17/11/04 00:09:44.98 3cC+jj+w0.net
>>793のケースで意味がなさそうって>>793,794は言ってるのに、
>これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて
とか一般論を言い出してそのつっこみよくわからん。

823:デフォルトの名無しさん
17/11/04 01:46:45.24 qZ8I6rgd0.net
>>797
ありがとうございます。
ほぼ真っ黒になってしまったのでRGB値で範囲指定できる様にやってみます。

824:デフォルトの名無しさん
17/11/04 04:11:36.08 MnNwpnC60.net
>>804
君も参照型を理解してないね。

825:デフォルトの名無しさん
17/11/04 08:41:31.55 sTeHaJ1X0.net
>>807
この話の流れに>>804がふさわしいかどうかはおいとくとして...
> 君も参照型を理解してないね。
ちょっと説明してみ

826:デフォルトの名無しさん
17/11/04 09:02:47.97 5h9DYzfZ0.net
DataTable dt = new DataTable();
bool foofunc(ref DataTable dt)
{
  DataTable dt = new DataTable();
  ・・・・
  adapter.Fill(dt);
「なんの意味もないわけではない」のコードにはなったが
更に輪をかけた馬鹿コードに進化させてみた。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


827:デフォルトの名無しさん
17/11/04 09:17:38.08 5h9DYzfZ0.net
DataTable dt = new DataTable();
bool foofunc(ref DataTable dt)
{
  dt = new DataTable();
  ・・・・
  adapter.Fill(dt);
間違えてたw

828:デフォルトの名無しさん
17/11/04 09:19:39.29 flyq3nv80.net
それじゃただのoutじゃんrefの意味じゃないじゃん(難癖

829:デフォルトの名無しさん
17/11/04 09:48:23.86 5h9DYzfZ0.net
>>811
そう、参照型にrefは無意味なのです。
参照型が分かってないよりこのコードが問題なのは、
検査結果を引数に返して実行エラーの有無を戻り値で返していること。
参照型も理解していないが例外処理はもっと理解していない糞野郎のコード。

830:デフォルトの名無しさん
17/11/04 09:51:19.52 5h9DYzfZ0.net
×検査結果


831: ○検索結果 スマン、寝ぼけてるわ



832:デフォルトの名無しさん
17/11/04 10:16:12.92 q474DaJy0.net
>>812
Dictionary.TryGetValue()とかあるし、そこはケースバイケースかな。
参照型にref付けてるくらいだから、何も考えてないのかも知れないけど。

833:デフォルトの名無しさん
17/11/04 10:20:08.20 5h9DYzfZ0.net
>>814
public bool TryGetValue (
  TKey key,
  out TValue value
)
refじゃなくてoutやないかい!

834:デフォルトの名無しさん
17/11/04 10:29:08.52 q474DaJy0.net
そうだった。>>811とまざった。
こっちも寝ぼけてるねw

835:デフォルトの名無しさん
17/11/04 10:29:22.28 fyiwYE9E0.net
つまり
>>793
DataTable dt = new DataTable();
bool foofunc(DataTable dt)
{
  ・・・・
  adapter.Fill(dt);

とは同じ結果になると

836:デフォルトの名無しさん
17/11/04 10:37:55.56 q474DaJy0.net
>>815
まぁ、outにする必要はあるけど、
「検査結果を引数に返して実行エラーの有無を戻り値で返していること」
自体に問題はないな。

837:デフォルトの名無しさん
17/11/04 10:38:05.17 OcSSsXSe0.net
この手のメンバ変数に検索結果をセットする時はこんな感じにして、例外処理は基本呼出側に任せちゃうんだけど問題あるのかね?
前はエラーコードのEnum返してたけど、エラーケースの殆どが例外処理で扱われる物ばかりだったので止めちゃった
DataTable dt = new DataTable();
Void SetHoge(DataTable dt){
    ・・・・
    adapter.Fill(dt);
}

838:デフォルトの名無しさん
17/11/04 10:56:19.06 q474DaJy0.net
>>819
それで良いと思う。
上のみたいに成功したかどうかを返り値で返すのは、
正常運用の範囲内で失敗する場合があるのを想定している場合。

839:デフォルトの名無しさん
17/11/04 12:23:07.70 5h9DYzfZ0.net
>>819
自分ならこうするけど。
DataTable GetHoge()
{
  var dt = new DataTable();
  ・・・・
  adapter.Fill(dt);
  return dt;
}

840:デフォルトの名無しさん
17/11/04 13:59:17.12 dOyJdliUp.net
>>821に1票

841:デフォルトの名無しさん
17/11/04 14:56:00.76 ePC4mkkA0.net
参照型にrefは無意味って言ってるやつは
呼び出し元変数のインスタンスを変更「できる」
ってことをどう評価してるのか

842:デフォルトの名無しさん
17/11/04 15:15:02.21 Vg1Izipf0.net
型がわからない変数と同じ型の変数を用意したいときってなんか記述方法ある?
型を調べるとかじゃなくてプログラミング的に解決する手法あったら教えて

843:デフォルトの名無しさん
17/11/04 15:24:28.88 m6ZusNHm0.net
型引数で解決できるならそれで

844:片山博文MZ
17/11/04 15:24:47.55 Yg7qqeZtd.net
>>824
ヴァーか?

845:デフォルトの名無しさん
17/11/04 15:41:42.41 WuSfeAlZa.net
>>824
var y = 謎の変数x;
っていうか、たぶん何か勘違いしてると思うw
「型が分からない変数」っていうのは実行時に型が決まるって意味なんだろうけど、
変数の型は静的に(コンパイル時に)確定しているのでそれはありえない
それとも匿名型のことを言ってる?

846:デフォルトの名無しさん
17/11/04 15:49:14.84 jl0ZLZ4q0.net
dynamic型ならコンパイル時の型チェックは行なわれず実行時に解決するね

847:デフォルトの名無しさん
17/11/04 15:52:54.75 WuSfeAlZa.net
>>828
いや、「変数の型」は静的に決まるでしょ。自分でdynamic型って書いてるじゃんw

848:デフォルトの名無しさん
17/11/04 15:55:26.19 tIYipYwe0.net
>>824
var x1 = new X();
var x2 = Activator.CreateInstance( x1.GetType() );

849:デフォルトの名無しさん
17/11/04 16:13:39.02 sTeHaJ1X0.net
>>823
まあそれが必要なケースがほとんどないし

850:デフォルトの名無しさん
17/11/04 16:19:15.36 2EEZfJvra.net
引数のnullチェックして必要ならインスタンスをnewしてつけられる

851:デフォルトの名無しさん
17/11/04 16:41:13.06 tIYipYwe0.net
バットノウハウっぽい

852:デフォルトの名無しさん
17/11/04 16:43:39.78 FXv0ObyH0.net
>>833
バットは関係ないやろ

853:デフォルトの名無しさん
17/11/04 16:53:42.21 /YBu7JsUM.net
>>832
出来るが引数がnullな時点でArgumentException飛ばすんで実用価値はほぼないな。

854:デフォルトの名無しさん
17/11/04 16:58:31.41 tIYipYwe0.net
>>834
関係ないな。しょぼい誤字だ。
>>824
何をやりたいか分からないが、ジェネリックメソッドでは目的に沿わないかな。

855:デフォルトの名無しさん
17/11/04 17:05:47.97 83ZjnaGFa.net
javascriptみたいなのを想定してるんだろうけど
まあ普通はない

856:デフォルトの名無しさん
17/11/04 17:44:10.96 SXZaCuwQ0.net
ベッドノウハウ
しかし俺は未経験

857:デフォルトの名無しさん
17/11/04 17:51:46.51 sTeHaJ1X0.net
>>832
だからそんなことが必要になったことがどれだけあるんだ?

858:デフォルトの名無しさん
17/11/04 18:10:38.00 WuSfeAlZa.net
なんかしょうもないことで争ってるけど、>>823の方が正しいね
エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ
負け惜しみでくだらない意地を張るのは子供っぽいよ

859:デフォルトの名無しさん
17/11/04 18:13:38.30 wTKOoVxtr.net
ペットノウハウ
ボトルじゃないよ

860:デフォルトの名無しさん
17/11/04 18:17:18.92 wTKOoVxtr.net
MSらしく反則技が用意してあるだけ
初心者は使わない方が無難
返り値が二つ以上欲しい時は今なら名前付タプルを使う

861:デフォルトの名無しさん
17/11/04 18:26:59.70 flyq3nv80.net
返値代わりに使うのはoutだし今ならって言ってるとおり昔はなかったんだし
ちょっと何言ってるのか分からない


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch