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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 5394-4hBO)2016/12/27(火) 02:07:41.47ID:HrGPkQcW0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

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

■コードを貼る場合は↓を使いましょう。
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デフォルトの名無しさん (ワッチョイ 5394-4hBO)2016/12/27(火) 02:08:32.32ID:HrGPkQcW0
■ワッチョイスレの建て方
スレッドを立てるとき本文1行目に
!extend:checked:vvvvv:1000:512
0003デフォルトの名無しさん (ブーイモ MM5f-TACi)2016/12/28(水) 12:43:49.97ID:vJvETbCIM
>>1
Console.WriteLine("乙");
0004デフォルトの名無しさん (ワッチョイ 7b87-8bDS)2016/12/28(水) 16:09:19.18ID:4cVGFWSK0
さっそくですがすみません。お教えください。
フォーム上のDataGridViewの表示を更新するために、
DataGridViewRowの配列を作り、それをDataGridViewにAddRangeしようと考えました。

参考ページ
http://blog.studio-odyssey.net/2010/07/datagridview.html

Rowの配列を作るために、for文の中で
「DataGridViewRow row = new DataGridViewRow();」を行い、
そこに「row.CreateCells(this.dataGridView1);」
をするのですが、300回程度回すと数MBのメモリを消費します。
(dataGridViewの列が80列位あるからだと思います)

一回の操作はこれで終わりなのですが、しばしばDataGridViewの更新をする必要があり、
上記の処理繰り返し行うと、徐々に消費メモリが増えていきます。GCも働かず最後にはメモリエラーで落ちます。
どうもrowの解放が行われていないらしく、1回のfor文毎にこれを解放したいのですが、
どのようにすればよいでしょうか。
(row.dispose()を行っても解放されません)
0005デフォルトの名無しさん (ワッチョイ 7f94-4hBO)2016/12/28(水) 17:24:04.61ID:YF6A9Wev0
なんでDataTableでも使ってバインディングしないのか疑問だけど、それはさておき
80項目ほどあるという、その元データの古いものはちゃんとクリアされていってるのかな
0006デフォルトの名無しさん (ワッチョイ 7b87-8bDS)2016/12/28(水) 17:46:48.75ID:4cVGFWSK0
>>5
レスありがとうございます。
バインドしなかったのは置いておきまして・・・
元データというのは、古いrowのことでしょうか。
それともrow.Createcellsに渡したDateGridViewのことでしょうか。
古いrowは、dispose、nullの代入は行っています。
DataGridViewは、行のクリアは行っています。
(DataGridView自体のdisposeは行わず、使い回しです)

試しに、プログラム実行直後のDataGridviewに何も入ってない状態で、
DataGridViewRow row = new DataGridViewRow()
row.CreateCells(this.dataGridView1);
を繰り返すだけでガンガンメモリ量が上がっていきます。
(rowの配列をDatagridviewにはセットしなくても)
0007デフォルトの名無しさん (ワッチョイ 7f94-4hBO)2016/12/28(水) 17:57:11.86ID:YF6A9Wev0
「元データ」といったのはDataGridViewRowの各セルに入れるデータのこと
自分が試してみたら、Rows.Clearして追加を繰り返していくだけで適切にGCが働いてくれてるんだけど…
(別にDataGridViewRowをDisposeしなくても大丈夫だった)
0008デフォルトの名無しさん (ワッチョイ 7b87-8bDS)2016/12/28(水) 18:01:48.60ID:4cVGFWSK0
>>7
実験までやっていただいてありがとうございます。
Rows.Clearというのはどう行うのでしょうか?

DataGridViewRowのメソッドにclearが見つからないのですが・・・
0009デフォルトの名無しさん (ワッチョイ 7b87-8bDS)2016/12/28(水) 18:17:55.89ID:4cVGFWSK0
自己レスです。
rowの配列のRowsですね。
Rows(rowの配列)を作らなくても、メモリが増えていっていたので、
頭から抜けていました。

元プログラムの方はそこはクリアしていなかったので試してみます。
0010デフォルトの名無しさん (ワッチョイ 7f94-4hBO)2016/12/28(水) 18:55:56.99ID:YF6A9Wev0
Rows.Clear って省略しちゃったけどそれはDataGridView.Rows.Clearのことだったんで
>DataGridViewは、行のクリアは行っています。
なら、そこは変わらないかも

自分が気にしてるのは、DataGridViewに入れるデータを取得・更新したときに
(DataGridView関係なく)入れるデータの方のDispose漏れはないですか?ということ…

>試しに、プログラム実行直後のDataGridviewに何も入ってない状態で、
>DataGridViewRow row = new DataGridViewRow()
>row.CreateCells(this.dataGridView1);
>を繰り返すだけでガンガンメモリ量が上がっていきます

インスタンスを繰り返し作れば使用メモリがガンガン増えるのは当たり前なので、何か気にするところを間違えてる気がするんだけど…
0011デフォルトの名無しさん (ワッチョイ 7b87-8bDS)2016/12/28(水) 19:03:09.17ID:4cVGFWSK0
>>10
何度もお手間おかけしてしまいすみません。

>インスタンスを繰り返し作れば使用メモリがガンガン増えるのは当たり前なので、
>何か気にするところを間違えてる気がするんだけど…

とどのつまりはそこでして、
>DataGridViewRow row = new DataGridViewRow()
>row.CreateCells(this.dataGridView1);
を実行した後の、rowのDisposeの仕方がわからないのです。

row.Dispose()をやっても、row.Cells.Clear()をやっても、row = nullとやっても、
ガベージコレクションで解放されないので、困っております。
0012デフォルトの名無しさん (ワッチョイ 7f94-4hBO)2016/12/28(水) 19:42:50.61ID:YF6A9Wev0
自分が試したのは http://ideone.com/VK5exD で、
これだとbutton1を押すたびにメモリ使用量が増えていき、
一定消費量でGC発動→その後もGCが適宜発動
になるんだけど、どこで違いがでるんだろう…
0013デフォルトの名無しさん (ワッチョイ b749-AD9A)2016/12/28(水) 22:19:37.96ID:Bwga9xUV0
this.dataGridView1.Rows.Clear();
やってない予感。
0014デフォルトの名無しさん (ワッチョイ 0f7b-SerI)2016/12/28(水) 23:25:39.98ID:Eve+QkKl0
GCが発動しないのは、リソースを参照しているとか、PCのメモリ量が大きいとか
0015デフォルトの名無しさん (ワッチョイ f3bd-evmS)2016/12/29(木) 01:46:34.77ID:mvPliBkI0
今回ので解決するかは知らんが
メモリリーク(GC対象外)の原因をつきとめたいなら
メモリリーク windbg sos.dll
でやり方を検索。
暗中模索でいろいろやるのは非効率だと思う。
0016デフォルトの名無しさん (ワッチョイ af87-Eko0)2016/12/29(木) 08:46:21.64ID:WI/qqjBQ0
ID:4cVGFWSK0ですが、みなさまご意見ありがとうございます。
>>12
教えていただいたサンプルでもやってみます。
また経過を書かせてもらいますね。

>>13
dataGridView1.Rows.Clear();はやっています。(thisは付けていないですが)
そのあと、関数をコールして、その関数内で、DataGridViewRowのくだりをやっています。

>>14
PCのメモリ量は大きいですね(8G)。
でも、32bitアプリにしてるので、2Gで落ちるのです。

>>15
情報ありがとうございます。
早速検索してみます!
0017デフォルトの名無しさん (ワッチョイ 07dc-Ft01)2016/12/29(木) 09:34:31.13ID:ICm4kcbN0
CLRプロファイラを使えばどいつが参照を握ってるのか簡単にトレースできる
0018デフォルトの名無しさん (ワッチョイ 0a11-psYp)2016/12/29(木) 10:18:27.52ID:SpO/gD9k0
Process.Start(
0019デフォルトの名無しさん (ワッチョイ 0a11-psYp)2016/12/29(木) 10:20:27.32ID:SpO/gD9k0
失敗しました。
Process.Start(”EXPLORER.EXE”, ”search-ms:query=*.pdf* &crumb=location:C:\\”);
を実行して、C直下にあるpdfファイルを検索した状態で表示したいのですが、うまくできません。
エクスプローラーにPDFファイルのみ表示するにはどうしたらいいのですか?
0020デフォルトの名無しさん (ワッチョイ af87-Eko0)2016/12/29(木) 10:28:13.15ID:WI/qqjBQ0
>>17
情報ありがとうございます。簡単そうだったので、早速使ってみました。

途中から枝分かれが多くなってきたのですが、枝の元はここのようです。
206 MB(83.62%) from System.EventHandler System.Object []->System.EventHandler->(System.Windows.Forms.DataGridViewComboBoxCell)
147 MB(59.76%) to System.Windows.Forms.PropertyStore(1) System.Windows.Forms.DataGridViewComboBoxCell->System.Windows.Forms.PropertyStore->(System.Windows.Forms.PropertyStore.IntegerEntry [])

DataGridViewの列にはComboBoxにしている列が多数ありまして、
そのComboBoxをクリックしたときに発生するイベントを幾つか利用してるのですが、
そのイベント周りで、クリア→再表示させたときに何か悪さしている感じでしょうか。
0021デフォルトの名無しさん (ワッチョイ af87-Eko0)2016/12/29(木) 10:48:11.82ID:WI/qqjBQ0
20です。ComboBoxでピンと来て、検索してみたのですが、おそらくここで質問されている現象と同じようなことかと思います。

https://translate.google.co.jp/translate?hl=ja&;sl=en&u=https://social.msdn.microsoft.com/Forums/windows/en-US/26ca1a52-03af-4ad5-8f98-d22498116701/datagridviewcomboboxcell-memory-leak%3Fforum%3Dwinformsdatacontrols&;prev=search

DataGridViewのComboBoxに表示させる要素をDataTableとバインドさせているのですが、それが影響しているようです。
上記の質問ページの回答で解決しているのか不明ですが。。。
0022デフォルトの名無しさん (ワッチョイ af87-Eko0)2016/12/29(木) 13:24:27.74ID:WI/qqjBQ0
20ですが解決しました。

原因は、DataGridViewのComboBoxの要素用にDatatableをバインドしていたのですが、
それだとDataGridView.Rows.Clear()しただけでは、ガベージコレクションされていませんでした。

DataGridView.Rows.Clear()したあとに、
各バインドをすべて解除する(Datasourceにnullを代入)と、
ガベージコレクションで、メモリが解放されました。
(その後、次のデータを表示するために再バインドを行います)

どうも懇切丁寧に教えてくださり、ありがとうございました。
0023デフォルトの名無しさん (ワッチョイ 9ff1-6Sai)2016/12/29(木) 14:00:44.91ID:AE32Webi0
このスレには、.netの話はしててもc#の話してる人いないな。

c#て変な言語だな。c++の派生言語だろうと思って、似たようなもんだと勘違いさせて、
試しに簡単なプログラム書いてみると、実際にはcのコードやc++のコードが通用しない。
互換性がないのに、この言語名はおこがましいもんだ。

この板にvb.netのスレは1つしかないのに対して、c#はいくつもある。どうせvb.netと同じ
バイナリファイルになるから、vb.netで良くないのかいな。
0024デフォルトの名無しさん (スップ Sd4a-XCM5)2016/12/29(木) 14:12:40.37ID:R/A6dVhUd
初心者用ってスレで言語仕様の話題がもちきりだったら気持ち悪いわw
0025デフォルトの名無しさん (スッップ Sdaa-weIz)2016/12/29(木) 17:34:05.31ID:RSbrHHU5d
>>23
まあCよっかDelphiよりだかんね
0026デフォルトの名無しさん (ワッチョイ d33c-CHTc)2016/12/29(木) 18:31:53.38ID:hT8/gKS00
Delphiの言語設計者が作った言語だからな
0027デフォルトの名無しさん (ワッチョイ 0f5b-TDvV)2016/12/30(金) 00:27:35.46ID:i85SXOa50
C++のコードなんか通用したらその時点でクソ言語なのでは
0028デフォルトの名無しさん (ワッチョイ 3f91-WE5O)2016/12/30(金) 09:58:53.13ID:tjoNJpVm0
D言語の方がCに近いし、DelphiっぽいC#と名前を入れ替えるべきだな
0029デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2016/12/30(金) 10:14:40.11ID:hgBVSCl80
RAD環境としての全体的なネーミングやライブラリ設計のセンスがDelphiっぽかっただけで
言語自体はそうでもないだろ
最近のVSはDelphiやVB系列の昔ながらのRAD思想を捨ててWeb系に向かいつつあるし
言語の方は独自路線を突っ走って今やニュースタンダードの一つ
0030デフォルトの名無しさん (ワッチョイ 3f91-oeOq)2016/12/30(金) 11:04:36.50ID:tjoNJpVm0
えっ?じょ…
そうですよね…
0031デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)2016/12/30(金) 14:56:29.05ID:uiIF/Ctr0
C#の前身は、DelphじゃなくてJ++
0032デフォルトの名無しさん (ワッチョイ de33-4Doi)2016/12/30(金) 15:41:21.27ID:KB0M7zpX0
まあ、でもdelphiとC#の言語設計したの同じ人だしね
0033デフォルトの名無しさん (ワッチョイ 8a17-YvgG)2016/12/30(金) 18:30:44.06ID:3Ls/pupf0
だからなんだって話だな
0034デフォルトの名無しさん (オッペケ Sra3-pmO9)2016/12/30(金) 22:59:36.70ID:roV26jkcr
C#2.0くらいで頭止まってる人多そうだね。
0035デフォルトの名無しさん (ワッチョイ 4613-4A4P)2016/12/30(金) 23:24:44.37ID:Vl/trvQD0
少ないと思うよ
0036デフォルトの名無しさん (ワッチョイ d33c-CHTc)2016/12/30(金) 23:30:39.52ID:ZpaOuXX30
2.0で止まってると言われたら、「ねーよwww」って笑い飛ばせるが
4.0で止まってると言われたら、ちょっと否定出来る自信が無い
0037デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2016/12/31(土) 00:10:52.34ID:u4bGwJtr0
C#5.0は非同期使う気ないなら無視しても特に差し支えなかったけど
6.0の内容はそういうのとはだいぶ性質が違っててスルーしづらいものになってるよ
C#6.0以降では、イベントの呼び出しは var handler = Click; if (… のパターンは忘れて
Click?(this, e) と書くのが正しい
他にも string interpolation とか expression bodied method/property とか
地味だけど基本的な手癖の部分がかなり変わる
0038デフォルトの名無しさん (ワッチョイ 8a94-+QcV)2016/12/31(土) 00:28:10.96ID:cfD0mqeo0
Click?.Invoke(this, e) じゃない?
これと文字列の $"" 、それに Task.CompletedTask はほんとよく使う。ちょーべんり
0039デフォルトの名無しさん (ワッチョイ 4613-4A4P)2016/12/31(土) 01:32:02.81ID:7MUUz5p00
$””使うとリファクタリングで困らない?
0040デフォルトの名無しさん (ワッチョイ 239d-3vJe)2016/12/31(土) 01:44:04.47ID:s0njGzj00
どんなリファクタリングで困ってるの?
0041デフォルトの名無しさん (ワッチョイ f317-4Ie9)2016/12/31(土) 09:09:11.03ID:sDFeF81C0
リファクタリングだよ
0042デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)2016/12/31(土) 10:01:53.51ID:6EKD+AK20
移植性の問題ならともかく、それをリファクタリングで弄る理由がまるでない
0043デフォルトの名無しさん (ワッチョイ 8b3c-4Ie9)2016/12/31(土) 14:43:52.07ID:P87k9vua0
C#の典型入門書って何がありますか?

スッキリわかる〜とか明解〜

みたいに入門編と応用編に分冊シリーズ化してるものってある?
0044デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2016/12/31(土) 14:46:50.24ID:u4bGwJtr0
>>39
試したけどリネームにはちゃんと追従するぞ
0045デフォルトの名無しさん (ワッチョイ 4a79-eOuq)2016/12/31(土) 23:59:20.53ID:shQSIkq00
今年こそC#にnull安全が搭載される!
0046デフォルトの名無しさん (ワッチョイ a317-weIz)2017/01/01(日) 00:02:32.19ID:rBmi6OCp0
>>45
ねーよ
0047デフォルトの名無しさん (ブーイモ MMaa-eQyU)2017/01/01(日) 00:04:14.81ID:JRYadV1DM
すいませんC#の質問かどうかははっきりしませんが
http://dobon.net/vb/dotnet/internet/receivepop3mail.html
ここのソースのままヤフーのフリーメールを全部受信して文字列型配列に格納するコード作ってたんですが
大量のスパムメールに含まれていたのかものすごい勢いでESETがトロイやらウイルス発見の警告を連続でだしたんですが
これってPCはもう危険なのでクリーンインストールしたほうがいいですか?
0048デフォルトの名無しさん (ワッチョイ 4a79-eOuq)2017/01/01(日) 00:06:06.47ID:pAjpyWNe0
.NETの根本から見直さなきゃいけなくなるから
null安全は困難すぎるって話だっけ
でも欲しいよう
0049デフォルトの名無しさん (ワッチョイ 3ad4-4Doi)2017/01/01(日) 00:23:44.22ID:swtihv5O0
>>47
はい
0050デフォルトの名無しさん (ワッチョイ ea90-4Ie9)2017/01/01(日) 02:35:00.22ID:m0DuYp+I0
ずっとVS2010で開発してるけど古い?

特に日常の開発には不自由はしてないんだがなー
0051デフォルトの名無しさん (ワッチョイ d33c-CHTc)2017/01/01(日) 02:39:09.10ID:epcIVmQh0
趣味グラマなら十分だと思う
仕事でやってるなら最新環境に慣れといた方がいいけど
0052デフォルトの名無しさん (アウアウオー Sac2-FZ8F)2017/01/01(日) 02:50:32.77ID:BJy+zHBJa
逆だと思うよw

職場にもよるが仕事であればこそいやでもエンドユーザーの都合に縛られる。
まだあと2,3年はXPで動くことを前提にしなきゃならん案件が残るだろう。

そうすると必然出来にVSのバージョンはともかく、.NET4.0をターゲットにしなきゃならん
0053デフォルトの名無しさん (ブーイモ MMaa-llBT)2017/01/01(日) 05:48:08.29ID:wDaZYdaJM
>>49
変数に格納しただけで感染するんですか?
もしかして遠隔発信を実効みたいな添付ファイルのがあったらヤバイですか?
0054デフォルトの名無しさん (ワッチョイ a317-weIz)2017/01/01(日) 08:02:51.25ID:rBmi6OCp0
>>52
2015だと4.0使えないとでも思ってる?
0055デフォルトの名無しさん (ワッチョイ 4fd6-Sa8B)2017/01/01(日) 09:25:48.11ID:rzfsLfEB0
>>54
最終行読めないの?
0056デフォルトの名無しさん (ワッチョイ 4613-4A4P)2017/01/01(日) 09:59:02.41ID:k/7gtQH+0
>>54
0057デフォルトの名無しさん (ワッチョイ 3ad4-4Doi)2017/01/01(日) 10:18:38.48ID:swtihv5O0
>>53
そのタイプあるね
0058デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)2017/01/01(日) 10:24:35.02ID:oYN2j5aa0
>>50
2010からなら、NuGetとGitだけでも2015に乗り換える価値がありますね
0059デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2017/01/01(日) 11:26:11.41ID:ls6vqNpI0
趣味なら2015にしない理由がないだろ
CommunityでPro相当の機能がタダで使えるし、
特に重くなるわけでもない、むしろ軽くなる
0060デフォルトの名無しさん (ワッチョイ 06af-mbxx)2017/01/01(日) 11:45:57.00ID:F1zcn46Y0
最近2015に乗り換えたけどデバッグ時にアプリが使ってるCPUやらメモリやら出してくれるのが面白いからそれだけで乗り換えた甲斐があった
0061デフォルトの名無しさん (ワッチョイ d33c-4Ie9)2017/01/01(日) 11:46:49.53ID:PhxE8icv0
2017ってどうなの?2015なら大丈夫なのに2017でdynamicjsonがなんかエラー吐く(初心者なので意味わからん)
0062デフォルトの名無しさん (ワッチョイ 4fd6-Sa8B)2017/01/01(日) 11:51:21.41ID:rzfsLfEB0
初心者がRC使うの最高にCOOL
0063デフォルトの名無しさん (ワッチョイ d33c-4Ie9)2017/01/01(日) 11:56:26.30ID:PhxE8icv0
初心者が使ってはダメなやつやったんか…知らんかった
0064デフォルトの名無しさん (ワッチョイ f3bd-evmS)2017/01/01(日) 13:13:05.67ID:Ce68Anjj0
>>50
2013から定義に移動じゃなくて定義をその場で見れるのが追加されて便利
0065デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)2017/01/01(日) 13:18:24.37ID:y0Ukbj+b0
>>59
2012か13辺りから全体的に軽くなったよな
0066デフォルトの名無しさん (ワッチョイ d33c-CHTc)2017/01/01(日) 13:42:02.49ID:epcIVmQh0
>>59
>趣味なら2015にしない理由がないだろ
強いて理由を探すなら、Vista使いの場合とか

まあそろそろサポート切れるから、どの道移行せにゃならん時期だが
0067デフォルトの名無しさん (ワッチョイ ea90-4Ie9)2017/01/01(日) 22:59:51.99ID:m0DuYp+I0
VS2010に慣れてもうた。
0068デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2017/01/01(日) 23:59:56.56ID:ls6vqNpI0
新しいものを受け入れる気がないなら管理や上流にシフトしていくかコボラー目指した方がいいよマジで
.NETなんかすぐに陳腐化する一時的な道具に過ぎないんだから
0069デフォルトの名無しさん (アウアウカー Sa6b-2y/h)2017/01/02(月) 00:20:01.62ID:JJeYWN7Sa
でも.NETって今一番勢いよくない?
0070デフォルトの名無しさん (ワッチョイ 4613-4A4P)2017/01/02(月) 05:55:51.37ID:5PZq4XXX0
>>67
2010も2015も共存できるから併用すればいいんだよ
自分のPCには2005から全バージョン入ってる
0071デフォルトの名無しさん (ワッチョイ ffc9-Fh/7)2017/01/02(月) 07:18:08.38ID:Izn6zzv10
俺も6.0から全部入れてる
古い環境もメンテしないといけないからな
0072デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)2017/01/02(月) 10:42:19.74ID:xTh8FYt20
VSの併用とか2015からFrameworkのバージョンに合わせてターゲット変えるだけでよくね?
ソリューションファイルも最新版に合わせて変換出来るし
0073デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2017/01/02(月) 11:09:59.92ID:CPceoiNS0
現実にはそれで問題ないだろうけど、

https://msdn.microsoft.com/ja-jp/library/bb398197.aspx
>フレームワークの対象機能は、開発中のアプリケーションが正しく実行されることを保証するわけではありません。
> 対象のバージョンで実行できるかどうかを確認するために、アプリケーションをテストする必要があります。

というわけで、「もし何かあったら誰が責任取るのか」というジャップらしい停滞思考が問題になってくる
MSは責任取ってくれないので責任取るのはシステム会社か客のどちらか
そういう場合、システム会社は基本的に責任取りたくないので「お客様の責任でVSをアップグレードしますがいいですか?」となる
そして客はもちろん「じゃあやんなくていいよ、うちにメリット無いんでしょ?」となる
その結果、塩漬けの開発環境が増殖する
0074デフォルトの名無しさん (ワントンキン MMfa-BD8y)2017/01/02(月) 11:10:17.58ID:GHxiRgy/M
まあアマチュアならそれでいいと思う
0075デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)2017/01/02(月) 11:24:24.86ID:xTh8FYt20
>>73
保証出来ないと明記してあるならそりゃ誰も責任取らないわな・・・
0076デフォルトの名無しさん (ワッチョイ 83a1-rkCf)2017/01/02(月) 11:28:49.04ID:MrPj4nrh0
お客様がUWPでとお願いすれば喜んでアプグレしてくれる訳ですね
0077デフォルトの名無しさん (ワッチョイ d33c-4Ie9)2017/01/02(月) 15:35:05.25ID:Bg6UcTuL0
すいません。
あるAPIでjsonを取得してdynamicjsonを使いました。
{"asks":[[123643,25.0175],[123628,7.645],[123613,0.5675],[123609…
でasksの一つ目とかはasks[0]で値を取れるんですがasksの最後の値を取得したい時はどうしたら良いのでしょう?
asksの中身の数は変動します。
よろしくお願いします。
0078デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2017/01/02(月) 15:52:55.16ID:CPceoiNS0
asksをdouble[][]とかにキャストできないか?
でも素直にデファクトスタンダードであるJSON.NETを使うのが正解
0079デフォルトの名無しさん (ワッチョイ d33c-4Ie9)2017/01/02(月) 16:27:54.26ID:Bg6UcTuL0
>>78
ありがとうございました!
キャストの意味すらググった初心者ですがLengthで簡単にできました!
0080デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)2017/01/02(月) 17:14:58.41ID:jbaRYfeA0
>>77
object[] にキャストして要素数を取得すればいいだけかと
0081デフォルトの名無しさん (ワッチョイ d33c-4Ie9)2017/01/02(月) 17:20:41.89ID:Bg6UcTuL0
はい。キャストしてできました。ありがとうございます。
0082デフォルトの名無しさん (ワッチョイ ea90-4Ie9)2017/01/02(月) 19:04:14.09ID:UIwqzKQn0
>>71

VB6.0懐かしいな。

ネイティブアプリで早かったから何気に一番開発効率が良かったと思うのは私だけ?
0083デフォルトの名無しさん (ワッチョイ 0742-XCM5)2017/01/02(月) 20:20:20.97ID:Z8V39eee0
6.0って聞いたらVCかなって思うけど
MFCとか大分長期間使われてたイメージ
0084デフォルトの名無しさん (スフッ Sdaa-weIz)2017/01/02(月) 23:27:18.71ID:+s3lguXJd
>>73
テストしろって当たり前のこと言ってるだけじゃね?
0085デフォルトの名無しさん (ブーイモ MMaa-Ft01)2017/01/02(月) 23:38:14.71ID:mABnUerHM
>>84
その金は誰が出す?
お前が客のシステム担当だとして、VSのバージョン上げるからテストする金出してくれと言われたら社内の偉い人説得して予算取れる?
0086デフォルトの名無しさん (ワッチョイ 83a1-rkCf)2017/01/02(月) 23:42:56.76ID:MrPj4nrh0
バージョン上げなかったらテストしなくても良いってコト?
0087デフォルトの名無しさん (ブーイモ MMaa-Ft01)2017/01/02(月) 23:45:41.89ID:mABnUerHM
>>86
そりゃ現に運用してるシステムならそうだろ
0088デフォルトの名無しさん (ワッチョイ a317-weIz)2017/01/03(火) 00:05:29.12ID:KitL9RZ20
>>85
お前理解してないだろ
0089デフォルトの名無しさん (スフッ Sdaa-weIz)2017/01/03(火) 00:14:34.44ID:imuDuf+Kd
>>85
お前開発PCのVisual Studioでビルドしたバイナリをそのまま本番環境に置いてんの?
0090デフォルトの名無しさん (ワッチョイ a317-weIz)2017/01/03(火) 00:19:29.79ID:KitL9RZ20
>>55
ターゲットにしなきゃならん
0091デフォルトの名無しさん (ワッチョイ 07dc-CBwx)2017/01/03(火) 00:27:06.56ID:VxAvtnd00
>>89
いや、運用開始後の話をしてるんだが
開発途中ならそりゃVSのバージョンなんか勝手に上げたらいいだろ
0092デフォルトの名無しさん (スフッ Sdaa-weIz)2017/01/03(火) 00:31:17.00ID:fs192aUgd
>>91
運用開始後も一緒だろ?MSBuildToolVersion指定してMSBuild.exe叩くか、Cakeでも使えば?
0093デフォルトの名無しさん (ワッチョイ 07dc-Ft01)2017/01/03(火) 00:41:40.92ID:VxAvtnd00
>>92
知らんがな
俺はテストが必要であるという>>84の前提の下で話をしてる
MSBuild使うことでバイナリ一致が保証できてテストは不要だというんならはっきりそう主張してくれ
0094デフォルトの名無しさん (ワッチョイ ea90-4Ie9)2017/01/03(火) 00:48:48.55ID:Q90ptGUV0
まぁ、ぶっちゃけ安定しているシステムがある以上
リスクを冒してまで、VSのバージョンあげてくれ
とはオファーしないだろ。
0095デフォルトの名無しさん (アウアウカー Sa6b-2y/h)2017/01/03(火) 00:50:09.34ID:ckbzi1t0a
ん?業務系であれば運用状のverupが必要となればそれなりのメンテナンス費用が発生すんのが普通にじゃないの?
そういうのがビジネスモデルになるんじゃないんだ
0096デフォルトの名無しさん (ワッチョイ 83a1-HB/E)2017/01/03(火) 01:56:40.80ID:K9PZ4HA50
新規の案件でバージョン上げない理由は無かったって事で良いんでね
0097デフォルトの名無しさん (スフッ Sdaa-weIz)2017/01/03(火) 04:24:12.26ID:ojbYqeVPd
>>93
Cakeはともかく、MSBuild知らないの?IDEは最新に変えても、ビルドの仕組み変えなきゃバイナリ変わらんだろ
0098デフォルトの名無しさん (ワッチョイ 07dc-Ft01)2017/01/03(火) 08:22:24.41ID:VxAvtnd00
>>97
だから俺はそんな話はしていないと言っている
Q. テストが必要なら、その金は誰が出すのか?
A. MSBuild使えば?
俺が好意的に意図を汲んでやらなかったらただの頭おかしい子だろこれ
それまで誰一人として、テストの必要性や責任問題が生じる可能性についてそもそもの前提に異を唱えた奴はいない
俺も君の考えは正しいと思うが、だったら噛み付く対象は俺ではないし「テストも責任問題も不要だ」とはっきり書け
0099デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)2017/01/03(火) 09:52:38.00ID:hCjfXn+00
>>97
> IDEは最新に変えても、ビルドの仕組み変えなきゃバイナリ変わらんだろ
マイクロソフトが保証してると言うソースよろしく
0100デフォルトの名無しさん (ワッチョイ 83a1-HB/E)2017/01/03(火) 10:27:22.08ID:K9PZ4HA50
なんか表現に誤解がある気がする

テストの対象はあくまでもバージョン同士の互換性にあって
本番環境での正常動作なんてそれこそ誰にも保証しようが無いと思うが
0101デフォルトの名無しさん (スプッッ Sdaa-weIz)2017/01/03(火) 11:04:05.16ID:o5OZTy9Pd
>>98
テストも責任問題も不要だ
■ このスレッドは過去ログ倉庫に格納されています