トップページ⇒tech
1002コメント389KB

ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 393a-3Vwo)2016/08/12(金) 21:28:07.93ID:V2s4z4io0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part123
http://echo.2ch.net/test/read.cgi/tech/1469934170/

■関連スレ
C#, C♯, C#相談室 Part91
http://echo.2ch.net/test/read.cgi/tech/1467142749/

■コードを貼る場合は↓を使いましょう。
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
0002デフォルトの名無しさん (ワッチョイ 45a1-xYo4)2016/08/12(金) 21:29:50.68ID:+lUUEZcM0
>>1乙
0003デフォルトの名無しさん (ワッチョイ d1d6-yY6c)2016/08/12(金) 22:04:36.14ID:Ojh78pHB0
>>1
乙ワッチョイ
0004デフォルトの名無しさん (ワッチョイ fc5e-yY6c)2016/08/12(金) 22:07:07.72ID:S337aRPj0
>>1
スレ立て乙

質問からの派生の議論などは↓のスレで
ふらっと C#,C♯,C#(議論用)
http://echo.2ch.net/test/read.cgi/tech/1469538912
0005デフォルトの名無しさん (ワッチョイ 1030-VMjw)2016/08/12(金) 23:04:07.24ID:PV0xO3Fw0
次スレもワッチョイで頼む
0006デフォルトの名無しさん (ワッチョイ 83c0-MTuc)2016/08/13(土) 01:04:24.97ID:NM1cVEay0
ワッチョイスレの建て方
スレッドを立てるとき本文1行目に
!extend:checked:vvvvv:1000:512
0007デフォルトの名無しさん (ワッチョイ fca5-GBh+)2016/08/13(土) 08:59:11.88ID:wiadwCFF0
わっちょいってよーわからんけど、NGワードに追加してフィルタできるんかな?
0008デフォルトの名無しさん (ワッチョイ fc72-3Vwo)2016/08/13(土) 10:03:55.27ID:t9krr6Iz0
>>7
専ブラならNGネームとして使える
毎週木曜にリセットされる
1週間固定のIDみたいなもん
0009デフォルトの名無しさん (ワッチョイ 430d-GBh+)2016/08/13(土) 10:22:21.33ID:KGx3mFs20
release buildしたexeをテキストエディタで見ると出力したパスが含まれてますよね
これって下手すると個人情報(ユーザー名)がバレちゃうと思うのですが、build先を変更する以外に対処の方法ってありますか?
0010デフォルトの名無しさん (ワッチョイ d1d6-yY6c)2016/08/13(土) 10:32:07.90ID:YPszTijW0
ビルドの詳細設定 にある デバッグ情報 を none にすりゃ消えるけど、
ユーザー名がばれて何か不利益があるの?
0011デフォルトの名無しさん (ワッチョイ 430d-GBh+)2016/08/13(土) 10:36:35.40ID:KGx3mFs20
>>10
ありがとうnoneにします
これはエラーの際の.tmp.mdmpの内容も同様にパスが出力されなくなりますか?(mdmpの場合はobjフォルダになってました)
不利益に関してはユーザー名に本名使っていると困るケースがあります
0012デフォルトの名無しさん (アウアウ Sa03-URBI)2016/08/13(土) 11:13:46.94ID:2qglMHO5a
そっちを見直す方が合理的だと思うw
0013デフォルトの名無しさん (ワッチョイ 4d99-VMjw)2016/08/13(土) 12:08:30.12ID:ScBSsBsG0
ユーザー名はaaaaになってるな
ドラクエならああああ
0014デフォルトの名無しさん (ブーイモ MM41-xYo4)2016/08/13(土) 13:18:40.52ID:apKPt0NUM
LinuxでASP.NETを動かす時に使えるアセンブリはフルマネージドならVisualStudioで作ったものでもOKという認識でいいんでしょうか?
0015デフォルトの名無しさん (スッップ Sda8-3Vwo)2016/08/13(土) 15:36:25.55ID:u+Yte28Rd
>>14
Coreね
0016デフォルトの名無しさん (ワッチョイ 393a-3Vwo)2016/08/13(土) 15:50:01.07ID:+y8KzYA20
>>14
ASP.NET Core 用にプロジェクト作成したなら、その認識でOK
従来の ASP.NET 用アプリなら Core 用に作り直すべし
0017デフォルトの名無しさん (ワッチョイ fca5-GBh+)2016/08/13(土) 17:15:43.81ID:wiadwCFF0
ひとりWikiっていうDelphi言語で作られたソフトのプラグイン用のDLLをC#で作りたいんですが、
ttp://www2u.biglobe.ne.jp/~MAS/soft/hitoriwiki/plugin_make.html
ttp://www2u.biglobe.ne.jp/~MAS/soft/hitoriwiki/plugin_sample.html

C#で↓のように作ったDllの場合
public class Test {
 public String GetName() {
  return "test";
 }
}

呼び出し側からは通常「Test.GetName()」とすると思うのですが、
これを、クラス名無しで「GetName()」だけで呼び出せるようにするには
どんなコードを書いたり・設定を行えば良いのでしょうか?
0018デフォルトの名無しさん (ワッチョイ fca5-GBh+)2016/08/13(土) 17:24:43.44ID:wiadwCFF0
>>8
良い忘れてました。
説明ありがとうございました!

>>17
調べた限りできなさそうなのですが、
見落としていたら悲しいのでよろしくお願いします。
0019デフォルトの名無しさん (アウアウ Sa03-URBI)2016/08/13(土) 17:39:19.58ID:Aue4Ysh1a
>>8
へー全然しらなかったよ
0020デフォルトの名無しさん (ワッチョイ 397b-3Vwo)2016/08/13(土) 17:46:13.76ID:AXJHpXDi0
>>18
うむ。COM作る方法以外知らないなぁ
0021デフォルトの名無しさん (ワッチョイ 837b-rTQB)2016/08/13(土) 17:57:07.18ID:RxJCd1dL0
>>17
そもそもクラス名を書かないようにできれば呼び出せるとかそういうもんじゃない
ネイティブのエントリポイントが必要で、その形式のDLL作るのはC#/.NETでは基本無理
// 逆P/Invokeってのもないではないけど
0022デフォルトの名無しさん (ワッチョイ fca5-GBh+)2016/08/13(土) 18:05:59.18ID:wiadwCFF0
>>20-21
成る程、C++で頑張ります。orz。
返答ありがとうございました。
0023デフォルトの名無しさん (ワッチョイ 1e81-3Vwo)2016/08/13(土) 19:00:08.02ID:MGPJ1QKt0
>>17
C#にも名前空間ってのがある筈だが、使えなかった?
0024デフォルトの名無しさん (ワッチョイ fc5e-yY6c)2016/08/13(土) 19:06:27.02ID:NfL6H+mm0
>>23
名前空間はusingで追加したら省略できるがclassは無理
DLLとして呼び出すんだろう?
0025デフォルトの名無しさん (ワッチョイ 9823-MTuc)2016/08/13(土) 19:22:41.50ID:G6XKC6nQ0
>>24
using static ってのがC#6.0から新設されてのう
スタティッククラスなら、メソッドをC言語の関数のように呼び出すことが出来るようになった
0026デフォルトの名無しさん (ブーイモ MM41-xYo4)2016/08/13(土) 19:26:32.98ID:apKPt0NUM
>>14,15
どうもです
0027デフォルトの名無しさん (アウアウ Sa03-URBI)2016/08/13(土) 19:48:15.88ID:cRlyFivPa
質問者が聞いてることとズレまくってることを書いてる奴って何なのw
0028デフォルトの名無しさん (ワッチョイ fca5-GBh+)2016/08/13(土) 20:02:01.48ID:wiadwCFF0
IDが違うのにわっちょいの方は同じってことは・・・どいうことだ・・・?
0029デフォルトの名無しさん (ワッチョイ d1d6-yY6c)2016/08/13(土) 20:08:57.38ID:YPszTijW0
毎回IPが変わってるってことでしょ
0030デフォルトの名無しさん (ワッチョイ 753c-3Vwo)2016/08/13(土) 21:01:42.66ID:JHq6wILq0
>>17
using
0031デフォルトの名無しさん (ワッチョイ 217b-MTuc)2016/08/13(土) 21:01:51.06ID:W55xp8By0
>>1
スレ立て乙ー
0032デフォルトの名無しさん (ワッチョイ 753c-3Vwo)2016/08/13(土) 21:07:48.17ID:SHDX20L70
>>24
これは恥ずかしい
0033デフォルトの名無しさん (ワッチョイ f4cb-3Vwo)2016/08/13(土) 22:14:20.36ID:lSMY9ktW0
名前空間に頼った省略は問題しか起こさねーぞ
mediaのColorとdrawingのColorで存分に味わっただろ
0034デフォルトの名無しさん (ブーイモ MM79-xYo4)2016/08/15(月) 23:29:19.43ID:Hp7eL4O0M
.NET Coreの参考書でオススメを教えてください
CLR via c#のCore版みたいな本があればベストです
0035デフォルトの名無しさん (ワッチョイ 61a6-MTuc)2016/08/15(月) 23:45:32.74ID:h2UINGDt0
そんな本はありません
0036デフォルトの名無しさん (ワッチョイ 1030-VMjw)2016/08/15(月) 23:49:58.31ID:hCHaq+GR0
そもそも1.0が出てまだ1ヶ月半よ
先走りすぎよ
0037デフォルトの名無しさん (ワッチョイ 753c-3Vwo)2016/08/16(火) 00:44:20.03ID:l4SUSpSs0
>>34
とりあえず公式のチュートリアル全部やっとけ
0038デフォルトの名無しさん (ワッチョイ 8d4a-oUwT)2016/08/16(火) 06:58:34.06ID:djSHB6JS0
>>16
>ASP.NET Core 用にプロジェクト作成したなら、
それはどうすればいいのさ?
0039デフォルトの名無しさん (ワッチョイ 393a-3Vwo)2016/08/16(火) 09:59:36.48ID:O7qQUoku0
>>38
.NET Core の VS用拡張入れたら、
プロジェクトテンプレートに↓が出てくる

ASP.NET Core Web Application (.NET Core)
0040デフォルトの名無しさん (ワッチョイ 8d4a-oUwT)2016/08/16(火) 10:40:44.52ID:djSHB6JS0
>>39
本当か!
試してみるわ
サンキュウ
0041デフォルトの名無しさん (ワッチョイ 8d4a-oUwT)2016/08/16(火) 12:34:45.61ID:djSHB6JS0
試そうとしたんだがまだpreview版なの?
正式版が出てから試そうかな
0042デフォルトの名無しさん (ブーイモ MMa8-3Vwo)2016/08/16(火) 13:29:18.38ID:207Q3q1vM
>>41
.NET Core SDK は正式版まだだね。
C#7 のリリースにかぶせるつもりかな。
0043デフォルトの名無しさん (ワッチョイ fcf0-3Vwo)2016/08/17(水) 20:13:30.73ID:lxfDUTb20
プログラミングの知識一切ないです
unity勉強し初めたんですが、c♯が主流みたいでおもっいっきり壁にぶち当たりました。
こんなばかやろうでも理解出来るような、はじめからc♯について解説されているサイトがあれば教えてください。
0044デフォルトの名無しさん (ワッチョイ 4d09-VMjw)2016/08/17(水) 20:35:55.81ID:HDxcYxzF0
こんどプログラミング教育始まるらしいよ
小学校で
0045デフォルトの名無しさん (ワッチョイ 45a1-xYo4)2016/08/17(水) 20:36:48.42ID:R33z9cm40
C#を本来のC#として勉強すると却って遠回りになりかねない気はする
この辺でどうにかならんか?

http://qiita.com/hiroyuki_hon/items/0718a50e6569b6c5037a
0046スッキリ厨 (ワッチョイ 677b-Vk+x)2016/08/18(木) 01:28:49.83ID:R+8gecQh0
まずこの本で、みっちりとオブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

その後、この2冊でお茶を濁す
猫でもわかるC#プログラミング 第2版、2010
C# ルールブック、2011、監修・電通国際情報サービス

本当のプロの話をするなら、この本が絶対条件だが、
Unity如きで、そこまでせんでもいい
Effective C# 4.0、2011

まず、スッキリを3回読んで、わからなければ、専門学校へ通え
0047デフォルトの名無しさん (ワッチョイ bb41-GOit)2016/08/18(木) 07:19:12.56ID:Bii/kgVa0
初心者潰す気まんまんのおじさん怖いなぁ

おれも初心者でしかも同じくUnity使うために
C#勉強しはじめたんだけど
逆にプログラミングに目覚めて遠回り中。

まずC#って完全初心者向けの適切な本って
多分ないわけよ
だから「苦しんで覚えるC」で本当に基本的な部分を何となく掴んでから
英語できるなら
DotNetPerlっていうサイトだったり
Channel9の完全初心者向けの動画みたり
の方がいいと思う

完全初心者がオブジェクト志向を理解しようとしても
まずなんでオブジェクト志向がいいのかすらが
理解できないしなー

そろそろUnityに移行したいんだけどね
0048デフォルトの名無しさん (ブーイモ MM6f-wLiW)2016/08/18(木) 07:31:19.55ID:XogBrdRsM
遠回りしていいならC言語からやるのが一番理解が深まると思う
0049デフォルトの名無しさん (ワッチョイ bb41-GOit)2016/08/18(木) 07:56:42.00ID:Bii/kgVa0
CとC#はなんだかんだ違う言語だから
Cを深追いしようとすると大変だろうけど
枯れた言語だし教える側も熟練のおっさんだから
わかりやすいよ
C入門で検索して最初に出てくる
大学基礎教養レベルのサイトもオススメ
0050デフォルトの名無しさん (ワッチョイ db06-HNW7)2016/08/18(木) 10:13:16.02ID:nHhMEyrj0
変数を箱に例えるサイトに当たってポインタで詰まる未来が見える
0051デフォルトの名無しさん (ワッチョイ 6f3c-HNW7)2016/08/18(木) 18:05:51.97ID:zlGEfHsE0
staticおじさんになるんじゃないぞ
0052デフォルトの名無しさん (ワッチョイ 2bb3-HNW7)2016/08/18(木) 18:11:36.14ID:VT/uRpp60
includeの下に書いたら、static不要になったよ
0053デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/18(木) 18:17:21.37ID:hZtSok7sd
ファイルを読み込んでそのデータを少し弄って全てファイルに上書き(1から作り直し)ってのはできるんだが、
ファイルを一部だけ更新みたいなことはできないのかな?アップデートみたいな
やろうとしてるのはcsvファイルと結果出力のテキストファイルを読み込んで、
双方比較してcsvが更新されているところを更新してテキストファイルに書き込み

全上書きは別にできるけども一部更新になるとどうすりゃええのかさっぱりや
0054デフォルトの名無しさん (ワッチョイ 2bb3-HNW7)2016/08/18(木) 18:24:31.83ID:VT/uRpp60
stream.Seek(1000, SeekOrigin.Begin);
stream.Write(Data, 0, Data.Length);
0055デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/18(木) 18:33:40.38ID:Pxb0F6SP0
固定長レコードのファイルなら行けるが
可変長レコードのファイルだと変更位置から先は全て書き直しになる
これはどうしようもない
0056デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/18(木) 18:34:49.71ID:hZtSok7sd
>>55
固定長レコードってのは行数って思えばええかな?
新しい新規については書き足して問題ない
すでにあるデータの場合は更新したい
0057デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/18(木) 18:35:52.78ID:Qi6POpo5a
>>53
バイナリの並びを上書きすることはできるけど、可変長のデータの
置換挿入削除は単純なテキストファイルを前提にするなら当たり前だけど出来ないよね。
0058デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/18(木) 18:38:43.21ID:hZtSok7sd
>>57
やはり無理が生じているのか
出来ないんじゃなくてできなくて普通だったか
0059デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/18(木) 18:45:25.83ID:Qi6POpo5a
>>58
そりゃそうでしょw
配列じゃなく連結リストみたいなデータ構造を使わないと
自由にデータの挿入削除が出来ないのと同じことだよw
0060デフォルトの名無しさん (JP 0H67-8yFy)2016/08/18(木) 18:50:03.39ID:iO4p2OMAH
レコード長を大きめにとって固定長として扱えばいい
0061デフォルトの名無しさん (ワッチョイ 1723-D2ET)2016/08/18(木) 19:25:41.00ID:sh92haT+0
SQLiteかmdbでいいから、DB使うべき案件だと思うわ
0062デフォルトの名無しさん (ブーイモ MM6f-wLiW)2016/08/18(木) 19:55:24.05ID:oJeK6BjxM
LocalDB便利
0063デフォルトの名無しさん (ワッチョイ cb51-6SVL)2016/08/18(木) 20:06:29.74ID:ayLBcVQH0
>>50
箱の中に「右を見ろ」って書いた紙が入っているんじゃないのか
0064デフォルトの名無しさん (ワッチョイ 8f98-HNW7)2016/08/18(木) 21:00:35.36ID:duLWqog20
>>63
箱に例えちゃうとアドレスの話するときメンドクサイ気がするんだよな
変数って箱そのものじゃなくて箱につけるラベルに例えた方がよくないか?
0065デフォルトの名無しさん (ワッチョイ d37b-eS8V)2016/08/18(木) 21:05:32.88ID:GA+6RMKW0
そもそも喩えるのが良くない
0066デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/18(木) 21:14:36.14ID:hZtSok7sd
やはりアドバイス貰ったようにデータベース扱う案件だよな
出力がテキストファイルだと固定なんだけどその場合は間にデータベースを無理矢理挟むか諦めるかの2たくだよなぁ
挟むことによってデータの不整合起きる可能性あるし問題ばかりだ
0067デフォルトの名無しさん (アークセー Sx07-HNW7)2016/08/18(木) 21:21:54.83ID:F2CvNJ0ux
ローカルにポスグレ最高
0068デフォルトの名無しさん (ワッチョイ ebdc-HNW7)2016/08/18(木) 21:40:04.67ID:AN0ChobI0
ファイルベースでバッチ処理やるならインプレースでファイルを更新するという考え方は基本的にしない
出力は入力とは別のファイルに書き出して、完了後に入力ファイルが不要なら削除する
それがCOBOL時代からの伝統的なやり方で、元来ファイルってのはそういう使い方に最適化されてるんだよ
0069デフォルトの名無しさん (ワッチョイ f349-84cZ)2016/08/18(木) 21:49:23.32ID:HWXrThBv0
>>56
1行当たりの文字数が固定である必要がある。
0070デフォルトの名無しさん (ワッチョイ 2f66-dPDm)2016/08/18(木) 22:28:52.87ID:duueCbzU0
フォントに関する質問です。
フォントの閉じた線分の集まりPathFigureに右回りか左回りか
の情報はありますか?
0071デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/18(木) 23:02:21.83ID:hZtSok7sd
>>69
1行当たりの文字数が固定な必要性か…
それじゃあダメだな…可変だからなぁ
0072デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/18(木) 23:40:36.40ID:8xTrQ31Bd
テキストファイルの出力形式が変わってももとのプログラムの出力に関してを
変更せずともできるように作りたかったけどなかなか難しいな
結果の出力順序が変わったらそのまま受け入れるのが正しいのかな

ちなみに仮文字明らかに長い文字数で設定しておいて
そこを置き換えるってのも無理なのだろうか?

data1 : %xxxxxxxxxxxxxxxxxxxxxxxxxxx
⬇
data1 : aaa

みたいに。data1をキーにvalueを変えるイメージなんだが
0073デフォルトの名無しさん (ワッチョイ cb3a-HNW7)2016/08/18(木) 23:54:59.76ID:N8DsMdm30
>>72
aaaの後ろをスペース埋めするなら良いんじゃない?
配列と同じで、byte数が減るなら隙間を詰める=後続のデータを書き換える必要がある
0074デフォルトの名無しさん (ワッチョイ ebdc-HNW7)2016/08/19(金) 00:02:43.00ID:CvT4Ryaa0
>>72
柔軟にしたいなら今時CSVに拘らなくてもJSON Linesとかでよくね
0075デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/19(金) 01:31:38.22ID:BbnnsChy0
そろそろ鬱陶しい
0076デフォルトの名無しさん (ブーイモ MM6f-wLiW)2016/08/19(金) 01:53:27.07ID:P4xUYp/0M
ファイル丸ごと更新はなんとなく嫌だというだけなら認識を変える
巨大なデータなのでファイル丸ごと更新は負荷がかかるならデータベース使う
理由はないけど諸々の都合により要件に組み込まれてしまっているならデータ構造を変える
0077デフォルトの名無しさん (ワッチョイ c7cb-HNW7)2016/08/19(金) 01:54:28.69ID:/Tj1MJ5i0
設定ファイル全部スクリプトにすればどんな変更がきても対応できるよ
Luaとかpythonおすすめ
0078デフォルトの名無しさん (ワッチョイ c7cb-HNW7)2016/08/19(金) 01:56:16.67ID:/Tj1MJ5i0
まあ、プログラマの単価が一番安いから呼び出して修正させたほうが早いんだけどね
0079デフォルトの名無しさん (JP 0H67-8yFy)2016/08/19(金) 02:11:49.84ID:EQW6TlvjH
昔 Windows が レジストリを採用する前に
win.ini system.ini (プレーンテキスト) を使っててトラブルの嵐だった歴史を
逆行するのを見るような
0080デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/19(金) 06:24:06.22ID:Pc5pGuI4d
>>73
>>74
>>76
しがらみ的なもんで要件を変えられないみたいだから
諦めて全更新にしようとおもう
色々とありがとう
0081デフォルトの名無しさん (スフッ Sd6f-HNW7)2016/08/19(金) 08:11:52.75ID:eNNweXTmd
ってか、seekしてその行頭にコメントマーク打って、最後の行に新規行足せばいいんでないの?
sortedだとかなんか並びに意味があるなら別だけど。
0082デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/19(金) 09:26:36.05ID:BbnnsChy0
要件が全て明らかにされていないのにクイズ大会続けるのはよせ
0083デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/19(金) 12:05:40.95ID:bujk9JqBd
data1 : xxx
data2 : yyy
data3 : zzz

num1 : aaa
num2 : bbb
num3 : ccc

こんな感じのデータを一律取得して
中身を一部変更して下記に変えたい
datファイルかテキストファイルに出力し直す感じ

data1 : xxx
data2 : nnn
data3 : zzz
data4 : mmm

num1 : aaa
num2 : bbb
num3 : ccc

左がラベルで右がintかstringの値
全部一つの文字列として取得まできて
その後にdata郡に一列追加や一部更新をしたいんだが
何か良いアイデアはないだろうか

data2の値を変えるよ!→りプレイス
data4を追加するよ!→文字列に挿入

この二つがしたい
0084デフォルトの名無しさん (ワッチョイ db8c-HNW7)2016/08/19(金) 12:16:52.95ID:Y3hjpxPr0
>>83
言いたい事がいまいち分からん部分があるけど、
そういうListクラスが最初から.NETに無いか?
0085デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/19(金) 12:22:10.72ID:bujk9JqBd
>>84
こんなのあるの?

data1 : xxx
data2 : yyy
data3 : zzz

num1 : aaa
num2 : bbb
num3 : ccc

こんなデータのファイルをstring tmpに読み込んで、
tmpをわちゃわちゃして下の結果を出力できたらなんでもええかなってなってる
0086デフォルトの名無しさん (ワッチョイ db8c-HNW7)2016/08/19(金) 12:42:12.39ID:Y3hjpxPr0
>>85
相変わらずはっきり分からんが、
Dictionaryじゃ駄目なのか?
0087デフォルトの名無しさん (ワッチョイ ebdc-HNW7)2016/08/19(金) 12:48:21.70ID:CvT4Ryaa0
>>68の通り、マルチレコードファイルのバッチ処理でインプレース更新は普通やらない
それによりプログラ厶全体が入力ファイルを引数として出力ファイルを返す一つのステートレスな関数と見做せ、
テストやメンテナンス、再利用が容易になる
全部出力し直しが気持ち悪く感じるならその感覚の方を直した方がいい
0088デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/19(金) 13:10:38.57ID:BbnnsChy0
何が必須で何が必須でないのかはっきりしないから
お節介やきの虫が必須の範囲を超えてああしたらこうしたらって言い出す
0089デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/19(金) 13:18:10.21ID:BbnnsChy0
72と73でいいだろうがもう解決してる話なんだよ
アーキテクチャが美しいとか美しくないとか初心者は知ったことじゃねえんだ
これ以上したり顔でアドバイスする気になってんじゃねえ
黙ってろ
0090デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/19(金) 13:19:35.47ID:SITb9Fi/a
>>89
気付いてないみたいだけどお前さんが一番場違いなんだけどw
馬鹿じゃなかろうか。
黙ってろ?お前だろそれ
0091デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/19(金) 13:23:24.53ID:BbnnsChy0
>>90
例外を握り潰すさん久しぶり
相談室が住処のはずでしょ?
いつから初心者になったの?
0092デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/19(金) 13:28:37.17ID:BbnnsChy0
だいたい

>しがらみ的なもんで要件を変えられないみたいだから
>諦めて全更新にしようとおもう
>色々とありがとう

って本人が言ってるのになぜ続ける
要件は変えられないんだってよ
要件は変えられないんだってよ
JSONだの何だの言いだしてる奴は耳と頭ついてんのかクソムシが
0093デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/19(金) 13:31:27.48ID:SITb9Fi/a
なんだか知らないけど単に性格が異常なだけでなく
頭もオカシイことだけはよく分かるな。どんな悲惨な人生歩んでるかしらんが哀れだ。
0094デフォルトの名無しさん (ワッチョイ 6f23-D2ET)2016/08/19(金) 13:33:06.60ID:Idf4jtm20
>>87
今回の件には適しているとは思えんが、DBが流行る前はISAMという手法でファイルの一部を書き換えるのは一般的だっただろ
何しろ当時のストレージは磁気テープだから、1レコード更新のたびに書き換えていたら話にならなかったからね
0095デフォルトの名無しさん (ワッチョイ db08-rmPz)2016/08/19(金) 13:41:47.46ID:UpDv6oUT0
ちょっと落ち着け。
話を続けるかどうかはともかく、内容が千鳥足になってる感じはする。
どこに落とすのかは最初に決めてからアドバイスせえよ。
0096デフォルトの名無しさん (スップ Sdef-HNW7)2016/08/19(金) 18:14:28.58ID:XvFK3fY5d
なあ 変数名をstring型に変換とかできる?
つかいどころは思い浮かばんけども

List<string> abc;
abc.add("ab");
abc.add("bc");
abc.add("abc");

ってあったとして

if("abc[1]"==abc[1]) ←の右辺が知りたい
出力

みたいなことがしてみたい
結果としては、bcが出てくると正解
0097デフォルトの名無しさん (ワッチョイ abd6-6SVL)2016/08/19(金) 18:23:26.41ID:PifX2i8C0
変数名の取得なら
var hoge = nameof(abc);
でできるけど

>if("abc[1]"==abc[1]) ←の右辺が知りたい
これは何がしたいの?
0098デフォルトの名無しさん (スップ Sd6f-HNW7)2016/08/19(金) 18:26:26.31ID:LLlOsx2Jd
>>97
少し略すけど
for(int i)
if("abc[1]"=abc[i])

こう考えてくれ
0099デフォルトの名無しさん (スップ Sdef-HNW7)2016/08/19(金) 18:31:19.59ID:3wjXryfNd
abc[i]が変数名として一致したらと考えてください
0100デフォルトの名無しさん (ワッチョイ d37b-eS8V)2016/08/19(金) 19:33:20.91ID:n7Ml93yQ0
その例だとif文自体いらんじゃん
もうちょっと必然性のある例が欲しいな
0101デフォルトの名無しさん (ワッチョイ bf02-lWG2)2016/08/19(金) 20:28:45.34ID:KsVkCJ+y0
"abc[i]"という文字列が与えられた場合に、変数abc[i]の値を知りたいってことだろ
C# Evalあたりでググったらなんかヒントあるんじゃね
0102デフォルトの名無しさん (ワッチョイ fb3c-HNW7)2016/08/19(金) 21:15:40.47ID:zfseOXRh0
すでにnameofがあげられてるだろが
0103デフォルトの名無しさん (ワッチョイ bf02-lWG2)2016/08/19(金) 21:22:54.69ID:KsVkCJ+y0
>>102
変数名を取得したいならnamoeofでいいんだが
変数名が知りたいんじゃじゃくて、
変数名からその変数の値を知りたいんじゃないのかって話をしてるんだが
0104デフォルトの名無しさん (ワッチョイ dbcb-rmPz)2016/08/19(金) 21:30:47.56ID:dXcload80
それなら変数名をstring型なんて言わないだろ
0105デフォルトの名無しさん (ブーイモ MMa7-wLiW)2016/08/19(金) 22:08:07.52ID:vHFGN9rUM
出来たとしてなんに使うんだろ
0106デフォルトの名無しさん (ワッチョイ 6f23-D2ET)2016/08/19(金) 23:34:59.79ID:Idf4jtm20
そもそものnameofの使いドコロもよく分からん
0107デフォルトの名無しさん (ワッチョイ d37b-eS8V)2016/08/19(金) 23:39:20.67ID:n7Ml93yQ0
PropertyChangedイベントとか
ArgumentException系のメッセージ作る時とか
0108デフォルトの名無しさん (ワッチョイ cb3a-HNW7)2016/08/19(金) 23:48:49.31ID:89EPNWEA0
nameofは単純だけど便利になった機能の代表格だね
0109デフォルトの名無しさん (ワッチョイ 6f23-D2ET)2016/08/20(土) 00:28:02.21ID:1/Nu7lx90
>>107
PropertyChanged(()=>hoge);
なら、インテリセンスも効くしnameofより短いな
ArgumentExceptionのメッセージ程度なら、コピペで十分だし
仮に多少のスペルミスが有っても何とかなる
イマイチ利用価値が不明ですわ

まあ公式に作ったんだから何らかの理由があるだろうが、ちょっと興味あるね
0110デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/20(土) 00:36:06.93ID:R6ay4zez0
PropertyChangedイベントで使うのはそうなんだが
nameofを書くのはOnPropertyChangedの方だ
0111デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/20(土) 00:37:47.63ID:R6ay4zez0
あと、スペルミスがどーたらこーたらについては
文字列でなければリファクタリング機能で追従できることの方が主眼だろう
0112デフォルトの名無しさん (ワッチョイ 6f23-D2ET)2016/08/20(土) 00:55:10.11ID:1/Nu7lx90
>>110
ごめん、OnPropertyChanged(()=>hoge);が正解だわ
Prismだと、引数にラムダ式入れると、インテリセンス利くんだよね
0113デフォルトの名無しさん (スプッッ Sdef-HNW7)2016/08/20(土) 01:14:01.40ID:+FsAY6HRd
混乱させてすまんな
使い所なんて一切思い付いていなくて
ただ変数名を出力できれば何でも良かった

int a = 1;
Console.writeline(convert.tostring(a));
これだと1を表示させるが
aを出力させてみたかった
それを配列でもできるんかなと

a[1]とかの中身じゃなく、出力をa[1]にさせたかった
0114デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/20(土) 02:49:26.79ID:asaMbvjZa
まあ少なくともa[1]は変数名ではないよね。
変数名はあくまでもaでしょ。

コード上の文字列をそのまま文字列として取得するコード(何言ってるのか訳わからないけど)が
欲しいってことならそんなものは無意味だね。

ソースコード上の文字列はコンパイル時に確定してるんだからそんなの
直接文字列リテラル書くのと何も変わらないでしょ。
0115デフォルトの名無しさん (ワッチョイ 7bf6-HNW7)2016/08/20(土) 03:07:29.96ID:1vm2r2jx0
nameofは地味だけど実装コストもリスクも低いから入れたんだろうね
0116デフォルトの名無しさん (ワッチョイ bfc6-9eTD)2016/08/20(土) 06:44:18.97ID:pVJC6Sdr0
>>115
いやいや。
コンパイラで完結して>>112みたいなオーバーヘッドを生まないからだろ
リスク低いとか関係ない

コンパイラオプションのCallerMemberNameを補うものとして入れられた
0117デフォルトの名無しさん (スプッッ Sdef-HNW7)2016/08/20(土) 08:32:34.40ID:N/12Rv8ld
ないか
なんかのテンプレ作ってそこには配列番号として入れよう…みたいなことをしようとしてたけど無理っぼいね
流れを一回考え直すわ
0118デフォルトの名無しさん (ワッチョイ ebdc-be1M)2016/08/20(土) 11:52:22.97ID:B6Zc+FaI0
>>116
実装コストやリスクというのはコンパイラを実装する側にとっての話だと思うよ。
例えばasync/awaitみたいなクソ複雑な機能はどうしてもバグが入りやすいわけ。
コンパイラにバグがあるままリリースしてしまうと後で非常に直しづらくなってしまうから、
テストを無茶苦茶しっかりやらなきゃいけない。コストとリスクというのはそういうこと。
その点nameofは実装もテストも簡単。ラムダやLINQみたいに文法に大きく手を入れるわけでもない。
0119デフォルトの名無しさん (ワッチョイ 77c9-ECR0)2016/08/20(土) 13:15:37.71ID:dVX2KuZX0
nameof(abc) + "[" + i.ToString() +"]"
$"{nameof(abc)}[{i}]"

いくらでもあるが
0120デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/20(土) 13:38:20.78ID:CiESb+Iia
どうでもいいけどToStringは不要だよw
0121デフォルトの名無しさん (ワッチョイ abd6-6SVL)2016/08/20(土) 13:56:19.19ID:p35lV3XS0
>>120
VBスレに帰れ
0122デフォルトの名無しさん (ワッチョイ ebdc-HNW7)2016/08/20(土) 14:01:32.90ID:B6Zc+FaI0
何でも明示的に書かないと気が済まない人なら>>119の下の方の{}内もToString省いちゃダメよ
0123デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/20(土) 14:17:45.67ID:CiESb+Iia
>>121
おいおいw
ToStringが不要な理屈もわからない程度の人間は人をVBer呼ばわりかよw
0124デフォルトの名無しさん (ワッチョイ abd6-6SVL)2016/08/20(土) 15:00:56.27ID:p35lV3XS0
ああ左辺がstringだからか
すまんな
0125デフォルトの名無しさん (ワッチョイ 7bf6-HNW7)2016/08/20(土) 15:21:43.57ID:1vm2r2jx0
>>116
リスクは文法的にもあって、よく考えずに機能追加するとその機能をなくすわけにはいかなくて将来的な機能追加の際に矛盾や手間が生じることがある

Roslynでタプルとかパターンマッチングで長いこと議論してるのもそれを防ぐため
一回実装を作ったけど正式版に入れず、パターンマッチング入れるときに一緒に再検討するわってなってるissueが結構ある
0126デフォルトの名無しさん (スプッッ Sdef-HNW7)2016/08/20(土) 16:36:58.64ID:feu//gSLd
>>119
俺も結論これになったわ
>>114のレスを参考にして
ありがとう
0127デフォルトの名無しさん (ワッチョイ 77c9-ECR0)2016/08/20(土) 18:37:53.94ID:dVX2KuZX0
+だと頭にstring以外が来た時にToStringつけることになって統一できないから中に書くときもToStringするようにしてるんだよね
別にJSみたいに""+ってやればいいんだろうけども
0128デフォルトの名無しさん (ブーイモ MM6f-wLiW)2016/08/20(土) 18:43:34.78ID:jBkZ+arHM
+演算子で次元の異なる項を繋げるのが心地悪い派の人はToStringして書くよね
0129デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/20(土) 18:53:24.93ID:Z40WUM3ma
>>127
>+だと頭にstring以外が来た時にToStringつけることになって
ならないよw
https://msdn.microsoft.com/ja-jp/library/k1a63xkz.aspx
0130デフォルトの名無しさん (ワッチョイ 77c9-ECR0)2016/08/20(土) 20:23:12.46ID:dVX2KuZX0
>>129
マジだ
Javaと同じでなると思い込んでたし>>127もJavaのときからの癖だから完全に思い込みだった
0131デフォルトの名無しさん (ワッチョイ d37b-eS8V)2016/08/20(土) 21:14:42.59ID:+QWhmcFO0
非文字列 + 非文字列 + 文字列
なら問題だし…
まあ今となってはもう$""で全部済ませてもいいような気がするけど
0132デフォルトの名無しさん (ワッチョイ c7cb-HNW7)2016/08/20(土) 23:06:07.27ID:I8KEPvsp0
デバッグ版じゃ起きないストップ系のバグ追ってるときに
ソースファイル名とメソッド名と周辺の変数名とその値を出したいときはある
0133デフォルトの名無しさん (ワッチョイ 6f23-D2ET)2016/08/20(土) 23:17:01.50ID:1/Nu7lx90
>>132
そういう時は、大体出力位置の近くで変数を使っているから
変数名をコピペしたほうが早いと思うわ
0134デフォルトの名無しさん (ワッチョイ c7cb-HNW7)2016/08/20(土) 23:59:51.75ID:I8KEPvsp0
>>133
全くわからないって状況の作戦だから
機械的にすべてのメソッドで出力したいんだけど
そんな機能ないんだよね
0135デフォルトの名無しさん (ブーイモ MM6f-wLiW)2016/08/21(日) 11:47:12.64ID:ks5UHXiEM
InとOutは気になるけど変数が気になる事は滅多にない
そのためだけに変な機能追加されるのはちょっと…
0136デフォルトの名無しさん (ワッチョイ db8c-HNW7)2016/08/21(日) 12:08:15.53ID:2IjB3D5o0
>>132
ストップ系のバグってどういうやつ?
例外処理忘れとか?
0137デフォルトの名無しさん (ワッチョイ 675e-6SVL)2016/08/21(日) 14:29:48.93ID:I3WTYBIb0
デバッグだと動くけどRelease版ビルドしてみたらエラーになったってことは何回かあるなw
try-catchで囲んでおけばcatchはしてくれるんだが
デバッガで見つけられないんで当たり付けて検証用コード入れて変数表示しながらチェックしていた
0138デフォルトの名無しさん (ワッチョイ 4f90-D2ET)2016/08/21(日) 14:43:24.19ID:5a3gdZHH0
お前らVS のバージョン幾つつかってる?

俺VS2010 古すぎるかな。
0139デフォルトの名無しさん (ワッチョイ d3c0-D2ET)2016/08/21(日) 14:51:22.35ID:paqk3e4j0
仕事で未だにVS2010縛りなのが辛い
async/await使いたいよ
0140デフォルトの名無しさん (ワッチョイ f349-84cZ)2016/08/21(日) 14:58:57.44ID:vxp5N5TZ0
>>139
っ Microsoft.Bcl.Async
0141デフォルトの名無しさん (ワッチョイ 4f90-D2ET)2016/08/21(日) 15:14:57.49ID:5a3gdZHH0
>>139 >>140
そんな製品でてたのか。
0142デフォルトの名無しさん (ワッチョイ cb3a-HNW7)2016/08/21(日) 15:20:44.70ID:rj7c0P/h0
Windows Mobile の開発案件降ってきて、VS2008使ったわ。
System.Core.dll読まないと色々出来ないこと多いねぇ。
0143デフォルトの名無しさん (ワッチョイ db4a-lWGj)2016/08/21(日) 16:46:04.27ID:LVvSDMx80
svhost.exeって何よ?
0144デフォルトの名無しさん (ワッチョイ 17ff-TwJM)2016/08/21(日) 16:57:26.86ID:9HvdvFgU0
サービスを実行するためのもの
0145デフォルトの名無しさん (ワッチョイ 17ff-TwJM)2016/08/21(日) 16:58:02.19ID:9HvdvFgU0
ってそりゃ svchost か、、、、 svhost はわからん
0146デフォルトの名無しさん (ワッチョイ db4a-lWGj)2016/08/21(日) 17:00:12.29ID:LVvSDMx80
>>144
何のサービスよ?
0147デフォルトの名無しさん (ワッチョイ c7cb-HNW7)2016/08/21(日) 17:05:31.11ID:VzoLMAMq0
>>137
そんな状況になるよね
MSのクラスとか落ちるときあるしね
0148デフォルトの名無しさん (ワッチョイ 17ff-TwJM)2016/08/21(日) 17:25:15.99ID:9HvdvFgU0
>>146
いや、、、サービス全般
起動すると svchost.exe が個々のサービスを子プロセスとして起動する
サービスってデーモンのことね
0149デフォルトの名無しさん (ワッチョイ df73-D2ET)2016/08/21(日) 18:01:19.42ID:6BM+Z7tN0
質問ですが、今R232で接続しているものが
USBでも接続できるみたいなのでUSBで制御してみたいのですがいい方法が教えてくれませんか。
調べた範囲で
CDCはPIC通信で使う用で使えない?
LibUsbDotNetを登録して↓で通信を試してみたのですが MyUsbDevice = null になり接続先が見つかりません。
//ベンダーID、プロダクトIDが間違っていないと思うので、接続先が見つからない原因がわからないです。

using LibUsbDotNet;
using LibUsbDotNet.Main;

private void button1_Click(object sender, EventArgs e)
{
UsbDevice MyUsbDevice;
UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x058F, 0x6366);//ベンダーID、プロダクトID
MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);

if (MyUsbDevice == null) throw new Exception("通信不可");
    }
0150デフォルトの名無しさん (ワッチョイ db8c-HNW7)2016/08/21(日) 18:28:31.13ID:2IjB3D5o0
>>149
何したいのか分からんが、普通にSerialPortクラスじゃだめなのか?
0151デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/21(日) 18:29:52.67ID:DgJ/lQO2a
>>149
その質問の仕方じゃ誰も回答してくれないと思うよw
せめて相手のデバイスが何かぐらい書いた方がいいんじゃないの?
0152デフォルトの名無しさん (ワッチョイ db4a-lWGj)2016/08/21(日) 19:15:25.11ID:LVvSDMx80
>>148
そのsvhost.exeが有ると何がいいのさ?
0153デフォルトの名無しさん (ワッチョイ df73-D2ET)2016/08/21(日) 19:22:08.02ID:6BM+Z7tN0
>>150>>151
今はD-sup9pin-D-sup9pinでPC同士を接続しているんですが
ノートPC側でD-sup9pinが無いのもあるのでD-sup9pin-D-sup9pinを
USB-USBケーブルでつないで同じことをできないかなと思って調べています。
ノート側は変換ケーブルを使えばいけるけど、今後の為やれないかなと思っているんですが。
SerialPortクラスでUSBケーブルでつないで同じことがやれるのかな?
自分の調べた範囲だとできそうにないので参考になるサイト教えてもらえると助かります
0154デフォルトの名無しさん (ワッチョイ 4b1e-HNW7)2016/08/21(日) 19:59:57.12ID:zJoAoSIM0
>>153
相手側のデバイス(製品名)はなんなのん?

ベンダIDとデバイスIDでググると中身はMulti Flash Readerみたいだけど
http://pcidatabase.com/search.php?device_search_str=v
0155デフォルトの名無しさん (ワッチョイ df73-D2ET)2016/08/21(日) 20:18:17.66ID:6BM+Z7tN0
>>154
相手側は会社いかないとわからないんです。
↑のコードは家のPCのUSBハードディスク等を認識できるかためしていたのです。(何だったか覚えてない)
↓これはBUFFALOのUSBメモリです。(これであってるのかな)
UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x0EA0 0x2168)
0156デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/21(日) 20:32:30.78ID:Dux4CGuya
>>155
結局何がしたいのかよく分からないし、俺自身はLibUsbDotNetとやらを
使ったことがないんで間違ってるかもしれないが、LibUsbDotNetを使って
アクセスしたいデバイスのドライバは(infファイルを書き換える等の方法で)
WinUSBである必要があるんじゃないの?

ついでに言うと、それでLibUsbDotNetでアクセスできるようになったとしても、
当たり前だけど使うエンドポイントや通信プロトコルはデバイスごとの独自実装だから
そのデバイスの仕様が分からない限り何も出来ないと思うよ。
0157デフォルトの名無しさん (ワッチョイ df73-D2ET)2016/08/21(日) 20:57:48.80ID:6BM+Z7tN0
>>156
LibUsbDotNetで認識しないと何も試せないなと思って聞いてみましたが
WinUSBとかもう少し調べてみます。ありがとうございました。
0158デフォルトの名無しさん (ワッチョイ ef9f-ODkp)2016/08/21(日) 21:00:04.02ID:ZpLYPGtl0
USBプロトコルの規格外の事をやりたいんじゃないの?
ドライバ書けば出来るかもしれないしUSBホストコントローラを専用に
設計し直すとこから始めないといけないかもしれない
完全にC#の範疇ではない
0159デフォルトの名無しさん (ワッチョイ 4b1e-HNW7)2016/08/21(日) 21:09:24.86ID:zJoAoSIM0
デバイスの開発元がUSB用のドライバ公開していそうなもんだけど
もしくは、取説に制御方法書いてあるとか
0160デフォルトの名無しさん (ワッチョイ df4a-NRoR)2016/08/21(日) 21:10:37.11ID:szKxnr3V0
次のうち、当てはまるものを選べ?

・その機械は、RS-232CでPCと通信できる
・その機械は、USBでPCと通信できる(汎用ドライバ)
・その機械は、USBでPCと通信できる(専用ドライバ)
・PCに、RS-232Cポートがある
・PCに、RS-232Cポートがない
・PCに、「変換ケーブル(USB接続のRS-232Cポート)」をつなぐ
0161デフォルトの名無しさん (ワッチョイ f349-84cZ)2016/08/21(日) 21:13:54.55ID:vxp5N5TZ0
>>153
そもそもPC⇔PCはどちらもUSBホストなのでケーブルだけで繋げないよ。
0162デフォルトの名無しさん (ワッチョイ df73-D2ET)2016/08/21(日) 21:26:24.72ID:6BM+Z7tN0
>>159>>160
デバイスの開発元がUSB用のドライバは公開している
取説に制御方法書いていました。 内容はRS-232Cと同じ

・その機械は、RS-232CでPCと通信できる
・その機械は、USBでPCと通信できる(専用ドライバ)
・PCに、RS-232Cポートがある
・PCに、「変換ケーブル(USB接続のRS-232Cポート)」をつなぐ


RS-232Cポートはあるけど、
USBで制御できるみたいなのでやれる目処をつけたいなと思ってます。
0163デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/21(日) 21:39:24.39ID:Dux4CGuya
>>162
制御方法が書いてあるぐらいなら専用USBドライバと一緒にdllもついてるでしょw
なぜ素直にそれを使わずにLibUsbDotNetを使うの?

っていうか、どうしてそう頑なに具体的なデバイス名を明かしたくないの?w
0164デフォルトの名無しさん (ワッチョイ f349-84cZ)2016/08/21(日) 22:14:34.26ID:vxp5N5TZ0
>>162
そのドライバーはUSBで繋いでも仮想のCOMポート(RS-232C)に見えるタイプだろ。
ドライバーをインストールして、(必要ならCOMポート番号を設定して)、
SerialPortクラスで今まで通り制御するだけだぞ。
0165デフォルトの名無しさん (ワッチョイ df73-D2ET)2016/08/21(日) 22:37:25.58ID:6BM+Z7tN0
>>163>>164
取り説軽く見ただけなのでわからないけど、それなら何もしなくてよさそう確認してみます。
助かりましたありがとうございます。
0166デフォルトの名無しさん (ワッチョイ ab17-bKw2)2016/08/21(日) 22:46:48.67ID:0CARPj6M0
(なんで >>161 がスルーされてるんだろう。直結でやるなら一番重要そうなことなのに。)
0167デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/21(日) 22:57:30.28ID:Dux4CGuya
>>166
実際はそういう製品も存在するよw

もちろん内部的には双方のホストからデバイスに見えるだけで、
USBの企画上ホスト対ホストがあるわけじゃないけどね。
0168デフォルトの名無しさん (ワッチョイ db8c-HNW7)2016/08/22(月) 02:27:50.99ID:7w77Vh180
なんかもう、ものすごく馬鹿なのかと思う。
0169デフォルトの名無しさん (ワッチョイ bfeb-D2ET)2016/08/22(月) 13:20:23.33ID:HM+rrgAV0
C#初心者はl、独習C#で始めるのが良い
0170デフォルトの名無しさん (アウアウ Sa47-wLiW)2016/08/23(火) 10:04:09.31ID:Pa9Uofyma
コンストラクタ内で別のクラスを返したいんだけど。
class Shape { Point origin; }
class Circle : Shape { double r; }
class Triangle : Shape { Point a, b, c; }
みたいな感じで、ファイルから読んでクラスを決める
public Shape(StreamReader r)
{origin.x=r.ReadByte(); origin.y=r.ReadByte();
// その他、共通の初期化
switch(r.ReadByte())
case 1:this=new Circle(r); break; // 続きは各クラス内で
case 2:this=new Triangle(r);break;
}
}
こんなイメージなんだけど
0171デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/23(火) 10:11:48.68ID:6POiz1Kha
>>170
コンストラクタじゃなくてファクトリーメソッドでいいでしょ
0172デフォルトの名無しさん (アウアウ Sa47-wLiW)2016/08/23(火) 10:27:53.96ID:Pa9Uofyma
>>171
今思いついた。
class Shape {
public Init(StreamReader r){ return new Circle(r);}
}
s=new Shape().Init(r)
これでいいのか?
0173デフォルトの名無しさん (ワッチョイ 4fe1-HNW7)2016/08/23(火) 10:45:02.64ID:3XGzHbAv0
>>172
それだとInitの呼び忘れがあるだろ
ファクトリーメソッドでググったか?
0174デフォルトの名無しさん (ワッチョイ ebdc-HNW7)2016/08/23(火) 11:28:03.95ID:0RGf95YO0
>>172
名前が悪い
var s = new ShapeReader(reader).ReadShape();
これならおかしくはない
もしくは上の人も言ってるようにファクトリメソッドで
var s = Shape.FromStream(reader);
0175デフォルトの名無しさん (スププ Sd6f-HNW7)2016/08/23(火) 11:57:38.54ID:ZcVGgUHod
みんな言ってるけど、Factoryがこれほど似合うパターンは無いな。

Shapeはabstruct classにして、
staticな関数として、
Shape createInstance(StreamReader s)
を作って、各子クラス返えす。
あとは要りそうな関数をabstructで定義しとけば便利じゃないかな。
0176デフォルトの名無しさん (ワッチョイ ebdc-HNW7)2016/08/23(火) 12:23:20.88ID:0RGf95YO0
>>175
ちゃんとfactoryやるならfactory自体も抽象化した方がいいよ
Func<StreamReader, Shape>(もちろんインターフェイスでもいいけど)を外から受け取るようにする
そうすることで特定のファクトリメソッドがすべての派生クラスを知っている必要がなくなり、
派生クラスの追加や単体テスト時の差し替えが容易になる
パブリックなライブラリでstaticなファクトリメソッドが多いのは、
その性質上ありうる派生クラスが決まっていることが多いし利用者の利便性を優先しているため
アプリだと派生クラスがポコポコ増えるので考え方は違ってくる
0177デフォルトの名無しさん (スププ Sd6f-HNW7)2016/08/23(火) 14:51:59.69ID:ZcVGgUHod
>>176
いやー、Shapeは流石に、既にかなり抽象的じゃないの?
逆に、Factoryが派生クラスを知ってる範囲で作るべきだとは思うけどな。こういうのは。
ShapeのcreateInstanceに、インスタンス生成関数のデリゲート渡せれば十分では?Javaでもあるまいし。
0178デフォルトの名無しさん (JP 0Ha7-wLiW)2016/08/23(火) 15:00:53.30ID:+9SSiQLZH
>>175 他
イマイチわかってない
整理すると、
public class Shape {Point origin; // 共通のメンバー変数
}
public class Circle : Shape {double r;// 個別のメンバー変数
}

public class Factory{
static Shape Facrory(StreamReader r){
Shape s;
s.origin.x=r.ReadByte();s.origin.y=r.ReadByte(); // 共通の初期化

switch(r.ReadByte()){
case 1:s=new Circle(s, r);break;// Shapeも渡すのか?
}
return s;
}

先に作った親インスタンスを子にキャスト?コピー?出来ない?
Streamの頭に共通部があって、その後個別のデータが来て、共通部も持ってないと困るんだけど、別途持つしかないかな。
0179デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/23(火) 15:29:21.18ID:1+adrTFO0
そもそもクラスと継承を半端に理解してるから
こんな下らないことになっているのではないか
https://ideone.com/iKZ5UJ
0180デフォルトの名無しさん (アウアウ Sa47-wLiW)2016/08/23(火) 16:17:44.30ID:L2g0FUtna
>>179 thx
やっぱ共通部のメンバーは別途持って、子クラスに渡してあげるしかないのね。
ありがと
0181デフォルトの名無しさん (スププ Sd6f-HNW7)2016/08/23(火) 16:56:14.55ID:ZcVGgUHod
>>180
別途持って?
あんな分かりやすいサンプル見てそういう感想なの?
0182デフォルトの名無しさん (ワッチョイ db98-rmPz)2016/08/23(火) 17:40:46.64ID:zVNOW8Fb0
俺も下らないって煽ったし別にいいんでね
0183デフォルトの名無しさん (アウアウ Sa47-wLiW)2016/08/23(火) 17:43:37.24ID:L2g0FUtna
>>181
public static Shape FromStream(Stream stream)
の中で、x,yを別途持ってて、子クラスにstreamと合わせて渡してあげるんだよね。

共通の初期化部分だけで1つのクラスかstructにして、親クラスのインスタンスで持つ。
一時的な親クラスを起こして、子クラスの中でコピー後に殺すとかgcに任すとコストかかるだろうし。
0184デフォルトの名無しさん (ワッチョイ db98-rmPz)2016/08/23(火) 17:51:14.99ID:zVNOW8Fb0
初心者のうちからあまり神経質になってると、やる気が枯れてしまうぞ
0185デフォルトの名無しさん (スププ Sd6f-HNW7)2016/08/23(火) 18:10:50.79ID:ZcVGgUHod
>>183
別途持ってるも何も、Circleの自分のプロパティだよ。継承してんだから。
子クラスのインスタンスで持ってるよ。
xとyは確かにコピー渡しだけど、プリミティブだからスタック乗って、そのまま居なくなるだろ。

理解しきってないのにコストとか考えない方がいいんでないの?
0186デフォルトの名無しさん (スププ Sd6f-HNW7)2016/08/23(火) 18:15:21.17ID:ZcVGgUHod
base(x,y)は何者だと思ってるんだろうか。
ShapeはCircleではないが、CircleはShapeなんだから、キャストもへったくれも無いし、コピーする必要があるとかマジでわからん。
もしかしてIL上そんな表現になんの?
仮想関数ではなくて、プロトタイプの拡張みたいな真似してるのか?
0187デフォルトの名無しさん (アウアウ Sad7-ZKfe)2016/08/23(火) 19:13:32.71ID:C9GDU1A7a
質問者そっちのけで盛り上がってまんな
いや別に批判してるわけじゃないよw
0188デフォルトの名無しさん (アウアウ Sa47-wLiW)2016/08/23(火) 19:15:45.80ID:L2g0FUtna
>>185 186

えーと。頭悪くてすまん。179だと、
子のCircleは(Factoryも)親がどう初期化されるかを知ってなきゃいけない。今回だと x, yをReadByte()
で、一時的に親を作って初期化すれば知らなくて済む。
みたいな事を考えてたんだけど

public class Factory{
public static Shape FromStream(Stream stream){
Shape s=new Shape(stream);
// int x = stream.ReadByte();
// int y = stream.ReadByte();
switch (stream.ReadByte()){
case 0:return s;
case 1:return new Circle(s, stream);//sはgcで殺す
default:throw new Exception();
}
}
}


public class Circle : Shape {
public double r;
public Circle(Shape s, Stram stream)
{base.init(s); // 親の初期化 :base(s)でいいか
r=stream.ReadByte();
}}
0189デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/23(火) 20:16:30.27ID:1+adrTFO0
もちろんShapeがShapeを受け取ってもいいのよ(コピーコンストラクタ)
https://ideone.com/iKZ5UJ
0190デフォルトの名無しさん (ワッチョイ 7730-rmPz)2016/08/23(火) 20:18:16.40ID:1+adrTFO0
URLが古かった
https://ideone.com/z8FM2j
0191デフォルトの名無しさん (ワッチョイ f349-84cZ)2016/08/23(火) 21:31:33.19ID:k64u2YsN0
Shapre.Shape(Stream)を作るなら、
元のMemoryStreamをType, X, Y, (r)って順番にして、Circle.Circle(Stream)も作ったら。


public Circle.Circle( Stream stream )
 : base( stream )
{
 this.r = stream.ReadByte();
}
0192デフォルトの名無しさん (アウアウ Sad7-HNW7)2016/08/23(火) 21:50:38.15ID:ua608nkia
>>188
Shapeが行う初期化はShapeを継承したCircleがやってる。Circleのbase。
Circleでは、原点の初期化してないでしょ。
ただ、ベースクラスのコンストラクタを書いてあるだけ。
一時的に親を作るも何も、子は親そのものでもあるんだから、子のメソッド使えばいいじゃん。
0193デフォルトの名無しさん (ブーイモ MM6f-wLiW)2016/08/23(火) 22:48:29.33ID:oA5rWJesM
シリアル化でいいじゃん
0194デフォルトの名無しさん (ワッチョイ 677b-Vk+x)2016/08/24(水) 00:03:58.53ID:WeNRmuBC0
自製のデザインパターンかい?

「Effective C# 4.0、2011」を読みな
0195デフォルトの名無しさん (ワッチョイ cb3a-HNW7)2016/08/24(水) 23:03:03.11ID:vDf01Mys0
>>194
書き込みに釣られてKindle版をポチってみた。
内容的には初歩の部分から書いてあって入門書の後に良さそう。
ちょっとくどい言い回しもあるけど、翻訳だから仕方ないか。
0196デフォルトの名無しさん (ワッチョイ df41-hMGK)2016/08/25(木) 08:05:31.66ID:grn46Te30
あの翻訳はちょっとキツイっすわ
0197デフォルトの名無しさん (ワッチョイ 68d4-hifv)2016/08/25(木) 14:18:42.12ID:FPU8kcQL0
ラムダ式とLinqの問題集みたいなのってありませんか?
0198デフォルトの名無しさん (ブーイモ MMcd-t1qj)2016/08/25(木) 14:50:33.92ID:qCyyh5n+M
SQLの問題集でも買えよ
LINQに拘る必要は全く無い
0199デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/25(木) 15:06:32.40ID:dURn6wW4a
>>197
お題スレでリクエストしてみるとか。
ラムダは問題集になるほど内容ないよw
0200デフォルトの名無しさん (ワッチョイ 7999-FJIZ)2016/08/25(木) 16:19:49.88ID:wSpRktRj0
LINQ芸みたいなのを望んでるのか?
0201デフォルトの名無しさん (ワッチョイ 68d4-hifv)2016/08/25(木) 17:38:43.75ID:FPU8kcQL0
LINQ芸というのかはわかりませんが、プロらしい記述をできるようになりたいんです
0202デフォルトの名無しさん (ブーイモ MMcd-qQHP)2016/08/25(木) 18:51:36.97ID:sgUV9GRkM
プロの書くLinqは流れるようにメソッドチェインして美しい
初心者が書くとやたらとネストして悲しい気持ちになる
0203デフォルトの名無しさん (ワッチョイ 7ddc-t1qj)2016/08/25(木) 18:57:55.62ID:MmwMpV4v0
COBOL時代さながらのコピペだらけの一行一行コーディングの方がある意味プロっぽいと思うけどな
この国の標準的なスキルの現場では、LINQやラムダを活用した抽象度の高いコードはレビュワーが理解できなくて差し戻し
0204デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/25(木) 19:28:21.67ID:dURn6wW4a
またそれだけど、クエリ式は嫌いな人いるけどメソッド形式まで否定する人なんてまずいないでしょ?
ラムダ式まで否定するような奴はただの論外の無能だ。
0205デフォルトの名無しさん (ワッチョイ 2dd6-dmM4)2016/08/25(木) 19:31:05.22ID:U0LBqP7Z0
いつものおじさんだな
0206デフォルトの名無しさん (ワッチョイ 745b-qQHP)2016/08/25(木) 21:01:27.76ID:qCQm6gES0
ネストしてるlinqってどんなの?
逆に気になる。
0207デフォルトの名無しさん (アウアウ Sa45-KSG3)2016/08/25(木) 21:06:37.97ID:/5BbJmEUa
bluetoothデバイス(マウスとか)の通信内容をコードで拾いたいのですが、
シリアル通信というものとの関係がわかりません。
初心者向けのサイトとかってないですか。
0208デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/25(木) 21:25:01.50ID:dURn6wW4a
>>207
初心者の手におえる話じゃないと思うw
まずBluetoothのHIDの実装から理解する必要があるんじゃないの?w
0209デフォルトの名無しさん (アウアウ Sa45-KSG3)2016/08/25(木) 21:43:29.06ID:/5BbJmEUa
ありがとうございます。
BluetoothのHIDの実装からググってきます
0210デフォルトの名無しさん (ワッチョイ d51e-t1qj)2016/08/25(木) 22:08:59.67ID:sWxqL1bB0
>>201
とりあえずこれ読んどき
https://www.amazon.co.jp/dp/4774149756
0211デフォルトの名無しさん (オイコラミネオ MM34-t1qj)2016/08/27(土) 10:14:43.52ID:duxgOUpsM
FirstOrDefaultで抽出してif文でnull判定するcodeを見るのが嫌
0212デフォルトの名無しさん (ワッチョイ 3d4a-pcMj)2016/08/27(土) 10:19:43.26ID:QM5rEsPk0
DockPanelSuiteでDockingWindowを左側に1つだけ表示しているのですが
その同じ領域の下部にもう1つDockingWindowを表示して上下に2つ並べる場合は
SplitContainerが必要でしょうか?
0213デフォルトの名無しさん (ワッチョイ 7f49-MiIF)2016/08/27(土) 12:05:47.58ID:AzZGGFlW0
>>211
どういうコードなら良いの?
0214デフォルトの名無しさん (スプッッ Sdc8-t1qj)2016/08/27(土) 14:48:35.45ID:oHWB6vBcd
エラーハンドラみたいなの静的にを作っておいて
そこでエラーの文章とかを作成
そしてそれを集約例外に投げる
こんな感じの処理って普通?
0215デフォルトの名無しさん (ワッチョイ b94a-hifv)2016/08/27(土) 17:44:06.89ID:ZCfqwLYC0
Win10のVS2015のC#で4.6.2の設定のConsoleプロジェクトで、
参照しているDLLの中に
1.0
2.0
3.5
4.0
などの古い環境でビルドしたDLLが混じっていても問題ないですか?
0216デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)2016/08/27(土) 17:51:41.04ID:I2eF5JnT0
>>215
CLRのバージョンが替わると原則互換性は保証されない事になっている
https://msdn.microsoft.com/ja-jp/library/bb822049%28v=vs.110%29.aspx
4.6.2なら4.0以降のみOK
0217216 (ワッチョイ 9c5e-dmM4)2016/08/27(土) 17:59:32.01ID:I2eF5JnT0
ああ、動作環境で全てのCLRが入っているのなら問題ないか。ごめんw
0218デフォルトの名無しさん (ワッチョイ b94a-hifv)2016/08/27(土) 18:13:48.57ID:ZCfqwLYC0
>>217
Win10クリーンインストールしたので
たぶん .net 4.6 しか入っていません。
0219デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)2016/08/27(土) 18:27:36.92ID:I2eF5JnT0
>>218
それなら1.0、2.0(3.5)相当のCLRをインストールするか4.0より前のものを参照するのを止めるか、どちらかにするのが無難
ついでに1.1以前は既にサポート外だから、いっそのこと現在の環境でDLLを全部ビルドしなおすのが一番無難かと
0220デフォルトの名無しさん (スップ Sdb8-t1qj)2016/08/28(日) 13:03:52.77ID:KugZAG5ld
集約例外にenumの型を投げることってできな…い?
メインのとこにenumで指定した番号だけ投げてメインでswitchなりなんなり使用して分岐させたいのだが
0221デフォルトの名無しさん (ワッチョイ 7999-FJIZ)2016/08/28(日) 13:13:26.86ID:h1JFz9az0
C#用語使って喋れ
何言ってるんだか分かんねえよ

もしくはideoneかdotnetfiddleに「こう書きたい」ってC#のソースコード貼れ
0222デフォルトの名無しさん (ワッチョイ 7999-FJIZ)2016/08/28(日) 13:19:24.91ID:h1JFz9az0
そもそもExceptionの派生型以外スローできないって理解してる?
じゃあenumの型を投げるとは?
0223デフォルトの名無しさん (ワッチョイ 7f49-MiIF)2016/08/28(日) 13:22:33.99ID:Nm6ziFTm0
Exceptionクラスを継承してEnumのフィールドを追加したクラスを作れば良いじゃん。
0224デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/28(日) 13:29:52.05ID:0rJ/vUpYa
それ以前に、そもそも個別の例外ごとに特別な処理が必要なら
一体何のために例外処理を集約するのかなっていう素朴な疑問が。

例外処理に明るいわけじゃないんで自信持って言えないけど、集約例外ってログを取りたいとか、
想定外の例外が起こった時に最低限ユーザーにメッセージぐらい表示したいとか、
その程度しか使い道ないと思うんだけど。
0225デフォルトの名無しさん (スップ Sdb8-t1qj)2016/08/28(日) 13:31:40.36ID:aVh8+nVCd
エラー番号に応じてなんか表示させたいんでは
0226デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)2016/08/28(日) 13:38:34.46ID:8HlIAn4s0
複数のメソッドで似たような例外処理があったときに(表示メッセージとか)同じ記述をするのと
可読性が良くなるから例外処理をクラスにしてまとめた事はあるな
Enumでどうしたいのか、どう必要なのか今一わからないけど
というわけで>>221の最後の行に賛成
0227デフォルトの名無しさん (ワッチョイ b98c-t1qj)2016/08/28(日) 13:40:07.31ID:XHPIJZGd0
まさか、例外処理を通常の条件分岐処理のように使おうとしてないか?

例外処理は、あくまで「例外」のための処理だぞ。
0228デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)2016/08/28(日) 13:44:41.11ID:8HlIAn4s0
>>227
例外処理はコスト高いのは大抵の人は分かっているだろうし
もしその目的なら面倒なだけで何の得にもならない設計だな
0229デフォルトの名無しさん (スップ Sdb8-t1qj)2016/08/28(日) 13:50:38.91ID:wMiv4AuKd
なあ どっちが良いとかオススメあるかな
管理するクラスが、ファイルパスを展開してデータを取得するクラスの関数を呼び出して…って時に、
ただ引数としてパスを渡すのと、コンストラクタで変数を初期化するのと…
データをもう一度使いたいとか使いたくないとかって差だけかな?

class A {
データアクセス(filepath){
処理
}
}

class A {
string filepath;
A(string filepath){
this.filepath = filepath
}
データアクセス(){
処理
}
}
0230デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)2016/08/28(日) 13:54:18.03ID:8HlIAn4s0
>>229
先の質問が片付いてからにしたら?
下のほうのメリットがまるでわからないけど
0231デフォルトの名無しさん (スップ Sdb8-t1qj)2016/08/28(日) 13:57:32.87ID:wMiv4AuKd
>>230
すまんが先の質問ってなんだ
書き込んだのはじめてだ
0232デフォルトの名無しさん (ワッチョイ 753a-t1qj)2016/08/28(日) 14:03:42.99ID:xWdxGs/J0
>>231
>>220 で弟さんが書き込んだ質問のことだね
0233デフォルトの名無しさん (ワッチョイ 7dc9-qQHP)2016/08/28(日) 14:08:16.64ID:c2+tORve0
そのクラスがファイルパスを受け取ること前提の作りというか、必ず使うんだったらコンストラクタの引数にしちゃうね俺だったら
0234デフォルトの名無しさん (ワッチョイ 72c6-aGiZ)2016/08/28(日) 14:48:01.49ID:ZPntcgGW0
スップ Sdb8-t1qj
0235デフォルトの名無しさん (ワッチョイ de3c-t1qj)2016/08/28(日) 14:51:19.13ID:6k1z50dx0
>>229
その条件だけなら
> データをもう一度使いたいとか使いたくないとかって差だけかな?
でしょ
0236デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/28(日) 15:00:50.32ID:14dFRx50M
>>229
何処からでもなんの形式でも良いからデータをとってくるクラスだったらコンストラクタで渡す
使う側が指定したファイルを読み取るクラスならメソッド引数で渡す

コンストラクタ形式は依存性注入でよく使うパターン
メソッド引数形式は基本的なライブラリやユーティリティで使うパターン
0237デフォルトの名無しさん (ワッチョイ 7998-FJIZ)2016/08/28(日) 15:16:45.15ID:sEQC69z60
ワッチョイおもろいな
0238デフォルトの名無しさん (スップ Sdc8-t1qj)2016/08/29(月) 19:17:53.06ID:EoJ4HrxVd
ワッチョイワッチョイ
0239デフォルトの名無しさん (スプッッ Sdc8-t1qj)2016/08/29(月) 19:18:28.76ID:Ygc5GEa7d
文字列を変数名にする方法ないかね
0240デフォルトの名無しさん (ワッチョイ 34cb-t1qj)2016/08/29(月) 19:49:03.32ID:iTXMu3d10
>>229
上一択だろ
下はソースを読んでもらわないと動作が把握できない点がクソ
ドキュメント書いてみれば異質さに気づく

コンストラクタの引数に設定されたファイルを読み込む

とか、いやそれなんだよ
そもそも今設定されてるファイルパスなんだよ
ソースの行数が多くなってメソッドもたくさん増えると
ソースを上から下まで読んでみないと現在filepathにはいってるパスがわからない
可読性わるいんぬ
0241デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/29(月) 20:26:13.16ID:RwSm4WeTM
>>240
業務用アプリケーションとかだと頻繁に使うよ
読み込んだデータは欲しいけど具体的なパスは知りたくない場合
というかパスどころかそもそもそれがファイルかどうかも知りたくない
データベースかもしれないしWebAPIかもしれないけどデータをとってくるということだけ知っていて具体的なデータソースは煩わしいから考えたくない
そういう時は下のパターンを使う必要がある
上のパターンはそれがファイルである事と物理的なパスを知っていないと使えない
0242デフォルトの名無しさん (スプッッ Sdc8-t1qj)2016/08/29(月) 20:37:54.26ID:v+VBJ2wid
あとの事考えたら、分割して下かなぁ。
ストリーム食わすとか。
とりあえず抽象型で「データアクセス」だけ宣言して、実装は別けると思う。
0243デフォルトの名無しさん (ワッチョイ 7ddc-mxSp)2016/08/29(月) 20:41:48.75ID:HSXk2xhn0
>>241
StreamやIEnumerable<>渡すならわかるが、
>>240の下だと結局ファイルパスに依存してるだろ
0244デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/29(月) 20:53:22.10ID:p/LyuZWra
要件次第でしょ。

なんか訳の分からんこと言ってる人がいるけど、質問者(>>229)の2つのコードの違いは
データを読み出すクラスがデータのソースの情報を内部状態として持つかどうかでしょ。

まあ、パスを状態として持つとか普通はあんまりないよね。

設定ファイルなんか読む時に、パスが指定されないバージョンのメソッドが呼ばれた場合は
デフォルトのパスのファイルを読み出す、みたいなのはあると思うけど。
0245デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/29(月) 20:54:25.43ID:r/JXef9/M
>>243
最終的には物理パスに依存するけどAを使う側のクラスはそれを知らなくていい
0246デフォルトの名無しさん (スプッッ Sdc8-t1qj)2016/08/29(月) 21:04:47.49ID:v+VBJ2wid
>>243
見るのは「データアクセス」だけなんだから、データアクセスだけ晒せば、そいつが何に依存してようが、
使う側はデータアクセスだけに依存するんじゃない?
0247デフォルトの名無しさん (ワッチョイ 34cb-t1qj)2016/08/29(月) 21:29:30.67ID:iTXMu3d10
>>241
いや、やっぱねーよ
特殊ケースなんかいくつもないだろ
それはそんときとして別途くむとして
普段は自分の読み込むファイルパスの保持なんかやめろ

そもそも入力と出力が明示されていない処理を書く奴はだいっきらいだ
a.unko();
これでファイル読込してるの?
どうやってわかるの?
もうソース読ませるの前提じゃん
0248デフォルトの名無しさん (ワッチョイ b7c0-gQqU)2016/08/29(月) 21:32:58.57ID:vgWDJ4LL0
なんかstaticメソッド好きそうやね
0249デフォルトの名無しさん (ワッチョイ de3c-t1qj)2016/08/29(月) 21:42:51.97ID:IVf1OSSE0
>>245-246
インスタンスは誰が生成するんだよ...
0250デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/29(月) 21:43:18.04ID:p/LyuZWra
と言うより、質問者には悪いけど>>229はダメな初心者が
引数使わずにフィールドでデータを渡そうとする問題臭い。
0251デフォルトの名無しさん (ワッチョイ 7999-FJIZ)2016/08/29(月) 22:01:58.17ID:shRUR2oh0
Aの役務が判明しないことには何とも言えんだろ
FileStreamクラスならファイル名を保持しててもそれ程おかしくはない
初心者的なGodクラスだったら略

例外enumの話といい質問するのが下手くそだな
わざと急所に言及するのを避けてるようにすら見える
0252デフォルトの名無しさん (ワッチョイ 2dd6-dmM4)2016/08/29(月) 22:02:25.51ID:XJUgYycF0
毎度々々質問内容から離れて議論するよね
はっきり言って邪魔だから余所でやってくれよ
0253デフォルトの名無しさん (スプッッ Sdc8-t1qj)2016/08/29(月) 22:06:06.10ID:v+VBJ2wid
>>249
好きなやつがインスタンス起こせば良くない?
それすら使う側には感知しなくて良い事だと思うけど。

入力と出力が明示されてないとかナンセンスじゃない?
ポリモーフィズムの欠片も無いじゃん。
0254デフォルトの名無しさん (ワッチョイ ddcb-t1qj)2016/08/29(月) 22:47:13.84ID:hdD+Q5Ck0
>>253
入力と出力がわかるソースとわからないソースとどっちがいいの?
0255デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/29(月) 23:20:12.78ID:wLwWuZngM
>>247
実装側のソースを読ませる前提じゃなくてむしろ実装側のソースなんてどうでもいいよってスタンス
パスをメソッド引数で渡す場合相手のクラスがファイルアクセスクラスでありファイルが何処にあってといった細かい情報を意識しないとコードが書けない
コンストラクタで渡せばそんな細かい情報は気にしないでも利用者側のコードが書ける
利用者側はそれがファイルである事すら知らなくてもコードが書ける

>>249
リゾルバーかファクトリー
ルートでnewしてもいい

>>253
必要な入出力がわかればいい
それ以外は知らなくて済むなら知らない方がいい
全ての入出力を明示しなければならないとしたらあっという間に引数が泥団子になり管理不能になる
0256デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/29(月) 23:23:24.31ID:wLwWuZngM
もちろん>>236でも書いたように詳細まで入り込んで実装側のコードを書くとなった時はメソッドに引数を渡す形式の方が扱いやすい
0257デフォルトの名無しさん (ワッチョイ ddcb-t1qj)2016/08/29(月) 23:27:16.43ID:hdD+Q5Ck0
>>255
は?
いや、バグってる処理明らかにお前んとこなんだけど?
見えないことにメリットすでにないよね?
0258デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/29(月) 23:34:58.10ID:wLwWuZngM
>>257
すまない
何を言いたいのかよくわからない
0259デフォルトの名無しさん (ワッチョイ ddcb-t1qj)2016/08/30(火) 01:22:01.52ID:I1jO9oPr0
>>258
だからぁ、隠して意味があるのって
あくまで俺がそのライブラリのユーザでソースの中身を絶対みない保証がある時だけだよな?
同じソースつついてチーム開発やってるときに隠すコードに意味なんかないよね?
としたときにさ、お前のコードって処理が終わったときに結果として何が変わったのか分かり難いどころか
全くわからない
入力は何でそれに対して出力は何なの?
これが把握できないとソースが追えない
組んだお前はわかるんかもしんないけど
テストもやりにくいっていうか出来ない
入力と出力が明示されていないから
0260デフォルトの名無しさん (ブーイモ MM25-qQHP)2016/08/30(火) 01:55:52.66ID:Pu1c7+TjM
>>259
・コンポーネントの疎結合と凝集性を維持するには実装詳細の隠蔽が常に不可欠でありメンテナであるかどうかは関係ない
・別チームの成果物の詳細を知らなければ自チームの開発ができないならばチームを分ける意味がない
・データ消費コンポーネントはデータの何が変わったのかを完全に知っているしデータアクセスコンポーネントは何が要求されて何を永続化するかを完全に知っている
ただしお互いの持つ知識を知る必要はなく契約のみを知っていれば良い
・もしもあるコンポーネントが別のコンポーネントの詳細を知らなければメンテできないとしたら実装への依存が発生している密結合な設計という事になる
・データアクセスコンポーネントの入力はなく出力はデータ消費コンポーネントの処理可能なデータであるという契約により明確である
・データ消費コンポーネントのソースを追うのにデータアクセスコンポーネントのソースを追う必要はない
逆も全く同様にソースを追う必要がない
・ファイルシステムに依存するうえにデータ消費コンポーネントとデータアクセスコンポーネントが密結合した設計の方が遥かにテストしにくい
0261デフォルトの名無しさん (アウアウ Sa47-1rH5)2016/08/30(火) 02:26:30.97ID:BDB9i/HHa
何か訳のわからんこと言い合ってるけど、上にも書いたけどあくまでケースバイケースとはいえ、
データのソースをオブジェクトの状態として保持しなきゃならない場合なんてむしろレアケースだよw

これも繰り返しだけど、質問者は恐らく、ダメな初心者にありがちな
「引数を使わずにフィールドでデータを渡そうとする病気」の一種にかかってるだけw
0262デフォルトの名無しさん (ワッチョイ 750c-dmM4)2016/08/30(火) 03:09:17.81ID:NRLFxuy60
.NET のクラスだと
StreamReader はコンストラクタで渡すタイプだね
メソッドで渡すタイプはなんだろ?
0263デフォルトの名無しさん (ワッチョイ 753a-t1qj)2016/08/30(火) 04:04:48.87ID:DZ7Cy/vX0
System.IO.File.ReadLines(string) とか?
static なので、今回の例示とはちょい違うかもしれないけど。
0264デフォルトの名無しさん (ワッチョイ 7dc9-qQHP)2016/08/30(火) 05:59:56.55ID:4ZBC1DOb0
>>263
それはコンストラクタで渡してるのと変わらない気がする
0265デフォルトの名無しさん (スップ Sdc8-t1qj)2016/08/30(火) 06:12:16.45ID:Is5DsxGEd
dynamic json = jsonConvert.DeseriarizeObject<dynamic>(jsonString)

で受けたjson形式の中から任意の配列を取り出す方法ない?
json.netで出来ればやりたいんだが俺にはできなかった
dynamicJsonなどでもできるならその手解きしてほしいどうやって入れるのかさっぱりわからん

http://stackoverflow.com/questions/30804299/querying-json-with-jsonpath-or-selecttokens-with-json-net-in-c-sharp
この辺を参考にしています
id== 99176901と指定したら

"video": { "local_recording_device":
{ "codecs": null },
"preferred_string": "___PREFERRED___", "streams":
{ "99176901":
{ "id": "99176901",
"name": "PTZ Camera",
省略
"y": 737, "window_id": "197302", "camera_id": null
}
が返ってくるような処理
0266デフォルトの名無しさん (スップ Sdc8-t1qj)2016/08/30(火) 06:29:25.55ID:Is5DsxGEd
こっちのが見やすいかも
http://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm
ここも参考にして一つの要素は取ることはできたんだけども

item配列の中のタイトルで一致させて
一致した以下の中身を取りたい
title == Json.NET 1.3 + New license + Now on CodePlex みたいに処理させたい

{ 'title': 'Json.NET 1.3 + New license + Now on CodePlex',
'description': 'Annoucing the release of Json.NET 1.3, the MIT license and the source on CodePlex',
'link': 'http://james.newtonking.com/projects/json-net.aspx',
'categories': [ 'Json.NET', 13 'CodePlex' ] }
0267デフォルトの名無しさん (ワッチョイ 7ddc-t1qj)2016/08/30(火) 06:44:08.93ID:vcGs2dWd0
JSONPath使えば
0268デフォルトの名無しさん (ワッチョイ 1e7b-FJIZ)2016/08/30(火) 06:50:17.14ID:9vXZ0KL70
ありません
次の方
0269デフォルトの名無しさん (スップ Sdc8-t1qj)2016/08/30(火) 06:54:25.29ID:Is5DsxGEd
>>267
jsonpathってjson.NETの機能?
調べても英語サイトしか出てこんくて読めんかった
0270デフォルトの名無しさん (ワッチョイ 7ddc-mxSp)2016/08/30(火) 06:58:22.58ID:vcGs2dWd0
>>269
http://www.newtonsoft.com/json/help/html/QueryJsonSelectTokenJsonPath.htm
仕様はググればいくらでも出てくる
英語は必須だから諦めて読め
0271デフォルトの名無しさん (スップ Sdb8-t1qj)2016/08/30(火) 07:17:13.44ID:Dvd/HI/Id
>>270
ふえええ…
"$.Manufacturers[?(@.Name == 'Acme Co')]"のNameとかを変数にできんのかねこれ
C#色々と便利だけども使いこなせてない俺からすると難解すぎる
0272デフォルトの名無しさん (ワッチョイ 7ddc-mxSp)2016/08/30(火) 07:30:13.27ID:vcGs2dWd0
>>271
普通に $”$.Manufacturers[?(@.Name == ‘{変数名}’)]” (VS2015でないならString.Format)でいいでしょ
インジェクション脆弱性になる恐れがあるからWebから受け取った値を使って結果をWebに返すようなアプリならエスケープが必要
0273デフォルトの名無しさん (ワッチョイ ddcb-t1qj)2016/08/30(火) 07:34:30.37ID:I1jO9oPr0
>>260
その思想なら入力も出力もないメソッド呼び出させるぐらいなら完全にバックグラウンドで動けよ
newした時点でほかのメソッド呼び出させる自体が不具合
それができないなら内部の処理を呼び出し側が把握していないとお前のメソッドは呼べない
0274デフォルトの名無しさん (ワッチョイ b7c0-gQqU)2016/08/30(火) 10:20:54.70ID:+0POpDn70
>>262
.netのReader/Writer系はコンストラクタでファイルパスやStream渡すからそれが当たり前だと思ってた
スレの先生方はこの手のソースをどう書いているのか一度見てみたいところ
0275デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/30(火) 10:31:45.95ID:bAuY2Feoa
>>274
何か相変わらず訳わからんこと言ってるけど、それらがコンストラクタでストリームを取るのは
生きている間それを使いまわすつまり保持している必要があるからだw

何度も言ってるように、データソースのパスを保持する必要があるかどうかはケースバイケースだが、
普通はそんな必要はない。
0276デフォルトの名無しさん (ワッチョイ 753a-t1qj)2016/08/30(火) 11:03:22.19ID:DZ7Cy/vX0
例示も無しに『普通は』とか言い切っちゃうのは残念やね。
自分でコードを書く場合は、ってことかな?
0277デフォルトの名無しさん (ワッチョイ 7a23-gQqU)2016/08/30(火) 11:33:59.30ID:XXcHCJl60
抽象化は美しいけど大して役に立たないんだよな
0278デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/30(火) 11:45:15.42ID:bAuY2Feoa
>>276
何か頭悪そうだけど、そもそも質問者が「どちらがいいか」と聞いてる時点で、
答えは出てる。意味分かる?

少なくとも質問者の要件を満たすうえでパスを保持しておく必要はないってことだ。
0279デフォルトの名無しさん (オイコラミネオ MM34-t1qj)2016/08/30(火) 12:09:36.71ID:fVgKPSWmM
>>277
それはシステムの組み方によるな。
0280デフォルトの名無しさん (アウアウ Sa01-hMGK)2016/08/30(火) 13:19:43.33ID:Kix2dOMra
実務レベルで
そういうクラス分けについての判断は
やり始める時にある程度決めるのか
やってる途中で帰るのか
気になる
どっちもなんだろうけど
0281デフォルトの名無しさん (ワッチョイ 753a-t1qj)2016/08/30(火) 13:21:38.04ID:DZ7Cy/vX0
>>278
>>229 のことなら、何回か同じパスを使うか、そうでないかは明示してないな。

あと、自分はFile.ReadLines()みたいなパターンを認めてるよ?
0282デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/30(火) 13:42:31.90ID:bAuY2Feoa
>>281
だから、同じファイルを少しずつ読む必要があるとかランダムアクセスする必要があるなら、
>>229の最初のコードは最初から選択肢にならないよね。

もちろんやってできないことはないけど普通はしないよね。
もちろん質問者が普通じゃない可能性もあるわけだけど、その可能性は無視すれば
質問者の要件は自ずとわかるでしょ。
0283デフォルトの名無しさん (ワッチョイ 7cd4-hifv)2016/08/30(火) 14:34:52.62ID:/OGdet/T0
受けるわけじゃないけど試験 70-483Programming in C#の試験項目を見てたんだけどさ
https://www.microsoft.com/ja-jp/learning/exam-70-483.aspx
項目を見ると売れ筋の入門書って試験範囲の2割ぐらいしかカバーしてないのね
これみんな分かるもんなの?
0284デフォルトの名無しさん (ワッチョイ 79d9-FJIZ)2016/08/30(火) 17:16:57.96ID:qsOxDjRb0
>>271
ところでお前の息子二人が書き込んだ質問で荒れてんだけどどう思う?
お前っていつもそういう態度取ってんの?
0285デフォルトの名無しさん (ワッチョイ 79d9-FJIZ)2016/08/30(火) 17:18:44.03ID:qsOxDjRb0
そういう態度ってのは、質問に対してリアクションが帰っているのにスルーして違う質問を始めるって舐めた態度のことな
せめて質問を取り下げろ、カス
0286デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/30(火) 17:19:49.06ID:bAuY2Feoa
変なの来たなw
0287デフォルトの名無しさん (ワッチョイ 7cd4-hifv)2016/08/30(火) 18:29:06.24ID:/OGdet/T0
高卒フリーターだらけの世の中になってから、にちゃんは統合失調症だらけだよ
こんなの驚くことじゃありません
0288デフォルトの名無しさん (ワッチョイ 7999-4yR4)2016/08/30(火) 18:50:14.16ID:34wg0DNp0
スップ Sdc8-t1qj
0289デフォルトの名無しさん (スプッッ Sdc8-t1qj)2016/08/30(火) 19:38:27.94ID:h7mqDNBAd
>>272
サンクスありがとう
一応予定のは取れたよ
0290デフォルトの名無しさん (ワッチョイ 7939-4yR4)2016/08/30(火) 19:43:53.59ID:q9MYe/9f0
質問してたのはスプッ Sdc8-t1qjだろ
なりすましは止めとけ
0291デフォルトの名無しさん (アウアウ Sa01-FiSL)2016/08/30(火) 20:22:52.29ID:tVyn06Qka
つーかさー
C#の入門書でまともな本なくね?
マジでブチ切れそう
日本語不自由なの多すぎ
0292デフォルトの名無しさん (ワッチョイ 7c7b-aGiZ)2016/08/30(火) 20:29:23.95ID:KZWXOdr20
プログラミング言語なんて習うより慣れよ
手段であって目的ではないんだよ
0293デフォルトの名無しさん (ワッチョイ 7141-FiSL)2016/08/30(火) 20:35:25.17ID:n1CqpYHX0
自分なりに調べてなんとか慣れつつあるとはいえ
ちゃんとした書籍を持ってたいなと思ってるんだけど
じゃあこのまま突っ走るわい
0294デフォルトの名無しさん (ワッチョイ ddcb-t1qj)2016/08/30(火) 21:02:55.93ID:I1jO9oPr0
>>292
言語のマイナー機能をあえて使う奴って設計ヘタクソだよな
0295デフォルトの名無しさん (ワッチョイ 753a-t1qj)2016/08/30(火) 21:21:28.20ID:DZ7Cy/vX0
implicitとかさぞかし意味が有るのだろうと思って書いてみたのを思い出す……
0296デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)2016/08/30(火) 21:36:26.37ID:EHChjX9a0
>>294
初心者のスレだし、そういうのが趣味の人もいるかもしれないw
コード書く前に手法であれこれ悩んでいるの見るとイラッとするけど
0297デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/30(火) 21:53:29.11ID:Q9l6tJm0a
>>295
暗黙変換は普通に使いまくるよw
0298デフォルトの名無しさん (ワッチョイ 2dd6-dmM4)2016/08/30(火) 22:05:54.75ID:FkhIllLo0
変態的なライブラリを作る時にはお世話になる
0299デフォルトの名無しさん (ワッチョイ 753a-t1qj)2016/08/30(火) 22:42:29.99ID:DZ7Cy/vX0
>>298
常用しない機能をたまに書くと楽しいよね
0300デフォルトの名無しさん (ワッチョイ 7679-t1qj)2016/08/31(水) 10:50:08.29ID:EN4ZQTF90
>>291
C#自体は最初は覚える事が多いけどそんなに難しい言語じゃない
C#の入門書にまともなものがないと書いているけどそれはお前がまだ入門書も読めない位知識が無いってこと
まずどっかで軽くオブジェクト指向勉強してこい
話しはそれからだ
0301デフォルトの名無しさん (ワッチョイ 7cd4-oLrM)2016/08/31(水) 11:40:54.21ID:x8Mu4zVi0
インターフェイスについて教えてください
インターフェイスはよくインスタンス化できないと説明されていますが
IEnumerable<string> myString = new{
0302デフォルトの名無しさん (ワッチョイ 7cd4-oLrM)2016/08/31(水) 11:44:31.17ID:x8Mu4zVi0
ごめんなさい、サニタイジングされているのか途中で書き込みが切られてしまいました

インターフェイスはよくインスタンス化できないと説明されていますが
IEnumerable myString = new{(省略しないと書き込めない・・・・!?)
このような宣言を見ます
あたかもインターフェイスをインスタンス化しているかのように見えてしまいますが、一体どういうことが起きているのか教えていただけないでしょうか
よろしくお願いします
0303デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/31(水) 11:52:41.19ID:97WvllZya
>>302
そのレベルならこんなところで質問するより真面目に入門書でも読んだ方がいいと思うw
本じゃなくてもC#のチュートリアルなんてweb上にもいくらでもあるよね
0304デフォルトの名無しさん (ワッチョイ 7cd4-oLrM)2016/08/31(水) 12:06:50.43ID:x8Mu4zVi0
本を読んでいてよくわからないんです
よろしくお願いします
0305デフォルトの名無しさん (ワッチョイ 3d94-12yH)2016/08/31(水) 12:34:47.53ID:lVEp965D0
そのインターフェースを持ったクラスをインスタンス化してる
0306デフォルトの名無しさん (ワッチョイ 725b-Ptq2)2016/08/31(水) 12:51:18.96ID:sHLzsEsl0
実態を抽象的(インターフェース)に扱っている。

インターフェースは実装をもたないが、
実装(オブジェクト)はインターフェースを持つことができる。

結局は、インターフェースを介して、実態を扱っている。
0307デフォルトの名無しさん (ワッチョイ 0448-40Y4)2016/08/31(水) 13:17:05.93ID:/t7yyFm+0
IEnumerableはすごく良く使うのでMSDNを熟読すべし
0308デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/31(水) 13:58:18.12ID:97WvllZya
それで通じるならこんな質問はしないと思うよw
0309デフォルトの名無しさん (JP 0Hcd-MmRS)2016/08/31(水) 14:29:09.86ID:mqymnS7ZH
複雑すぎる実体に対して最小限の情報(の窓口)を求めている

タクシーに乗る時にどこの会社くらいは気にするけど
運転手が結婚しているかとか余分な情報はいらない
0310デフォルトの名無しさん (ワッチョイ 68ee-Knxq)2016/08/31(水) 14:58:51.05ID:6xfbGy8w0
クラスとメソッドってなんですか?
0311デフォルトの名無しさん (シャチーク 0C34-RDkh)2016/08/31(水) 19:00:04.92ID:NdFTvm0OC
string[] input;
string[] Name;
〜〜

Name = new input;

やりたいことは、inputの値渡しなのですが、こういうことはできないの〜〜?
0312デフォルトの名無しさん (ワッチョイ b77b-Ne3O)2016/08/31(水) 19:23:40.95ID:TqtXovwc0
配列をコピーしたいってこと?
ならCloneメソッドとか シャローコピーだけど
0313デフォルトの名無しさん (シャチーク 0C34-RDkh)2016/08/31(水) 19:38:21.91ID:NdFTvm0OC
>>312 ありがとうございます!
0314デフォルトの名無しさん (アウアウ Sa01-FiSL)2016/08/31(水) 20:09:09.62ID:HmEUyXpka
普通にリモコンでいいんじゃないの?
電化製品をリモコン使って動かせるけど
内部の電圧だったりチップを直接は動かせないわけで
限定された操作を使用者に提示するというか
0315デフォルトの名無しさん (アウアウ Sa45-1rH5)2016/08/31(水) 20:16:51.60ID:97WvllZya
>>314
それは普通隠蔽とかカプセル化とかって言うんだよね。
普通はそれをインターフェイスが提供する機能とは言わないよね。
0316デフォルトの名無しさん (ドコグロ MM1c-Ptq2)2016/08/31(水) 20:24:53.36ID:F//NfMCdM
>>312
シャローコピーを使う場面ってどこですか?
変数が同じ参照持ってるなら、同じ実態扱うのとほぼ変わらないような。
0317デフォルトの名無しさん (ブーイモ MMb8-qQHP)2016/08/31(水) 22:41:12.43ID:4jzGw3cJM
>>316
ディープコピーを実装する時とか
少しだけ変更した新しい値オブジェクトが欲しい時とか
並行処理の排他処理とか
0318デフォルトの名無しさん (ワッチョイ f3dc-OoDU)2016/09/01(木) 00:05:55.99ID:Xz8sejsg0
string[]ならシャローコピーでいいだろ
0319デフォルトの名無しさん (ワッチョイ 777b-UYCy)2016/09/01(木) 00:25:50.14ID:nGqVI4Wr0
基本的に、C/C++以外の言語は、参照のコピー(シャローコピー)になる

それでは困る場合だけ、Cloneやディープコピーを考えればよい

ディープコピーでは、オブジェクト内にオブジェクトがあって、
その中にもオブジェクトがあって、再帰的に何階層まで、ディープコピーするかも考える
0320デフォルトの名無しさん (ササクッテロ Sp8f-yYxc)2016/09/01(木) 06:32:14.88ID:50/1x8Mup
system.timers.timer
について質問です
system.timers.timerを使って一定時間後にダイアログを表示するプログラムを作りました
しかしダイアログが表示されるのは一定時間+10〜20秒です
ちゃんと一定時間後にダイアログを表示させたいのですどうすればいいでしょうか?
0321デフォルトの名無しさん (ワッチョイ 931e-RETc)2016/09/01(木) 07:41:52.97ID:lrlraAVg0
最小限の再現コード出さずになぞなぞするのやめてくれぇ?
0322デフォルトの名無しさん (ササクッテロ Sp8f-yYxc)2016/09/01(木) 08:01:06.85ID:50/1x8Mup
>>321
他に同様な症状に陥った方はおりませんかね?
もしくは僕だけの問題なのでしょうか?
0323デフォルトの名無しさん (ドコグロ MM1f-TXi9)2016/09/01(木) 08:22:02.35ID:rDaq2EciM
>>322
私もよくダイアログが出ずに、プログラムが落ちてしまいます。

心当たりあれば教えて欲しいです。
0324デフォルトの名無しさん (ササクッテロ Sp8f-iG4w)2016/09/01(木) 08:27:09.11ID:Uci5d0kTp
あれなんなんだろうな
0325デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/01(木) 09:49:34.21ID:tRE5XnQ90
思った通りに動くのではなく
書いた通りに動くって話でせう

タイマーの件は何となく想像がつくが
俺もなぞなぞはしたくない
0326デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/01(木) 16:20:07.57ID:L3a4bYLCa
文字列にサロゲートペアが含まれる場合でも正確な文字数を返すメソッドって
やっぱりBCLには存在しない?
0327デフォルトの名無しさん (ワッチョイ 9319-Z7wn)2016/09/01(木) 16:22:19.24ID:aazltn1Z0
StringInfo
0328デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/01(木) 16:50:51.41ID:L3a4bYLCa
>>327
あーなるほど、こんなのあったのか。

しかし何だか存在意義のよくわからんクラスだな。
何でStringに実装されてないんだろう。
0329デフォルトの名無しさん (ササクッテロ Sp8f-yYxc)2016/09/01(木) 17:53:52.76ID:Yvhf9dDVp
タイマーの剣ですけど
ソース出すんで待っててください!
0330デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/01(木) 18:01:48.26ID:L3a4bYLCa
今脳内で剣の舞が再生された件
0331デフォルトの名無しさん (ワッチョイ 8fbd-vSVO)2016/09/01(木) 18:33:18.37ID:pyrbLu4p0
http://ideone.com/ahJjSD
0332デフォルトの名無しさん (ワッチョイ 931e-RETc)2016/09/01(木) 19:57:36.99ID:lrlraAVg0
>>331
TimerのIntervalの単位はミリ秒
10秒後なら
this.Interval=10000
を設定
Function内のif(count == 600)はいらない

>>331でIntervalに設定している1000.0/60はおよそ16.66…ミリ秒だがWindowsはそこまで正確に時間を刻めない
こちらの環境だと
30ミリ秒±2ミリ秒くらいの間隔でFunctionが実行された
600回繰り返す間に誤差が蓄積されてズレが生じている
0333デフォルトの名無しさん (ワッチョイ 037b-wh/5)2016/09/02(金) 16:48:49.83ID:DQjRhVvF0
表示させたいデータのレコードを絞り込んでdataGridViewに表示させるには、BindingSourceのFilterプロパティを使うとできるみたいですが、
このサイト https://www.ipentec.com/document/document.aspx?page=csharp-database-bindingsource-filter
「BindingSourceコンポーネントについてはこちらの記事を参照してください。」へ進み、
「DataSetを作成します。手順はこちらの記事を参照してください。」にある「データ接続の追加手順はこちらの記事を参照してください。」が404で見るとこができなくて設定のやり方がわかりません。
データ接続の追加手順があるサイトか手順を教えてくれませんか?
0334デフォルトの名無しさん (ワッチョイ 931e-RETc)2016/09/02(金) 20:47:16.80ID:UQkwlVyK0
>>333
リンク切れのページはこれかな?
https://www.ipentec.com/document/document.aspx?page=visual-studio-2012-add-data-connection-in-server-explorer
0335デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 09:43:53.98ID:qpsImhv/d
コーディングのマイルールとかあるやつおる?
0336デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/03(土) 10:00:54.78ID:+PRxNCnW0
その話C#に何の関係が
spmodeだから警戒しとくよ
0337デフォルトの名無しさん (ワッチョイ 0351-10NS)2016/09/03(土) 10:01:55.70ID:vFj9bHn70
改行可能なtextboxでの入力時にCtrl+Enterを押すとボタンが押されたときと同じ挙動をするようにしました
ボタンを押すとtextbox内の文字列は消えるのですがボタンのイベントが終わった後textbox内に改行だけが残ってしまいます
これを回避する方法はないのでしょうか?
0338デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 10:05:25.65ID:FcGf2P40d
>>336
よくよく考えたら関係なかったわすまんな
コードレビューする度にしてくれる人の色合いが違いすぎて困ってて
何かしら注意点統一しようかと思ってた
0339デフォルトの名無しさん (ワッチョイ 33d6-IPsc)2016/09/03(土) 10:14:00.19ID:T8XOHxVQ0
>>337
ソースも何もないのにどう助言しろと?
0340デフォルトの名無しさん (ワッチョイ 775e-IPsc)2016/09/03(土) 10:37:28.92ID:YP4M8m0R0
>>337
単純にEnterが入力されているだけだろ?
イベントを入れたときに元の機能(入力)が無視される場合とそうでない場合があるみたいだから
イベントが呼ばれた後に本来の機能のEnter入力がされている
試してないけど通常のキー入力イベントで反応させる以上回避できない気がする
0341デフォルトの名無しさん (ワッチョイ 7323-wh/5)2016/09/03(土) 10:43:14.24ID:plPbA0im0
>>337
BeginInvoke使ったらどう?
0342デフォルトの名無しさん (ワッチョイ 0351-wh/5)2016/09/03(土) 10:46:39.70ID:vFj9bHn70
>>339
すみません最小構成にしました
http://ideone.com/YPB1Fv

>>340
Enterの捕捉はkeyPressイベントでおこなってみているのですがこのままではtextboxに改行が入れられません
また、このように書いても改行が入ることは防げませんでした
0343デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/03(土) 10:50:44.58ID:+PRxNCnW0
AcceptReturn(だったかな?)でお茶を濁すとか
0344デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/03(土) 10:56:04.10ID:+PRxNCnW0
Control.WndProcでフックしても行けるかな
0345デフォルトの名無しさん (ワッチョイ 0351-wh/5)2016/09/03(土) 10:56:06.08ID:vFj9bHn70
>>341
BeginInvoleを使う場合どこに入れればいいのでしょう?

>>343
このようにしても改行は挿入されました
http://ideone.com/CInXQo
0346デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/03(土) 11:06:00.35ID:+PRxNCnW0
いや、違うか
TextBoxにEnterが入力されるのはWM_CHARを処理しているからで
WM_CHARはTranslateMessageが送出している
これを止める(GetMessageの後TranslateMessageを呼ばない)必要があるが、これを止める手段はWinFormsに存在しない

>>340と同じく無理じゃねって結論
0347デフォルトの名無しさん (ワッチョイ 0351-wh/5)2016/09/03(土) 11:10:03.28ID:vFj9bHn70
>>346
無理でしたか
ありがとうございます

余談ですがCtrl+Enterでは改行が入力されるもののAlt+EnterやShift+Enterでは入力されませんでした
0348デフォルトの名無しさん (ワッチョイ 775e-IPsc)2016/09/03(土) 11:17:23.85ID:YP4M8m0R0
>>342
発想を変えてそのミニマムコードにあわせて機能を一応再現はできるw
http://ideone.com/phWpFp
でもスマートじゃないし、別の部分と衝突する可能性もある(結局改行が残ったり)から使えないとは思うが
0349>>348 (ワッチョイ 775e-IPsc)2016/09/03(土) 11:27:16.81ID:YP4M8m0R0
ごめんボタン押した後入力できなくなってたw
http://ideone.com/MSHEoM
こっちで
0350デフォルトの名無しさん (ワッチョイ 33d6-IPsc)2016/09/03(土) 11:41:22.74ID:T8XOHxVQ0
http://ideone.com/QRQWOC
適当だけど作ってみた
0351デフォルトの名無しさん (ワッチョイ af17-tB3X)2016/09/03(土) 11:52:39.55ID:dB9eMxpA0
textBox1_KeyPressで潰すだけでいい
private void textBox1_KeyPress( object sender , KeyPressEventArgs e )
{
if ( e.KeyChar == '\n' && Control.ModifierKeys == Keys.Control )
{
button1_Click( sender , null );
e.Handled = true;
}
}
0352デフォルトの名無しさん (ワッチョイ 0351-wh/5)2016/09/03(土) 12:00:44.84ID:vFj9bHn70
>>349->>351
すべて試してみてどれでも解決できました
状況によって使い分けたいと思います
ありがとうございます
0353デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/03(土) 15:07:55.98ID:GFDCUR4+0
C#始めたばかり。
ちょっと悪いけど、暇すぎる人居たらこの記述書いてくれない?
それをもとに勉強するです。

ファイル群{
 引数 = ディレクトリ位置;
 配列 = 引数の位置にあるファイル全部;
 戻し(配列);
}

標準出力 {
 文字列の配列 = 引数;
 出力( 引数の配列を、\nで結合した物 );
}

main{
 ファイルパス集 = ファイル群(引数);
 標準出力(ファイルパス集);
 明示的にプロセス死んでくださいexit;
}


ちなみにメソッドや関数の書きかたも知らん。
なにもかも全部読むんで、コンパイルできるように書いてくださいな。
0354デフォルトの名無しさん (ワッチョイ 0bc0-wh/5)2016/09/03(土) 15:10:49.96ID:lAR6fNJc0
宿題他人にやらせるとかさすがやね
0355デフォルトの名無しさん (ワッチョイ 775e-IPsc)2016/09/03(土) 15:13:39.26ID:YP4M8m0R0
>>350
こっちの発想しかなかったけど
>>351
これが一番良さそう
>>353
一つ一つ調べるか
C#,C#の宿題片付けます。
http://echo.2ch.net/test/read.cgi/tech/1197620454/
へどうぞ
0356デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/03(土) 15:15:15.21ID:GFDCUR4+0
ついでと言ってはなんだが、一般的なプログラムデザインも教えてくれると超助かる。(ファイルの分割単位とか、関数群のまとめかたとかそんなの)
0357デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/03(土) 15:19:52.24ID:GFDCUR4+0
ではそちらにいきます
0358デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/03(土) 15:32:53.69ID:GFDCUR4+0
とりあえずメソッドの宣言は分かった。
mainもメソッドなの?どうゆう種類のオブジェクトのどうゆうメソッド?
関数というものはないの?

あと識別子に日本語で書いてみたら何も怒られることなく動作したんだけど、
問題は発生しないの?
0359デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/03(土) 15:42:18.03ID:GFDCUR4+0
スタティックな変数と言うのはないのだろうか

全部自分で調べるとあれから無駄に30分も経過してるぜ
0360デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 17:03:18.56ID:FcGf2P40d
>>359
一分で終わる
スタティックな変数用のクラス作る
0361デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/03(土) 17:26:35.67ID:HDnGX34na
スタティックな変数が何なのかよく分からないけど、VBのアレのことを言ってるなら一筋縄じゃいかないね
0362デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 18:03:50.74ID:FcGf2P40d
jsonってもしかしてなんだが配列は数字かクラスしか受け付けない?
0363デフォルトの名無しさん (アウアウ Sa0f-6goY)2016/09/03(土) 18:13:14.35ID:yrPVMfsIa
スタティックってカタカナで書くのやめて
0364デフォルトの名無しさん (ワッチョイ f3dc-RETc)2016/09/03(土) 18:17:48.70ID:NvN4PBVL0
>>362
JSONは単なるデータフォーマットだ
お前の言うJSONというのが何を指しているのか正確に書け
0365デフォルトの名無しさん (ワッチョイ d748-R3iF)2016/09/03(土) 18:41:26.03ID:zijBnKSi0
性的な変数
0366デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 18:46:50.72ID:FcGf2P40d
>>364
違いをよく理解してない
形式のことがjsonというのかね

{
"json" : [
0x555,
11111
]
}

こんなのならOKなんだが
この数字のところを文字列にするとダメになる
判断基準はVS2015のデータ形式指定のはりつけでエラーになってる
0367デフォルトの名無しさん (ワッチョイ f3dc-RETc)2016/09/03(土) 18:54:55.72ID:NvN4PBVL0
>>366
JSONでググって適当に目を通せ
JSONっていうのはXMLやCSVに相当するもの
0368デフォルトの名無しさん (オッペケ Sr8f-RETc)2016/09/03(土) 18:56:38.66ID:6Br7/h+ar
答えられないから質問者を煙に巻いた上から目線の意味のないレスをするしか能がない
それが367
0369デフォルトの名無しさん (ワッチョイ 7323-wh/5)2016/09/03(土) 19:44:01.34ID:plPbA0im0
ホッケーのマスクをしてチェーンソー振り回す奴
0370デフォルトの名無しさん (ワッチョイ 17c9-10NS)2016/09/03(土) 19:48:35.54ID:y9cXT+t40
さすがに質問が意味不明でしょ
何をしたいのか、何をしてどんなエラーが出たのか全く分からない
0371デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/03(土) 20:07:38.42ID:+PRxNCnW0
だってspmodeだもの
いつもの質問が適当な彼でしょ
0372デフォルトの名無しさん (ワッチョイ 0338-k8l2)2016/09/03(土) 20:16:57.40ID:EbRISh520
C#とJSONに何の関係があるんや
VSの話ならVSスレで聞け
0373デフォルトの名無しさん (オッペケ Sr8f-RETc)2016/09/03(土) 20:30:48.76ID:Fd820eSXr
質問は至って明確
何をしたいのかも明確
どんなエラーが出たかは質問と関係ない
日本語が理解できないそれが370
0374デフォルトの名無しさん (ワッチョイ 0339-k8l2)2016/09/03(土) 20:40:49.86ID:JJ5tUh1G0
煽っても答えない
カニンガムの法則に従っても答えない
餅は餅屋でかってや
0375デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 21:39:07.77ID:FcGf2P40d
>>372
C#のJson.NETを利用してやってるからここかなと思った
0376デフォルトの名無しさん (ササクッテロ Sp8f-10NS)2016/09/03(土) 21:59:00.49ID:fJl2MMtjp
>>362
JavaScript Object Notation(=JSON)の書式はC#ではないのでスレ違い
JSONに入れられる値をざっくり挙げると、文字列、数値、true、false、null、オブジェクト、配列

書式はC#じゃないので自分で調べるか他所で聞け
↓はわりと便利
http://json2csharp.com
0377デフォルトの名無しさん (ワッチョイ 0399-k8l2)2016/09/03(土) 22:06:22.19ID:28oZslrG0
>>375
Json.NETについて質問してるわけじゃないじゃん
JSONのフォーマットと、VSがエラーを起こしてる点が核心やろ
やっぱりC#関係ねーわ
0378デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/03(土) 22:17:35.80ID:GFDCUR4+0
今日の色々疑問だった部分が色々一通り解決した。統合環境の使いかた以外。
おまえらが情報の出し惜しみするからすげぇ時間が掛かったぜ。
予定では思いついた疑問をかたっぱしから書いたら5分以内にレス来る予定だったと言うか願望だったんだがな

で、聞きたいんだけどこれはスクリプトなの?
どうゆうつもりで勉強するかかなり変わってくるので教えてくれ
スクリプトならPerlとかPythonのテンションでやる。
プログラム言語ならCのノリでやる。
0379デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/03(土) 22:30:49.87ID:+PRxNCnW0
>>378
https://ja.m.wikipedia.org/wiki/C_Sharp
0380デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/03(土) 23:00:14.68ID:FcGf2P40d
>>376
ありがとう
とてもわかりやすいわ
配列型のstringがなぜエラーなのかを読んで解決してみる

>>377
たしかに
0381デフォルトの名無しさん (ワッチョイ 8fe1-RETc)2016/09/04(日) 01:45:20.93ID:dQFc65WQ0
>>380
ちなみに、Json.NETが一番有名だけど、他にもライブラリがあるから質問するときはライブラリの名前を明示したほうがいいよ
0382デフォルトの名無しさん (ワッチョイ 8fe1-RETc)2016/09/04(日) 01:47:46.88ID:dQFc65WQ0
>>378
基本的にスクリプト言語ではないな
経験者なら初歩的なことは聞くより本買うなりしていっきに身につけたほうが楽かと
0383デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/04(日) 02:59:55.86ID:J/FJHK0dd
>>381
上にも記載してる人が居るように俺の悩みはjson.NET以前にjsonの話だったわ
(VS2015に形式で張り付けてなんでエラーなの?って悩んでるレベルの)
あと原因も一応わかったよ
オブジェクトにしたかったら、下記の数字を""で挟む必要があっただけやったわ

{
"json" : [
0x555,
11111
]
}
0384デフォルトの名無しさん (ワッチョイ 037b-wh/5)2016/09/04(日) 03:15:02.22ID:Ck/keC5V0
>>334
探してくれてありがとうごいます
そのページ読みましたが、サーバーを使って管理するんですね。
おこずかい帳を作っていて、大規模じゃないのでオフラインで十分なんですよねぇ・・
サーバーを使わないでBindingSourceのFilterプロパティが扱えるサイト探してみたいと思います。
ありがとうございました。
0385デフォルトの名無しさん (ワッチョイ 0be6-mASB)2016/09/04(日) 06:49:04.34ID:5SDmlLW20
https://www.embarcadero.com/jp/products/delphi/downloads
現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能だよ
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
0386デフォルトの名無しさん (ワッチョイ 0be6-mASB)2016/09/04(日) 07:06:03.09ID:5SDmlLW20
>>385はDelphiのみでした
すいません、C++Builderはこっちです
https://www.embarcadero.com/jp/products/cbuilder/downloads
現在、C++Builderが無料でダウンロード可能です
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

DelphiとC++Buiderは別個にダウンロードが必要な模様
0387デフォルトの名無しさん (ワッチョイ 1351-wh/5)2016/09/04(日) 09:15:28.45ID:ND5rYxtb0
スレチだけどこれはナイスな情報。ありがとう。
0388デフォルトの名無しさん (ワッチョイ 335b-iG4w)2016/09/04(日) 09:27:08.26ID:wey0BvvO0
今からC#の勉強をしたいと思ってます。以下本の購入を考えてますがご意見お願いできますでしょうか
・作って覚えるVisual C# 2015 デスクトップアプリ入門
・独習C# 第3版
・C# ポケットリファレンス
0389デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/04(日) 09:39:18.42ID:H1SSXvzud
using(streamwriter sw=new streamwriter(path,.....))
sw.write(書き込み内容)

引数は一部省略してます。
.txtを開いて書き込むみたいな処理を仕様としてるんですが
メモ帳なりなんなりで既に開かれていたらアクセスができないようにしたいです
どうしたら良いのでしょうか…
集約例外に投げることが出来ればそれで問題ないのですが
0390デフォルトの名無しさん (ワッチョイ 0320-k8l2)2016/09/04(日) 10:34:55.49ID:hxeLo9OH0
openfilesコマンドをProcess.Startから実行して
該当するファイルが出力にあるか確認するのが手っ取り早い

内部的には
NtQuerySystemInformation
SystemHandleInformation
GetFinalPathNameByHandle
を使っているらしいので、自力でこれらを呼べば外部コマンド不要で実現可能かもしれない
(ただし、これらのAPIについての質問はWin32APIスレでやれよ)

集約例外とやらは知らない
それが大事な要素なら解説してくれ
0391デフォルトの名無しさん (ワッチョイ 0bc0-wh/5)2016/09/04(日) 10:38:50.28ID:ZZxJ/rt80
集約例外君にレスするなら安価つけてやれよ
ワッチョイでNGする意味ねえじゃん
0392デフォルトの名無しさん (ワッチョイ 777b-UYCy)2016/09/04(日) 12:20:21.99ID:C66L8/dk0
そもそも、他のプロセスが開いているファイルを、開けるのか?
共有ロックできるのは、双方のプロセスが、読み取り専用の場合だけだろ

例えば、TeraPadで修正中のJSファイルを保存しても、Edgeで開けない。
保存してファイルを閉じれば、Edgeで開ける
0393デフォルトの名無しさん (ワッチョイ e7eb-wh/5)2016/09/04(日) 13:14:28.42ID:YgDG3bQz0
>>388
あなたが他のプログラム言語をすでに習得しているなら、「C# ポケットリファレンス」
全く初めてなら、「独習c#」をやり、"いける!"と感じてある程度読んだら「作って覚える〜」を買う
0394デフォルトの名無しさん (ワッチョイ f7de-wh/5)2016/09/04(日) 13:27:59.68ID:46wwYnAY0
>>388
俺は勉強中の素人だけど・・・。

「作って覚えるVisual C# デスクトップアプリ入門」は、他の言語の経験がない初心者には良いと思う。
書いてあることに従って手を動かしていけば、簡単なGUIアプリをいくつか完成させることができた。
全くの初心者が文法の本だけを読むと「知識は得たけどどうやってアプリケーションを作るのかわからない」
ってなりかねないけど、この本ならアプリケーション作成の一通りの流れがわかる。

ただし「作って覚える〜」は、文法とかは最低限の解説しかない。
なので「独習C#」みたいな文法の本を、「作って覚える〜」の前かあとで勉強したほうが良いと思う。

「C# ポケットリファレンス」は買ったけどあまり読んでない。
文法の本で基礎的なことを勉強したあとは、ググって見つけた断片的な情報でも理解できることが多くなったし
Visual Studioのオンラインヘルプもあるので、それらで事足りた。
あって困ることはないけど、入門段階の人がこの本を持っていても役立つ機会は少ないかもしれない。
0395デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/04(日) 14:13:25.05ID:+MWVunUCd
>>390
その辺のAPIについて調べてみます

>>392
ワードとかエクセルは開けなく
メモ帳は関係なく開けるみたい
それでむしろ困ってる
0396デフォルトの名無しさん (ワッチョイ f3c9-10NS)2016/09/04(日) 14:25:32.78ID:fDfBjjCZ0
メモ帳はロックしないんだよね
0397デフォルトの名無しさん (ワッチョイ c7ff-/sqZ)2016/09/04(日) 14:26:32.68ID:NFfxFQpB0
自分が排他で開けばメモ帳でもひっかからない?
0398デフォルトの名無しさん (ワッチョイ c7ff-/sqZ)2016/09/04(日) 14:37:52.81ID:NFfxFQpB0
FileShare.None でメモ帳で開いてたらダメだったよ
0399デフォルトの名無しさん (ワッチョイ f77b-wh/5)2016/09/04(日) 16:48:42.62ID:SuCh+UCd0
>>385-386
これ30日だけ無料っややつだよね?
0400デフォルトの名無しさん (ワッチョイ 6f3c-RETc)2016/09/04(日) 17:35:56.52ID:xp6EP8jq0
>>399
> 右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
0401デフォルトの名無しさん (ワッチョイ 335b-iG4w)2016/09/04(日) 19:09:00.92ID:wey0BvvO0
>>393>>394
ありがとうございます
今日本屋に行ってみたら作って〜はあったので中身確認出来ました。予備知識がある程度あったので別の本が良さそうで見送りました
独習をネットで注文しました
文法の勉強が一通り終わってリファレンス本必要と感じたら購入したいと思います
秀和の逆引きとどっちがオススメでしょうか
0402デフォルトの名無しさん (ワッチョイ 8f90-wh/5)2016/09/04(日) 21:22:56.95ID:vP0Mcd/O0
C#でExcelを開いて値を入力しています。
そこで気になったのですが、 Value2 とサンプルコードではなっていますが
Valueでも普通に値の入力は出来ます。

Value と Value の違いは何なのでしょうか?


for (int i=1; i < 20; i++) {
Range rgn = ws1.Cells[i, 1];
rgn.Value2 = i;
}

参考にしたサイト
https://www.ipentec.com/document/document.aspx?page=csharp-save-excel-new-file-and-write
0403デフォルトの名無しさん (ワッチョイ 0b7b-T4ZI)2016/09/04(日) 21:39:19.51ID:jyxhfMV30
value value2
で検索検索ゥ!
0404デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/04(日) 21:41:46.59ID:gv6Up0S3a
>>402
http://echo.2ch.net/test/read.cgi/tech/1467142749/474
同じ人かな?
0405デフォルトの名無しさん (ワッチョイ 8f90-wh/5)2016/09/04(日) 21:42:38.91ID:vP0Mcd/O0
↑
わかった!
0406デフォルトの名無しさん (ワッチョイ 8f90-wh/5)2016/09/04(日) 21:58:31.41ID:vP0Mcd/O0
もう一つだけ質問があります。


Textbox1 と Textbox2 をFormの上に配置しました。
FormLoadイベントでそれぞれ

Txtbox1.text = "aaa";
Txtbox2.text = "bbb";

と値を設定したところ、なぜか画面が起動すると TextBox1の文字列が
選択状態になってしまっています。


Focusを当てる様なコードは書いていないのですが
何が原因なのでしょうか? テキストボックスの中の文字を選択状態にしたくありません。
0407デフォルトの名無しさん (ワッチョイ 8f90-wh/5)2016/09/04(日) 21:58:58.04ID:vP0Mcd/O0
>>404
マジで違います。
0408デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/04(日) 22:11:28.32ID:gv6Up0S3a
>>406
入力フォーカスを持った時全選択状態になるのはTextBoxの仕様でしょ。

その仕様を変えるのは普通は良くないと思うので、タブオーダーを変更して
起動時に別のコントロールがフォーカスを持つようにしたらどうだろう
0409デフォルトの名無しさん (ワッチョイ 33d6-IPsc)2016/09/04(日) 22:11:53.78ID:HNp7LJHt0
ぐぐれば10秒で見つかるけどどんな検索の仕方してるんだよ
http://www.atmarkit.co.jp/fdotnet/dotnettips/226winloadfocus/winloadfocus.html
0410デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/05(月) 00:29:44.94ID:1CMVulACd
あれ?昨日のペッパーって全ての店で297やったんか?
0411デフォルトの名無しさん (スプッッ Sd5f-RETc)2016/09/05(月) 00:30:15.57ID:1CMVulACd
すまん ミスった
0412デフォルトの名無しさん (ワッチョイ 8f90-wh/5)2016/09/05(月) 00:45:18.10ID:UJz/T9P90
>>408

btn_XXX.Focus();

にしましたが、やっぱりTextBoxの中に設定した文字列が選択状態になってます、、、気持ち悪いので何か良い方法はありませんか?
0413デフォルトの名無しさん (ワッチョイ 33d6-IPsc)2016/09/05(月) 01:14:39.18ID:f1PqJ2bb0
409のURLに記載されている内容を試してからレスしてね
0414デフォルトの名無しさん (ラクラッペ MM4f-PdOa)2016/09/05(月) 11:31:22.21ID:DJNBznkTM
 
キチガイの集まり・創価学会・公明党!

人殺しの殺人鬼が政治活動・創価学会・公明党!

池田大作・人殺しの殺人鬼・創価学会・公明党!

あやかりドチンピラの池田糞作・創価学会・公明党!
0415デフォルトの名無しさん (ササクッテロ Sp8f-10NS)2016/09/06(火) 09:32:27.04ID:zuNdDCHOp
スレチかもしれませんが
ホームネットワーク内のPCにメール送受信させるにはどうすればいいのでしょうか?
0416デフォルトの名無しさん (ワッチョイ f3dc-RETc)2016/09/06(火) 09:54:20.10ID:48j2+J3I0
それはリモート操作でということ?
WinRM使ってPowerShellスクリプトを実行させるのが楽じゃないかな
0417デフォルトの名無しさん (ササクッテロ Sp8f-10NS)2016/09/06(火) 10:02:40.08ID:zuNdDCHOp
>>416
説明不足でした
市販アプリでメール通知してくれる物がありまして、その通知をインターネット経由では無くホームネットワーク内で完結出来ないものかと思ったのですが…
0418デフォルトの名無しさん (ワッチョイ f3dc-RETc)2016/09/06(火) 10:43:55.56ID:48j2+J3I0
ローカルでメールサーバーを立てればできるけど、
構築や運用に非常に手間がかかるので素直にインターネット経由にした方がいい
そしてC#全く関係ないからスレチ
0419デフォルトの名無しさん (ワッチョイ f7d4-V3yE)2016/09/06(火) 14:17:43.23ID:exBFNrjj0
最近売れ筋の入門書にはyieldについて解説されていないようですが、これは廃れたのでしょうか?
0420デフォルトの名無しさん (ワッチョイ 6730-l4Vs)2016/09/06(火) 14:35:42.66ID:t1C08fjS0
具体的にどの入門書です?
0421デフォルトの名無しさん (オッペケ Sr8f-RETc)2016/09/06(火) 18:13:23.66ID:W4987S5sr
独学でc#やってるけど、他人が作ったコード組み合わせるだけでどんなアプリでも作れるね
あとはITリテラシー低い連中に高く売りつければいいだけ
楽すぎる
0422デフォルトの名無しさん (スププ Sd5f-JXyZ)2016/09/06(火) 18:20:39.68ID:ltEGP2sud
そのコードを見つけてくる検索力がすごい
0423デフォルトの名無しさん (ワッチョイ 17cb-RETc)2016/09/06(火) 23:37:15.30ID:Sfilc/xC0
>>421
俺の知らない(pcのダウンロード履歴にないでおk)エロ動画を自動でダウンロードするアプリを頼む
0424デフォルトの名無しさん (ワッチョイ 8f90-wh/5)2016/09/06(火) 23:56:35.73ID:FO29RTxa0
yeild とか現役で開発してた時にすら
使った事ない

構造体もだ
0425綴りw (ドコグロ MM9f-RETc)2016/09/07(水) 08:07:05.36ID:AUiAMendM
>>424
確かに俺もないわ
構造体の方はあるけど
0426デフォルトの名無しさん (オッペケ Sr8f-RETc)2016/09/07(水) 08:15:44.73ID:X+3Ie8TTr
>>423
なんかできそうな気するわ
金になるならやる
0427デフォルトの名無しさん (ワッチョイ c7ff-/sqZ)2016/09/07(水) 11:31:58.86ID:8SeVjemL0
yeildはUnityにいったら急に使うようになったw
0428デフォルトの名無しさん (ワッチョイ c7ff-/sqZ)2016/09/07(水) 11:32:29.22ID:8SeVjemL0
おっとコピペしたから綴りは無視で。。。
0429デフォルトの名無しさん (ワッチョイ 6bd4-V3yE)2016/09/07(水) 12:00:19.60ID:eVTUc00Y0
Unityの場合、言語仕様が謎でAwait/Async(C#5)が使えず、コルーチンを使わざるを得ない場面が多くてyield必須になってくるんだろうけどさあ・・・・
これに関連して思い出したんだけど、UnityのC#の言語仕様ってどこかに公開されてないのかな?
一説にはC#3相当とは言われているものの、ちょっと試してみた感じだとラムダ式でメソッドを記述(C#6)できたり、インデックス初期化子(C#6)が使えたりと謎だらけだ
0430デフォルトの名無しさん (ワッチョイ 133a-RETc)2016/09/07(水) 12:11:19.15ID:qSRr1oiT0
>>429
.NET Framework 3.5 相当で動けば、C#の記法は新しくても良いとか?
でも、謎な部分あるよね。
0431デフォルトの名無しさん (ドコグロ MMaf-TXi9)2016/09/07(水) 13:10:41.28ID:QfykF8DQM
>>429
シンタクックスシュガーなら内部的に構文に変換されるから使えるって話だろ。
0432デフォルトの名無しさん (オッペケ Sr8f-RETc)2016/09/07(水) 13:47:51.01ID:P9Zqjq7xr
awaitとかの非同期つかうとawaitの外の配列への格納が非同期に格納されてうまく処理できない
0433デフォルトの名無しさん (ワッチョイ c723-wh/5)2016/09/07(水) 14:06:02.75ID:Wz/3zuTl0
>>432
lock使ってもダメかな?
0434デフォルトの名無しさん (オッペケ Sr8f-RETc)2016/09/07(水) 16:54:21.54ID:P9Zqjq7xr
>>433
試してみる!
0435デフォルトの名無しさん (ワッチョイ eb7b-RETc)2016/09/07(水) 18:51:19.99ID:ZWT9hR9W0
visualstudioでコンパイルするビット数指定できると聞いたんだけど
これを外部ファイルとかで指定してビルドする方法ってないよね…?
ビット数指定のexeで指定したら、主のプログラムが指定されたビット数でビルドされるみたいな
0436デフォルトの名無しさん (ワッチョイ 775e-IPsc)2016/09/07(水) 18:54:41.93ID:G9ygDtLc0
>>435
x64かx86かAnyCPUとかって話ならVSのバージョンも明示したほうがいいと思うぞ
0437デフォルトの名無しさん (ワッチョイ eb7b-RETc)2016/09/07(水) 18:59:01.76ID:ZWT9hR9W0
>>436
まさにそれ
アドバイスありがと

VS2015
anyCPUってなんなんだろうな
今日はじめてこの機能知ったよ
ビット数指定なんて
0438デフォルトの名無しさん (ワッチョイ eb7b-RETc)2016/09/07(水) 19:00:39.41ID:ZWT9hR9W0
連レスですまない
communityです
0439デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/07(水) 19:24:16.85ID:aWoJ1pFca
>>438
ん?
質問はもう解決したんだよね?
0440デフォルトの名無しさん (ワッチョイ eb7b-RETc)2016/09/07(水) 19:28:03.66ID:ZWT9hR9W0
>>439
途中まではGoogle先生の検索を変えたら解決した
環境変数とか指定してコマンドラインから実行できるんだねってはなった
ただまだ全ては解決してない。
0441デフォルトの名無しさん (ワッチョイ eb7b-RETc)2016/09/07(水) 19:28:52.39ID:ZWT9hR9W0
C#関係ないから別スレで頼んでくるわ
スレ汚しすまん
0442デフォルトの名無しさん (ワッチョイ 6fb6-10NS)2016/09/07(水) 22:22:39.17ID:ctWbCCsJ0
for eachがインデックスの順番通り処理され(る保証が)ないのは有名だけど、yield returnで順番に返すようにしたデータをfor eachで処理する場合も順番通りにならないことってある?
調べてもそのあたりよくわからないんだけど誰かわかる人いるかな
0443デフォルトの名無しさん (アウアウ Sacf-NO8Q)2016/09/07(水) 22:32:19.49ID:aWoJ1pFca
>>442
列挙子の吐き出すデータをわざわざシャッフルする馬鹿なフレームワークはありえないと思いますw
0444デフォルトの名無しさん (ワッチョイ 133a-RETc)2016/09/07(水) 22:56:51.05ID:qSRr1oiT0
>>442
enumerator.MoveNext()の順に処理される
0445デフォルトの名無しさん (ワッチョイ f3dc-OoDU)2016/09/07(水) 23:59:32.17ID:If+GZyVf0
>>442
どこの時空で有名なんだ?
連番のインデックスが定義されているということは即ち要素に順序が定義されているということなので、
普通は列挙子はインデックスの順番通りに要素を返すように実装するぞ
少なくとも.NET Frameworkで提供されているコレクションについては、
順番通りに要素を返さないようなクソ実装してるものはないはず
Dictionaryの順序が定義されないとかの話と混同してないか?
0446デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/08(木) 00:10:49.36ID:ll3GZTXWa
>>445
なんか突っ込むところズレてると思うw

コード書いた人がそう保証してない限り、列挙子がインデクサと同じ順番でデータを吐き出すことを
期待してはいけないのは>>442の言う通りだよw
0447デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/08(木) 00:24:26.03ID:4zgfpHKTM
順序のあるコレクション列挙した順番は不定
列挙子が返す順序とforeachで列挙する順序は同じ
yieldで返した順序と列挙子が返す順序は同じ
0448デフォルトの名無しさん (ワッチョイ 34cb-j70e)2016/09/08(木) 00:31:31.37ID:YkLgKLZQ0
仮にそれが確定した仕様だったとしても自分も勘違いしちゃうような
マイナー仕様を他人にも見せるコードで書くのは好かんな
0449デフォルトの名無しさん (ワッチョイ e6b6-Te6E)2016/09/08(木) 00:32:09.36ID:Tb74UpNz0
よかった、さすがにyieldで順番に返してるつもりのデータが狂った準備で処理されることはないんだね
これからも安心してyieldを多用できるよthx
0450デフォルトの名無しさん (ワッチョイ 34cb-j70e)2016/09/08(木) 00:36:07.17ID:YkLgKLZQ0
foreachでしかアクセスできないようなクラス使わされて
要素を削除するときにどうしてもケツから消さないとインデックスがおかしくなるのに
foreachでしかアクセスできなくて俺はキレた
0451デフォルトの名無しさん (ワッチョイ 34cb-j70e)2016/09/08(木) 00:38:11.71ID:YkLgKLZQ0
>>449
えーでもさ
お前その動作が分かり難いって身を持って体験したのに
他人にはそういうコード見せちゃうんだ?
0452デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/08(木) 00:45:18.97ID:4zgfpHKTM
ちなみにFCLの順序有りコレクションは列挙順も同じになると保証されている
0453デフォルトの名無しさん (ワッチョイ e6b6-Te6E)2016/09/08(木) 00:54:44.18ID:Tb74UpNz0
みせないよ
全部dllにするしprivateメソッド内でしか使わないから
0454デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/08(木) 00:56:43.05ID:ll3GZTXWa
>>450
余程パフォーマンスの要求が厳しいとかじゃなきゃ、列挙してるコレクションからアイテム削除するって
あんまり良い作法とは思えんなあそもそも。

列挙と操作は分ければいいのに。

列挙字に削除するアイテムをLilstに入れるとか、逆に残す方にするとか、
やり方いろいろあるよねえ。
0455デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/08(木) 07:40:16.14ID:b73KNLmzd
>>442
これ本当なのか?
0456デフォルトの名無しさん (ワッチョイ 9823-tq+X)2016/09/08(木) 09:05:54.31ID:lIlJcuEY0
シーケンスを自分で組めば作ったように動くが、MSのライブラリなどは保証していないってことでしょ
0457デフォルトの名無しさん (ワッチョイ 11dc-j70e)2016/09/08(木) 09:16:49.80ID:mLK2BL1B0
いや基本的に「コレクションの要素順」に返ることは保証されてるよ
Dictionaryみたいに「挿入順」を保持しないものは存在するけど、コレクションの要素順に返ることには違いない
https://msdn.microsoft.com/ja-jp/library/s793z9y2(v=vs.110).aspx
0458デフォルトの名無しさん (ワッチョイ f053-Te6E)2016/09/08(木) 12:37:21.85ID:BaIwaWl+0
となると順序のあるコレクションではその順に処理されると考えていいな。
列挙子がコレクションの順序と違う順に返したらそれもう順序のあるコレクションじゃないわけだし。
0459デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/08(木) 12:52:34.95ID:jmQRCRWra
>>458
スタックなんかインデクサはLIFO、列挙した場合はFIFOでもおかしくないし
そういう実装されても文句は言えないと思うけどw
0460デフォルトの名無しさん (ワッチョイ f053-Te6E)2016/09/08(木) 13:51:27.50ID:BaIwaWl+0
その場合インデクサの大小が逆になっていると考えれば良いのでは。
0461デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/08(木) 15:24:52.02ID:r2DjRlBp0
C#って、Perlで言う所のこんなことできる?

#まずハッシュとか配列に処理を入れる。(これはハッシュ)。
$hash{name1} = sub {処理}; #関数を宣言と同時に変数に代入
$hash{name2} = sub {処理};

$string = <>; #どっか外部から文字列を入手する
$hash{$string}->(); #実行 (エラー処理は今は書いてない)。
0462デフォルトの名無しさん (ワッチョイ 11dc-j70e)2016/09/08(木) 15:26:54.32ID:mLK2BL1B0
>>461
Dictionary<string, Action>にラムダ式を入れる
0463デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/08(木) 16:24:01.08ID:r2DjRlBp0
>>462
ありがとう。
検索したけどずっと動かないと思ったら.NetFrameWorkのバージョンのせいだった
0464デフォルトの名無しさん (ワッチョイ 98d4-T8i7)2016/09/08(木) 16:54:52.72ID:2NLKCBtb0
ちょっとやそっと.NetFrameworkが古いぐらいじゃ動くと思うけどな・・・・
0465デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/08(木) 18:02:45.61ID:xMRsbH3+d
初歩の初歩の質問だと思うのだけど教えてくだされ
.net frameworkってdll形式なの?
開発環境と実行環境異なってたら使えなかった
exeファイル入ったプロジェクトそのまま持っていけば動くと思ったけど甘かったんでしょうか
0466デフォルトの名無しさん (スプッッ Sd78-j70e)2016/09/08(木) 18:06:19.95ID:tu6IqL7jd
1.0でも使ってんじゃね
0467デフォルトの名無しさん (スプッッ Sd78-j70e)2016/09/08(木) 18:08:40.15ID:tu6IqL7jd
>>465
ランタイムもインストールしないと
0468デフォルトの名無しさん (ワッチョイ 81d6-XNJE)2016/09/08(木) 18:42:01.82ID:rYr1hc3Z0
windows updateを忘れずにしていれば最新版が勝手に入ると思うんだけど
いまどき.net frameworkが入っていないパソコンってあるのか?
0469デフォルトの名無しさん (ワッチョイ 93c0-tq+X)2016/09/08(木) 19:14:04.67ID:hJk2TQC90
最近のOSで3.5以前のEXEを動かそうとして失敗するケースはよく見かける
0470デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/08(木) 19:19:20.69ID:xMRsbH3+d
書き方がまずかったすみません
開発環境には2015入ってて実行環境には何も入ってない
ただプロジェクトフォルダそのまま持っていけば全部梱包されてるからできるだろーって
やってみたらできなかった…って感じです
本当に初歩の初歩ですまないが教えて下さい
0471デフォルトの名無しさん (ワッチョイ 3d38-ZwPk)2016/09/08(木) 19:22:09.82ID:X4kUfY+40
>>470
>>467
0472デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/08(木) 19:35:45.77ID:xMRsbH3+d
>>471
ランタイムぐぐってくる
ありがとう
教えてくれた人ともう一度教えてくれた人
0473デフォルトの名無しさん (ワッチョイ e53c-j70e)2016/09/08(木) 19:37:21.52ID:d9ZZl7aD0
>>468
4.6Xって可能性もあるだろ
0474デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/08(木) 19:46:50.92ID:GLpY6Jp90
>>472
https://msdn.microsoft.com/ja-jp/library/5a4x27ek(v=vs.110).aspx
0475デフォルトの名無しさん (ワッチョイ 93e2-GoLj)2016/09/08(木) 19:49:07.02ID:qh7bbUgC0
await Task.Run(() => { cal(); });
(略)
private int cal(){
return 100;
}

上のタスクはどう記述すれば戻り値を受け取れますか?
voidをintにできないとエラーがでます
0476デフォルトの名無しさん (ワキゲー MM4e-Td3s)2016/09/08(木) 20:04:29.51ID:wSgtkTSYM
Task<int>
0477デフォルトの名無しさん (ワキゲー MM4e-Td3s)2016/09/08(木) 20:06:49.75ID:wSgtkTSYM
あとブロックにするなら明示的にreturn
{return cal();}
0478綴りw (ドコグロ MMde-j70e)2016/09/08(木) 20:09:46.27ID:ZGDN5kDfM
>>470
とりあえず開発環境と実行環境のOS書けよ
0479デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/08(木) 20:36:39.68ID:5+Utboodd
>>478
開発環境 win10
実行環境 xp
長い間アプデできてない当たり前だけど
0480デフォルトの名無しさん (ドコグロ MMde-j70e)2016/09/08(木) 20:56:01.20ID:ZGDN5kDfM
>>479
> 実行環境 xp
> 長い間アプデできてない当たり前だけど

>>468 の懸念が現実のものになるとは...
> いまどき.net frameworkが入っていないパソコンってあるのか?
0481デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/08(木) 21:00:01.99ID:GLpY6Jp90
XPだと.NET Framework 4だから、
プロジェクトの対象のフレームワークを.NET Framework 4にしないと生け贄を捧げても動かない
VS2015だとデフォは.NET Framework 4.5.2のはず

まとめると
プロジェクトは対象フレームワークを.NET Framework 4に変更してビルドし直す
XPには.NET Framework 4をインストールする
0482デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/08(木) 21:03:27.90ID:5+Utboodd
>>480
>>481
そう言うことか
ってかネットフレームワークって標準なんだな
ビジュアルスタジオについてくるもんだと思ってたよ
0483デフォルトの名無しさん (ワッチョイ 3e90-tq+X)2016/09/08(木) 21:15:22.43ID:UTR6V9h30
Google Analytics の調子が悪い
0484デフォルトの名無しさん (ワッチョイ bc42-tq+X)2016/09/08(木) 22:19:22.26ID:A7Pb5oFv0
おまいの個人データぶっこ抜くのに忙しいんだよ
0485デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/09(金) 07:42:45.67ID:Im9/6uOtd
C#でdll・ヘッダファイルに定義されてる関数を
テキストファイルやxmlファイルから読み込んで動的に呼び出す手法は以下以外にあるかな
別スレでこんな意見を頂いた
他にも手法あるならそれと比べて設計考えてみたいんだ

69 以下、無断転載禁止でVIPがお送りします 2016/09/08(木) 21:10:41.799 ID:BdEIRhbW0
>>65
相手のコードがc#でビルドされてるのが前提で
事前にAssembly.LoadFromでdll取得して
後はテキストから関数名と引数引っ張って事前に読み込んだassemblyからGetTypeで型とってGetMethodでメソッドとって引数は配列に詰めてInvokeする
0486デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/09(金) 10:58:24.81ID:7hmX2uTk0
>>485
呼び出される側(dll側)は何で開発されているかはっきりさせてくれ
別スレの人も

>相手のコードがc#でビルドされてるのが前提

と断ってるが

>dll・ヘッダファイルに定義されてる関数を

という部分を考えると、相手のコードはC#で開発されているように見えない
0487デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 12:46:53.61ID:dr6bYi/v0
C#始めたばかりなんですが、
当たり前のようにフィールドって言葉を使われ始めました。
ちょっと解説してください。
0488デフォルトの名無しさん (ワッチョイ 4919-u8AM)2016/09/09(金) 12:50:28.56ID:wNOotapd0
class {
int a; // <= フィールド
int B { get { return a; } set { a = value; } } // <= プロパティ
int C() { return a; } // <= メソッド
}
0489デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 12:56:02.44ID:dr6bYi/v0
>>488
クロージャってこと?
違うか?
0490デフォルトの名無しさん (ワッチョイ 98d4-T8i7)2016/09/09(金) 12:59:18.99ID:/qYjDQsk0
フィールドってクラスに属してる変数のことだよ
0491デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 13:01:49.33ID:dr6bYi/v0
ふむふむ
その変数は、インスタンスごとに個別に発生する値で、なおかつクラス内で共有ってことですか?
0492デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 13:05:04.75ID:dr6bYi/v0
質問連打ですみませんが、メンバもよく分かりません。
メソッドのことですか?
0493デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 13:26:54.06ID:dr6bYi/v0
分かってきました。
C#は、コンストラクタの実行時にメソッド以外にも色々インスタンスが生成されて返される。

メソッドが生成されればメソッド。
変数が生成されればフィールド。

そうゆうのを全部まとめてメンバ。
って解釈でいいでしょうか?
0494デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/09(金) 13:59:16.94ID:7hmX2uTk0
>>493
https://msdn.microsoft.com/ja-jp/library/ms173113.aspx
0495デフォルトの名無しさん (ワッチョイ 6923-tq+X)2016/09/09(金) 14:00:32.59ID:2SLUNITP0
横槍ですまんが、>>487がこれまでに触ったことがある他のプログラミング言語を言えばレスつけやすくなるんじゃないか?
0496デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 14:14:29.68ID:dr6bYi/v0
すまん、ありがとう。
けっこう分かってきた。
処理構造はこう書けって決まってるというか、用意されてる感じの言語なのね。

ちなみにCとPerlです。
0497デフォルトの名無しさん (ラクラッペ MMb1-tq+X)2016/09/09(金) 15:45:45.00ID:+pScTfufM
ChartのDataSourceにDataSetを割り当てて、SeriesのXValueMember, YValueMemberにDataColumnを割り当てたいのですが、
YValueMemberだけが0かnoneしかなく割り当てることができません。
とりあえず0とnoneに指定して動作させても、X軸だけ増える一方でY軸は表示されないままです。
どう設定すればY軸を指定できるのでしょうか?
参考サイトは以下です。
よろしくお願いします。

http://earth.air-nifty.com/blog/2011/10/cchart-7cb7.html
0498デフォルトの名無しさん (ワッチョイ 4919-u8AM)2016/09/09(金) 17:05:47.56ID:wNOotapd0
対象のDataTableに数値型の列が存在していないとか
0499デフォルトの名無しさん (アウアウ Sa35-1gdI)2016/09/09(金) 19:08:06.31ID:iXjGEKQTa
あかん。c#勉強始めてフォームアプリ作ってみたが、全然クラス作らないで出来上がってしまう。。
クラスにするイメージがつかん。
0500デフォルトの名無しさん (オッペケ Sr3d-j70e)2016/09/09(金) 21:08:50.87ID:N6MOLrmlr
そもそも動けばいいんだよ
中身なんて誰も知らんし
0501デフォルトの名無しさん (アウアウ Sa09-j70e)2016/09/09(金) 21:41:17.78ID:oMlYA35za
F#で死人が出そう
0502デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/09(金) 22:13:58.70ID:dr6bYi/v0
string.Joinがあるのにstring.Concatがあるのを教えてクレメンス
0503デフォルトの名無しさん (ワッチョイ 81d6-XNJE)2016/09/09(金) 22:34:20.31ID:skcsL2YB0
JoinとConcatの引数を確認すりゃ分かるけど用途が違う
0504デフォルトの名無しさん (スプッッ Sd78-j70e)2016/09/10(土) 00:00:05.31ID:ERC4HZmfd
>>486
両方ともC#です!
0505デフォルトの名無しさん (ワッチョイ 9541-RG0E)2016/09/10(土) 00:47:28.10ID:67HVyNly0
>>499
そもそも中規模以上の開発における
諸問題への対応策として生まれたのが
オブジェクト志向なんだから
それでいいし
最初はあんま意識しなくていいと思う
0506デフォルトの名無しさん (ワッチョイ 3e90-tq+X)2016/09/10(土) 01:15:23.70ID:Wm1HNmHU0
朝日新聞大阪本社 記者
西村 圭史 (ニシムラ ケイシ)
[email protected]

取材させてください。
0507デフォルトの名無しさん (オッペケ Sr3d-j70e)2016/09/10(土) 03:33:26.64ID:OS/pxD32r
画素編集のFormアプリ作ってるんだけど、コンパイルしてんのに処理重いのはなんで?
フォトショップとか、なんでレイヤーいくつも重ねてもサクサク動くんだよ…作ってる奴らすげえな
0508デフォルトの名無しさん (ワッチョイ c69f-wdYe)2016/09/10(土) 03:54:14.48ID:Cc+a6CZq0
並列化を駆使して色々やってるからだろ
スレッドとかSIMDとかGPUとか
0509デフォルトの名無しさん (ワッチョイ f053-Te6E)2016/09/10(土) 06:03:52.43ID:4AzSt0BN0
ちゃんと書けばそこまでしなくてもそんなに遅くない
0510デフォルトの名無しさん (ワッチョイ bc7b-DgIw)2016/09/10(土) 06:47:02.70ID:iNw4r1ei0
毎フレーム、全部の画素を、メモリにコピーするからだろ

最初にメモリにコピーしたら、そのメモリをずっと使えばいい
0511デフォルトの名無しさん (ワッチョイ f053-Te6E)2016/09/10(土) 06:59:04.57ID:4AzSt0BN0
レイヤーが10枚あって8番目のレイヤーで作業してるときは、

・1〜7番レイヤーを合成済みの画像 *1
・8番レイヤー (編集対象)
・9〜10番レイヤーを合成済みの画像 *2

の3つを合成して表示すりゃいいんだよ。
*1、*2 はアクティブなレイヤーを切り替えるときに計算しておく。

これなら何十枚あってもブラシとかは軽いだろ?
0512デフォルトの名無しさん (ワッチョイ c15b-1gdI)2016/09/10(土) 10:03:42.17ID:zhSU2N3O0
>>505
ありがと
ちょっとずつ機能を足しながらクラスの使い方勉強していくよ
0513デフォルトの名無しさん (オッペケ Sr3d-j70e)2016/09/10(土) 10:11:09.24ID:OS/pxD32r
>>510
Bitmapに入れといてるよ

>>511
編集対象を8番目から5番とかに変えたら、また全部の合成の再計算になるよね?
アクティブなレイヤーを変えたり、レイヤーを表示・非表示に切り替えただけで全部再計算が必要な気がする
0514デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/10(土) 10:14:34.09ID:oyefpNCyM
>>513
キャッシュを使う
0515デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/10(土) 12:10:04.49ID:7MaNMesA0
C#のnamespaceは、Classを束ねる物として機能してるんですか?

なので、
a = new namespace.class();
a.hoge();

// NameSpace.Classname.MethodName みたいな関係になるというか
0516デフォルトの名無しさん (ワッチョイ 937b-Td3s)2016/09/10(土) 12:13:09.95ID:/+pbEB3C0
クラスを束ねるものとして機能
っていうのがどういうの想定してるのか分からんからなんとも
0517デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/10(土) 12:17:01.14ID:8vECtVT4M
名前空間は名前を管理するもの
クラスを管理しているわけではない
0518デフォルトの名無しさん (ワッチョイ 6923-tq+X)2016/09/10(土) 12:17:20.05ID:Rv8WG5cB0
namespace については↓
https://msdn.microsoft.com/ja-jp/library/z2kcy19k.aspx

下の方にある For More Information のリンク先も読むことをお勧めする
0519デフォルトの名無しさん (ワッチョイ b5a1-Te6E)2016/09/10(土) 12:19:28.84ID:qVsRfG5m0
名前空間自体はプレフィックスを構造化した物に過ぎない様な
.NET Frameworkにおいては確かに機能群を束ねるのに使われてるけど
0520デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/10(土) 12:24:02.58ID:8vECtVT4M
>>519
機能を束ねてはいない
名前を束ねているだけ
0521デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/10(土) 12:30:16.44ID:7MaNMesA0
分かりました。
名前空間は型なのですね。
0522デフォルトの名無しさん (ワッチョイ 81d6-XNJE)2016/09/10(土) 12:35:43.10ID:mo9S6SVL0
何も分かっていないじゃん
0523デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/10(土) 12:39:41.86ID:7MaNMesA0
一応公式にはそのように記述されてたのですが・・・
違うと思った場合は、その旨に沿って返答いただけると質問に対する助けとなりますです。
0524デフォルトの名無しさん (アウアウ Sa35-1gdI)2016/09/10(土) 12:42:31.05ID:x75xnK8ka
javaのpackageと同じかってことを言いたいのか?
0525デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/10(土) 12:47:32.32ID:8vECtVT4M
>>523
引用して
0526デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/10(土) 12:51:26.59ID:7MaNMesA0
俺的には解決したからもういいよ
具体的な何かが出てきたらまた質問する
0527デフォルトの名無しさん (ワッチョイ bc42-MXHb)2016/09/10(土) 12:55:43.79ID:DPMvCIey0
>>521
違います

例えば"報告書印刷"クラスが「営業」用と「総務」用と「経理」用の3種類あるとしよう
"営業報告書印刷"クラス、"総務報告書印刷"クラス、"経理報告書印刷"と別々のクラス名でもいいが
そういうふうにクラス名にいろんな情報を付加するとどんどんクラス名が長くなってしまうだろ

そこで、名前空間を使って整理するんだよ
例えば"業務"名前空間内に"営業"名前空間と"総務"名前空間と"経理"を置いて
そこにそれぞれの"報告書印刷"クラスを置くと

これで
業務.営業.報告書印刷クラス ※業務.営業が名前空間
業務.総務.報告書印刷クラス ※業務.総務が名前空間
業務.経理.報告書印刷クラス ※業務.経理が名前空間
という風に"報告書印刷"という単純なクラス名ながら、名前空間で区別、整理できて便利

※わかりやすく説明するためにクラス名や名前空間名は日本語にした
0528デフォルトの名無しさん (ワッチョイ bc42-MXHb)2016/09/10(土) 13:00:54.61ID:DPMvCIey0
>>523
名前空間も含めたクラス名が型ってことだよ
0529デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/10(土) 13:00:55.18ID:7MaNMesA0
ありがとう。
ただそれは最初の質問となにが違うのでしょうか?

一応質問の趣旨としては、名前空間とクラスが無関係であるケースの言語も多いから聞いたのですが。
0530デフォルトの名無しさん (ワッチョイ bc42-MXHb)2016/09/10(土) 13:07:18.31ID:DPMvCIey0
>>529
あー、最初の質問は見てないわ
まー、名前空間ってそういうもんだと思っとけばいいよ

それ以上の詳しくは自分で勉強・研究してくれ
0531デフォルトの名無しさん (ガラプー KK6b-viWw)2016/09/10(土) 14:18:37.23ID:vbKJk9JlK
今始めたばかりの初心者なんだけどエラーがでる…
誰か解決してください!
main(){
print("やっほー!");
}
0532デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/10(土) 14:19:45.47ID:7MaNMesA0
なんかな、cwて書いてタブを2回押すとええねんて
0533デフォルトの名無しさん (ワッチョイ bc5e-XNJE)2016/09/10(土) 14:37:45.49ID:6Xz+/qd00
>>513
Bitmapは大きな画像になるとやたらメモリを食うし、バイト配列に変えて処理した方が速い場合もある
とりあえず画像処理やるのはC#(とGDI+)は向いていないと思う。Unityとかならともかく
合成はある程度の大きさがあって何枚もあったらC++でもそんな速くはならないからいろいろ工夫する必要があると思う
ググったらその手のことやっているところはいくつかヒットするよ
>>531
やりたいことは何か、表示されたエラーは何か書かないとな
ここにいるのは回答者も初心者が大半だからそれだけじゃわからん
もしくは↓へどうぞ
エスパーが質問に答えるスレ
http://echo.2ch.net/test/read.cgi/tech/1187922645/
0534デフォルトの名無しさん (ワッチョイ 7d4a-chQw)2016/09/10(土) 15:30:38.68ID:ViqXWo9H0
// こういう同じメンバーを持つ二つのクラスがあって
public class MyClass1
{
 public int id;
 public string name;
}
public class MyClass2
{
 public int id;
 public string name;
}

// この関数を二つのクラスから使いたいのですが、
void func(MyClass1 mc1)
{
 var id = mc1.id;
 var name = mc1.name;
}
// こんな風にすると
void Main()
{
 MyClass1 mc1 = new MyClass1();
 func(mc1);
 MyClass2 mc2 = new MyClass2();
 func(mc2); //<====== 当然ここでエラーしますよね。
}

func()の引数のあたりをどうにか改造して、MyClass1でもMyClass2でも
引数で受けられるようにできますか?
0535デフォルトの名無しさん (ワッチョイ 7d4a-chQw)2016/09/10(土) 15:36:54.17ID:ViqXWo9H0
補足です。
MyClass1とMyClass2の定義は変更しないという条件でお願いします。
0536デフォルトの名無しさん (ワッチョイ 693a-j70e)2016/09/10(土) 15:41:00.20ID:S2i4VzyR0
>>534
void func(dynamic mc1)
{
 int id = mc1.id;
 string name = mc1.name;
}
0537デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/10(土) 15:42:02.88ID:6z3ll4dhM
void func(dynamic dmc) { 以下略
0538デフォルトの名無しさん (ワッチョイ 7d4a-chQw)2016/09/10(土) 15:44:33.78ID:ViqXWo9H0
>>536
ありがとうございました。
助かりました。
0539デフォルトの名無しさん (ワッチョイ 7d4a-chQw)2016/09/10(土) 16:08:06.37ID:ViqXWo9H0
問題がありました。

本当は、funcの引数は

 void func(MyClass1 mc1) {...}

ではなくて、

 void func(List<MyClass1> mc1_list) {...}

という形式です。
そしてfuncの中でLinqを使っていて

var a = from e in mc1_list
    where e.id == 10
    select e.name;

みたいな処理があるのですが、

 void func(dynamic mc1_list) {...}

にしたら、
ソース型 'dynamic' に対するクエリ式または型 'dynamic' の結合シーケンスのあるクエリ式は使用できません
と言うエラーが出ました。
どうすれば良いでしょうか?
0540デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/10(土) 16:11:51.94ID:6z3ll4dhM
func(IEnumerable<dynamic> dmcs) { 以下略
0541デフォルトの名無しさん (ワッチョイ 7d4a-chQw)2016/09/10(土) 16:19:03.49ID:ViqXWo9H0
>>540
ありがとうございました。
うまく行きました。
2chには優秀な人が多いですね。
助かりました。
0542デフォルトの名無しさん (ラクラッペ MMb1-tq+X)2016/09/10(土) 19:38:25.00ID:jNfWtnbnM
>>498
ドロップダウンの中選ぶのではなく、直接文字を入力したらできました。
レスありがとうございました。
0543デフォルトの名無しさん (ワッチョイ f053-Te6E)2016/09/10(土) 19:47:21.98ID:4AzSt0BN0
>>513
適当な枚数のレイヤーごとにコンポジション結果をキャッシュしておくとか色々工夫のしようがある。
分割統治法ね。

あと質問しといてアドバイスに反論すんなよ…議論したいなら質問じゃなく自分なりの意見やアイデアを書けよ。気分悪いわ。
0544デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/10(土) 20:04:14.12ID:qbdJrNQPa
>>543
質問してる奴は反論するなってよー分からん感覚だなw
いっちゃ悪いけどそれで気分が悪くなるんならお前さんが人間的に幼すぎるんだよw
0545デフォルトの名無しさん (オッペケ Sr3d-j70e)2016/09/10(土) 20:06:07.74ID:OS/pxD32r
>>533
むちゃくちゃありがとう!
といってももうすでにC#でBitmapで作ってしまってるのでなんとか頑張ります…

>>514
キャッシュも調べてみます!
0546デフォルトの名無しさん (アークセー Sx3d-j70e)2016/09/10(土) 20:35:04.49ID:lhsLes9jx
>>543
バカ発見
0547デフォルトの名無しさん (アウアウ Sa09-j70e)2016/09/10(土) 20:39:01.13ID:vL431mpna
ポリモーフィズムを使えよ
0548デフォルトの名無しさん (オッペケ Sr3d-j70e)2016/09/10(土) 21:18:48.94ID:OS/pxD32r
>>543
ごめんw
そのつもりで書いたんじゃないけど再度読んだらそう見えるな…
0549デフォルトの名無しさん (ブーイモ MM28-Te6E)2016/09/10(土) 21:24:42.77ID:Vmp4NXtlM
というか初心者は2chなんかで遊んでないで本を読んでteratailにでも行きなさい
0550デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/11(日) 01:24:47.80ID:KwUcbZQO0
始めたばかりでパブリックとスタティックとプライベートの違いが分からんのだけど、
namespace main_file
{
class Program {
static void Main(string[] args) {
file1.TestClass TestA = new file1.TestClass("引数1");
file1.TestClass TestB = new file1.TestClass("引数2");
TestA.pub = "てすと1";
TestB.pub = "てすと2";
TestA.method();
TestB.method();
}
}
}
namespace file1 {
class TestClass {
private string prv = ""; //クロージャ? インスタンスごとに個別くさい
static string sti = ""; //クロージャじゃないこと確定。インスタンス関係なくオブジェクトで共有。
public string pub = ""; //パブリック。インスタンスごとに個別でどこからでもアクセスできる?

public TestClass (string con){ //クラス名を同じにするとコンストラクタやねんて。でも呼ぶときはnewやん
sti = con;
prv = con;
pub = con;
}
public void method() {
Console.WriteLine("static: " + sti);
Console.WriteLine("private: " + prv);
Console.WriteLine("public: " + pub);
}
}
}
0551デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/11(日) 01:25:09.11ID:KwUcbZQO0
Perlで書くとこれで合ってる?
{
package main_file;
my %TestA = file1::TestClass("引数1");
my %TestB = file1::TestClass("引数2");

${$TestA{pub}} = "てすと1";
${$TestB{pub}} = "てすと2";

$TestA{method}->();
$TestB{method}->();
}
{
package file1;

my $sti = ""; #スタティックな変数をシミュレート
sub TestClass {

my $prv = $_[0]; #クロージャとして機能させる
my $pub = $_[0];
$sti = $_[0];

my $sub = sub {
print "static: " . $sti . "\n";
print "private: " . $prv . "\n";
print "public: " . $pub . "\n";
return();
};
return( method => $sub, pub => \$pub); #パブリックは呼び出し元でアクセスできるようアドレスを返す
}
}
0552デフォルトの名無しさん (ワッチョイ 1c7b-sMwW)2016/09/11(日) 02:34:05.89ID:PXOT+RwB0
perl厨お断り
0553デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/11(日) 03:42:16.63ID:K+OtkjhU0
Perlやってると勉強はできなくなるらしいな
0554デフォルトの名無しさん (ワッチョイ fb49-nhzf)2016/09/11(日) 04:05:19.92ID:RiSeQbPk0
>>550
public/privateとstaticはごっちゃにしたらダメ。
public staticとかprivate staticとか指定出来る。
0555デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/11(日) 05:06:56.23ID:KwUcbZQO0
>>554
わかった。ありがとう。
0556デフォルトの名無しさん (ワッチョイ 9342-tq+X)2016/09/11(日) 09:05:21.64ID:BLHdbzh90
Perlのような変態言語が組めるのに
なぜC#のアクセス指定子ごときで躓くのか
0557デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/11(日) 09:19:28.13ID:16fUBnygM
こうも連日つまらない質問が来ると辟易すえうね
入門書ぐらいは読んでから質問したらどうなの
0558デフォルトの名無しさん (ワッチョイ 693a-tq+X)2016/09/11(日) 13:58:37.76ID:BlSjMya00
>>551
blessを使わず、
わざわざhashぽく関数参照して呼び出す意図は?
0559デフォルトの名無しさん (ワッチョイ 693a-tq+X)2016/09/11(日) 14:02:38.75ID:BlSjMya00
// C# のクロージャ例
Func<int> CreateClosure()
{
int i = 0;
Func<int> counter = () => ++i;
return counter;
}
0560デフォルトの名無しさん (ワッチョイ 7d4a-chQw)2016/09/11(日) 15:44:20.04ID:EHkX+KfY0
自作のソリューションにプロジェクトが数個あり、
参照設定がリビルドなどしたタイミングで参照が見つからない
と言うエラーになる場合があります。
でもエラーが出ていても正常に実行できます。
VSを再起動するとエラーは解消します。
何が原因でしょうか?
0561デフォルトの名無しさん (ワッチョイ 98d4-T8i7)2016/09/11(日) 16:03:01.02ID:b5d1ew5Y0
Perlスクリプトの翻訳を続けてもベターCの域から出ないよ
JavaでもC#でもC/C++でも変わらないから人口も多いJavaスレにでも行ったほうが幸せじゃないの?
0562デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)2016/09/11(日) 16:07:30.28ID:sDjieMc30
>>560
参照欄にマークついたりしてない?
そこでフルパス見られるよ
32/64関係かも?AnyCPUかな
0563デフォルトの名無しさん (ワッチョイ e63c-j70e)2016/09/11(日) 16:13:14.53ID:zF4qt1T70
>>560
ビルドの順序をちゃんと指定してないんじゃね?
0564デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)2016/09/11(日) 16:14:34.18ID:sDjieMc30
ああ、依存関係指定してないとかか
0565デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)2016/09/11(日) 17:23:25.51ID:EHkX+KfY0
>>563
何回もチェックしました。
>>564
何十回もチェックしました。
0566デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/11(日) 17:29:29.42ID:WnLcVcZ+a
>>565
ないとは思うけど、ひょっとして
プロジェクト参照じゃなくてアセンブリを直接参照とかしてない?
0567デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)2016/09/11(日) 17:31:32.28ID:EHkX+KfY0
>>566
してますが何か問題有りますか?
0568デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/11(日) 17:33:22.28ID:WnLcVcZ+a
>>567
現に問題起こってるじゃんw
0569デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/11(日) 17:34:29.53ID:16fUBnygM
プロジェクトあるのにアセンブリ参照するのは何故?
0570デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)2016/09/11(日) 17:35:29.68ID:EHkX+KfY0
>>569
癖です
0571デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/11(日) 17:36:34.78ID:16fUBnygM
>>570
癖なら仕方がないですね
0572デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)2016/09/11(日) 17:40:33.13ID:EHkX+KfY0
>>571
2013ではこの問題は出なかったのに
2015ではこの問題が出ます。
なぜですか?
0573デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/11(日) 17:43:10.59ID:16fUBnygM
>>572
不思議ですね
0574デフォルトの名無しさん (ワッチョイ 81d6-XNJE)2016/09/11(日) 17:44:42.34ID:pxo2/Ce40
>>572
おじいちゃんボケちゃったの?
0575デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)2016/09/11(日) 17:45:02.33ID:EHkX+KfY0
>>573
2015のバグでしょうか?
0576デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/11(日) 17:46:10.32ID:WnLcVcZ+a
>>572
運が良かっただけだと思うよw

VS2005の時代によく分かってなくて同じチョンボをしたことがあるけど、
やっぱり>>560みたいな気まぐれに問題が起こる感じだった
0577デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/11(日) 17:49:58.65ID:16fUBnygM
>>575
わかりかねます
Microsoftに問い合わせてみてはどうでしょうか
0578デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/11(日) 18:56:50.78ID:WnLcVcZ+a
静かになったのはやっぱり>>566が原因か?
これだけ騒いだんだから報告ぐらいして欲しいよね
0579デフォルトの名無しさん (ワッチョイ fb49-nhzf)2016/09/11(日) 23:06:03.58ID:RiSeQbPk0
>>575
VSのバグじゃなくて、使い方が悪い。
アセンブリ参照する時は、そのアセンブリ自体はビルド時に更新されないことが前提。
もしそのビルドで更新されるなら、プロジェクト参照を使うべき。
0580デフォルトの名無しさん (ワッチョイ b0eb-tq+X)2016/09/12(月) 11:37:15.05ID:xRlv9baY0
>>531

class sample
{
static void Main()
{
Console.WriteLine("ヤッホー(∩´∀`)∩\n");
}
}
0581デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)2016/09/12(月) 15:10:57.76ID:dC9AlG3D0
>>558 ブレスでクロージャは出来ない気がしたから。深い意味はない。
>>559 ありがとう



あと関係ないけど、今GUIの勉強で猫でも分かるなんちゃらってサイト見てるのだけど、
猫には分かっても俺にはわからないことがけっこうあるようなので、
そんな俺みたいなレベルの人にも分かるようなサイト知ってる人がもし居たら教えてください。

http://www.kumei.ne.jp/c_lang/index_form.html
0582デフォルトの名無しさん (ワッチョイ 34ce-BWVR)2016/09/12(月) 17:51:17.34ID:qDbI1d2i0
今32bit環境も想定して32bitで作成中なんですが、主に動かすのは64bit環境です。
それで、中身は主にWin32APIを使うプロジェクトなんですが、
DllImportした際に受け渡す構造体とかの32bit/64bit環境のサイズの情報ってどっかにまとまってないですかね?
今は一応動いてはいるけど、それで正しいのか判らんという状態で、
とても気持ち悪いのです。
0583デフォルトの名無しさん (ワッチョイ 4919-u8AM)2016/09/12(月) 18:17:22.38ID:5uM6sdA10
自分でC++で動かしてみるのが一番手っ取り早い
0584デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/12(月) 18:26:13.35ID:0pjXoVUQa
>>582
言ってることがよく理解できんけどこういうの?
https://msdn.microsoft.com/ja-jp/library/fzhhdwae.aspx
0585デフォルトの名無しさん (ワッチョイ f023-tq+X)2016/09/12(月) 18:53:04.14ID:ZFI9hvo+0
>>582
構造体のサイズといってもメンバを>>584のように読み替えるだけで
構造体情報はMSDNなりSDKのヘッダファイルに書かれていると思うけど
但しWindows2000の情報は古いのでダメだ、VC++のIntelliSenseを見るとか
基本的にはポインタ系とsize_t系くらいじゃない、これをIntPtrで定義する

refやoutが適切な時はそれで良いし、他[In,Out]やArrayWithOffsetを適宜
Unicode対応APIがあれば(安全で速い)Charset.Unicodeを使うとか
関数ポインタのデリゲートにはUnmanagedFunctionPointerを使うとか
繰り返し呼び出し速度が気になる場合はSuppressUnmanagedCodeSecurityとか
0586デフォルトの名無しさん (ワッチョイ 98d4-T8i7)2016/09/12(月) 20:15:41.40ID:dVnv8TGV0
すまんが、XamarinStudioについているGit関連の機能って一度に1つバージョンを戻すことしかできないの?
それ以上のことはコンソールでやれってことなんかな・・・・
0587デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/13(火) 02:06:56.94ID:Pc6Wm7Aaa
質問するだけしてトンズラする感じ悪い奴多いな最近
0588デフォルトの名無しさん (ワッチョイ 1ceb-tq+X)2016/09/13(火) 13:19:25.57ID:KmoeAHv00
2ちゃんねるで見返りを求めてはいけない
ここはヤフー掲示板じゃない
礼などしなくていい、ただし、教えてもらったことは必ず身につけて
もし同じようなことを質問している人がいたら、かつての自分がしてもらったように
教えてあげなさい
0589デフォルトの名無しさん (ワッチョイ bc42-tq+X)2016/09/13(火) 16:32:00.74ID:q0gvgXcr0
CommonSaveFileDialog でダイアログを閉じてからでないと FileName 等が取得できないようです
FileOk でフルパスを評価し「既に存在します上書きしますか?」みたいなことをやりたいのですが
良い方法を教えてください
0590デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)2016/09/13(火) 16:49:12.84ID:PKqvRNpu0
OverwritePrompt に true だと足りない?
0591589 (ワッチョイ bc42-tq+X)2016/09/13(火) 17:13:31.09ID:q0gvgXcr0
>>590
ありがとうございます
この機能は問題ないのですが
既存の名前の他にある特定の名前でも独自メッセージを出すようにしたいのです
説明不足ですみませんでした
0592デフォルトの名無しさん (アウアウ Sa09-nnaQ)2016/09/13(火) 17:42:42.66ID:c6Y5aSJza
CommonSaveFileDialogってWin7の時代に出たあれのか。
ググってもほとんど情報ないのが悲しいねw
やっぱりXPで使えないんじゃ仕事じゃ使えないよねまだまだ
0593デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)2016/09/13(火) 18:17:37.92ID:PKqvRNpu0
イベント時にファイル名取れないかって話か
SelChangeでもでてこないな、継承するかソースついてるからそれみて
なんとかするしかないかねえ
0594デフォルトの名無しさん (スプッッ Sd28-j70e)2016/09/13(火) 18:32:54.04ID:LmZnag12d
テストケースを作る達人いるかね
0595デフォルトの名無しさん (ワッチョイ bc42-tq+X)2016/09/14(水) 07:35:28.33ID:LIctzWig0
http://aster.or.jp/business/contest.html
0596デフォルトの名無しさん (ワッチョイ 8185-MXHb)2016/09/14(水) 17:20:03.55ID:DRF/iRYF0
あるインターフェースの非同期メソッドを別の非同期メソッドを使って実装しなければいけないのですが、
どうすればいいでしょうか。GetXXXAsyncが実装しなければいけない非同期メソッドで
別のクラスのインスタンスyyyのGetYYYAsyncで実装しなければいけません。
XXXの結果はYYYに変換できるものとします。
public Task<XXX> GetXXXAsync() {
 yyy.GetYYYAsync(t => {
  var yyy = t.result // XXXをYYYに変換
  return ????
 }
}
0597デフォルトの名無しさん (ワッチョイ 3279-tq+X)2016/09/14(水) 17:21:19.05ID:5MgbrOE10
<XXX>が一瞬<><><><>に見えた
0598デフォルトの名無しさん (ワッチョイ 8185-MXHb)2016/09/14(水) 17:23:00.56ID:DRF/iRYF0
それとも、awaiを使うんでしょうか?
public async Task<XXX> GetXXXAsync() {
 var yyy = await yyy.GetYYYAsync();
 return ConvertToXXX(yyy); // YYYをXXXに変換
}
もちろん、上のコードではreturn文の型が違うのでコンパイルできませんが。
0599デフォルトの名無しさん (ワッチョイ 8185-MXHb)2016/09/14(水) 17:24:07.03ID:DRF/iRYF0
>>596の
>var yyy = t.result // XXXをYYYに変換
は間違いいですね。YYYをXXXに変換するのでした。
0600デフォルトの名無しさん (ワッチョイ 8185-MXHb)2016/09/14(水) 17:27:27.84ID:DRF/iRYF0
変数名とかかぶtってたりポカやってますが。すみません。
var zzz = await yyy.GetYYYAsync();
zzzとかにします。
0601デフォルトの名無しさん (フォォーッ MM63-tq+X)2016/09/14(水) 18:32:23.18ID:rtwXtOmSM
タイマーを使ってラベルの文字列を1文字ずつ表示する処理についての質問です
Column1列の0行目に入ってる文字列の長さを取得する方法がわからなくて困ってます
それがわかれば実現できそうな気はしてるのですが・・・
わかる方いたら教えてください

private void timer1_Tick(object sender, EventArgs e)
{
int nagasa =0;

label1.Text = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();

nagasa +1;
if(nagasa > ココをどう書けばいいのかわからない)
{
nagasa = 0;
  timer1.Stip();
}
}
0602デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/14(水) 18:37:45.78ID:ZbLz4+NF0
目が〜目が〜

まずインターフェースと別のクラスのシグニチャを正しく漏れなく記載するんだ
命取られる訳じゃねえ
落ち着け、推敲しろ
0603デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/14(水) 18:38:44.13ID:ZbLz4+NF0
>>600
>>602
0604デフォルトの名無しさん (ワッチョイ 9030-ZwPk)2016/09/14(水) 18:45:11.80ID:ZbLz4+NF0
>>601
StringにキャストしてLengthプロパティ参照ではあかんのですか
0605デフォルトの名無しさん (ワッチョイ 8185-MXHb)2016/09/14(水) 18:47:20.85ID:DRF/iRYF0
>>602
まず、実装するのはUWPですがISupportIncrementalLoading.LoadMoreItemsAsyncです。
https://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.data.isupportincrementalloading.aspx
で、要はその実装の内部で、HttpClient.SendAsync()を呼んで、
レスポンスを加工して、LoadMoreItemsAysncの戻り値のIAsyncOperation<LoadMoreItemsResult> に
したいわけです。
0606デフォルトの名無しさん (フォォーッ MM63-tq+X)2016/09/14(水) 19:17:14.13ID:rtwXtOmSM
>>604
レスありがとうございます
表示できるようになりましたが1文字ずつではなく一気に全部表示されます・・・


private void timer1_Tick(object sender, EventArgs e)
{
 string str;
 int nagasa =0;

 label1.Text = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();

 nagasa +1;

 str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
 if(nagasa > str.Length)
 {
  nagasa = 0;
  timer1.Stip();
 }
}
0607デフォルトの名無しさん (フォォーッ MM63-tq+X)2016/09/14(水) 19:27:05.98ID:rtwXtOmSM
コードを変えてみましたが1文字ずつ表示できませんでした
どう変えたらタイマーを使って1文字ずつ表示できるようになるんでしょうか

private void timer1_Tick(object sender, EventArgs e)
{
 str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
 foreach(char a in str)
 {
 label1.Text += a.ToString();
 }
 imer1.Stop();
}
0608片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb1-fLkO)2016/09/14(水) 21:59:20.32ID:3NkcLiKmK
>>607
カウンタ変数を使え
0609デフォルトの名無しさん (ワッチョイ bc5e-XNJE)2016/09/14(水) 22:23:47.57ID:idTcOFf/0
>>607
strは配列じゃないんだからindexがないと全部表示されるのは当たり前だと思うんだが
str.Substring使うとかして1文字ずつ拾って表示しないと
0610デフォルトの名無しさん (ワッチョイ 693a-tq+X)2016/09/14(水) 22:24:49.16ID:+DlTv1Gs0
>>607
せめて文法合ってるコードを張ってくれ

label1.Text = str.Substring(0, label1.Text.Length + 1);
if(label1.Text == str) timer1.Stop();
0611デフォルトの名無しさん (フォォーッ MM63-tq+X)2016/09/14(水) 22:51:34.50ID:rtwXtOmSM
>>608-610
みなさんレスありがとうございます

>>608-609さんの意見を参考にコードを書きました

count

str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
label1.Text = str.Substring(0,count);
0612デフォルトの名無しさん (フォォーッ MM63-tq+X)2016/09/14(水) 23:06:43.61ID:rtwXtOmSM
String str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
label1.Text = str.Substring(0,label1.Test.Length +1);

if(label1.Test == str)
{
timer1.Stop();
}

途中で書き込んでしまったり>>611の途中のコードも貼ろうと思いましたが
なぜか書き込みできなかったので>>610さんのコードだけにしときます
レスしてくださったみなさん本当にありがとうございました
0613デフォルトの名無しさん (ワッチョイ 037b-chWY)2016/09/15(木) 01:14:25.30ID:BGRQA4DR0
xmlからdataSetにセットした文字列がtextBoxやlabelで改行されないのですが、特別なことをしないといけないのでしょうか?。

試してみたxmlファイル
<Table>
  <Column>あいう \r\n えお</Column>
</Table>
<Table>
  <Column>"かき" + \r\n +"くけこ"</Column>
</Table>
<Table>
  <Column>"さし" + CR + LF + "くけこ"</Column>
</Table>


textBox.Text = Convert.ToString( dataset.Tables{"Table"}.Rows[0]["Column"]);


結果は改行コードが認識されず(あいう \r\n えお)や("かき" + \r\n +"くけこ")といったように、そのまま出力されてしまいます。
解決策を教えてください。お願いします。
0614デフォルトの名無しさん (ワッチョイ 5f02-Zdre)2016/09/15(木) 05:54:29.82ID:jXLgVuef0
Labelってそもそも改行して表示できたっけ?
TextBoxのMultilineがfalseとか言うオチじゃないのか?

まさか改行コードじゃなくて
0615デフォルトの名無しさん (ワッチョイ 5f02-Zdre)2016/09/15(木) 05:57:21.93ID:jXLgVuef0
あれ、切れた
まさか改行コードじゃなくて ”¥r¥n”って文字列が入ってるってオチじゃないだろうな
と書いてたんだが(クォーテーション囲みのとこは半角で)
0616デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/15(木) 07:54:18.77ID:HtD/99ZTM
C#よりまずC言語で基礎を学んできたほうがいい
0617デフォルトの名無しさん (ワッチョイ 233a-chWY)2016/09/15(木) 09:37:13.88ID:4hO/LARH0
>>613
数値参照
0618デフォルトの名無しさん (ワッチョイ 037b-chWY)2016/09/15(木) 11:56:00.29ID:BGRQA4DR0
>>615
labelでも改行されますよ。
textBoxで試す時はMultilineはtrueにしてますよ。
xmlのデータをそのまま書いてるので”¥r¥n”とはやってないです。

textBox.text → dataSet → writexmlで保存し、readxmlmi→ dataSet → textBox.textでロードしてます。


>>617
すみません。ちょっとわからないので、もう少し詳しく教えていただけないでしょうか。
0619デフォルトの名無しさん (ワッチョイ bf41-jsoS)2016/09/15(木) 14:55:57.11ID:oVe6chyL0
>>616
ほんとこれ
クラスとかなんて後からでいいわ
0620デフォルトの名無しさん (オイコラミネオ MM3f-wJFc)2016/09/15(木) 15:17:19.63ID:tpr9+BX0M
System.IOのPathクラスにメソッドを追加する方法はないですか?
Pathクラスは静的クラスなので継承できなくて困ってます
0621デフォルトの名無しさん (ワッチョイ a7ff-oW7a)2016/09/15(木) 15:24:15.63ID:cPNlrWMs0
拡張メソッド使えない?
0622デフォルトの名無しさん (ワッチョイ 83dc-wJFc)2016/09/15(木) 15:24:43.91ID:Cj/yMtkH0
>>620
そんなことをする意味はない
独自にPathHelperクラスとか作ればいい
0623デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/15(木) 15:26:31.74ID:Spuf+iD10
どうしてもやりたいならC#やめたらいいよ
無理だから
0624デフォルトの名無しさん (ワッチョイ a7ff-oW7a)2016/09/15(木) 15:50:34.62ID:cPNlrWMs0
だから拡張メソッドでいいでしょ
やることは >>622 だけど、
>System.IOのPathクラスにメソッドを追加
したように見える
0625620 (オイコラミネオ MM3f-wJFc)2016/09/15(木) 16:14:41.93ID:tpr9+BX0M
拡張メソッドだとどう記述するんでしょう?
拡張メソッドって例えばstringクラスにメソッドを追加したように見せかけるには
メソッド名(this string オブジェクト名)
って感じにすると思うんですがこれだと静的クラスはできなくないです?
0626デフォルトの名無しさん (ワッチョイ a319-tp8f)2016/09/15(木) 16:45:12.61ID:rXzgatzr0
うん、できない
624はPathクラスが静的クラスだったことを忘れてたんだな
0627デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/15(木) 20:00:02.57ID:/+11+XuH0
>>618
暇つぶしに試してみたけど>>615であっているじゃないか
<Table>
  <Column>あいう
えお</Column>
</Table>
でtextBox.Text = Convert.ToString( dataset.Tables["Table"].Rows[0]["Column"]);
どんな勘違いしたのか知らんが>>615に謝ったほういいと思う
>>614
ちなみにできないのはコンボボックスとか改行を区切りにしているコントロールだな
0628デフォルトの名無しさん (ワッチョイ d37b-chWY)2016/09/15(木) 20:50:10.05ID:4n2t8Mfb0
>>627
こちらのxmlファイルのソースは、保存する時に改行コードだと認識されずに、下のように保存されてるみたいです。

<Table>
  <Column>あいうえお</Column>
</Table>


複数のラベルに表示させる為に、データを入力するテキストボックスをデータグリッドビューへ変更しました。
プロジェクトをアップしたので、どこを変えたら改行コードを認識して>>627さんのようなxmlファイルになるのでしょうか。
http://fast-uploader.com/file/7029495252348/


>>615
こちらの勘違いでした。
すみませんでした。
0629デフォルトの名無しさん (ワッチョイ 375b-eXu6)2016/09/15(木) 21:07:15.47ID:iYCM94tJ0
💩💩 じゃないの?
って>>617も言ってるわけだが。
0630デフォルトの名無しさん (ワッチョイ 5f02-+iqG)2016/09/15(木) 21:08:54.40ID:jXLgVuef0
>>627
Labelで改行、確かにできてるな
大昔のVS(2003で確認)のデザイナでは設定できなかったので勘違いしてたのかも
それでもコードで突っ込んだら改行してたわ
0631デフォルトの名無しさん (ワッチョイ 375b-eXu6)2016/09/15(木) 21:09:25.57ID:iYCM94tJ0
ぁ。
&#13;&#10; の半角な。
0632デフォルトの名無しさん (ワッチョイ fb17-dM7R)2016/09/15(木) 21:23:47.93ID:kyc/d2BX0
WinFormsはめったにやらないしやってもDataGridViewなんか絶対使わないが貼ってあるプロジェクトをDLして見てみた。
で、ちょっとググると http://dobon.net/vb/dotnet/datagridview/multiline.html
falseじゃねーか。trueにしたら改行されたぜ(手作りの改行入りXMLで)。
セル入力が改行入力できるのを確認してそのままセーブ。ちゃんとXMLに改行が保存されている。
0633デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/15(木) 21:35:16.58ID:/+11+XuH0
>>628
それよくわからんし、古いVS使っているからそのままこちらでは使えん
http://ideone.com/UsVVAo
全部一体にしたソース上げておく
ボタン1で書き込み、ボタン2で読込み、ボタン3で表示
0634デフォルトの名無しさん (ワッチョイ d37b-chWY)2016/09/15(木) 21:37:31.01ID:4n2t8Mfb0
>>632
データグリッドビューにも改行できるプロパティがあったとは。


しょうもない質問に、お付き合いくださった皆様本当にありがとうございました。
0635デフォルトの名無しさん (ワッチョイ d37b-chWY)2016/09/15(木) 21:39:56.73ID:4n2t8Mfb0
>>633
わざわざソース作ってくれてありがとうございます。
ソースを確認して、解析したいと思います。


なにからなにまでありがとうございました。
0636デフォルトの名無しさん (アウアウ Sa1f-NmdU)2016/09/15(木) 21:49:13.86ID:JEiXRkBDa
横からすまんけどDataGridView使わないで、何で表示させるの?
区切りよく見せるやり方がわからない
0637デフォルトの名無しさん (スップ Sdbf-wJFc)2016/09/16(金) 07:05:58.60ID:EiAsfn7Ed
Googletestすんごく便利じゃね?ってなった
0638>>633 (ワッチョイ 175e-9vqT)2016/09/16(金) 18:45:59.06ID:ad4eOHdw0
button2_Clickのds.ReadXmlの前にds = new DataSet();を置かないとReadXmlの意味が無かったわw
申し訳ない
0639デフォルトの名無しさん (ワッチョイ 17ea-Pgjg)2016/09/17(土) 02:09:38.81ID:PLH+Fwg30
文字列形式の数字を数値形式で変数に格納するやり方について教えてください。
整数であれば
int num = int.Parse("123,456,789", System.Globalization.NumberStyles.AllowThousands);
これでOKですよね?
では、小数点以下が含まれていて、かつ1000以上の数字はどうすればいいのでしょうか?
たとえば987,654.3みたいな数字です。
単純にfloat.parseってしたら怒られちゃいました。
0640デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/17(土) 02:35:45.70ID:Lk1O5YzS0
>>639
なんかいっぱい方法があるなw
http://dobon.net/vb/dotnet/programing/convert.html
string st = "987,654.3";
float f = float.Parse(st, System.Globalization.NumberStyles.Any);
decimal d = decimal.Parse(st, System.Globalization.NumberStyles.AllowDecimalPoint|System.Globalization.NumberStyles.AllowThousands);
double db = double.Parse(st.Replace(",", ""), System.Globalization.NumberStyles.Float);
自分で適当に試してくれ
0641デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/17(土) 02:51:37.76ID:0IJLfM4Ca
こんな質問してる人がありえないとは思うけど、日本以外での展開も考えてるなら
非英語圏だとカンマとポイントが逆だったりして、最初によく仕様を決めておかないと
あとでハマるかもよw
0642デフォルトの名無しさん (ワッチョイ 17ea-Pgjg)2016/09/17(土) 08:01:09.21ID:PLH+Fwg30
すいません、ありがとうございました
0643デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/17(土) 08:15:17.67ID:ZlGddzijM
国際化はプレゼンテーションに小細工するだけじゃ追いつかないよね
0644デフォルトの名無しさん (ドコグロ MM3f-wJFc)2016/09/17(土) 11:24:57.53ID:4J0ckOcAM
文字の長さが違うから
コントロールのサイズや構成自体を変えろとか言ってきたりするから
自動では無理だね
0645デフォルトの名無しさん (ワッチョイ c35b-NmdU)2016/09/17(土) 12:15:36.41ID:ChuD1bst0
すみません。質問です
フォームアプリを作成中(勉強中)です
Form1.csのファイルをPertialで分割して別のソースファイルを作ったときに、分割して作ったソースファイルをエクスプローラーでForm1の子となるように表示させたいです。
プロジェクトファイルを変更して子表示には出来ましたがSubタイプをCodeに変えてもコンパイラに?Formに書きかえられてしまい、ダブルクリックでソースファイルを開けません。
どうしたらいいのでしょうか
0646デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/17(土) 12:36:18.20ID:HrJPJui6a
>>645
ごめん何言ってるのか全然わからない
0647デフォルトの名無しさん (JP 0H9f-nW2o)2016/09/17(土) 12:57:05.38ID:qiyywEhcH
プロジェクトのツリー構成をいじろうとして変なことしてるけど元に戻っちゃうよ〜

ってことかな
0648デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/17(土) 13:03:02.02ID:v/zQjqAf0
ああ、「エクスプローラ」って「ソリューションエクスプローラ」のことか
0649デフォルトの名無しさん (ワッチョイ 5b49-oG/L)2016/09/17(土) 13:09:04.40ID:0+lykI9p0
>>645
諦める。
partialって、デザイナーの自動生成ソースと分けるために使われてるけど、それ以外は普通使わない。
クラスを作って機能毎に分けるようになれば、そんなことする必要ないから。
0650デフォルトの名無しさん (ワッチョイ c35b-NmdU)2016/09/17(土) 14:14:38.63ID:ChuD1bst0
>>646
>>647-649
のかたの認識で間違いないです

>>647-649
ありがとうございます

できない、やることに意味があまり意味ないってことで了解しました
連投で申し訳ないのですが
機能別にわけたクラスがForm1のコントロールにアクセスするのは、Form1.textbox1.textのような記述で行っていけばいいんでしょうか
普通どういう風にコーディングしていくのかがわかりません
0651デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/17(土) 14:34:03.35ID:v/zQjqAf0
C#にはデフォルトインスタンスがないから
VBみたいにクラスからアクセスはできないぜ
(そのつもりで書いているのか分からないが)

C#入門のお手伝いをご希望なら
私どもではなく書籍か入門サイトを頼った方が無難である
0652デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/17(土) 14:35:44.65ID:Lk1O5YzS0
>>650
http://dobon.net/vb/dotnet/form/accessanotherformdata.html
0653デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/17(土) 15:16:11.27ID:HrJPJui6a
>>650
Formの外のクラスからFormの持つコントロールにアクセスするようなコードを書いてはダメ。
TextBoxのTextの変更はFormの責任でやる
0654デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/17(土) 15:20:57.18ID:exk5TsB4M
VB6の被害者ってまだいたんだね
0655デフォルトの名無しさん (ワッチョイ c35b-NmdU)2016/09/17(土) 15:45:47.87ID:ChuD1bst0
>>651-653
ありがとうございます

いえいえ、ここの方たちの意見は十分参考になります

入門用だとForm1クラスの中にクラスを作ってるものばかりなので、それに沿って記述していくとForm1のソース量が延々長くなり最初のような質問をさせていただきました

>>652
の方を参考に勉強してみます

また何かあれば質問させてください
ありがとうございました
0656デフォルトの名無しさん (ワッチョイ 97d4-EMlz)2016/09/17(土) 17:51:24.24ID:2hKXgH7u0
メソッドの引数にオブジェクトがある場合に、デフォルト値(?)を設定することってできないのでしょうか?
class B{}
があった場合に
A(B b = new B())
のようなことがしたいのですが・・・・
0657デフォルトの名無しさん (ワッチョイ 83dc-wJFc)2016/09/17(土) 18:03:49.90ID:/l22qB3W0
>>656
オーバーロードする
もしくはnullをデフォルトにしといて先頭でnullチェックして代入
0658デフォルトの名無しさん (ドコグロ MM3f-wJFc)2016/09/17(土) 18:35:43.77ID:4J0ckOcAM
>>655
partialもいいよ
無駄にクラス分けて複雑になったら意味ないし
画面がでかいことと設計がどうとかって関係ないし
見た目Formにあるコントロールの処理がFormに無い時点で俺は気が狂う
0659デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/17(土) 18:41:40.76ID:kuAV8nPQM
クラス別けても複雑にはならないだろう分け方が間違ってなければ
Partialは分業や自動生成のための物で機能分割のためのものではない
0660デフォルトの名無しさん (ワッチョイ 03cb-wJFc)2016/09/17(土) 19:47:28.29ID:UtwXhxtU0
>>659
だから機能分割しないって
単に画面がひたすらでかいときってあるじゃん
その数百はあろうコントロールの載った画面の端っこにラジオボタンがあったとして
その処理がどこに書いてあればわかりやすいんだよって話よ
0661デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/17(土) 20:09:00.98ID:HrJPJui6a
>>660
言いたいことは分からんでもないけど、部分クラスを使って「分ける」んじゃなくて、
regionを使って「整理する」方が得策だと思うよ
0662デフォルトの名無しさん (ワッチョイ 03cb-wJFc)2016/09/17(土) 20:11:32.28ID:UtwXhxtU0
>>661
partialでいいじゃん
0663デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/17(土) 20:14:20.19ID:kuAV8nPQM
>>660
そういう巨大なビューは容易に管理可能なサイズの子ビューに分割する
ビューは複数の子ビュー間の調停を行いそれ以外の最低限の処理しかしない
一度の分割では不十分な場合には子ビューが再帰的に子ビューを持っても良い
ラジオボタンの処理はラジオボタンが直接に配置されたビューに書けば良い
そして各ビューにはクラスを割り当てて実装する
PartialもRegionも使わない
0664デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/17(土) 20:22:44.82ID:HrJPJui6a
>>662
部分クラスは一覧性がよくない。

コードの見通しをよくして見たい個所をすぐ探せるように分割したはずが、
結局複数のファイルをいちいち渡り歩いて探さなきゃならない本末転倒が起こる。

>>663はユーザーコントロールを使えと言ってるのかもしれないけど、
コードの見通しをよくするためにユーザーコントロールを使うのはちょっと違うと思う。
0665デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/17(土) 20:24:29.74ID:Lk1O5YzS0
職場の制約じゃないんだし、どっちでも好きなようにしたらいいと思うが議論スレでやれよ
0666デフォルトの名無しさん (ワッチョイ 8394-1I2o)2016/09/17(土) 20:41:30.63ID:qocRQo9a0
議論スレw
気に入らない奴らを追い出したいからとバカが作ったあのスレ
作るだけ作って自分でも盛り上げず過疎ってるあのスレ

…よくあんなとこに誘導しようと思うなw 作った人ですか?w
0667デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/17(土) 21:25:21.29ID:v/zQjqAf0
単芝くっさ
0668デフォルトの名無しさん (ワッチョイ 179d-eXu6)2016/09/17(土) 22:16:24.50ID:WMm2U5Oz0
くっさとかくっさ
0669デフォルトの名無しさん (ガラプー KK5f-Y+P+)2016/09/17(土) 22:21:10.33ID:VM86FVmfK
草と書くっさ
0670デフォルトの名無しさん (アウアウ Sa1f-NmdU)2016/09/17(土) 22:23:03.01ID:KhWwRLFba
まともな回答もできんやからが荒らすな
0671デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/17(土) 22:29:33.53ID:2JExcSSQM
>>664
普通のクラスだろうとUIクラスだろうとプログラミングの基本は変わらないよ

分割して統治せよ

オブジェクト指向言語ではその手段が主にクラスであり
UIではコントロールやコンポーネントというだけの話

適切にクラス化すれば自然とプログラムの見通しは良くなるし
見通しをよくするための手段としてクラス化を選択するのは正当な判断だ
むしろリージョンやパーシャルで分割するという判断の方が良い習慣に逆らった邪道な判断だろうね
0672デフォルトの名無しさん (ワッチョイ 977b-chWY)2016/09/17(土) 22:34:39.28ID:bbRJl+Ku0
>>669
優勝
0673デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/17(土) 22:40:50.65ID:HrJPJui6a
>>671
端的に言えば、ネーミングに困るような分割は分割統治でも何でもないよ。
ただの細切れだ。

命名に困るよね?
>>663みたいな分割をしたら。
0674デフォルトの名無しさん (ワッチョイ 83dc-U9f6)2016/09/17(土) 22:48:21.12ID:/l22qB3W0
本当に必要なコードなら仕方ないけど、
巨大なクラスって大抵同じような処理がいろんなところに散らばってたりコピペまみれだったり
より上のレイヤでやるべきことをビューのコードと一緒くたにしてベタ書きしてたりするのが多いんだよね
まともなコードでソースファイル分けたくなるほどクラスが肥大化することは稀
0675デフォルトの名無しさん (ワッチョイ 03cb-wJFc)2016/09/17(土) 23:00:37.63ID:UtwXhxtU0
>>674
単に使うからって理由で新聞みたいな細かさで配置されてる画面だってあるよ
上下左右に関連なんてなくてひたすらデータが羅列されてるだけみたいな
0676デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/18(日) 01:02:53.73ID:3bUsWpmg0
エッジケースを一般論として語る
0677デフォルトの名無しさん (ワッチョイ 03cb-D0fg)2016/09/18(日) 08:10:21.19ID:Vs//CHex0
public class ListValue {
  public string Col1;
  public string Col2;

  public static void LoadFromFile(List<ListValue> list, string filename) {
    if (File.Exists(filename)) {
      using (StreamReader reader = new StreamReader(filename, Encoding.GetEncoding("shift-jis"))) {
        while (!reader.EndOfStream) {
          string line = reader.ReadLine();
          string[] splitData = line.Split('\t');

          var tmp = new ListValue();
          tmp.Col1 = splitData[0];
          tmp.Col2 = splitData[1];
          list.Add(tmp);
        }
      }
    }
  }
}

のような感じでTSVをLISTに読み込んでいますが、列数が数十もあると
tmp.Col1 = splitData[0];
tmp.Col2 = splitData[1];
が面倒なのでループにしたいと思ってます。

イメージとしては
for(略) {
  tmp[i] = splitData[i];
}
こんな感じですが、tmp[i]のような書き方はできないようです。
どのように書けばループに出来るでしょうか。
0678デフォルトの名無しさん (ワッチョイ 37ce-D0fg)2016/09/18(日) 08:50:24.05ID:Dby0x7420
public class ListValue {
public string[] Cols;

public SetSize(int len) { Cols = new string[len]; }
public string this[int i] {
set { this.Cols[i] = value; }
get { return Cols[i]; }
}

(略)
var tmp = new ListValue();
tmp.SetSize(splitData.Length);
for(略) {
  tmp[i] = splitData[i];
}
listAdd(tmp);
(略)
かな?
0679デフォルトの名無しさん (ワッチョイ 83dc-U9f6)2016/09/18(日) 08:58:10.66ID:FLMBUfED0
>>677
メンバに順序は無いので、何らかの手段で順序情報を付加してやる必要がある。
その上で、リフレクションを使って動的に値をセットする。
たとえばカスタム属性を使って以下のようにする。(動くかどうかは知らん)
public class OrderAttribute : Attribute {
 public Order(int value) { this.Value = value; }
 public int Value { get; private set; }
}
public class ListValue {
 [Order(0)] public string Col1 {get; set;}
 [Order(1)] public string Col2 {get; set;}
}
public static class TsvLoader {
 public static IEnumerable<ListValue> LoadFromFile<T>(string filename) =>
  File.ReadLines(filename)
   .Select(line => line.Split(‘¥t’))
   .Select(DeserializeRow);
 public static T DeserializeRow<T> where T : class, new() (IEnumerable<string> row) {
  var propvals = typeof(T).GetProperties()
   .OrderBy(prop => ((OrderAttribute)p.GetAttribute(typeof(OrderAttribute))).Value)
   .Zip(row, (prop, val) => new { Property = prop, Value = val });
  var obj = new T();
  foreach (var propval in propvals) { propval.Property.SetValue(obj, propval.Value); }
  return obj;
 }
}
こんなことするより素直に>>678の方がいいと思うけど
0680デフォルトの名無しさん (ワッチョイ 03cb-D0fg)2016/09/18(日) 10:43:54.66ID:Vs//CHex0
>>678
ありがとうございます。
列名を配列にするとLINQが使いにくいのかなと思っています。
以前にLISTのLISTを作った時にそうだったので、配列も同じかなと。
ですが、考え方は勉強になりました。

>>679
ありがとうございます。
こちらは列名がそのまま使えるのでいいかなと思ったのですが、
ハイレベルすぎてついて行けませんでした。

結局のところ私のようなレベルであれば、数十列あったとしても
全部書いてる方が間違いがないようです。
列が増えた時に忘れそうですが・・・

ありがとうございました。
0681デフォルトの名無しさん (ワッチョイ 37ce-D0fg)2016/09/18(日) 11:08:30.68ID:Dby0x7420
受け渡しがstring[]のままなら、
さっきの[]だけ定義して、コンストラクタで
public ListValue(string[] Cols_) { Cols = Cols_; }

list.Add(new ListValue(line.Split('\t')));
で1行に
0682デフォルトの名無しさん (ブーイモ MMbf-eXu6)2016/09/18(日) 12:47:11.68ID:Yxs7/HnaM
今だったらCSV読み込み用のNuGetライブラリを使う場面だろうけど
初心者で自作したいならCSVを読み込んでDataTableに詰め込む処理を作る
これは自前のファイル解析処理でもいいしOleデータアダプタを使ってもいいしなにか別の方法でもいい
そしてデザイナーで型付データテーブルを定義する
少し前までは平凡な現場ではこういう事をよくやっていたものだ
0683デフォルトの名無しさん (ワッチョイ 333c-eXu6)2016/09/18(日) 19:05:10.98ID:7K/Z8eac0
C#でおしゃれなUIをデザインしたいんだけどどうしたらいいですか?
Visual studioのwindowフォームだと味気ないデザインしか出来なくてこまってます
どなたか教えてください
0684デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/18(日) 19:11:21.49ID:4IEY4Cwd0
>>683
コントロールを自分で描画する
http://dobon.net/vb/dotnet/graphics/drawcontrols.html
変えるのが背景くらいでいいのならデザイナで設定できるけど
0685デフォルトの名無しさん (ワッチョイ 83dc-wJFc)2016/09/18(日) 19:21:44.92ID:FLMBUfED0
>>683
UWP使えば
0686デフォルトの名無しさん (ワッチョイ 97d4-EMlz)2016/09/18(日) 22:44:04.59ID:dUd9O0RL0
共変性についてよく理解できないのですが・・・・

class A : B {}
の時に、
B b = new A();
のようなことができると入門書などに書かれていますが、
A b = new A();
とした場合と何が違うのですか?
0687デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/18(日) 22:59:05.90ID:tyXWdZhGa
>>686
とりあえずそれは共変と全然関係ないよw
0688デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)2016/09/18(日) 23:11:20.92ID:FLMBUfED0
>>687
共変で間違ってないよ
https://msdn.microsoft.com/en-us/library/mt654055.aspx
0689デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/18(日) 23:16:40.64ID:tyXWdZhGa
>>688
いや間違ってるからw
0690デフォルトの名無しさん (ワッチョイ 97d4-EMlz)2016/09/18(日) 23:25:08.86ID:dUd9O0RL0
共変なのかどうかよくわからずに言葉を使ってしまい申し訳ないのですが、例の2つはどういう違いがあるのですか?
型がAでもBでも変わりがないように見えてしまいます
0691デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/18(日) 23:34:59.86ID:tyXWdZhGa
>>690
どのメンバーにアクセス可能かはオブジェクトの型ではなく変数の型で決まる。
だから上のbはAのみで実装されているメンバーにアクセスできない。
0692デフォルトの名無しさん (ワッチョイ 333c-eXu6)2016/09/18(日) 23:45:27.02ID:2anw7PLb0
>>685
UWPってスキンとか変更できますか?
0693デフォルトの名無しさん (ワッチョイ 97d4-EMlz)2016/09/18(日) 23:51:38.54ID:dUd9O0RL0
今試しに手元でやってみたのですが確かに派生先のメンバにはアクセスできませんでした
b is Aみたいなことをした時にtrueが返ってくるために同じではないかと勘違いしてたのがやっと理解できました
ありがとうございます
0694デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/19(月) 01:50:22.29ID:x6oYh1MF0
>>692
そんなもん標準では備わってない
せいぜいテーマ変えるくらい
https://msdn.microsoft.com/ja-jp/windows/uwp/controls-and-patterns/xaml-theme-resources
0695デフォルトの名無しさん (ワッチョイ 2351-chWY)2016/09/19(月) 07:26:38.08ID:byZSyyWN0
Formsから移行するならWPFだろうが、なんでいきなりUWPなんて話になるんだろうか。
0696デフォルトの名無しさん (ワッチョイ 333c-wJFc)2016/09/19(月) 07:56:49.85ID:R4yOZzeH0
>>695
なぜいまさらWPF?
0697デフォルトの名無しさん (ワッチョイ 4723-chWY)2016/09/19(月) 08:21:41.59ID:G088RuKS0
>>696
先週からUWP始めたけど、C++のDLLが呼び出せないとか右クリックメニューが出来ないなど
面倒なこと沢山有るよな
コントロールが増えて楽しいってのはあるんだが
0698デフォルトの名無しさん (ワッチョイ 2351-chWY)2016/09/19(月) 08:23:12.93ID:byZSyyWN0
>>696
Formsからの移行だから。
なんで見た目を変えたいってだけで制約の多いUWP薦めるのか理解不能だわ。
0699デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/19(月) 08:31:37.25ID:x6oYh1MF0
WPFにしろUWPにしろ過疎過ぎて死亡
0700デフォルトの名無しさん (ワッチョイ 03cb-wJFc)2016/09/19(月) 10:06:22.68ID:bJUofi690
>>696
オワコン確定なの?
0701デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)2016/09/19(月) 10:10:16.99ID:jZTV89ee0
始まったことすらありません
0702デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/19(月) 10:10:26.90ID:vuaz7X22M
需要がなさすぎて終わる前に始まってすらいない
一般向けはブラウザかスマートデバイス向けのアプリばっかりだし
業務用デスクトップアプリは保守要員のスキル考えるとFormsしか採用できない
0703デフォルトの名無しさん (ベーイモ MMff-qrXn)2016/09/19(月) 10:35:49.15ID:bIVnttmtM
XAMLがいけないのだよ

デスクトップ アプリを UWP アプリに変換する
https://developer.microsoft.com/ja-jp/windows/bridges/desktop
0704デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/19(月) 10:36:25.30ID:dWsrNIgMa
むしろWPFは細々続いていくと思うけど...

ストアアプリみたいにまたいつ梯子を外されるかわらからないUWPなんか
覚えようって人は余程お人よしかMSラブとしか思えない

Petzoldとか、ストアアプリで本書いた人も恐らく相当怒ってるよねw
あんなことされたら今度はUWPで本書いてやろうって気にはなかなかならないはず
0705デフォルトの名無しさん (ベーイモ MMff-qrXn)2016/09/19(月) 10:39:32.10ID:3DxG+ajbM
Microsoft、デスクトップアプリをUWPアプリへ変換するツールをWindowsストアで公開
http://pc.watch.impress.co.jp/docs/news/1020601.html

DesktopAppConverter
https://www.microsoft.com/ja-jp/store/p/desktopappconverter/9nblggh4skzw
0706デフォルトの名無しさん (スプッッ Sdbf-wJFc)2016/09/19(月) 10:50:32.07ID:CIKkLThgd
>>704
むしろ書くネタを投入してくれてると考えないと
0707デフォルトの名無しさん (エムゾネ FFbf-kmwO)2016/09/19(月) 11:13:31.53ID:ezNHULaGF
下火も下火だもんな
0708デフォルトの名無しさん (ワッチョイ fbc0-chWY)2016/09/19(月) 11:21:15.22ID:9tbHw/9w0
>>702
>保守要員のスキル
業務はこれだよな
WPFで作ってBinding楽すぎ!と使ってもらおうとしても、XAML見ただけで拒否反応示す人多すぎる
0709デフォルトの名無しさん (ワッチョイ c730-4e/M)2016/09/19(月) 11:34:18.93ID:x6oYh1MF0
XAMLは書いても書いても頭に定着しなくてさぁ…
0710デフォルトの名無しさん (ワッチョイ 179d-chWY)2016/09/19(月) 11:47:52.91ID:Jh8jv4fs0
つまりForms最高最強ってことですね?
これからも末永くよろしくお願いします
0711デフォルトの名無しさん (ワッチョイ 23ba-eXu6)2016/09/19(月) 13:38:51.97ID:VY3VanBz0
WPFだけでなくVBScriptにSilverlightも
他ブラウザでは機能しない
つまり使えない

OS支配が偉大すぎだが
得意の後追い商法も効果なし
迷走Microsoft
0712デフォルトの名無しさん (オッペケ Sr1f-wJFc)2016/09/19(月) 13:46:57.70ID:4tgdktKzr
Linqも全然使われてないですよね?
やっぱ処理が見にくいから?
0713デフォルトの名無しさん (ワッチョイ 477b-chWY)2016/09/19(月) 15:52:15.40ID:MNVYkncZ0
見にくくはないだろ
オッサンが読めないから使うなって言われてるだけじゃね
0714デフォルトの名無しさん (ワッチョイ c3d6-9vqT)2016/09/19(月) 15:56:12.87ID:Z/E4vnsc0
>>712
定期巡回お疲れ様です
0715デフォルトの名無しさん (ワッチョイ 03cb-wJFc)2016/09/19(月) 16:18:19.01ID:bJUofi690
>>712
圧倒的に読める奴は減るな
0716デフォルトの名無しさん (アークセー Sx1f-wJFc)2016/09/19(月) 16:34:06.70ID:eOwBF3hLx
>>712
はいっ!
0717デフォルトの名無しさん (ブーイモ MM9f-eXu6)2016/09/19(月) 16:56:56.28ID:fik9yetTM
今でもたまにLinqが無かった時代のコードを保守する機会があるがあれは苦痛だ
0718デフォルトの名無しさん (アウアウ Sa9f-8sPh)2016/09/19(月) 17:18:34.97ID:dWsrNIgMa
>>714
ラムダ式を出さなくなっただけ彼も進歩してるw
0719デフォルトの名無しさん (オッペケ Sr1f-wJFc)2016/09/19(月) 18:27:21.89ID:4tgdktKzr
誰のこと言ってんのかわからんけど、おれどちらかというとプログラマじゃないからここでアホみたいな質問すると思う
0720デフォルトの名無しさん (ワッチョイ bf73-chWY)2016/09/19(月) 20:49:54.41ID:DKrTn01q0
TabControl1のtabPage3にLabel1を追加したいのですが
Label a1 = new Label();
this.tabControl1.Controls.Add(a1);

this.tabPage3.Controls.Add(a1);

と試してもうまくいきませんどうしたらよいでしょうか?
0721デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/19(月) 20:58:18.08ID:wipHk/080
>>720
デザイナで設置しないのはなにか理由があるの?
Label a1 = new Label();
this.tabPage3.Controls.Add(a1);
a1.Text = "hoge"; a1.BringToFront();
最後の行は表示確認用
0722デフォルトの名無しさん (ワッチョイ bf73-chWY)2016/09/19(月) 21:18:25.46ID:DKrTn01q0
>>721
ありがとうございます。
tabControl1にたいしてtabPage1〜かと思ったら
tabControl1,2,3含めてtabPage1〜が増えるんですね。

データが固定じゃないのでデータによって
tabControl1のtabPageを増やすのをできるようにしたかったのです。
0723デフォルトの名無しさん (ワッチョイ bf73-chWY)2016/09/19(月) 21:19:03.49ID:DKrTn01q0
>>721
解決しましたありがとうございます。
0724デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/19(月) 21:36:38.88ID:wipHk/080
とりあえずデザイナで設置してみてDesigner.csの中身を見てみればよかったな。
他のコントロールでも同じだけど
721も自分のDesigner.csの中身を見て書いただけだしw
0725デフォルトの名無しさん (ワッチョイ 179f-AKTw)2016/09/20(火) 13:59:33.52ID:qGlVjJF90
>>722
デザイナでタブコントロール複数設置すれば一目瞭然だが
tabContorol変わってもtabPageは1に戻らないよ

tabControl1.TabPages[ページIndexまたはタブのName].Controls.Add(a1);
0726デフォルトの名無しさん (ワッチョイ 1742-SOVl)2016/09/20(火) 22:11:37.32ID:G5yMgC3y0
>>708
俺、昔、HTML見ただけで拒否反応出たわ
Web系なんて一生やらんと思ってたのに今やってるわ
0727デフォルトの名無しさん (ワッチョイ 1742-chWY)2016/09/21(水) 16:00:32.26ID:2I665Pjk0
ツリービューの幅をジャストフィットさせる方法を教えてください
ノードの右端の座標とか水平スクロールバーが現れる幅とかが取得できればと思うのですが
0728デフォルトの名無しさん (ワッチョイ a319-tp8f)2016/09/21(水) 17:35:44.35ID:b0Nua/000
表示されてるノードを走査してそれぞれのBounds.Rightを確認すればいいんじゃね
0729727 (ワッチョイ 1742-chWY)2016/09/21(水) 18:35:23.37ID:2I665Pjk0
>>728
ありがとうございますピッタリできました
Bounds 見過ごしてました
これからはもっとよく確認します
0730デフォルトの名無しさん (ワッチョイ 333c-D0fg)2016/09/21(水) 21:58:19.91ID:lQOLvI1I0
>HTML見ただけで拒否反応
これは解らんが

>Web系なんて一生やらんと思ってたのに今やってるわ
これは解る
0731デフォルトの名無しさん (ワッチョイ c35b-NmdU)2016/09/21(水) 23:08:54.93ID:JVLqoW6f0
c#のお作法的に、フィールドに初期値をもたせるのって宣言と同時に直接代入するのとコンストラクタで設定するのってどちらが良いのでしょうか
0732デフォルトの名無しさん (ワッチョイ 333c-D0fg)2016/09/21(水) 23:22:23.88ID:lQOLvI1I0
親クラスのコンストラクタで、子クラスのフィールドを利用する事があるなら
フィールドの宣言時に初期値を持たせておく
0733デフォルトの名無しさん (ワッチョイ 977b-a0dx)2016/09/21(水) 23:47:25.62ID:o5hoVk+q0
string hoge = "hogehoge";
string fuga = hoge;

とした場合、fugaにはhogeのオブジェクトがコピーされて入るのですか?
それともhogeの参照のみがコピーされるのですか?
0734デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)2016/09/21(水) 23:48:50.32ID:bQEJ8r3q0
>>731
一般論として、プログラムはなるべく宣言的に書くのが良い
その意味でベストなのは宣言時代入かつreadonlyで、それができる場合は迷わずそうするべき
readonlyにできない場合は好みの問題だな
初期値だけを特別扱いするのは不自然だと感じる人もいれば宣言時代入の方が宣言的で見やすいと感じる人もいる
0735デフォルトの名無しさん (ワッチョイ 175e-9vqT)2016/09/21(水) 23:51:34.59ID:49I69gX00
>>733
変数の場合は値が代入される
クラスの場合は参照になる
0736デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)2016/09/21(水) 23:53:56.45ID:bQEJ8r3q0
>>733
参照のみがコピーされるけど、Stringに関しては実用的にはそれを区別する必要はない
なぜならStringオブジェクトはイミュータブル(変更不能)なので、
インスタンスに対する変更の影響が同じインスタンスを参照する他の場所に波及するようなことは起こらないから
0737デフォルトの名無しさん (ワッチョイ 1690-5q76)2016/09/22(木) 00:26:12.39ID:QaFi4YJK0
さて、某月額費用の掛かるアダルトサイトの

動画をDLするプログラムを頑張って作ります。

ハマったらここに質問するので宜しくね!

ちまちま手動ダウンロードに付かれた。
出来たら便利で公開したいけど、公開したら俺ってばれるwww
0738デフォルトの名無しさん (ドコグロ MMf4-xdvH)2016/09/22(木) 08:50:28.86ID:pXuo09J0M
http通信あたりから勉強したらどうだろう?
0739デフォルトの名無しさん (ワッチョイ cd5b-aBDa)2016/09/22(木) 11:50:22.29ID:TiDB0J3t0
>>732>>734
ありがとうございます
参考になりました
0740デフォルトの名無しさん (ワッチョイ 595b-xjL4)2016/09/22(木) 13:01:39.48ID:R6k9xPvT0
オラクルのプロシージャの引数を結合配列(構造体配列)とした時、C#(というか.NET)でどういう風にパラメータを設定すればいいのかご存じの方いますか?
たとえば、下のような結合配列の型「TEST_TBL」をパッケージの仕様部で定義して、プロシージャの引数にした場合、
これを.NETから呼び出す時、DataTableやListを引数に指定することはできるのでしょうか?

TYPE TEST_REC IS RECORD(
A varchar2(8),
B number
);

TYPE TEST_TBL IS TABLE OF TEST_REC INDEX BY BINARY_INTEGER;

PROCEDURE TESTPROCEDURE(
prmTBL IN TEST_TBL
)

ググっていろいろ試しているのですが、なかなかうまくいきません。
単項目(numberやvarchar2)の配列なら実現できたのですが、項目数が多くなると煩雑になるので、上記のようなやり方ができるととても便利なのですが・・・。
0741デフォルトの名無しさん (ワッチョイ d7e2-NoHY)2016/09/22(木) 16:37:30.73ID:wTxDVkWz0
private async Task PageLoad()
{
TaskCompletionSource<bool> PageLoaded = new TaskCompletionSource<bool>();
webBrowser1.DocumentCompleted += (s, e) =>
{
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete) return;
if (PageLoaded.Task.IsCompleted) return;
PageLoaded.SetResult(true);
};
while (PageLoaded.Task.Status != TaskStatus.RanToCompletion) { await Task.Delay(10) }
}

webbrowser1.navigate(URL)の読み込みを待つ関数なんですが、これはどういう原理で動いてるんですか?
DocumentCompletedのイベントにawaitタスクを挟んで非同期にして処理の終わりを待つんですよね?
でもDocumentCompletedはドキュメントの読み込みの処理の終わりにしか呼ばれないなら
ラムダ内部はSetResult()だけでいいのかと思えば、そうするとエラーでます。
0742デフォルトの名無しさん (アウアウ Sa25-S2gS)2016/09/22(木) 18:25:46.65ID:Xy0e3ZYia
ゲームや家電のUIでよくある、背景色には透過がかかってるけど文字だけは
不透明みたいなウィンドウってWindows Formでは実現難しかったっけ?
0743デフォルトの名無しさん (ワッチョイ 1c5e-xjL4)2016/09/22(木) 18:36:07.99ID:BI5UtsIL0
>>742
コントロール個別は無理だがForm全体は透過を設定できる。Form.Opacity
0744デフォルトの名無しさん (ワッチョイ d78c-xjL4)2016/09/22(木) 19:09:11.54ID:9JyT007J0
初歩的な質問ですみません

実行したら
アプリ(さんぷるA)にフォーカスが移り
F5
Ctrl + v
Tab
Enter

の順にキー入力するにはどうすればいいのですか?
また実行後アプリを終了するようにするにはどうすればいいのですか?
0745デフォルトの名無しさん (ワッチョイ 1c5e-xjL4)2016/09/22(木) 19:17:50.59ID:BI5UtsIL0
>>744
多分この辺
http://whoopsidaisies.hatenablog.com/entry/2013/11/27/222127
終了はProcess クラス
https://msdn.microsoft.com/ja-jp/library/system.diagnostics.process%28v=vs.110%29.aspx
CloseMainWindow()かKill()
0746デフォルトの名無しさん (ワッチョイ d78c-xjL4)2016/09/22(木) 19:24:09.54ID:9JyT007J0
>>745
ありがとうございます
0747デフォルトの名無しさん (フォォーッ MM1f-5q76)2016/09/22(木) 19:42:42.51ID:Kf3JakCfM
>>742
バックカラーを透明色に指定すればできる

例
Label1.BackColor = Color.Transparent;
0748デフォルトの名無しさん (ワッチョイ 9f49-Pb1R)2016/09/22(木) 20:16:17.95ID:c0uylKlH0
>>742
Opacityプロパティを設定すれば半透過には出来るけど、文字も含めてウィンドウ全体がそうなっちゃう.。

>>747
ウィンドウやコントロールに対しては設定できないよ。実行時にArgumentExceptionが出る。
0749デフォルトの名無しさん (ワッチョイ 1c5e-xjL4)2016/09/22(木) 20:31:26.88ID:BI5UtsIL0
ああ、全ての表示が透過になるんだったなw>>743はダメだ
>>748
フォームかパネルの背景が見えてコントロールが透けるだけでいいのなら>>747で良くないか
一部Transparentにできないコントロールはあるけど
。
ボタンとかはできてトラックバーは反映されなかったと思う
0750デフォルトの名無しさん (フォォーッ MM1f-5q76)2016/09/22(木) 20:50:15.82ID:Kf3JakCfM
>>742さんのやりたいことのバックがなんなのかわからないけど
PictureBox1.Controls.Add(Label1);
とやればピクチャーボックスが見えつつラベルの背景色を透明にできるけどどうなんだろう
0751デフォルトの名無しさん (ワッチョイ 7e9f-djfZ)2016/09/22(木) 21:20:00.93ID:TQKVxpQC0
背景を透過にする時は文字を縁取りしないとまともに読めないから面倒だよな
文字の描画を独自で作らないといけなくなって、「やってられるか」って手を抜くと
使えない機能が残って、結局ゴミアプリ度が上昇して終わる
0752デフォルトの名無しさん (ワッチョイ 613c-UBrL)2016/09/22(木) 21:24:26.75ID:yLq2H4nH0
WPFでやれって話になるわけか
0753デフォルトの名無しさん (アウアウ Sa25-S2gS)2016/09/22(木) 21:30:46.76ID:s0Lz39vRa
>>750
画像検索でググっても適当なのがなかなか見つからないけど、
例えばこれのメッセージ表示部のような感じ。
http://userdisk.webry.biglobe.ne.jp/014/515/82/N000/000/000/137165007335113123937_gamek-kaku2.png

>>743,>>747,>>748
とりあえずレスどうも。
やっぱりWindows Formでは少なくとも簡単は方法はなさそうですね。

昔調べてWin32API使う必要があるのは知ってましたが、上のようなUIもメジャーになってるし
さすがに今はもっと簡単な方法が提供されれるかもと思ったんですが、メンテナンスモードの
Windows Formにそういうのはやはり期待する方が間違ってるか。

まあ、WPF使えばいいんでしょうけどね。個人的に嫌いだからw
0754デフォルトの名無しさん (フォォーッ MM1f-5q76)2016/09/22(木) 21:43:19.99ID:q3QSoo39M
>>753
その画像ならこれでできますよ
PictureBox1.Controls.Add(Label1);
Label1.BackColor = Color.Transparent;
0755デフォルトの名無しさん (フォォーッ MM1f-5q76)2016/09/22(木) 21:47:08.11ID:q3QSoo39M
もう少し詳しく書くとこうです
PictureBox1.Controls.Add(PictureBox2);
PictureBox2.Controls.Add(Label1);
Label1.BackColor = Color.Transparent;

PictureBox1に背景画像を入れてPictureBox2にメッセージ画像を入れれば参考画像のようになりますよ
0756デフォルトの名無しさん (フォォーッ MM1f-5q76)2016/09/22(木) 21:56:40.44ID:q3QSoo39M
あ、半透明ですかw

ここにサンプルありますよ
http://dobon.net/vb/dotnet/graphics/hadeinimage.html
0757デフォルトの名無しさん (フォォーッ MM1f-5q76)2016/09/22(木) 21:57:49.20ID:q3QSoo39M
>>756 + Label1.BackColor = Color.Transparent;でできると思います
0758デフォルトの名無しさん (アウアウ Sa25-S2gS)2016/09/22(木) 23:02:13.93ID:s0Lz39vRa
>>755
ああ、確かにウィンドウ内の一部の領域ということなら方法はありそうですね。

トップレベルウィンドウの背景の一部または全部を他のウィンドウに対して
透過する方法はやっぱりないですよね。
0759デフォルトの名無しさん (ワッチョイ dddc-IfJd)2016/09/22(木) 23:06:35.01ID:P28LZX5F0
>>741
バグってるぞこれ
イベントハンドラを追加しっぱなしで削除してないから、PageLoadを呼ぶたびにイベントハンドラが増える
だからIsCompletedの条件を削除するとSetResultの2度目の呼び出しが発生してエラーになるはず
最後の馬鹿みたいな完了待ちループといい、これ書いた本人がTaskを正しく理解してないからこんなもん真似しちゃダメ
正しくはこんな風にする
private Task PageLoad(Uri uri) {
TaskCompletionSource<bool> pageLoaded = new TaskCompletionSource<bool>();
EventHandler handler = (s, e) => {
 if (webBrowser1.ReadyState == WebBrowserReadyState.Complete) {
  webBrowser1.DocumentCompleted -= handler;
  pageLoaded.SetResult(true);
 }
};
webBrowser1.DocumentCompleted += handler;
webBrowser1.Navigate(uri);
return pageLoaded.Task;
}
0760デフォルトの名無しさん (ガックシ 0694-pbYT)2016/09/23(金) 15:45:17.32ID:LY9xYEOG6
下記のページで紹介されている
同じレベルのコントロールを含めて透明に表示するということをやりたいんですが
http://mitsu.three-atmarks.com/archives/10696#
僕の理解力がないせいで、上のページで言われている
要は、背面のコントロールを描画するときに、
Graphicsの原点を背面のコントロールの位置にずらせれば、
直接コントロールに描画出来るはず。
という部分について、なぜこのようにすれば直接コントロールに描画できるのか
理解できないです。もう少し分かりやすく説明していただける方が
いらっしゃればありがたいです。
0761デフォルトの名無しさん (アウアウ Sa25-S2gS)2016/09/23(金) 17:38:10.48ID:pqhQamNta
>>760
コントロールAがForm上の(50, 50)、コントロールBが(100, 100)にある時、
Bから見て、つまりBの左上を原点とする座標系では、Aの位置は(-50, -50)
になるのは分かる?

つまり、Bの背景にAを画像として描画するとき、左上が(-50, -50)になる位置に
描画しなければならない。

全部は読んでないけど、君が引用してる部分が言ってるのはただそれだけの話だと思うけど。
0762デフォルトの名無しさん (ガックシ 0694-pbYT)2016/09/23(金) 18:23:52.80ID:LY9xYEOG6
>>761
なるほどです
分かりやすい説明ありがとうございました!!
難しく考えてたみたいです
0763デフォルトの名無しさん (ワッチョイ b4ce-UBrL)2016/09/24(土) 03:08:32.58ID:y416C6jo0
Win7とWin10でFormに動的に配置したコントロールの位置が変わってしまうんですが
10のバグでしょうか
0764デフォルトの名無しさん (アウアウ Sa25-S2gS)2016/09/24(土) 03:11:46.60ID:iY+8jZQKa
>>763
まずは問題を再現可能なサンプルをプリーズ
こういう場合はまず間違いなくバグってるのはユーザーコードだと思うけどw
0765デフォルトの名無しさん (ワッチョイ b4ce-UBrL)2016/09/24(土) 08:56:19.69ID:y416C6jo0
↓のようなコードです。10の最新版だと下側のボタンがTextBox1に隠れてしまう
using System;
using System.Windows.Forms;
public partial class Form1 : Form {
public StatusBar StatusBar1;
public Button Button1, Button2;
public TextBox TextBox1;
private void Form1_Load(object sender, EventArgs e) {
StatusBar1 = new StatusBar();
StatusBar1.Text = "StatusBar1";
this.Controls.Add(StatusBar1);

Button1 = new Button();
Button1.Left = 5; Button1.Top = 5; Button1.Width = 100;
Button1.Text = "Button1";
this.Controls.Add(Button1);

TextBox1 = new TextBox();
TextBox1.Multiline = true;
TextBox1.ScrollBars = ScrollBars.Vertical;
TextBox1.Left = Button1.Left;
TextBox1.Top = Button1.Bottom + 5;
TextBox1.Width = ClientSize.Width - 10;
TextBox1.Height = ClientSize.Height - (TextBox1.Top + StatusBar1.Height + Button1.Height + 10);
TextBox1.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right);
TextBox1.Text = "TextBox1";
this.Controls.Add(TextBox1);
0766デフォルトの名無しさん (ワッチョイ b4ce-UBrL)2016/09/24(土) 08:57:08.71ID:y416C6jo0
Button2 = new Button();
Button2.Left = TextBox1.Right - Button1.Width;
Button2.Top = TextBox1.Bottom + 5;
Button2.Width = Button1.Width;
Button2.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);
Button2.Text = "Button2";
this.Controls.Add(Button2);
}
public Form1() {
this.Load += new EventHandler(this.Form1_Load);
}
[STAThread]
private static void Main(string[] args) {
Application.Run(new Form1());
}
}
0767デフォルトの名無しさん (ワッチョイ b4ce-UBrL)2016/09/24(土) 10:10:10.95ID:y416C6jo0
すいません気のせいでした。
スクリーンサイズが小さくなった時にウィンドウのボタンが画面外にあったのをを勘違いしてました。

あと別件ですが、Win7と10のバイナリを共通にしたいのですが、
OSデフォルトのNET3..5とNET4共通バイナリを作る方法ってないでしょうか。
ネイティブだと1本で済むのにOSランタイム毎にビルド管理とかちょっとやってられない、
そんな気がして。
0768デフォルトの名無しさん (ワッチョイ 8dd6-xjL4)2016/09/24(土) 11:13:46.90ID:oK3h3qVH0
3.5で作るかインストールPCにランタイム入れれば良いじゃん
それが嫌なら.Net Frameworkは使うな
0769デフォルトの名無しさん (ワッチョイ a030-PAdl)2016/09/24(土) 11:29:43.09ID:hsY2X9yo0
(そんな方法は)ないです

って答えればいいんだよ
欲しがりは成長と進化の基礎だからいいの
0770デフォルトの名無しさん (アウアウ Sa25-S2gS)2016/09/24(土) 11:52:58.88ID:JwK8cJB+a
ありますよw
厳密には指定できるのは.NET FRameworkのバージョンじゃなくてCLRのバージョンみたいだけど
https://msdn.microsoft.com/ja-jp/library/jj152935(v=vs.110).aspx
0771デフォルトの名無しさん (ワッチョイ d7c0-5q76)2016/09/24(土) 12:00:45.52ID:Of8aeM470
こういうの見るとMSがテロ紛いでWin10にしたがる気持ちが判らんでもないな
0772デフォルトの名無しさん (ワッチョイ 9f49-cp+5)2016/09/24(土) 14:46:53.85ID:1AtHYWO90
>>767
WindowsUpdateはしないの?
Windows7でも最新のWindowsUpdateまで適用すれば、Windows10と変わらんぞ。
0773デフォルトの名無しさん (ワッチョイ d77b-su3J)2016/09/25(日) 15:25:15.21ID:fq9dYi1p0
インターネットからは遮断するからって言ってXP使うとかよくある話
こっそり繋ぐ奴がいるのもよくある話
0774デフォルトの名無しさん (ブーイモ MMad-Px3x)2016/09/25(日) 16:36:01.47ID:4xz/DsvPM
破滅的なコードのせいでマイグレートできないので古いシステムをごまかしごまかし使うしかないんだよね
我々も反省しなければならない
0775デフォルトの名無しさん (ワッチョイ 5b5b-7Sel)2016/09/29(木) 00:23:18.02ID:+0Qp1kVd0
C#の勉強を始めたのですが
オープンソースでいいお題(アプリ)が置いてあるところ無いでしょうか
0776デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/09/29(木) 01:40:43.54ID:/9QwJEmmM
Githubとかかな
0777デフォルトの名無しさん (ワッチョイ 5b5b-7Sel)2016/09/29(木) 12:47:00.61ID:+0Qp1kVd0
>>776
ありがとうございます
GitHubで探してみましたが自分の探しかたがいけないのかいい感じのものがヒットしませんでした
また何かあれば宜しくお願い致します
0778デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/09/29(木) 15:02:11.83ID:Rdq+cK8X0
C# で作られた他のソフトにある
ステータスバーのパネルの文字を取得する方法を教えてください

こちらを参考にしましたがパネルの情報が取れないよう
http://www.pinvoke.net/default.aspx/user32/SB_GETTEXT.html
0779デフォルトの名無しさん (ワッチョイ 7b19-GPCj)2016/09/29(木) 15:07:55.35ID:DKzjXM9a0
まずそのステータスバーのパネルの文字ってのは
spy++でウィンドウ辿っていって見つかるかどうか
見つからなかったら無理 IAccessibleでワンチャンあるかも
0780デフォルトの名無しさん (ワッチョイ 1f13-rzru)2016/09/29(木) 15:28:30.93ID:VK4C2vGz0
>>775
MSDNのサンプルコード
https://msdn.microsoft.com/ja-jp/library/z9hsy596(v=vs.120).aspx
0781デフォルトの名無しさん (ワッチョイ 27ce-ETlQ)2016/09/30(金) 03:42:26.49ID:j/prnWis0
>>778への回答にはならないけど
昔ロボワードって製品があって、マウスカーソルがフォーカスするテキストを
GDIのTextOutを横取りする離れ業で文字列を取得して翻訳をポップアップ表示してた
今ってそういう事はできないかねえ
Spy++で取ってこれる程度ならいいんだけど
上相当を行う仕組みって用意されてないのかな
0782778 (ワッチョイ 4742-RPp1)2016/09/30(金) 10:44:19.74ID:IP2ANi1b0
>>779 >>781
ありがとうございます
素人なのでちんぷんかんぷんですが
StatusStrip はステータスバーではないため SB_GETTEXT 等が反応しないようです

>>779 さんのいう通り IAccessible だと可能なようですね
他のコントロールや他言語での情報が見られました
粘ってチャレンジすれば素人の自分でもいけそうですが時間がなくてすぐにはムリそうです

>>781 さんの通り描画や極論 OCR みたいのでというアプローチも調べていましたが
実現できたとしても相当大変そうですね

皆様方にご検討いただき感謝しておりますが時間の関係上諦めることにします
0783デフォルトの名無しさん (ワッチョイ 4fe1-rzru)2016/09/30(金) 11:09:21.12ID:sdeI0aJe0
今はIAccessibleよりUIAutomationでは
0784デフォルトの名無しさん (ワッチョイ 27ce-ETlQ)2016/09/30(金) 17:32:46.15ID:j/prnWis0
デバッガでステータスバー描画時に文字列を何のAPIを使って描いてるのか調べて
そのAPIを挿げ替えるか、下のようなのを試してみるとか
テキスト取得DLL※シェアウェア
http://www.vector.co.jp/soft/winnt/prog/se498161.html
0785デフォルトの名無しさん (ワッチョイ 477b-RPp1)2016/09/30(金) 18:00:54.22ID:Uo+9x4Cm0
C#の質問ではないのですが、ラベルが最大100個必要とします。
その都度の場面で1個必要であったり、10個必要であったり、100個必要であったりします。
ラベルの最大数を抑える為に、ラベルの若い順に多用し、コードを書く方法と、
最大数が数倍に増えてたとしても、その場面専用のラベルを作成し、コードを書く方法はどちらが適切なんでしょうか。
C#の質問というより、プログラムの質問になりましたが、よろしくお願いします。
0786デフォルトの名無しさん (ワッチョイ 4b6a-PJif)2016/09/30(金) 20:00:11.33ID:JoKU75pb0
負荷が問題になるまでは見通しのよいコードを選ぶわ
0787デフォルトの名無しさん (オッペケ Srb7-Xr8z)2016/09/30(金) 20:35:09.51ID:gcbWMuu4r
>>785
日本語で頼む
0788デフォルトの名無しさん (ワッチョイ 27ce-ETlQ)2016/09/30(金) 20:48:47.86ID:j/prnWis0
>>785
表示する度に毎回作成するつもりだとしたら誤り。
最大100なら100個最初から用意して不要なのは非表示にしとく。
それとラベルは1個1個定義するんでなく適当なコンテナにまとめて管理する。

ただ子ウィンドウが100枚は環境によってはチラつきが目立ったりする要因になるから
1枚パネルに100枚分直接描画する事も検討した方が良い。
手間はラベル100個管理するより掛かるけど直接描画は圧倒的に処理が軽い。
0789デフォルトの名無しさん (ワッチョイ c7d4-js6q)2016/09/30(金) 20:50:39.14ID:FOsPpkI40
配列のメモリがいつ確保されるのかについて教えて欲しいのですが
int[] i = new int[10000];
このような配列の宣言とメモリの確保した場合、参照用変数10000個分のメモリは確保されていてもint型10000個分のメモリは未だ確保されていないという認識であっているのでしょうか?
0790デフォルトの名無しさん (ワッチョイ 9bdc-rzru)2016/09/30(金) 20:56:17.43ID:4hxo3I+i0
>>789
intは値型だから参照を介さない
int型1000個分のメモリが確保され、配列オブジェクトへの参照がiへ入る
0791デフォルトの名無しさん (スププ Sd8f-rzru)2016/09/30(金) 22:20:33.12ID:Fmt1sBQdd
>>785
そういうのはListViewコントロールに任せちゃうね
0792デフォルトの名無しさん (ワッチョイ 177b-RPp1)2016/10/01(土) 02:32:14.82ID:wBNDJc4Z0
>>786-788
説明下手および説明不足ですみません。
見通しの良いコードを選ぶということは、分割したほうがいいということでしょうか。

ラベルだけだと説明が足りないので、ボタン3個も追加します。
ラベル100個とボタン3個で色々なパターンの処理を書いた場合についてですが、

例1
ボタン1のクリックイベントにラベルを10個表示するコードを書きます。
そして、ボタン2のクリックイベントにラベルを50個表示するコードを書きます。
最後に、ボタン3のクリックイベントにラベルを100個表示するコードを書きます。

例2
ボタン1のクリックイベントに、if文を書いて、もし場面1ならラベルを10個表示し、
もし場面2ならラベルを50個表示し、もし場面3ならラベルを100個表示する。
というようなコードを書いたとします。


この2つの処理は、例1だと処理を分散することによって読みやすくなると思います。
例2だとボタンを2個削減することができますが、コードが長くなって読み難くなると思います。
行数が増えれば増えるほど、例1が扱いやすくなって、例2は扱いにくくなると思います。
みなさんは、例1と例2ではどちらの書き方を選ぶのでしょうか。
もしくは、もっと管理しやすい別の書き方はありませんでしょうか。
0793デフォルトの名無しさん (アウアウ Sa17-uEQG)2016/10/01(土) 02:39:53.61ID:zlQj50UYa
>>792
結局何を聞きたいの?
そういう処理が本当に必要なわけ?
たぶん違うよね?

実現する必要もない処理の実現方法を聞いて何になるの?
0794デフォルトの名無しさん (ワッチョイ 9730-PJif)2016/10/01(土) 02:54:00.68ID:MIaIeT8n0
そんなコード書かないからどちらも選ばないね
0795デフォルトの名無しさん (ワッチョイ 4fe1-rzru)2016/10/01(土) 02:56:03.71ID:tNbhSEQ70
>>792
利用者目線で使いやすい方を選ぶ
どっちのパターンでも見やすくすることは簡単
0796デフォルトの名無しさん (ワッチョイ 177b-RPp1)2016/10/01(土) 03:03:54.21ID:wBNDJc4Z0
>>793
似たようなコードを何度も再利用する場合、どうコードを書けば最適なのか聞きたいです。
最初は、例1のような書き方をしていて、同じ物を何度も使うのなら、例2にしたほうが無駄が省けるんじゃないかと思い、現在例2で書いてるところなのですが、
現状でも凄い長さになっていて結構読み難いと思い始めてここへ質問にきました。

>>794
似たような処理が不規則に発生する場合、どのように書いてますか?。
0797デフォルトの名無しさん (ワッチョイ 177b-RPp1)2016/10/01(土) 03:07:50.73ID:wBNDJc4Z0
>>795
なるほど、利用者目線ですか。
個人で開発していて、利用者側のほうは考えてませんでした。
どちらでも見やすくできるのですか!。
どう工夫すればどちらでも見やすくすることができるのでしょうか?。
0798デフォルトの名無しさん (ワッチョイ 27ce-ETlQ)2016/10/01(土) 03:44:10.04ID:q3q/lNQ30
そもそもラベル100個表示して、それを見てユーザーがどう思うか考えろ
ユーザーの感想は恐らく「うわーナニコレ気持ち悪い」だよ
まずラベル100個から離れろ
次にユーザーが使う事を前提に考えろ
このままだとまるで頭のおかしい子だぞ
0799デフォルトの名無しさん (ワッチョイ 1f13-rzru)2016/10/01(土) 03:48:04.09ID:rH9xy5Nb0
だからラベル100個も必要ならListView使えっつうの
0800デフォルトの名無しさん (アウアウ Sa17-uEQG)2016/10/01(土) 04:18:56.28ID:zlQj50UYa
言っちゃ悪いけど、アホな中学生が友人に「お前○○(アイドル)に告られたらどうする?」
って聞く類のバカ話にしか聞こえんね。
0801デフォルトの名無しさん (ワッチョイ 47b5-RPp1)2016/10/01(土) 07:10:23.61ID:VMhdEcdj0
C#と直接関係ないんだけどzipで配布するような単純なユーティリティソフトの場合
設定を保存する場所と形式ってどこが良いのかな?

一応Environment.SpecialFolder.ApplicationData以下にXMLで保存する方法と
exeと同一フォルダにiniで保存する2通り作ってみた
VS的にはapp.exe.conifgなんだろうけどなんか気持ち悪い
個人的にはiniの方がファイルが分散しないので好きだけど
今時iniで大丈夫なのか不安もあるので諸兄の意見を聞かせてくれまいか
0802デフォルトの名無しさん (ワッチョイ 9bdc-rzru)2016/10/01(土) 07:51:06.67ID:rAdXsmVI0
>>801
ファイル形式と場所は別問題だろ
俺ならJSONでexeと同じ場所
0803デフォルトの名無しさん (ワッチョイ 47b5-RPp1)2016/10/01(土) 08:05:14.50ID:VMhdEcdj0
>>802
iniの方がじゃなくて同一フォルダの方がだね悪かった
同一フォルダでやります
0804デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/01(土) 08:35:09.10ID:ERiJSEHrM
>>796
例題の設定がよくわからない
1つの画面がある
画面の状態によって画面内のラベルの数が変わる
画面の状態を変えるボタンが3つある
これで良いのか?
0805デフォルトの名無しさん (オッペケ Srb7-Xr8z)2016/10/01(土) 10:04:44.50ID:5I4x+GEMr
ラベルとボタンに対応するオブジェクトを、それぞれItemsSourceにBindingで解決。
0806デフォルトの名無しさん (ワッチョイ 177b-RPp1)2016/10/01(土) 12:47:01.78ID:wBNDJc4Z0
>>790
例には書いてませんが、位置、カラー、フォントなどがその場面場面で変わるので、ListViewではできないんじゃないでしょうか。

>>804
その解釈で間違いないです。

>>805
これからやってみます!
0807デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/01(土) 13:13:07.74ID:qYztZe37M
ボタンの配置方法に規則性がないなら
パターン毎にカスタムコントロールを作りそのコントロールの要素としてラベルなどを貼り付ける
作成した幾つかのカスタムコントロールを画面に配置する
押されたボタンによって各カスタムコントロールの表示非表示を切り替える
0808デフォルトの名無しさん (ワッチョイ 1723-RPp1)2016/10/01(土) 14:21:29.02ID:7+OjnMag0
>>806
1.xamlで書く
2.オーナードローを使う
俺は1がお薦めだな
0809デフォルトの名無しさん (ワッチョイ 177b-RPp1)2016/10/01(土) 18:45:47.86ID:wBNDJc4Z0
>>807
処理が重過ぎなければ、その方法で管理したほうがよさそうですね!。

>>808
xamlで書くとはどういうことですか。
0810デフォルトの名無しさん (ワッチョイ 1f13-rzru)2016/10/01(土) 20:44:27.08ID:rH9xy5Nb0
>>809
WPFとかXamarinとか ->XAML
0811デフォルトの名無しさん (ワッチョイ 1f20-rzru)2016/10/01(土) 21:36:18.35ID:8pjQj2AO0
C#好きなんだけど
Windowsが落ち目気味だし
そもそもプログラ厶作る人間は
賤業従事者みたいな空気が
なんか辛くなってきました

そんなC#最大の問題を
皆さんどう考えてますか
0812デフォルトの名無しさん (ワッチョイ 1f20-rzru)2016/10/01(土) 21:39:36.33ID:8pjQj2AO0
面接で
C#やってました
と言っても

言語とか底辺の覚えることだし
興味ないから
SEとかやったことないの?
使えねえ

という空気が苦しいです
0813デフォルトの名無しさん (ワッチョイ 9ba6-68Ay)2016/10/01(土) 21:55:14.00ID:oaKP8GxL0
それC#じゃなくてお前自身の問題じゃね?
0814デフォルトの名無しさん (ワッチョイ 1f20-rzru)2016/10/01(土) 22:07:43.59ID:8pjQj2AO0
大手Sierの従兄妹の結婚式に出たら
彼女の上司が
○○ちゃんもプログラマを卒業して
SEになり と祝辞を言ってた

プログラムする人間なんて
社会経験の浅い若造ってことだなと
痛感したよ

少なくとも25歳超えてプログラマとか
IT業界じゃ負け犬という認識なんだなと思った28歳の秋
0815デフォルトの名無しさん (ワッチョイ 1f20-rzru)2016/10/01(土) 22:09:38.38ID:8pjQj2AO0
プログラマの給与基準が
新卒レベルなのが
現実を物語ってるわ
0816デフォルトの名無しさん (ワッチョイ eb3c-ETlQ)2016/10/01(土) 22:17:36.09ID:j4WTV/sN0
PGに限らず、国の体質として技術屋の地位が低い事については確かに思う所はあるが

まあなんだ マ板でやれ
0817デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/01(土) 22:27:05.88ID:RzLhZEUm0
>>816
それでも品質No.1なんだなぁ
0818デフォルトの名無しさん (ワッチョイ 1f20-rzru)2016/10/01(土) 22:27:24.97ID:8pjQj2AO0
マ板は、多重請負が酷すぎるという
書き込みしか見なくなった

LINQの機能に感動すら覚えるほど
C#が好きなのに
プログラマが先行きの怪しい業種と化していて悲しい
0819デフォルトの名無しさん (ワッチョイ 1f13-rzru)2016/10/01(土) 22:38:25.09ID:rH9xy5Nb0
プログラミングやめたいならもうム板にもこなくていいだろ
0820デフォルトの名無しさん (オッペケ Srb7-Xr8z)2016/10/01(土) 22:39:25.90ID:FxQOa5OAr
LINQ毛嫌いする人いるよなあ。
あんなに便利なのに。
ほんの少しの努力はいるけど。
0821デフォルトの名無しさん (アウアウ Sa17-uEQG)2016/10/01(土) 22:47:05.90ID:IEObNzvoa
>>818
今はだいぶ少なくなったんだよw
前は本当にそういう恨み言だらけだった

正直、あの手の連中は自分の問題を企業や業界の問題に
摩り替えているだけにしか思えない。

プログラマって職業を舐めてる。
昔デモシカ教師って言葉があったけど、何を勘違いしたかデモシカでプ
ログラマになってる奴が多すぎるんだな。
0822デフォルトの名無しさん (スププ Sd8f-rzru)2016/10/01(土) 22:47:20.08ID:UJVgAevHd
>>820
だってWhere().Select()で書いた方が短く書けるもん
0823デフォルトの名無しさん (ワッチョイ 1f20-RPp1)2016/10/01(土) 23:25:00.17ID:8pjQj2AO0
LINQ便利だけど
統括する若い女SEが理解できないという理由で
Datasetとか使う羽目になった

多次元配列に二次元配列突っ込む大卒のSEと
Micro-ORMとLINQを使う中年高卒プログラマの俺

大卒とか、高卒中年の俺が目を回すような
新技術とか使ってくるのが普通だと思ってたんだけど
今の大学はプログラムなんてまともに教えてないんだろうなと感じた

まあ、底辺の賤業なんて、大学で学ぶ価値無いもんな
0824デフォルトの名無しさん (ワッチョイ 1f20-RPp1)2016/10/01(土) 23:28:39.54ID:8pjQj2AO0
つか、女SEは、デリゲートどころか継承すら忌避するんだけど
大学ではもうプログラムの授業は必須じゃないのかね?

高卒中年には事情が分からんよ
0825デフォルトの名無しさん (ワッチョイ eb3c-rzru)2016/10/01(土) 23:33:06.55ID:R05VqS280
>>824
そんな職場で働く自分を恨め
嫌なら転職しろ
0826デフォルトの名無しさん (ワッチョイ 1f20-RPp1)2016/10/01(土) 23:37:51.58ID:8pjQj2AO0
>>825
プロジェクトが終わるまでは
付き合わないとダメかなと思うおれは、
やはり昭和の人間か

今の若者は、見切りが早そうだしね

現状に最適化されてるんだろう
0827デフォルトの名無しさん (ワッチョイ eb3c-rzru)2016/10/01(土) 23:41:07.40ID:R05VqS280
>>826
継承を避けるのはまだわかるけどね
0828デフォルトの名無しさん (ワッチョイ 9bdc-dvmP)2016/10/01(土) 23:45:00.08ID:rAdXsmVI0
>>826
お前の仕事はモノを納品することか? 違うだろ?
プログラマとして労働力を提供することだろ?
勘違いするな、黙って言われた通りに手を動かせ
0829デフォルトの名無しさん (ワッチョイ 475e-RPp1)2016/10/01(土) 23:49:41.63ID:wYwnqMss0
ここ質問スレなんだから弁えてくれよ
ワッチョイ表示されているのにやめとこうとか思わないのかな
検索したら他の書き込みも見つかるんだよ
0830デフォルトの名無しさん (ワッチョイ 1f20-RPp1)2016/10/01(土) 23:50:00.46ID:8pjQj2AO0
>>828
古い技術で冗長に作るのは構わないけど
それで完成を急がせるとか悪夢なんだよな

プログラマでも、夜10時には帰りたいんだよ

IT業界最底辺のプログラマの癖に
生意気な発言かも知れんけど
0831デフォルトの名無しさん (ワッチョイ 1f20-RPp1)2016/10/01(土) 23:52:27.12ID:8pjQj2AO0
つか、最近この業界は女が多いな
元請けにだけど

SEの6割くらい女だ
0832デフォルトの名無しさん (スププ Sd8f-rzru)2016/10/02(日) 00:10:23.06ID:7Va7E79+d
ウジウジ気持ち悪い奴だな
0833デフォルトの名無しさん (ワッチョイ 177b-RPp1)2016/10/02(日) 02:04:45.52ID:6e8EcOa10
>>810
.NET以外を使うってことですね!。
レスありがとうございました。
0834デフォルトの名無しさん (ワッチョイ 4349-xqgw)2016/10/02(日) 02:58:07.19ID:wunJRFms0
>>833
WPFは.NETなんだけど。
0835デフォルトの名無しさん (ワッチョイ 7fc6-JF6f)2016/10/02(日) 04:46:38.35ID:HmiRIMtE0
>>826
それじゃプログラマじゃなくてコーダーじゃん
0836デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/02(日) 12:12:47.44ID:VPKGbKQDM
>>823
DataSetで書かれた難解で長いプログラムはわかるのにLinqで書かれたシンプルで短いプログラムはわからないなんて不思議だよね
0837デフォルトの名無しさん (ワッチョイ 6748-uvlU)2016/10/02(日) 12:41:22.23ID:Y2xoqUni0
単純だから容易というわけではない、シンプルとイージーの違いネ
0838デフォルトの名無しさん (ワッチョイ 9730-PJif)2016/10/02(日) 12:47:36.32ID:O3UtDhl/0
先週この板で一番狂ってるのはjavascriptスレって書いたけど
ここ2〜3日はふらっとC#とC#相談室の両スレもいい蒸留してるよ
0839デフォルトの名無しさん (アウアウ Sa17-uEQG)2016/10/02(日) 12:55:43.94ID:XDiD4uyfa
というより、他人(あるいは数か月後の自分)視点を意識してコードが書けるかどうかの違いでしょ。
読みづらいコードもそれなりに可読的なんだよ。
書いてる時に書いてる本人にとっては。

使う技術は関係ない。
クエリ式もラムダ式もこういう意識がない奴にかかったら読みづらくてしょうがないものが出来上がる。
0840デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/02(日) 13:45:15.31ID:rG0Iec2X0
>>839
このスレでlinqやらラムダ式やらひたすら質問しまくってるくせに
他人がそれをわからない可能性を欠片も想像できないんだよな
彼はお前のコードは読みにくいって言われたときにそれを受け入れることはできるんだろか?
0841デフォルトの名無しさん (ワッチョイ 4b90-fN+R)2016/10/02(日) 13:47:23.31ID:qYaftGvG0
Dockのようなランチャーを作りたいんですが何を使って作ったらいいのか検討もつきません
何を使えばいいでしょうか?
0842デフォルトの名無しさん (ワッチョイ 475e-RPp1)2016/10/02(日) 14:30:26.31ID:eLKM9Z4N0
>>841
どういうことをしたいのかまとめるのを先にやらないと
C#のForm内で実行する外部アプリのウィンドウを表示させるのは多分出来ない
複数のアプリの起動・終了・アクティブ化くらいならProcessとかで出来る
0843デフォルトの名無しさん (オッペケ Srb7-rzru)2016/10/02(日) 15:56:40.74ID:y4aGXedMr
たまにプログラム書いたことないSEっているよね?
どういう経緯でSEになれるの?
あと仕事になるの?
女でもプログラム書けないSEがいるんだが…
0844デフォルトの名無しさん (ワッチョイ c7d4-js6q)2016/10/02(日) 16:20:08.90ID:U5FzGUog0
日本の一部の会社では営業のことをSEって言ってるんだと思えばいいんだよ
営業だと総合職になるので出世コースを用意させられそうなところ、技術職の名目で用意しないって寸法よ
0845デフォルトの名無しさん (ワッチョイ eb3c-RPp1)2016/10/02(日) 16:41:27.15ID:laSZMLZ30
ふらっと C#,C♯,C#(初心者用)
0846デフォルトの名無しさん (オッペケ Srb7-rzru)2016/10/02(日) 17:02:42.62ID:y4aGXedMr
>>844
そういうことなのか…
可愛い顔してSEっていうからプログラム脳なのかと思ったら違ったから意味不明だったわ
0847デフォルトの名無しさん (ワッチョイ 4349-xqgw)2016/10/02(日) 21:00:35.43ID:wunJRFms0
実際、会社説明会行ったら、進行役の人がSEを紹介する時にシステム営業って呼んでたことがあった。
言われた瞬間のSEの人の顔が面白いことになってたが。
0848デフォルトの名無しさん (ワッチョイ 5b17-fN+R)2016/10/02(日) 21:05:09.85ID:nHcCPZ2m0
別に SE に限らず、外に出る人は全て営業て認識は間違いではないような。そういうのを理解してないのが多すぎるけど。
完全にスレチだが。
0849デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/02(日) 21:37:39.14ID:rG0Iec2X0
>>848
そういうのいいんで営業通してもらえます?
0850デフォルトの名無しさん (ワッチョイ c7d4-js6q)2016/10/02(日) 21:39:31.23ID:U5FzGUog0
外に出ればなんでも営業の側面があるのは確かだろうけど、働く側にしてみれば総合職なのか一般職なのかの違いは重要だろう

一般的にいう営業 = 総合職で雇った新人の取引先へのお披露目を兼ねてるセールスマン
名ばかりSE = 技術職の名前でおだてられている出世なしのセールスマン
0851デフォルトの名無しさん (ワッチョイ eb3c-ETlQ)2016/10/02(日) 21:46:08.51ID:iDLKJ1fp0
マ板でやれって
0852デフォルトの名無しさん (アウアウ Sa17-uEQG)2016/10/02(日) 23:28:14.98ID:i2p2EOqEa
昨日も書いたけどさ、くだらない恨み言を書いてる奴は
本人は会社や業界の問題点を指摘してるつもりかもしれないけど、
他人から見たらうだつの上がらない自分自身を語るに落ちてるだけに見えてるって
いい加減気が付いた方がいいと思うよw
0853デフォルトの名無しさん (ワッチョイ 9730-PJif)2016/10/02(日) 23:29:21.56ID:O3UtDhl/0
配列(int[10000])のメモリを確保する仕事を繰り返してるうちに頭がやられたんだろ
そんな忠告通じるかい
0854デフォルトの名無しさん (ワッチョイ 1f20-RPp1)2016/10/03(月) 00:26:29.74ID:AAbakoPq0
C#を勉強していて
インターフェースなる概念を学んだのですが
メソッドの実装が無い時点で
インターフェースを継承したクラスを作る各人が
好き放題実装を書くことになるんですよね?

実装方法の違う同名メソッドを
みんなで作るのは工数の無駄のように思いますし
収集もつかなくなるような気がするのですが
理解が誤っているでしょうか?
0855デフォルトの名無しさん (ワッチョイ fb3a-RPp1)2016/10/03(月) 00:57:50.23ID:DydELLCK0
>>854
インターフェイスは名前通り、モジュールとモジュール(或いはクラスとクラス)の境界を定義する機能
同じ意味合い(データを取得)の別メソッド(顧客データをDBから取得/顧客データをファイルから取得)みたいなものを作って、
柔軟に差し替えができる。
使う側はインターフェイスだけ意識すれば良い。

使い捨てで柔軟性を必要としないプログラムを作ってるなら、工数の無駄かもね。
0856デフォルトの名無しさん (ワッチョイ fb3a-RPp1)2016/10/03(月) 01:01:47.75ID:DydELLCK0
あれ?釣られた?
0857デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/03(月) 01:01:53.62ID:IYpgz1/LM
言語的には確かにインターフェースにはメソッドの呼び出し規約しか存在しない
でも設計書にはこのインターフェースを実装するクラスは何々しなきゃダメよといったより抽象的な規約が書かれているはずだ
インターフェースを使う側は規約のみに依存すれば良い
インターフェースを実装するクラスは規約を満たすことのみを考えれば良い
インターフェースがあれば各クラスの領分をハッキリと分離できるんだ
そして規約を満たしていれさえいればインターフェースの実装方法に制限はないため強い互換性が獲得できる
つまりプログラムにSOLIDな特性が発生して強靭でしなやかな作りになるんだ
0858デフォルトの名無しさん (アウアウ Sa17-uEQG)2016/10/03(月) 01:27:29.89ID:Pw6tjCZia
>>854
うだうだ考えてるより実例を見た方が早いよたぶん。
とりあえずIComparableあたりがBCLでどうやって利用されてるかでも調べたらどうかな
0859デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/03(月) 01:28:57.92ID:DRFx4tO40
まあ、もちろん
インターフェースの提供側と使用側が金銭レベルで分かれてる環境でしか機能しない
自分や隣の席に座ってる奴にインターフェースなんてこさえてやっても時間の無駄だ
0860デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/03(月) 01:40:30.28ID:DRFx4tO40
現実的な話として作成中に
インターフェースの引数じゃたりないんすけど?
ってなったら増やすしかない
じゃ、いつもの関数と変わんねーじゃんなにが柔軟なんだよってのもその通りで提供側と使用側がはっきり分かれていないと
恩恵は全くわからない   はず
0861デフォルトの名無しさん (ワッチョイ 1f13-rzru)2016/10/03(月) 02:08:33.30ID:0EHB0e2M0
いやいや、自分一人でコーティングするプロジェクトでもインターフェイスは多用しますって
0862デフォルトの名無しさん (ワッチョイ 477b-eUFH)2016/10/03(月) 02:30:26.02ID:a2PPRqH/0
インターフェースとは、ダックタイピング。
アヒルのように鳴くものは、アヒルとみなす

呼ぶ側は、cry を呼ぶから、
呼ばれる方は、cry を実装しておいて下さい、という決め事

A.cry, B.cry が実装してあれば、A, B はアヒルとみなす。
ここで、A, B は一般的に、継承関係のないクラス

継承関係のないクラスに対して、同じ関数名を強制する
0863デフォルトの名無しさん (ワッチョイ c77b-JF6f)2016/10/03(月) 04:30:45.81ID:hKZ6axFq0
>>862
ところがだ
最近はdynamicを使う
0864デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/03(月) 06:23:38.11ID:DRFx4tO40
>>861
意味ねー
関数の引数なんて必要とあらばいつでも変更すればいいだろ
0865デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/03(月) 06:24:45.16ID:xbCUt/Ve0
多態するだろw
0866デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/03(月) 06:28:14.08ID:DRFx4tO40
>>865
インターフェースの本来の使い方何だろか?
0867デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/03(月) 07:14:57.14ID:xbCUt/Ve0
そうだよ!w
本来というのが何を指すのか知らんが大きなメリットのひとつ

それに多態しなくても依存性を断ち切っておけば
その後のコードの切り回しのしやすさが段違い
一人でも使いまくる
0868デフォルトの名無しさん (ワッチョイ c394-6fmH)2016/10/03(月) 12:09:00.68ID:sK18CVwJ0
自分でインターフェース作らない人でも恩恵には預かってるんじゃないの
IEnumerableとか
0869デフォルトの名無しさん (アウアウ Sa77-7Sel)2016/10/03(月) 12:39:51.14ID:wG2YSR7Ja
道具っつーもんは使い方を覚えて初めて便利だと思えるもんだからなぁ
0870デフォルトの名無しさん (ドコグロ MM2f-rzru)2016/10/03(月) 14:40:25.35ID:UhPwVzIDM
>>867
ひとりで組んでるときにそんなことするの無駄じゃない?
組み方や仕様に迷いがあるからくだらない汎用性付けようとするわけで
0871デフォルトの名無しさん (ワッチョイ 4f90-RPp1)2016/10/03(月) 14:42:17.86ID:2dHs/sIj0
IEのユーザエージェントをいじってスマホにして遊んでました。
その後、サイトにアクセスすると見づらいので元のIE(PC)のユーザエージェントに
戻したいのですが、どうすれば最新のIEのユーザエージェントが分かりますか?


ネットでぐぐってもIEの最新バージョンのユーザエージェントを公開しているところがありません。
0872デフォルトの名無しさん (ワッチョイ 7b19-GPCj)2016/10/03(月) 14:44:44.28ID:whgMhbbL0
スレ違いなのでWindows板のInternet Explorerスレ辺りに行ってきて
どうやってUA変えたかも書くんだぞ
0873デフォルトの名無しさん (スププ Sd8f-rzru)2016/10/03(月) 17:21:41.87ID:pR9GPAtgd
>>866
多態使わないのかよw
if文シコシコ羅列してクラス型ごとに動作変えるのは大変でしょうに
0874デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/10/03(月) 17:47:34.85ID:OopphbkDp
>>862
ダックタイピングはアヒルの様に見えアヒルの様に振る舞うならばそれはアヒルであるとみなす考え方で、C#ならばdynamicを使う
一方インターフェースはアヒルの様に振る舞うとしても「アヒル」インターフェースを実装してなければアヒルとは認めないという考え方

どちらも多態性を提供するが混同すべきじゃない
0875デフォルトの名無しさん (アウアウ Sa67-uvlU)2016/10/03(月) 18:21:37.63ID:BG7c9nZ4a
ガンダムでお願いします
0876デフォルトの名無しさん (ワッチョイ eb3c-ETlQ)2016/10/03(月) 18:37:30.20ID:WmAakHDe0
「アイカメラがツインアイ + ブレードアンテナが額から伸びる2本の角型」 なら何でもガンダムと見做すのがダックタイピング
「外観を問わず、(鉄オル準拠で)ガンダムフレームが組み込まれている物」 をガンダムと定義するのがインターフェース
0877デフォルトの名無しさん (ワッチョイ eb3c-ETlQ)2016/10/03(月) 18:37:57.43ID:WmAakHDe0
尚、ブレードアンテナの形状について
∀を持ち出しての反論は受け付けない物とする
0878デフォルトの名無しさん (ワッチョイ c7d4-js6q)2016/10/03(月) 18:38:07.30ID:debxKRu60
オンラインIDEでC#の補完がちゃんとできるやつってないかな?
一度入力したオブジェクト名やメンバ名を保管してくれるのはあっても、ローカルIDEみたいに全て補完してくれないのだらけだ・・・・
0879デフォルトの名無しさん (アウアウ Sa67-uvlU)2016/10/03(月) 18:58:31.57ID:BG7c9nZ4a
C#諦めました…
0880デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/03(月) 18:59:14.80ID:0mzqHUL00
>>873
いや、逆に分岐条件を明示しないことで何やってるのか組んだ奴にしかわからんほうが嫌なので
0881デフォルトの名無しさん (ワッチョイ eb3c-ETlQ)2016/10/03(月) 19:05:52.04ID:WmAakHDe0
ええ……
0882デフォルトの名無しさん (ワッチョイ fb7b-S4Np)2016/10/03(月) 19:35:51.50ID:DGeMMOSU0
そんな現場やだ
0883デフォルトの名無しさん (オッペケ Srb7-rzru)2016/10/03(月) 19:44:54.54ID:2NCq6u8sr
動けばいいんだよ
0884デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/10/03(月) 19:47:20.06ID:OopphbkDp
>>880
うわぁ…
0885デフォルトの名無しさん (ワッチョイ 5b5b-9qEq)2016/10/03(月) 19:57:52.60ID:HeYPjqdu0
新人でも自分で理解できる可読性を優先させるのはありっちゃあり
0886デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/03(月) 20:11:25.46ID:SRnyVZlvM
>>880
君の釣り針はいつもデカいな
0887デフォルトの名無しさん (ワッチョイ fb42-RPp1)2016/10/03(月) 20:24:02.26ID:E6Z8Y8f50
>>870
まあそのとおりなんだが

いっときInterface病にかかって全部のクラスにIFつけてた
今見ると無様

でも迷ってても実装が進むし柔軟性はあったぞ!
0888デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/03(月) 21:14:05.48ID:o5lyUn4M0
>>886
正論過ぎて反論できないだろ?
0889デフォルトの名無しさん (ブーイモ MM8f-LGiF)2016/10/03(月) 23:35:40.82ID:lhwmhlCDM
テスタビリティ考えると1人作業でもアプリケーションコードではインターフェース必須なんだよね
インターフェースが必要ないのはPOCOで依存がないドメインオブジェクトとかFCLのようなコアライブラリだけ
0890デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/04(火) 00:33:22.83ID:/FCIPvE20
>>889
それやるのに実装まで影響がでるってとこに納得行かない
方針が間違ってるんじゃねーの?
ぶっちゃけ俺も誰がどんな場面想定してこんなゴミ作ったのか知らんけど
0891デフォルトの名無しさん (スププ Sd8f-rzru)2016/10/04(火) 01:02:29.71ID:UQnVBbe6d
インターフェイスがゴミとか言ってんのお前だけだぞ
>>890
0892デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/04(火) 06:38:56.74ID:hihlaoI70
>>890
文章のパーサを切り替えたり
AIのコアのアルゴリズムを入れ替えたり
ゲームのキャラを一括で扱ったり
DIしたり
もうないと生きていけないレベルで必要
0893デフォルトの名無しさん (ラクッペ MM37-rzru)2016/10/04(火) 07:24:11.99ID:hVjLfR/3M
インターフェイスの使いどころを
質問した者ですが
インターフェイスは継承した
クラスで内容の違う同じ名称の
メソッドを作る
つまりオーバーライドのように
使う物と考えて良いのでしょうか
0894デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/04(火) 07:28:36.70ID:/FCIPvE20
>>892
わざわざこんな仕組みでやる必要ねーし
っていうかそんな仕様あったの?
どうせいつもの妄想だろ?
0895デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/04(火) 07:42:39.26ID:hihlaoI70
え…仕様って…
0896デフォルトの名無しさん (アウアウ Sa77-7Sel)2016/10/04(火) 07:48:20.97ID:tSzkB+1za
兄より優れた弟など存在しねぇでお馴染みのジャギさんきてんね
0897デフォルトの名無しさん (ドコグロ MM2f-rzru)2016/10/04(火) 07:55:32.96ID:rdpgIcW9M
>>895
だから、実際そういう需要(仕様)があったうえでの話をしてるの?
0898デフォルトの名無しさん (スッップ Sd8f-rzru)2016/10/04(火) 08:10:36.41ID:8gRIuvr1d
>>897
インターフェイス便利だよ。
ReaderとWriterだけでも。
中身気にせずパイプ的な感じで多段の処理書ける。
出口がコンソールでもファイルでも気にせずwrite出来る
0899デフォルトの名無しさん (アウアウ Saff-uEQG)2016/10/04(火) 09:52:54.27ID:Jehw2I/Ta
>>893
筋が悪いお方
だから、うだうだ考える前に実例を見てみた?
0900デフォルトの名無しさん (オッペケ Srb7-rzru)2016/10/04(火) 10:31:36.54ID:mvK6O6xLr
だから!
動けばいいんだよ
0901デフォルトの名無しさん (アウアウ Sa17-RPp1)2016/10/04(火) 10:32:30.59ID:2uMugtE2a
みんなUIフォントを何にしてる?
メイリオがいいよね?メイリオがいいよね?
0902デフォルトの名無しさん (アウアウ Sa77-7Sel)2016/10/04(火) 12:24:47.15ID:BdiZqdxfa
メイリオがいいけど、XPで崩れるのが嫌だなぁ
0903デフォルトの名無しさん (ワッチョイ fb3a-RPp1)2016/10/04(火) 13:15:35.75ID:Ii0olsrw0
>>893
Sortに対するIComparerの役割考えてみ

interface は class に『実装する』ものであって、
『継承する』ものではないよ
0904デフォルトの名無しさん (ワッチョイ 1717-RPp1)2016/10/04(火) 17:28:27.23ID:15dXMmmi0
Yu Gothic UI...
0905デフォルトの名無しさん (ブーイモ MM8f-LGiF)2016/10/04(火) 18:15:29.26ID:5GHWHTroM
なんとなくわかったぞ
インターフェース使わない人って関数型プログラミングしてるってことか
0906デフォルトの名無しさん (ラクッペ MM37-rzru)2016/10/04(火) 19:35:41.31ID:PfynBLRqM
>>905
自分は勉強で小さいプログラ厶しか
組んでいないので
一つのクラスにメソッドを複数
作って呼んでるだけです

ゲッターセッターも
作り方しか知りません

インターフェイスや抽象クラスなど
使いどころに困っています
0907デフォルトの名無しさん (アウアウ Sa3f-RPp1)2016/10/04(火) 19:50:12.09ID:6z/A7PWoa
インターフェイスはオブジェクトが他のオブジェクトを使う場合に必要となるものなので
自作オブジェクトの中で使う必要がない場合が多い

初心者は.netフレームワークを使う中で要求されて実装することがあるぐらい
0908デフォルトの名無しさん (スップ Sd0f-rzru)2016/10/04(火) 20:20:56.44ID:kGjg20Jhd
最近Xamarinでプラットフォームごとに実装分ける時はよく使うな
0909デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/05(水) 00:22:15.46ID:75mjlcKq0
かたっぱしからインターフェース付けて
メイン関数でレゴブロックみたいにくっつけるの楽しい

インターフェース使わないと
自分でこさえた部品の再利用とか全然できなくないか?
0910デフォルトの名無しさん (スププ Sd8f-rzru)2016/10/05(水) 01:16:22.12ID:Vyx32qgzd
必要になったらあとでインターフェイス追加する派
0911デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/05(水) 01:25:15.80ID:IoO2jnrO0
>>909
設計した時点で決まってるだろ普通
0912デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/05(水) 01:31:08.90ID:1NkBv1zKM
その物次第としか言いようがないな
StringBuilderみたいなそれだけで完結しててインフラへの依存もないなら抽象化は別にいらない
インフラ依存のクラスなら注入のために抽象化して欲しい
IEnumerableみたいにバリエーションが豊富で多態のメリットが大きければ抽象化したい
フレームワークぐらいの規模ならカスタムクラスのための抽象モデルを用意すべき
0913デフォルトの名無しさん (ワッチョイ 27cb-rzru)2016/10/05(水) 07:00:17.83ID:IoO2jnrO0
>>912
そんな開発があってたまるか
設計した時点で決まってるだろ
0914デフォルトの名無しさん (ワッチョイ 9730-PJif)2016/10/05(水) 07:19:45.11ID:EDqQ344L0
お兄さん宇宙クジラでも釣るのかぃ
0915デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/05(水) 07:26:43.73ID:v2hJAbmaM
>>913
どんな開発のことを言ってるの?
君が言うようにインターフェースは設計時に概ね決まってるよ
0916デフォルトの名無しさん (ワッチョイ 9bdc-dvmP)2016/10/05(水) 07:30:41.56ID:R0+6OfJG0
設計時に決まってるからこそインターフェースが使えるんだよ
インフラを抽象化(というかプラガブルに)するのは基本的に単体テストのため
実際の運用で差し替えるというのは、ミドルウェアの類なら無くはないけどアプリでは現実にはまず無い
0917デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/05(水) 07:41:19.00ID:4VDP98LD0
個人のちっこいマクロ程度のプログラムでも結構使うぞ
つけときゃいつでも内部の処理を他を修正することなく差し替えられる

行き当たりばったりのときこそ必要だろ
0918デフォルトの名無しさん (ワッチョイ 9bdc-rzru)2016/10/05(水) 08:16:36.43ID:R0+6OfJG0
>>917
汎用的なコンポーネントを作ろうとするのは典型的なアンチパターンだ
ちゃんと設計しないんならベタに実装して後で必要に応じてリファクタリングする方が効率がいい
・インターフェイスを定義してみたものの、後で変更が入ってその度に影響範囲の大きい修正が発生した
・インターフェイスを定義してみたものの、後で実装が増えることは無かった
・インターフェイスを定義してみたものの、むしろ差し替えたいのはプラガブルにしてなかった箇所だった
・インターフェイスを定義してみたものの利用側の要件に合わず、辻褄合わせの汚い処理や重複が発生した
心当たりはないかな?
0919デフォルトの名無しさん (スッップ Sd8f-rzru)2016/10/05(水) 12:08:30.16ID:djABpgcvd
俺は既に継承関係が決まってて継承使えないときだけ使ってるな
IEnumerableみたいなイケてるインタフェース設計は超人に任せる
0920デフォルトの名無しさん (アウアウ Saff-uEQG)2016/10/05(水) 12:45:41.97ID:X1NPzznla
もはや元の質問そっちのけのやりとりだな

インターフェイスの設計で俺が時々悩むのは、最大公約数的な物がいいのか
最小公倍数的な物がいいのかだな。

基本的には最大公約数が正解だと思うんだが、でもBCLの中にも
平気でNotImplementedException投げるメソッドがあるからなあ。
0921デフォルトの名無しさん (ワッチョイ 1f13-rzru)2016/10/05(水) 13:28:11.90ID:+Mzxp0lF0
絶対インターフェイス使わないとか言ってんのはCOBOLかVB6から入ったプログラマーだな
0922デフォルトの名無しさん (ワッチョイ 5b5b-9qEq)2016/10/05(水) 18:55:50.81ID:+d6vVLNb0
>>902
>Windows XP 向け ClearType 対応メイリオ
https://www.microsoft.com/ja-jp/download/details.aspx?id=10550
0923デフォルトの名無しさん (ブーイモ MM57-LGiF)2016/10/05(水) 19:32:14.92ID:Gemt2Ly0M
>>918
そういう苦い思い出があるならそれって君が残念な子ってだけなんじゃ…
道具のせいにする人って結構いるよね
0924デフォルトの名無しさん (ワッチョイ 4f90-RPp1)2016/10/05(水) 19:33:55.37ID:dDDwv4Tw0
ランサーズに仕事だしたら糞グラマばかりでうんざり。
0925デフォルトの名無しさん (ワッチョイ 4b35-PJif)2016/10/05(水) 20:56:39.52ID:TApQaAYe0
ランサーズの思い出なんて
「遅れてるくせに仕事中にランサーズ見てんじゃねえよお前!!!!」って督戦先の会社でキレた思い出しかない
その程度の意識の奴しかいないと思ってる
0926デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/05(水) 22:00:38.22ID:tHsuIkay0
俺にぴったりだ!!www
0927デフォルトの名無しさん (ワッチョイ a3e2-f+x4)2016/10/05(水) 22:30:06.28ID:OwO3ociO0
int k = 100;
int a = Enumerable.Range(0, 10).Where(x => x % 2 == 1).Select(x => k = k + x).Sum();
label1.Text = string.Format("k={0} a={1}", k, a);
aが555なのはわかりますがなんでkは125なんですか?なんで100 + 1+3+5+7+9
みたいな計算になるんですか?
0928デフォルトの名無しさん (ワッチョイ 4742-RPp1)2016/10/05(水) 22:38:04.32ID:tHsuIkay0
KはSumで合計されてないよ
Selectが(1,3,5,7,9)で走って
k = k + 1 = 101
k = k + 3 = 104
k = k + 5 = 109
k = k + 7 = 116
k = k + 9 = 125
0929デフォルトの名無しさん (ワッチョイ a3e2-f+x4)2016/10/05(水) 22:46:08.43ID:OwO3ociO0
>>928
わかりましたありがとうございます
0930デフォルトの名無しさん (ワッチョイ 9e90-lsIp)2016/10/06(木) 00:04:55.93ID:Fc4cuwun0
ランサーズでかなりレベルの高いプログラマがいたよ。
仕事は出来るがあまりにも常識が無いヤツだった。
0931デフォルトの名無しさん (アウアウ Sa43-TInN)2016/10/06(木) 01:35:54.20ID:x4N6nEfma
HttpClient.GetAsyncを途中で強制的にキャンセルする方法はないでしょうか。
以下のコードでGetHtmlAsyncメソッドででかめのHtmlファイル(10MBくらい)を取得してみたのですが
client.GetAsyncが待機中にキャンセルボタンをクリックして_cts.Cancel()を呼んでも
即時キャンセルされません。
結局ファイルを完全にダウンロードするまで止まってくれないようで、困っています

private CancellationTokenSource _cts;

private async Task GetHtml(string url)
{
_cts = new CancellationTokenSource();
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
string html = await res.Content.ReadAsStringAsync();
}
catch (OperationCanceledException e)
{
Debug.WriteLine(
0932デフォルトの名無しさん (アウアウ Sa43-TInN)2016/10/06(木) 01:37:33.35ID:x4N6nEfma
catch (OperationCanceledException e)
{
Debug.WriteLine("cancel");
}
catch (Exception e)
{
Debug.WriteLine("例外発生:{0}", e);
}
}
}
public async Task GetHtmlAsync(string url)
{
await Task.Run(() => GetHtml(url));
}
0933デフォルトの名無しさん (ワッチョイ a685-TInN)2016/10/06(木) 01:54:05.56ID:Mzv6j6zu0
HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
string html = await res.Content.ReadAsStringAsync();
clientのGetAsyncはレスポンスヘッダを受信したらreturnするんじゃねぇの?
レスポンスボディは読みこむ前に。

だから、実際、君がキャンセルしてるのはres.Content.ReadAsStringAsync()の最中で
すでに手遅れ。
0934デフォルトの名無しさん (ワッチョイ a685-TInN)2016/10/06(木) 01:57:11.53ID:Mzv6j6zu0
ストリームで読み込んで自分でキャンセルするしかない。
var stream = await res.Content.ReadAsStreamAsync();
while (var bytesRead = await stream.ReadAsync() != -1)
{
 _cts.Token.ThrowIfCancellationRequested()
}
0935デフォルトの名無しさん (ワッチョイ a685-TInN)2016/10/06(木) 01:58:21.32ID:Mzv6j6zu0
await client.GetAsync(url, _cts.Token);
のキャンセルはサーバーがなかなかレスポンス自体を返さないような時の
キャンセルでしょ。タイムアウトする前にキャンセルするとか。
0936デフォルトの名無しさん (ワッチョイ f4cb-xaNP)2016/10/06(木) 02:08:33.27ID:8JIhT6+t0
>>923
そもそも要求されたわけでもないのに作るインターフェースって全部変になる
それお前が組みやすい機能しか提供してねーだろ的な
0937デフォルトの名無しさん (アウアウ Sa43-Nuoi)2016/10/06(木) 02:09:29.62ID:x4N6nEfma
レスありがとうございます。
それが、
HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
で本体も取得しているような感じなんです。
ブレークポイントを貼ってみましたが、GetAsyncで10秒くらい止まった後に
string html = await res.Content.ReadAsStringAsync();に移ります。
(ReadAsStringAsyncは一瞬で終わります。)
そしてGetAsync中のCancelが効きません…
0938デフォルトの名無しさん (ワッチョイ d9c9-gCaQ)2016/10/06(木) 11:00:29.01ID:bdU4oXz50
ツールバーのような(MS-IMEのような)フォームを作りたいのですが
どのようにしたらいいのでしょうか。
メインのフォームがあって、最小化するとツールバー化するようにしたいのです。
どなたかよろしくお願いします。
0939デフォルトの名無しさん (ワッチョイ fc5e-lsIp)2016/10/06(木) 18:39:28.71ID:sSah5I1h0
>>938
SizeChangedのイベントで見てFormWindowState.Minimizedだったら望む大きさにフォームのサイズを設定してFormWindowState.Normalにする
戻す時にどういうUIにするかの方がメンドクサイ
0940デフォルトの名無しさん (ワッチョイ c62a-xaNP)2016/10/06(木) 22:36:48.00ID:ZQZztg7H0
>>937
ヘッダだけとるのはオプション指定しないと。
0941デフォルトの名無しさん (ワッチョイ 98d4-lsIp)2016/10/07(金) 16:01:09.05ID:egEWpdwg0
VBをC#に移植してるんですけど
下の拡張メソッドは、C#だとどうやって書きますか

 <System.Runtime.CompilerServices.Extension()>
 Public Function AppendLine(ByRef text As String, ByVal appendtext As String) As String
  text &= appendtext & Microsoft.VisualBasic.vbCrLf
  Return text
 End Function


Stringを拡張してあって
Dim A As String = ""
A.AppendLine("ABC")

とかやると、AにABCが改行付きで入っていく拡張メソッドらしいのですが。

  public static string AppendLine(ref this string value , string text)

ってやろうとしたら叱られてしまいました。
0942デフォルトの名無しさん (ワッチョイ 1030-VEeh)2016/10/07(金) 16:16:11.06ID:/rv9SwD50
これ嫁
https://msdn.microsoft.com/ja-jp/library/bb383977.aspx
refが余計
0943デフォルトの名無しさん (ワッチョイ 6f85-TInN)2016/10/07(金) 16:45:30.93ID:33b7S5w40
それはわかってんじゃねぇの・・
VBはrefつけれる?のかしらんが付いてるからC#ではどうやって同じ事するのかと。
0944デフォルトの名無しさん (ワッチョイ 98d4-lsIp)2016/10/07(金) 16:58:55.89ID:egEWpdwg0
 public static string AppendLine(this string value , string text)
 {
  value += text + '\n';
  return value;
 }

だと

String A = "";
A.AppendLine("ABC");

しても、Aは""のままなんだ。
参照渡しになってないせいかと思ったんだけど。
0945デフォルトの名無しさん (ワッチョイ d919-hgF0)2016/10/07(金) 17:13:45.03ID:Bnk5ZDGO0
C#だと同等のことはできないね
thisとrefは同居できない
諦めて呼び出し元側で代入するしか
// どうでもいいけどvbCrLfと等価なのは\nじゃなくて\r\nだぞ、と
0946デフォルトの名無しさん (ワッチョイ f99f-JwEk)2016/10/07(金) 17:16:48.78ID:ISMNMdE40
AppendLineしたいならStringBuilder使えばいいんでね?
0947デフォルトの名無しさん (アウアウ Sa76-juU9)2016/10/07(金) 18:53:42.82ID:CEJTQ2Toa
むしろVBって>>941みたいなことができるのかw
でも出来てもやりたくないねw
0948デフォルトの名無しさん (ワッチョイ d9c9-gCaQ)2016/10/07(金) 18:56:12.96ID:1OPRlje/0
>>939
レスありがとうございます。
if (FormWindowState.Minimized == true)とかだとダメですね。
FormWindowState.Minimizedの見方から調べてみます。超初心者ですみません。

通常フォームとツールバー型のフォームの2つを使って切り替えようかと考えています。
ボタンで切り替えだとうまくいくんですが、最小化ボタンだとできてません。
なかなか難しいです。ありがとうございました。
0949デフォルトの名無しさん (ワッチョイ fc5e-lsIp)2016/10/07(金) 19:27:53.16ID:92EIQdHi0
>>948
(this.WindowState == FormWindowState.Minimized) な。そのままググればすぐ出てくるはずだが
http://dobon.net/vb/dotnet/form/minimized.html
http://dobon.net/vb/dotnet/form/windowsstate.html
実際最小化ボタンを非表示にして専用ボタン作った方が実装は楽だと思うよ
UIとか具体的な実装方法とかは個人の好みの範疇だけど
0950デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/07(金) 19:29:15.46ID:wvXFsDA2r
なんか急にプログラミングができるようになった
0951デフォルトの名無しさん (ワッチョイ ab49-LThL)2016/10/07(金) 22:59:55.08ID:SqK/35OL0
>>945
Environment.NewLine使うべきだな。
0952デフォルトの名無しさん (ワッチョイ c37b-jLml)2016/10/07(金) 23:13:59.50ID:2s8k82fa0
HTTPのヘッダ直書きしてるならEnvironment.NewLineじゃまずいしケースバイケース
0953デフォルトの名無しさん (アウアウ Sa76-juU9)2016/10/07(金) 23:18:43.10ID:CEJTQ2Toa
>>952
話の文脈にそったこと言わないとダメよw
0954デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/08(土) 00:28:06.65ID:hitB9rm00
初めてC#やりはじめたんですが、
while(1) がエラーになるくさいです。boolはboolとして独立してしか使えないみたいな抽象化になってるのでしょうか?
while(1==1) と書けば動作しましたが、きもいと思ったので良い書き方教えてください。
0955デフォルトの名無しさん (アウアウ Sa76-juU9)2016/10/08(土) 00:33:59.09ID:O/OBbGYaa
>>954
ある程度自分で勉強した上でわからないところを質問するのでないと
10年掛かっても終わらないよw
https://msdn.microsoft.com/ja-jp/library/c8f5xwh7.aspx
0956デフォルトの名無しさん (ワッチョイ 05a1-pu+C)2016/10/08(土) 00:34:32.56ID:1Wan9RxM0
むしろCの方が特殊
while (true)
0957デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/08(土) 01:00:48.75ID:hitB9rm00
>>955-956
そうですね
ありがとう
0958デフォルトの名無しさん (ワッチョイ f97b-lsIp)2016/10/08(土) 01:27:55.54ID:KfBpvv2w0
新しい言語を覚える場合、他力本願なやりかたが許されるなら、
知ってる言語で作って、それを誰かに翻訳してもらったやつを一つづつ検索して覚えるのが早い。
問題は誰もそんなことしてくれない事だが。
0959デフォルトの名無しさん (ワッチョイ 6b3c-lsIp)2016/10/08(土) 01:28:56.62ID:CJmbrFm/0
まぁ地道に頑張ります
0960デフォルトの名無しさん (ワッチョイ c3c0-lsIp)2016/10/08(土) 01:48:19.29ID:mt2d0mm+0
今時の言語で数値で真偽判定する奴なんてあるのかよ
0961デフォルトの名無しさん (スフッ Sda8-xaNP)2016/10/08(土) 02:02:00.46ID:eN8IA8WYd
>>951
場合による
0962デフォルトの名無しさん (ワッチョイ 1220-lsIp)2016/10/08(土) 08:45:19.03ID:vL+1Z5yj0
object o = new { test = 1 };

というコードから
testの値を取得したいのですが
どのようにすれば良いのでしょうか?

object o = new { test = 1 };
int a = (int)o.test;

とか悪あがきしてみたのですが
無理でした 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0963デフォルトの名無しさん (ワッチョイ 1030-VEeh)2016/10/08(土) 09:51:06.96ID:i5kDCKwM0
全然確認せずに書くけどobjectじゃなくvarで受ければ取れません?
あとdynamicに代入するとか
0964デフォルトの名無しさん (ワッチョイ 1220-lsIp)2016/10/08(土) 10:10:22.36ID:vL+1Z5yj0
>>963
var o = new { test = 1 };
int a = o.test;
で取れました。ありがとうございます

しかし、varとかダックタイピング?で
便利とは思いますが、本質を知らないので
いずれ理解不能なバグに陥りそうで
ちょっと不安に思いました
0965デフォルトの名無しさん (ワッチョイ 1030-VEeh)2016/10/08(土) 10:21:10.63ID:i5kDCKwM0
なら使わなければいいさ
君の問題が解決できなくなっても俺には関係ないしー
0966デフォルトの名無しさん (ブーイモ MM01-pu+C)2016/10/08(土) 10:26:33.50ID:18NoRfw9M
varはローカル変数でしか使えないからトラブルのもとになりようがない
0967デフォルトの名無しさん (オッペケ Sr4d-/Z78)2016/10/08(土) 10:51:20.85ID:3B0HEkdwr
クラス名が無い、見えない
と考えるのが簡明。
0968デフォルトの名無しさん (ワッチョイ 1220-lsIp)2016/10/08(土) 11:05:51.73ID:vL+1Z5yj0
>>965
自分の理解力に対する不安なので、その通りです

便利過ぎる機能の挙動をろくに知らずに頼ると
のちのち危ないかなという自戒の意味で
0969デフォルトの名無しさん (スフッ Sda8-xaNP)2016/10/08(土) 11:09:44.82ID:1QC8bxppd
Visual Studioならvarの上にマウスカーソル持ってきたら実際の型が表示されるでしょ
0970デフォルトの名無しさん (ワッチョイ f4ce-yd9a)2016/10/08(土) 11:27:47.42ID:fiaM9vLl0
pertialって便利だな
C++時代はまさにこれが欲しかったんだ
0971デフォルトの名無しさん (アウアウ Sac5-Nuoi)2016/10/08(土) 11:36:24.37ID:yHD53V8fa
この前のpertial論争が始まるぞw
0972デフォルトの名無しさん (ササクッテロ Sp4d-pu+C)2016/10/08(土) 11:37:00.58ID:ayps/0ahp
>>964
コード的にそのオブジェクトに意味があるなら面倒でもクラスか構造体をちゃんと名前を付けて宣言しとけ
意味がない単なる一時的な入れ物なのならそれが必要のないコードを書け

型が明らかじゃないからとりあえずobjectで受けるなど型の把握が困難なコードは禁止
型を把握でき明確な意図がある場合でも後日見た時にその意図がわかるとは限らないから必ずコメント書いとけ
varは型推論される型を自分ではっきり把握できていて右辺を見たとき誰が見ても型が明らかな場合はガンガン使って良し
コードを遡って探さないと型がわからないようならきちんと型指定して変数宣言しろ
dynamicはWebAPIなどから定義の曖昧なJSONを受けるなどの場合のみ使用可

静的型付け言語に不慣れならこれぐらいの縛りをかけて型を把握する習慣をつけるといいと思うよ
0973デフォルトの名無しさん (ワッチョイ 1030-VEeh)2016/10/08(土) 11:40:55.64ID:i5kDCKwM0
3行以上はキチガイって本当なんだよなあ
0974デフォルトの名無しさん (ワッチョイ ab49-LThL)2016/10/08(土) 11:45:34.34ID:CGodlZX10
>>970
pertialって、何ぞ。スペルミス?
0975デフォルトの名無しさん (ワッチョイ ab49-LThL)2016/10/08(土) 11:57:10.60ID:CGodlZX10
>>964
深く考えずにobject使ってる方が余程問題。
0976デフォルトの名無しさん (ブーイモ MMa8-pu+C)2016/10/08(土) 12:07:12.25ID:160QOg/GM
>>972
ローカル変数の型はコンパイラが認識してればいいよ
ローカル変数の型を明示化しないと開発に支障が出るならオブジェクト志向がうまくできてないんだと思う
それかいちいち見返さないと把握できなくなるくらい長いメソッドや大量の変数を書いているとかね
0977デフォルトの名無しさん (ワッチョイ f4ce-yd9a)2016/10/08(土) 12:10:40.49ID:fiaM9vLl0
partialか
googleさんが指摘してくれたのスルーしてしまった
仮組みだけしたのから何も考えずに着せ替え人形遊びができる辺り評価してる
0978デフォルトの名無しさん (アウアウ Sa76-juU9)2016/10/08(土) 12:27:25.04ID:2PQahk1ea
partの派生語だって普通わかるでしょw
partって言葉も知らなかったのかなw
0979デフォルトの名無しさん (ワッチョイ 21dc-xaNP)2016/10/08(土) 12:31:13.54ID:vrZNWqvT0
C++はメソッドの実装をどこにでも書けるからpartialなんかなくても遥かに柔軟に分割できるでしょ
最悪includeもあるから何でもアリ
C++分かってないだけじゃないのか
0980デフォルトの名無しさん (ワッチョイ 1213-xaNP)2016/10/08(土) 12:39:19.14ID:UAR+qVnl0
>>979
私もそう思いました
0981デフォルトの名無しさん (ワッチョイ 1220-lsIp)2016/10/08(土) 16:33:41.11ID:vL+1Z5yj0
>>975
利用したいメソッドの引数がobjectなので
この辺はやむなくなんです
0982デフォルトの名無しさん (ワッチョイ f4ce-yd9a)2016/10/08(土) 17:20:37.33ID:fiaM9vLl0
パーシャルでまず思い浮かぶのはパーシャル冷凍だし
それとパートは全くの別物だし日本語英語舐めたらあかんよ?
0983デフォルトの名無しさん (ワッチョイ f4ce-yd9a)2016/10/08(土) 17:21:55.16ID:fiaM9vLl0
>>979
C++は実装はどこでも書けるけど、クラス宣言は一緒の場所にかかなあかんでしょ
それよ
0984デフォルトの名無しさん (ワッチョイ f4ce-yd9a)2016/10/08(土) 17:26:30.91ID:fiaM9vLl0
C++で同じように着せ替え人形やろうとしたら完成した物に手を加えるか別の手段になる
C#のpartialなら色んな着せ替え遊びを元を汚さずできるし、そのまま部分納品できる
0985デフォルトの名無しさん (ワッチョイ 353c-xaNP)2016/10/08(土) 17:27:27.19ID:4V/qdcpF0
>>982
ばーか
0986デフォルトの名無しさん (ワッチョイ 353c-yd9a)2016/10/08(土) 18:35:39.75ID:vKGCFZZ10
>>980
次スレ
0987デフォルトの名無しさん (ワッチョイ e14a-UMne)2016/10/08(土) 19:59:41.17ID:GFZJqN+P0
webBrowserで表示したHP内ソースの下記のURLを自動でクリックしたいのですがどのように書けばよいでしょうか

<iframe src="URL"></iframe>
0988デフォルトの名無しさん (ワッチョイ c37b-jLml)2016/10/08(土) 20:03:28.06ID:hcv7mE9D0
URLもiframeもクリックするものでは無い
遷移したいならそのiframeをDOMでたどってsrc属性取ってきてNavigateすればいいんじゃね?
0989デフォルトの名無しさん (ワッチョイ 5cfd-n03B)2016/10/08(土) 20:31:03.30ID:5ZaOsIWw0
広告を自動でクリックしたいのか
0990デフォルトの名無しさん (アウアウ Sa76-juU9)2016/10/08(土) 21:11:14.28ID:sdir2poUa
>>982
よっ発展途上人
0991デフォルトの名無しさん (ワッチョイ f97b-lsIp)2016/10/08(土) 21:26:38.44ID:KfBpvv2w0
今からスレ立ててきてやるが、
テンプレの書き換えとか、Partのミスとか直す点はあるか?

30秒待つ
0992デフォルトの名無しさん (ワッチョイ e14a-UMne)2016/10/08(土) 21:28:25.28ID:GFZJqN+P0
>>988
ありがとうございます。

<a href="URL" target="_blank">url</a>
なら
webBrowser1.Document.Links[0].InvokeMember("Click");
などでクリックできますが、難しいようですね
0993デフォルトの名無しさん (ワッチョイ f97b-lsIp)2016/10/08(土) 21:33:56.26ID:KfBpvv2w0
http://echo.2ch.net/test/read.cgi/tech/1475930006/
0994デフォルトの名無しさん (ワッチョイ fc5e-lsIp)2016/10/08(土) 21:46:09.45ID:2+oa719n0
>>993
スレたて乙
0995デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/08(土) 22:01:26.17ID:T/Z20i9z0
>>982
> それとパートは全くの別物だし

ちょっとググれば恥をかかなくて済むのに w

partial
⇒ part「部分」+ -al《名詞・形容詞をつくる》
http://gogengo.me/words/1037
0996デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/08(土) 22:41:35.53ID:T/Z20i9z0
>>962
もう解決してるみたいだけど
> object o = new { test = 1 };
> int a = (int)o.test;
なら
var a = o.GetType().GetProperty("test").GetValue(o);
でとれる
0997デフォルトの名無しさん (ワッチョイ f97b-lsIp)2016/10/09(日) 04:08:54.25ID:nhxFjm5j0
うめとこか
0998デフォルトの名無しさん (ワッチョイ fc5e-lsIp)2016/10/09(日) 09:02:00.80ID:G17UML8q0
次スレも少し書き込んでくれ
こっちは埋めとく
0999デフォルトの名無しさん (ワッチョイ fc5e-lsIp)2016/10/09(日) 09:05:06.47ID:G17UML8q0
埋め
1000デフォルトの名無しさん (ワッチョイ fc5e-lsIp)2016/10/09(日) 09:06:05.91ID:G17UML8q0
次スレはこちら
ふらっと C#,C♯,C#(初心者用) Part125
http://echo.2ch.net/test/read.cgi/tech/1475930006/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 57日 11時間 37分 59秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。