トップページ⇒tech
1001コメント304KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/10/20(月) 11:44:39.31ID:mbh/i13l
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

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

■関連スレ
C#, C♯, C#相談室 Part85
http://peace.2ch.net/test/read.cgi/tech/1412298752/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん2014/10/20(月) 13:11:00.10ID:cRmJ92uN
あー、もうDrawLinesの話は結構です
間に合ってます
スレも立ててくれないし
0003デフォルトの名無しさん2014/10/20(月) 13:50:45.51ID:n9VT/4JR
つい先日からvs2013express C#でフォームアプリケーションを弄っているのですが

Formクラスより前に定数の定義を書けず
Formクラスより後に書かなければいけないのは
どういった理由からなのでしょうか
0004デフォルトの名無しさん2014/10/20(月) 14:04:22.59ID:1o+x/VoS
クラスより前とか言われても分からん

const int HOGE = 0; // ここは駄目
class Form1 : Form
{
    const int FUGA = 0; // ここはOK

ってことなら、C#はすべての変数は型(class/struct)に属してないと駄目だから
なんでと言われても、そういうもんだから
0005デフォルトの名無しさん2014/10/20(月) 14:15:42.43ID:n9VT/4JR
すみません、記述例です

namespace プロジェクト名
{
static class Hoge1{ //error
}
public partial class Form1 : Form
{
}
static class Hoge2{ // ok
}
}
0006デフォルトの名無しさん2014/10/20(月) 16:38:39.37ID:7Nd6IXAf
クラス作りたいときは素直にあたらしいcsファイルに作っとけ。

Formのcsファイルはフォームデザイナなんかが内部使用するファイルだから、
変なクラスなんかが書かれてるとその解析に支障が出てトラブル
0007デフォルトの名無しさん2014/10/20(月) 16:47:04.64ID:n9VT/4JR
わかりました
そうする事にします
ありがとうございました
0008デフォルトの名無しさん2014/10/20(月) 18:12:45.18ID:XAuIjpq9
>>5-6
それ定数じゃなくてクラスなんだが、クラスの話なのか?
クラスなら別ファイルに書けって意見は同意するが
それができない理由は無いし、実際やってみたがエラーにはならんぞ

エラーが出たって言うなら最低限エラー内容ぐらい書けよ
0009デフォルトの名無しさん2014/10/20(月) 18:44:40.26ID:7Nd6IXAf
>>8
ビルドはできるが、フォームデザイナでエラー出て開けなくならないか?
2013やexpressは知らんが2012は開けなくなる


データが失なわれる可能性を防ぐため、デザイナーの読み込み前に以下のエラーを解決する必要があります。
1 エラー
このページが表示されている理由
クラス Form1 はデザインできますが、ファイルの最初のクラスではありません。 Visual Studio では、デザイナーはファイルの最
初のクラスを使用する必要があります。 クラスがファイルの最初のクラスになるようにクラス コードを移動して、デザイナーを再度読み込んでください。
0010デフォルトの名無しさん2014/10/20(月) 18:55:07.59ID:K+aPLK4m
chart使っています。
X軸はmin=0 max=100
Y軸はmin=-20 max=20
で、Series[0]には、データは入れてません。
この状態で実行すると、X軸Y軸ともに軸ラベルが表示されません。
データを一点でも入れると表示されます。
データ無しで表示させたいのですが、どうすれば出来ますか?
0011デフォルトの名無しさん2014/10/20(月) 18:57:55.40ID:SvqxHshl
>>2
少し前から変な人常駐しているよね
前スレのstringのnull判定と同じ奴に思えるんだが
0012デフォルトの名無しさん2014/10/20(月) 19:01:15.43ID:cRmJ92uN
思っても言わない方がいいなw
早死にするぞ
0013デフォルトの名無しさん2014/10/20(月) 19:03:13.59ID:XAuIjpq9
>>9
2013 Expressでもデザイナ開き直したらそうなったわ
C#の問題じゃなくて、VSのデザイナの制限だな
.Designer.csならともかく、普通の.csってデザイナに関係ない気もするけど
デザイナ上あんまり区別してないのかな
0014デフォルトの名無しさん2014/10/20(月) 19:46:10.56ID:Ss2wUlYc
>>11
重症の2ch脳の症状だなw
0015デフォルトの名無しさん2014/10/20(月) 19:57:34.95ID:uP95ZMyW
他人の憶測を否定しつつレッテルを貼る人ってカッコいい
0016デフォルトの名無しさん2014/10/20(月) 21:26:04.21ID:Rhz4PqSE
>>13
少なくともVS2003の頃からこの仕様のはず
まぁフォームより後にクラス定義すれば解決するから気にしたことは無かったけど
0017デフォルトの名無しさん2014/10/21(火) 14:49:32.12ID:tGYZKJJg
Form.csに何か新しく書こうという魂胆が気に入らない
Form.csはツールのオモチャにされるから意味のあるコードは最小限に留めるべき
0018デフォルトの名無しさん2014/10/21(火) 18:12:17.53ID:urykK8+H
フォームデザイナは騙し騙し使うもんだしな
0019デフォルトの名無しさん2014/10/21(火) 21:45:21.51ID:UMcHOkkX
WPFの練習で、StaticResource用に下記のクラスを作って
動作を確認したのですが、SubjectListクラスのコンストラクタの
SubjectList()に引数を設定するとエラーになってしまい、
動的に値を渡すことが出来ません。

どのようにすれば、動的に値を渡すことが出来るのでしょうか?

public class SubjectItem
{
public string subjectName { get; set; }
}

public class SubjectList : List<SubjectItem>
{
string subjectName = "Test";

public SubjectList()
{
var newSubject = new SubjectItem();
newSubject.subjectName = subjectName;
this.Add(newSubject);
}
}
0020デフォルトの名無しさん2014/10/21(火) 21:52:52.77ID:k0FyyQJJ
簡単には、コンストラクタ引数じゃなくてget/setなプロパティにする
0021デフォルトの名無しさん2014/10/21(火) 23:06:17.72ID://y/Dws0
>>10
チャートの仕様が糞だから諦めろ
C++でしかやったことないが描画しないデータを用意してオーナードローすればできるがすげー面倒
0022デフォルトの名無しさん2014/10/22(水) 16:26:55.97ID:lplUxnNs
CやC++だとポインタ使えばTree構造を作り易いですが、
C#でTree構造を作りたい場合、どういう手法が一般的ですか?
ググったのですが良く分りません。ヒント教えてください。
0023デフォルトの名無しさん2014/10/22(水) 16:28:48.25ID:xLI11csW
クラスのインスタンスは参照型だからポインタと同じ感覚よ
だからTree構造にしたいクラスに自分のクラスをセットできるようにすればいいだけ
0024デフォルトの名無しさん2014/10/22(水) 16:56:20.88ID:xLI11csW
自作が面倒ならTreeViewのTreeNode使うとかw
これはたぶんいろいろ突っ込みくるだろうけどw
0025デフォルトの名無しさん2014/10/22(水) 21:35:53.18ID:9SNRJ+/G
C#でもポインタは使えるし、配列のインデックスで代用すれば等価
0026デフォルトの名無しさん2014/10/22(水) 23:19:57.13ID:hU31qxo0
むしろ言語仕様的にC/C++がC#より木構造に向いている場面が思いつかない
0027デフォルトの名無しさん2014/10/23(木) 01:37:59.35ID:CIjfK2M+
>>22
http://ideone.com/I8Mgb
0028デフォルトの名無しさん2014/10/24(金) 01:32:31.44ID:wHoq53fn
visualstudio2010でGUIのボタンを押したアクションで悩んでいます。

ボタンを押したらボタン背景を変える事は下記コードで出来るのですが、再び同じボタンを押したらボタンの色を戻したいのですがどのようにしたらいいのでしょうか?

private void button1_Click(object sender, EventArgs e)
{
button1.BackColor = Color.Red;
}
0029デフォルトの名無しさん2014/10/24(金) 01:39:45.71ID:ZY5NuSBS
フィールドに元の色残しとけば良いじゃん
Color nextButton1Color = Color.Red;
private void button1_Click(object sender, EventArgs e) {
&nbsp; &nbsp; Color current = button1.BackColor;
&nbsp; &nbsp; button1.BackColor = nextButton1Color;
&nbsp; &nbsp; nextButton1Color = current;
}
0030デフォルトの名無しさん2014/10/24(金) 02:10:47.20ID:/Z748uZD
こんなのどう?
http://ideone.com/cmVmic
0031デフォルトの名無しさん2014/10/24(金) 02:17:01.17ID:wHoq53fn
すみません。お騒がせしました。
C♯のif文がbool型しか受け付けないと知り、下記コードで解決しました。

private void button1_Click(object sender, EventArgs e)
{
if(button1.BackColor != Color.Red)
button1.BackColor = Color.Red;
else
button1.BackColor = Color.Yellow;
}
0032デフォルトの名無しさん2014/10/24(金) 23:47:43.44ID:xWfOJGrL
しばらくvb.netやってたんだが戻ってきたら細かい記述の違いで
苦労するね・・・・

vbなんて早くなくなれ
0033デフォルトの名無しさん2014/10/27(月) 00:07:35.66ID:ecXIDnju
Int32の値をbyte[3]にリトルエンディアンで代入したいのですがどうしたらいいですか?
Int32の値が3byteで表せる範囲にあること前提でお願いします
0034デフォルトの名無しさん2014/10/27(月) 00:11:03.87ID:mD8tpba4
適当にシフトしとけb[0]=(byte)(a>>16);
0035デフォルトの名無しさん2014/10/27(月) 00:17:33.44ID:ecXIDnju
>>34
符号はどうすればいいですか
0036デフォルトの名無しさん2014/10/27(月) 00:20:48.66ID:PzbYYpKW
符号があるなら3byteで表せないだろ
仕様を明確にせよ
0037デフォルトの名無しさん2014/10/27(月) 00:22:41.12ID:ecXIDnju
値が-8388608〜8388607
に入って入れば表せると思ったのですができないんですか?
0038デフォルトの名無しさん2014/10/27(月) 00:22:41.53ID:yXIs7YvD
無理だと思うけどなw
0039デフォルトの名無しさん2014/10/27(月) 00:24:01.24ID:yXIs7YvD
一般的なサイン付きの動きを見てきたほうがいい
0040デフォルトの名無しさん2014/10/27(月) 00:26:38.69ID:BSa8ZZO9
符号あっても、23〜0bitを使うだけじゃないの?
0041デフォルトの名無しさん2014/10/27(月) 00:29:32.91ID:j/LwrAaO
http://msdn.microsoft.com/ja-jp/library/de8fssa4%28v=vs.110%29.aspx
の例見れば分かるんじゃね
0042デフォルトの名無しさん2014/10/27(月) 00:30:41.74ID:mD8tpba4
書き込む方は何も変わらん
読み取る方で2の補数計算する必要がある
0043デフォルトの名無しさん2014/10/27(月) 00:32:23.29ID:I5UPXr7N
そもそも、何故3byteにしたいん
ですか?
0044デフォルトの名無しさん2014/10/27(月) 00:32:37.65ID:PzbYYpKW
>>40
24ビット符号付きなんてレアな仕様なんだから
符号付き整数を表現するのだってどんな方式なのかわからんだろ
だから仕様を明確にしろと言っている
0045デフォルトの名無しさん2014/10/27(月) 00:36:00.13ID:yXIs7YvD
そもそもいくつからいくつの範囲を使うのかとか仕様すらわからないのに
そもそも2の補数でマイナスを管理してるって理解してるのかねえ
0046デフォルトの名無しさん2014/10/27(月) 00:36:31.06ID:ecXIDnju
>>44
MSBが符号ビットです

>>42
ファイルにリトルエンディアンで出力するのでそれではダメです
0047デフォルトの名無しさん2014/10/27(月) 00:37:45.92ID:yXIs7YvD
ダメですかとそこまで言い切るなら自分で仕様決めろよw
0048デフォルトの名無しさん2014/10/27(月) 00:38:38.80ID:PzbYYpKW
>>46
MSBが符号ビットだけじゃわからん
符号+絶対値なのか2の補数なのか1の補数なのか
0049デフォルトの名無しさん2014/10/27(月) 00:39:07.30ID:ecXIDnju
>>48
2の補数です
0050デフォルトの名無しさん2014/10/27(月) 00:39:55.81ID:mD8tpba4
2の補数なのになんで42が駄目なんだよ…
0051デフォルトの名無しさん2014/10/27(月) 00:40:48.46ID:yXIs7YvD
>>50
一般的なコンピューターの仕様に無いことやりたいけど楽したいっていう
アホな状況だからほっとけ
無理無理
0052デフォルトの名無しさん2014/10/27(月) 00:49:24.41ID:ecXIDnju
>>51
出力したファイルを読み取るアプリケーションが自分で作ったものではないから>>42は不可能です
0053デフォルトの名無しさん2014/10/27(月) 00:53:43.50ID:mD8tpba4
じゃあそのアプリは負数を扱えないかあるいは2の補数での負数表現じゃないわ
0054デフォルトの名無しさん2014/10/27(月) 00:53:59.00ID:yXIs7YvD
だからそういうのも仕様だから言えよ
単純に32bitで管理してて補数ありだった場合
上位1バイトを削って記録して読み込む場合は
復元した3bytのうち3バイト目の一番上位bitを見て1なら
4バイト目に0xFF、上位bitが0なら0x00を入れて
32bitのintに復元すればたぶん問題ないよ
0055デフォルトの名無しさん2014/10/27(月) 00:55:32.51ID:yXIs7YvD
>>53
一応可能かも
24bitの範囲で収まる数値だったらプラス側でもマイナス側でも
25bit〜31bitまでは0x00か0xFFだし
でも24bitのギリギリまで使う場合はダメかも
0056デフォルトの名無しさん2014/10/27(月) 01:03:43.07ID:mD8tpba4
そのアプリで-1と-0x800000と0x7fffffを表現するバイト配列を書いてみて
0057デフォルトの名無しさん2014/10/27(月) 01:06:41.00ID:ecXIDnju
>>54
ありがとうございます
上位8bitを3byte目とorをとったら出来ました

>>56
-0x800000
???
0058デフォルトの名無しさん2014/10/27(月) 01:10:17.70ID:yXIs7YvD
http://ideone.com/hyj3MU
0059デフォルトの名無しさん2014/10/27(月) 01:24:55.02ID:zT1ZGjog
センスの無い野郎に仕様決めさせるとこれだから
0060デフォルトの名無しさん2014/10/27(月) 01:28:02.66ID:nHs3W3Zv
わざわざ24bitとかなんで切り詰めるのかねえ
色でもそうそう使わないよな
0061デフォルトの名無しさん2014/10/27(月) 01:30:42.16ID:J0YxPYni
8bitマイコンで組み込みやってる時はパフォーマンスとメモリの都合上で
24bit符号付整数をよく使ったなあ。

結局質問者はバイナリで符号付整数を表現する理屈がよくわかってないというか、
符号拡張っていう概念を知らなかっただけか?

まあ難しい話じゃないけど今時そんな知識が必要になることなんてめったにないしなあ。
0062デフォルトの名無しさん2014/10/27(月) 01:50:03.87ID:/cB3P9Z6
>>59
24bit符号有はわりとよくあるよ
0063デフォルトの名無しさん2014/10/27(月) 03:05:29.56ID:zT1ZGjog
よくあるのとダサいのは同時に備えうることですよ
大人しく寝てなさい
0064デフォルトの名無しさん2014/10/27(月) 11:21:59.94ID:u81nZ1mf
何を思ってる24bit符号付整数がダサいとしているのか
身近な例ではハイレゾオーディオなんかでも使っているし
容量が制限される場合(wavのフォーマットでファイルサイズの上限が4GB)に必須だと思うが
0065デフォルトの名無しさん2014/10/28(火) 02:19:17.05ID:io/MHhIZ
typeofでどのクラスかわかるんなら、書かなくてもいいんじゃないか?
勝手にキャストしてくれよって思うんだけど
var hoge=obj as CustomClass;
これが
var hoge=obj;
hoge.CustomMethod();
にできないのかねー
0066デフォルトの名無しさん2014/10/28(火) 02:38:26.23ID:oItsuRwV
>>65
技術的な問題じゃなくて、設計思想の問題だからな
とりあえずdynamicでも使っとけ
0067デフォルトの名無しさん2014/10/28(火) 06:16:47.97ID:7gzsdJnw
>>64
何度も言うが身近であることとダサいことは何の関係もない
お前の服がいい例だ
何を思ってか?お前がお前の服をダサくないと思ってるのと同じ理由だ
0068デフォルトの名無しさん2014/10/28(火) 12:19:30.73ID:mvqng8vW
>>65
何言ってるのか訳わからん。

型システムもインテリセンスも要らんと言いたいのか、
コンパイラがプログラマの意図をエスパーできるはずだと言いたいのか。
0069デフォルトの名無しさん 転載ダメ©2ch.net2014/10/28(火) 13:09:01.64ID:+rWmYb/B
スクリプト脳は型そのものが理解できない
0070デフォルトの名無しさん2014/10/28(火) 16:24:25.13ID:io/MHhIZ
>>68
エスパーでもなんでもない
typeofでわかるんだから、コンパイル時に暗黙的にtypeofしてキャストしとけって話
0071デフォルトの名無しさん2014/10/28(火) 16:32:24.67ID:NvHpWEbQ
たしかにこれはスクリプト脳だなw
0072デフォルトの名無しさん2014/10/28(火) 16:45:54.98ID:EEjgUay4
sizeof の感覚なのかな
0073デフォルトの名無しさん2014/10/28(火) 16:48:13.16ID:DNkt1Anv
クラスの場合継承してるとどれにキャストしていいか迷わないかね?
0074デフォルトの名無しさん2014/10/28(火) 16:49:09.65ID:UF/cgvWW
GetTypeじゃなくてtypeof?
0075デフォルトの名無しさん2014/10/28(火) 17:26:31.66ID:zFXmNI3x
スクリプト脳っていうか、そもそもキャストの意味が分かってないんじゃないの?w

>>65のコードでobjがCustomClassにダウンキャスト可能かどうかはプログラマにしか
分からないことが理解できないって重症だなw
0076デフォルトの名無しさん 転載ダメ©2ch.net2014/10/28(火) 17:44:35.82ID:+rWmYb/B
おそらくtypeof(obj)って書けばコンパイル時に型が取れると思ってるのだな
0077デフォルトの名無しさん2014/10/28(火) 17:47:07.12ID:DNkt1Anv
xmlからオブジェクト作ってくれるxmlシリアライザーでも
型はちゃんと指定しないとダメだしなあ・・・
0078デフォルトの名無しさん2014/10/28(火) 18:17:02.90ID:kbKKW2zh
>>65
interface IFoo
{
 void Hage();
}

interface IBar
{
 void Hage();
}

class FooBar : IFoo, IBar
{
 void IFoo.Hage(){}
 void IBar.Hage(){}
}

var obj = new FooBar();

var hoge = obj;
hoge.Hage(); // さあどうしよう
0079デフォルトの名無しさん2014/10/28(火) 18:29:50.55ID:zFXmNI3x
ダイクマってヤマダ電機に吸収されたんだな知らんかった
0080デフォルトの名無しさん2014/10/28(火) 18:47:16.19ID:/ONcH8WK
>>78
明示的に実装しなけりゃいいんじゃ…?
0081デフォルトの名無しさん2014/10/28(火) 18:49:11.62ID:V1LYLnsN
甘くしたけりゃVB.netいけよ
c#は基本明確にするようになってるから
0082デフォルトの名無しさん2014/10/28(火) 19:16:59.76ID:s8cMOh7C
え、最近のVBって型についてゆるいの?
0083デフォルトの名無しさん2014/10/28(火) 19:21:29.76ID:V1LYLnsN
なぜか標準ではゆるいね
Option Strict
で調べてみ

C#メインでやっててVB.netで書く機会があったけどマジできつかった
0084デフォルトの名無しさん2014/10/28(火) 19:55:31.64ID:wYOxTR89
型に緩いって言ったってオプションでlongをintに暗黙的に変換できたりするだけで、そこら辺は
C#とそんなに違うわけじゃない。

違うのはオプションで遅延バインディングをサポートしてること。
0085デフォルトの名無しさん2014/10/28(火) 20:48:45.77ID:7gzsdJnw
遅延バインディングを切るのがオプションだろ
0086デフォルトの名無しさん2014/10/28(火) 21:05:15.34ID:wYOxTR89
Optionって英単語の意味知ってる?w
バックモニターはオプションです、って言うときのオプションと違うよw
0087デフォルトの名無しさん2014/10/28(火) 21:09:30.29ID:V1LYLnsN
新しい.netでVB.netの開発すると標準でゆるゆるなのよ
optionで硬くしないとダメなの
0088デフォルトの名無しさん2014/10/28(火) 21:12:41.28ID:ZuIkEPFY
>>82
昔のVBはもっと緩かった気がする
(´・ω・`)
0089デフォルトの名無しさん2014/10/28(火) 21:24:32.29ID:xmGpgvM5
Inferを勘違いしてる可能性
0090デフォルトの名無しさん2014/10/28(火) 21:49:35.04ID:fCi3mj/E
VS2013でも、デフォルト設定が「Option Strict」だけOffだからな
VBは腐ってるよ

そして「Option Strict Off」のままじゃないとdynamicが使えないジレンマ…
0091デフォルトの名無しさん2014/10/28(火) 22:15:28.72ID:MoTyap7r
宣言していなくても変数使えるくらいガバガバ
0092デフォルトの名無しさん2014/10/28(火) 22:55:01.68ID:MikCM1g3
WebBrowserイベントで最後にNavigatedイベントが2回発生するんだけどどういうこと?
0093デフォルトの名無しさん2014/10/28(火) 22:55:46.31ID:M7Hn+47C
フレームじゃね
0094デフォルトの名無しさん2014/10/28(火) 22:56:38.26ID:V1LYLnsN
htmlで1回
ヘッダにcssがあれば2回
jsがあれば3回とかそんな感じだったと思う
0095デフォルトの名無しさん2014/10/28(火) 22:58:18.90ID:uvfLqTRT
>>91
勘弁してくれ、せめて Option explicit
0096デフォルトの名無しさん2014/10/28(火) 22:59:34.54ID:ZuIkEPFY
>>91
流石にオプションエキシプリジットだっけ?はデフォルトにしといた
0097デフォルトの名無しさん2014/10/28(火) 23:01:03.21ID:V1LYLnsN
documentcompletedもに多様な回数飛んでくるはず
0098デフォルトの名無しさん2014/10/28(火) 23:04:02.15ID:MikCM1g3
>>93
フレームじゃなかったんだよ

>>94
ああなるほど外部css・js読んでるとその分増えるのか

なぞが解けたからもうちょっとがんばってみる
0099デフォルトの名無しさん2014/10/28(火) 23:06:22.90ID:V1LYLnsN
cssは体裁のためのものだから関係なかったかも
ヘッダー変えて読み込んでみ
ローカルのデータも読み込ませれるから
0100デフォルトの名無しさん2014/10/28(火) 23:15:08.44ID:ZuIkEPFY
>>95
それそれ!d( `・ω・´ d )
0101デフォルトの名無しさん2014/10/28(火) 23:16:13.99ID:V1LYLnsN
だんだん思い出してきた
URL突っ込んでNavigate開始すると
Navigatingイベントが複数発生して
Navigateが終わるとNavigatedイベントが同じ数だけ飛んでくるはず
サーバーがてんぽってたりすると帰ってこない場合もあるけど
0102デフォルトの名無しさん2014/10/28(火) 23:51:41.29ID:NvHpWEbQ
documentcompletedは一度だけじゃない?
転送されたときはシラネ
0103デフォルトの名無しさん2014/10/29(水) 00:33:55.42ID:GuEW8C5U
イベント用のカウンター作ってそれぞれ何度呼ばれるか見てみればいい
大体のヒントは与えたんだし
0104デフォルトの名無しさん2014/10/29(水) 01:17:59.42ID:gUoIWkK1
基本的には一回だけどfacebookとかtwitter貼り付けてると
そいつらの分も来る
0105デフォルトの名無しさん2014/10/29(水) 01:20:49.12ID:GuEW8C5U
イベントで呼ばれた際に一緒に送って来るデータに
何をやろうとしてたかも入ってるみたいだから分析してみればいい
0106デフォルトの名無しさん2014/10/29(水) 01:45:32.38ID:O4OPIFal
http://i.imgur.com/XOFLJyw.png
WPFでどうやってデータを持ってViewに通知するか教えてください。

サーバから不定期に送られてくるデータをアプリが覚えます。
データは書籍ID(9桁くらいの自然数)・書籍名・購入者数の組です。
アプリは指定したIDのデータを表示するウィンドウを複数出せて、そのIDの新しいデータが送られてきたらウィンドウ表示も書き換わるようにしたいです。
まだ知らないIDのウィンドウも表示できて、そのときは「未取得」と表示します。
0107デフォルトの名無しさん2014/10/29(水) 02:00:34.61ID:GuEW8C5U
基本はバインド
0108デフォルトの名無しさん2014/10/29(水) 09:35:09.15ID:62wmpoDB
三角関数の計算を高速化する方法はないでしょうか
マクローリン展開の高次の項打ちきりや予め計算をしておいてテーブルを使う方法などいろいろ試してみましたが良い結果が得られませんでした
0109デフォルトの名無しさん2014/10/29(水) 11:51:12.77ID:2nXgaoqJ
ざっくりとした質問だなw
必要な精度との相談じゃないの?
ライブラリと同じ精度を維持したまま高速化するのは難しいんじゃないのかと。
0110デフォルトの名無しさん2014/10/29(水) 12:01:12.17ID:jBei42zx
入力が限定できるならテーブル化以上に高速化なんて不可能だろうけど
0111デフォルトの名無しさん2014/10/29(水) 13:57:09.13ID:UnaJRfaO
>>110
ある程度細かくテーブル化して補完すれば、それなりに精度は得られる。
もちろん許容誤差をどの辺にするかで、現実的な大きさでいけるかは変わってくるが。
0112デフォルトの名無しさん2014/10/29(水) 13:59:45.53ID:l9ZYbS7g
この手の曖昧な質問は基本的なビルド設定が適切かというところから疑わねばならない
0113デフォルトの名無しさん2014/10/29(水) 14:50:39.42ID:lx3tUA44
>>106
書籍のドメインモデルのコレクション作ってバインドー
0114デフォルトの名無しさん2014/10/29(水) 14:56:46.97ID:gUoIWkK1
プロファイラ使うとか
0115デフォルトの名無しさん2014/10/29(水) 15:07:31.40ID:L/zj/z/O
>>112
VS2013でコードの最適化にチェックをしています
0116デフォルトの名無しさん2014/10/29(水) 20:35:39.66ID:BCC8CFU2
GPUには投げれないの?
0117デフォルトの名無しさん2014/10/30(木) 03:41:46.80ID:RnsZI9rr
C#プログラミングで心がけることを教えてください!
0118デフォルトの名無しさん2014/10/30(木) 06:44:52.99ID:PI4dm/7f
プログラミングを避けること
0119デフォルトの名無しさん2014/10/30(木) 06:48:58.79ID:h1GX18Lh
C#に固執しないで柔軟に道具を選ぶこと
その選択肢には>>118も含まれる
0120デフォルトの名無しさん2014/10/30(木) 11:51:04.57ID:chq8mCtC
>>117-119
プログラミング以前に昼夜逆転生活は体にもメンタルにもよくないよw
01211182014/10/30(木) 11:56:49.00ID:CVdtM/nI
俺は年寄りだから早起きなだけだ
0122デフォルトの名無しさん2014/10/30(木) 12:00:18.61ID:oVYL7pTM
VS2013を安く買う方法を教えてください
0123デフォルトの名無しさん2014/10/30(木) 12:05:15.08ID:G05FPquA
SSDを買います
評価版OSを入れます
評価版vsを入れます

期限が来たら必要なデータを移行して
SSDをフォーマットしてOS入れなおしに戻ります


自己責任で
0124デフォルトの名無しさん2014/10/30(木) 19:11:36.64ID:7itNYG08
今からC#を勉強したいと思います、てきせつな参考書を教えてください
0125デフォルトの名無しさん2014/10/30(木) 19:24:17.40ID:aopAPRYc
本屋行け
0126デフォルトの名無しさん 転載ダメ©2ch.net2014/10/30(木) 20:07:17.06ID:6BZlNaBs
配列なら構造体をメソッド呼んで書き換えられるけど
Listだと構造体をメソッド呼んで書き換えられないとか
超ムカツク
0127デフォルトの名無しさん2014/10/30(木) 20:12:18.10ID:h1GX18Lh
格好付けて構造体なんて使ってるからだ
お前みたいに正しく性質を理解していない奴が使うとまず間違いなくクラスの方が性能良いから
0128デフォルトの名無しさん2014/10/30(木) 20:12:55.75ID:5ulE5Y9d
....などと意味不明な供述を繰り返しており、
0129デフォルトの名無しさん 転載ダメ©2ch.net2014/10/30(木) 20:14:15.62ID:6BZlNaBs
GPU動かすには構造体じゃないとどうもならねえんだよ
死ねよ
0130デフォルトの名無しさん2014/10/30(木) 20:15:11.05ID:PI4dm/7f
ゲラゲラ
0131デフォルトの名無しさん2014/10/31(金) 09:34:23.65ID:WfG3AHKN
>配列なら構造体をメソッド呼んで書き換えられるけど
>Listだと構造体をメソッド呼んで書き換えられないとか

ちょっと意味がわからないです
あと、classにもStructLayout属性つけられるんだぜ
0132デフォルトの名無しさん2014/10/31(金) 09:37:26.08ID:Y5dXgKD4
意味が分からないなら分かるまで黙ってればいいのに
0133デフォルトの名無しさん2014/10/31(金) 10:51:59.67ID:ykPxOq3g
逆だろー、値渡しになるんだから
0134デフォルトの名無しさん2014/10/31(金) 12:16:00.65ID:7tZWdvz0
>>133
逆じゃないだろ。
コレクションでは中の構造体のメソッド呼んで直接書き換えて反映することは出来ない。
配列なら出来る。
コレクションでもCLI的にはやろうと思えばそういう風にコレクションを実装することができないわけじゃなかった気はするが。
0135デフォルトの名無しさん2014/10/31(金) 12:16:45.22ID:7tZWdvz0
>>134
あ、そもそも元の書き込みが不完全なので意味を取り違えたと言うならわかる。
0136デフォルトの名無しさん2014/10/31(金) 20:42:08.26ID:Au5SL8yw
structのプロパティやインデクサをgetしたときにはrefを返して欲しいよな
0137デフォルトの名無しさん2014/10/31(金) 20:44:14.54ID:RzGeXPVX
値型を変更しようとすること自体が大間違いな気がする
0138デフォルトの名無しさん2014/10/31(金) 20:49:34.89ID:kWsbvWPF
>>136
参照を返せてしまうとクラス側で参照の有効期限を制御できない
たとえばList<T>って勝手に内部の配列を作り直すことがある
そうなったことをクラス外から知る手段はないし、
そうなった後に以前取った参照を使おうとするとCLRが逝く
0139デフォルトの名無しさん2014/10/31(金) 20:58:34.44ID:Au5SL8yw
>>138
なるほどなあ
そう簡単にはいかんか
0140デフォルトの名無しさん2014/10/31(金) 21:07:55.18ID:kWsbvWPF
list.ForEachRef((ref item) => { item.Hoge = "a" })とか
list.GetRef(2, (ref value) => { value.Hoge = "a" })
のようにすれば安全に参照を返せるが、記述面でのメリットはないし
速度面でもよほど巨大な構造体でない限りはオーバーヘッドのほうがでかい
0141デフォルトの名無しさん2014/10/31(金) 23:57:35.32ID:ntsJ54T5
ゲーム系はC++向けに書かれている事が多いから
素直なら構造体使おうって思っちゃうよね
0142デフォルトの名無しさん2014/11/01(土) 00:28:17.84ID:NzxKzmT+
最近だとUnity+C#ばっかりだけどね
0143デフォルトの名無しさん2014/11/01(土) 02:43:13.37ID:3xjlaq/h
>>116
Unityは下手な奴だとすぐにUnityって分かる
0144デフォルトの名無しさん2014/11/01(土) 20:49:12.37ID:SV8kvD46
COMの関数の引数に ref object型があります。
返ってくるのは、double[]とわかってます。
この関数は、どう使えばいいですか?
0145デフォルトの名無しさん2014/11/01(土) 20:50:48.36ID:+C7i5UUl
object obj = new double[...];
com.CallMethod(ref obj);
double[] value = (double[])obj;
0146デフォルトの名無しさん2014/11/01(土) 20:54:31.24ID:0MYD+AfN
この辺参考にしてcomをimportする
ttp://msdn.microsoft.com/ja-jp/library/aa288455(v=vs.71)
0147デフォルトの名無しさん2014/11/02(日) 01:14:01.20ID:p3ch2yAF
IEnumerable<T>をあえて使う理由っって何?
.ForEach()もないし使いづらいんだけど
0148デフォルトの名無しさん2014/11/02(日) 01:37:40.82ID:nVBs5hxU
>>147
問題設定が間違ってる。
じゃあ聞くがLinkedList<T>がIEnumerable<T>を実装してるのは「あえて」か?
0149デフォルトの名無しさん2014/11/02(日) 03:09:27.69ID:tPXeuuQV
>>147
IEnumerable<T>がプロパティとかの型で好まれるのは、IEnumerable<T>が読み込み専用だから
.ForEach()は手続き的になるので実装されてない。foreachとタイプ数はほとんど変わらんし
0150デフォルトの名無しさん2014/11/02(日) 03:55:52.68ID:p3ch2yAF
プロパティなら尚更private setにそとけばいいじゃないかって思うんだけど
それにプロパティでコレクション公開した時点で遅延の意味なくない?
0151デフォルトの名無しさん2014/11/02(日) 03:59:14.74ID:p3ch2yAF
List<T>より優れている点がわからないのよ
コレクション返すときにインスタンス化作業がいらないぐらいしか思いつかない

読み込み専用っていっても.ToList()すればしまいだし
0152デフォルトの名無しさん2014/11/02(日) 05:33:01.27ID:/8OZVmzV
.NET4.5以降で読み取り専用プロパティならIReadOnlyListでいいだろ
プロパティで遅延の可能性があるのは怖い
0153デフォルトの名無しさん2014/11/02(日) 06:16:15.05ID:kAQPCU1D
その日の気分でT[]返したりList<T>返したりするため
0154デフォルトの名無しさん2014/11/02(日) 09:33:18.03ID:ueW82dqI
IEnumerable<T>ってLINQの基本じゃん…ないと困るレベル

IList<T>よりいい点といえば共変だからキャストがし易い
4.5からIReadOnly〜が増えたけど
0155デフォルトの名無しさん2014/11/02(日) 10:01:26.58ID:ihJb2jjw
クエリ演算子使うたびに毎回バッファ作り直してたらクソ非効率だろ
プロパティにIEnumerable<T>は確かに直感に反するからIReadOnly〜の方がいいと思うけど
0156デフォルトの名無しさん 転載ダメ©2ch.net2014/11/02(日) 20:11:07.81ID:eeIxgBMo
そもそもなんでList<T>なんか使いたがるんだか
どこでAddされてRemoveされるかわからないようなものを受け渡しに使う意味がわからない
0157デフォルトの名無しさん2014/11/02(日) 20:22:34.12ID:72O4to5y
分からないなら分かるまで喋るなよ
0158デフォルトの名無しさん2014/11/02(日) 20:24:12.71ID:iI+2XYM2
リストの性質が必要な場合でも引数はIEnumerableでvar list = (values as IReadOnlyList<T>) ?? values.ToList();だなあ
0159デフォルトの名無しさん 転載ダメ©2ch.net2014/11/02(日) 20:29:10.45ID:eeIxgBMo
まずListを使うと最大で2倍のメモリの無駄が発生するよね
アクセスにも常時オーバーヘッドが発生するし
「このプロパティはAddやRemoveをしていいんだ」という誤ったメッセージも伝えてしまう

Foreachメソッドは言語機能であるforeachとできることがまるで変わらない上に性能上のオーバーヘッドが発生するので必要性が皆無だし
言語的にはLINQに統一されているコレクションのアルゴリズムライブラリに
全く命名規則の異なるList独自のアルゴリズムライブラリが実装されていて
混乱をもたらす
すべてが無駄で異質で紛らわしく遅い これがListというわけ
0160デフォルトの名無しさん2014/11/02(日) 20:34:54.99ID:72O4to5y
そういう話はママに聞いて貰え
0161デフォルトの名無しさん2014/11/02(日) 22:46:14.93ID:a7K9Bi7z
List使っちゃイカンのか??
0162デフォルトの名無しさん2014/11/02(日) 22:47:46.19ID:ihJb2jjw
Listは内部実装で使うもんだ
実際パブリックAPIにListが出てくるのはMSが公式に非推奨としてる
0163デフォルトの名無しさん2014/11/02(日) 23:50:31.85ID:/iiShRJm
>>159
一番わかりやすかった
0164デフォルトの名無しさん2014/11/03(月) 00:22:17.57ID:By9fbqxD
そういう話じゃないんだけどねw

なぜList<T>じゃなくてあえてIEnumerable<T>を....なんて疑問が湧く人は
連結リストとか知らないだけ。
0165デフォルトの名無しさん2014/11/03(月) 04:36:04.39ID:vfiUmfUE
そもそもIEnumerableって列挙子を取得できる事を保証するだけで
Listとかと機能的な抽象度が全く違うと思うんだが
なんで同列で語られてるの?
0166デフォルトの名無しさん2014/11/03(月) 08:14:01.18ID:iNVVQbHO
>>161
ほとんどの場合、クラスで保持してるリストをそのまま外部に晒したら面倒なことになる

リストを持ってるHogeクラスを作ってるとき、Hoge.ItemsプロパティでListを公開するよりも、
Hoge.AddとかHoge.Removeとかをいちいち定義した方がかえって楽になる。
Hogeクラスで追加する内容とかをコントロールできるから
0167デフォルトの名無しさん2014/11/03(月) 08:18:45.85ID:iNVVQbHO
>>164の目的ならCollection<T>とかICollection<T>とかを使えばいい
IEnumerable<T>は読み書き禁止目的だよ
0168デフォルトの名無しさん2014/11/03(月) 08:23:32.49ID:E0tV9wdv
クラスで保持してるリストをIEnumerableやIReadOnly〜でそのまま晒すのも
外にクラス内部の状態が晒されてしまうことになるので不適切な場合が多いよ
それを防ぐためには防御的コピーを行ってスナップショットを返すのが定石なわけだけど、
その場合はList<T>型で返そうが配列で返そうがIEnumerable<T>で返そうが確かに大きな違いはない
そういう話だろ?
その場合はもう好みの問題だけど、利用者側の利便性を抜きにして誤解を防ぐことだけを考えるなら
配列で返すのが一番スナップショットだとわかりやすいかもね
0169デフォルトの名無しさん2014/11/03(月) 08:51:14.55ID:IFTEZnJ0
まだこのしょうもない話続けてんのね
質問者が初心者なのはいいとして、答える方まで初心者でいいのかねえ、このスレ
0170デフォルトの名無しさん2014/11/03(月) 09:09:23.48ID:hBI8mVmo
スナップショットは呼び出し側ってことでIEnumerable<out T>を晒すんだろ

as でキャスト可能かどうかを試す馬鹿はそうそういまい…心配なら規約で禁止しとくべき
0171デフォルトの名無しさん2014/11/03(月) 16:11:47.55ID:UYev8NTo
>>167
だからそういうことじゅなくて、IEnumerable<T>の存在理由はその名前が表すとおり。

ところで、C#4以降の機能を今まで真面目に勉強してなかったんだけど、
http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_03/csharp4_03_03.html
これ読むと、C#4以降のコードだとIEnumerable<T>を他所から受け取ってforeachで列挙したら、
列挙するコードを書いてる方の意図と無関係に列挙が並列で実行されることがありうる、ってことなのか?
0172デフォルトの名無しさん2014/11/03(月) 16:22:06.45ID:JVyZkOjQ
ない。列挙子が並列クエリでも普通にforeachで回す限りは
foreachのブロックは必ずシリアルに実行される。
並列にforeachしたかったらParallel.ForEachを使う。
0173デフォルトの名無しさん2014/11/03(月) 16:43:40.66ID:sRGXCakH
こんにちは
listviewで最後の要素まで表示されてるか取得する方法ってある?
0174デフォルトの名無しさん2014/11/03(月) 17:14:10.16ID:ZxXM8e/y
あるよ
0175デフォルトの名無しさん2014/11/03(月) 19:54:17.73ID:qN1hokgX
あるね
0176デフォルトの名無しさん2014/11/03(月) 20:48:27.89ID:fVJy04oW
あるのか!Σ(・ω・;)
0177デフォルトの名無しさん2014/11/03(月) 22:32:26.22ID:CMUuDIkw
>>171
LINQのselectは.Select()のシンタックスシュガーであって
foreachのシンタックスシュガーではないよ。
なので.Select()が並列化されることはあっても
foreachは並列化されない
0178デフォルトの名無しさん2014/11/03(月) 23:08:51.68ID:OUP+1F/N
>>172, >>177
だけど、>>171の記事の、

int[] ar = { 1, 2, 3 };
var q1 = from n in ar.AsParallel() select n;

このq1の型はIEnumerable<int>で、こいつをforeachで回すと並列に列挙されるんだよね?
なんかよくわからんな。
01791772014/11/03(月) 23:28:04.28ID:CMUuDIkw
>>178
「from n in ar.AsParallel() select n;」
これは直感的には
「from n in ar.AsParallel()」に対して.Select(n => n)する。
このとき並列処理されてランダムな順のに取り出す予定のIEnumerable<>が出来上がる。
つまり「var q1 = from n in ar.AsParallel() select n」の結果のq1が既に
ランダムに取り出すことになる予定のIEnumerable<>。
それをforeachで順に取り出すからランダムに見えるのであって、
IEnumerable<>に対するforeachは常に順番通り。
0180デフォルトの名無しさん2014/11/04(火) 01:37:06.20ID:WbrI0fFW
List<T>.GetRange(0,10)
これと同じような機能がIEnumerableにない?
0181デフォルトの名無しさん2014/11/04(火) 02:00:09.13ID:0aDDvGcW
Skip/Take
0182デフォルトの名無しさん2014/11/05(水) 22:30:11.62ID:9h9iG+sw
現在、Note配列の中に格納されている文字列をランダムに選択し、選択された文字列をGeneType構造体のGene配列に格納していくという処理を行いたいのですが、
デバッグを行うと下のソースコードの下の方の、
Individual[i].Gene[j] = Note[RandomNumber];
の部分で、「nullreferenceexceptionはハンドルされませんでした」というメッセージが返ってきて処理が実行できません。
このエラーの回避方法が全く分かりません。
どのようにしたらこのエラーを回避でき、Gene配列の中に文字列を格納していくことができるのでしょうか?
わかりにくいかもしれませんが、回答を頂けると非常に助かります。
以下にソースコードを載せます。
http://ideone.com/hXy2wG
0183デフォルトの名無しさん2014/11/05(水) 22:33:20.13ID:vb+KtnkD
マルチというかこれは転載か? 意図が分からん
0184デフォルトの名無しさん2014/11/05(水) 22:49:23.47ID:hf+71EDI
>>182
そもそもプログラマやるのが間違ってるレベル
0185デフォルトの名無しさん2014/11/05(水) 22:57:52.07ID:m2sP0B/9
>>182
元スレのNo.5の回答を良く読め
そして"正しく"修正しろ
0186デフォルトの名無しさん2014/11/05(水) 23:03:40.67ID:pjOZNQFt
糸はわかるだろう
GeneType[] Individual = new GeneType[indNumber];
for (var i=0; i < indNumber; i++)
{
 Individual[i] = new GeneType();
0187デフォルトの名無しさん2014/11/05(水) 23:05:40.54ID:vb+KtnkD
いや元スレじゃもっと話が進んでたから
0188デフォルトの名無しさん2014/11/05(水) 23:25:23.27ID:9h9iG+sw
Individual[i]=new GeneType(indNumber);
か
0189デフォルトの名無しさん2014/11/05(水) 23:26:16.77ID:9h9iG+sw
>>188
Individual[i]=new GeneType(geneNumber);
0190デフォルトの名無しさん2014/11/06(木) 18:30:23.29ID:JwgjOOIy
16進の浮動小数点書式の文字列を数値に変換する方法はないでしょうか。
0191デフォルトの名無しさん2014/11/06(木) 18:57:57.73ID:0qVlggyZ
書式にもよるけど
単に倍精度浮動小数点数のビット表現を16進化しただけなら、
longに変換してからBitConverter.Int64BitsToDoubleとか
0192デフォルトの名無しさん2014/11/06(木) 19:05:37.29ID:1jPm002t
16進の浮動小数点書式の文字列って何だろう。
6.02e23

みたいに
2.EFe2 ( = 0x2ef)
みたいな感じ?
01931902014/11/06(木) 19:38:52.44ID:JwgjOOIy
>>192

16進の浮動小数点書式の文字列は、C99で採用された出力フォーマット(%a)です。
例えば、1.0と0.5は0x1p+0と0x1p-1となります。

これを浮動小数変数に変換したいです。
0194デフォルトの名無しさん2014/11/06(木) 19:40:57.53ID:nsu6e9Lq
Convert
http://www.atmarkit.co.jp/fdotnet/dotnettips/001atoi/atoi.html
でいけるんじゃね?
0195デフォルトの名無しさん2014/11/06(木) 20:01:01.49ID:c5wjwarx
>>193
ありがとう。
質問者に質問みたいな形になってしまって申し訳ないw

BCLにズバリのメソッドはなさそうだけど、要するに符号付整数とシフト回数みたいだから
自分で変換してもたいしたことないな。
0196デフォルトの名無しさん2014/11/06(木) 20:13:03.15ID:0qVlggyZ
msvcrt.dllをDllImportしてsscanfしてやれば
と思ったらscanf系では%aは非対応なのな、printf系は対応してるのに
0197デフォルトの名無しさん2014/11/06(木) 22:16:50.81ID:7wtzQbu2
下記のようなLinqのコードがあるとして

var source = new[] {
new{Name = "hoge", Age = 11},
new{Name = "fugo", Age = 16},
};
source.OrderBy(e => e.Age).ToResult();

これを、条件によって、下記のようなコードに切り替えたいのですが
source.OrderBy(e => e.Name).ToResult();

良い方法はありますでしょうか?

クラスメンバー文、条件分岐を書くような
泥臭い方法よりスマートな方法は
きっとあるだろうなと思いまして。

よろしくお願いします。
0198デフォルトの名無しさん2014/11/06(木) 22:39:28.19ID:/qykOdKR
同じ型ならデリゲート使ってどうのとかやりようはあるけど型が違うとどうしようもない
拡張メソッドじゃdynamicも使えないし
01991982014/11/06(木) 22:47:46.67ID:/qykOdKR
いやIComparableに揃えてしまえばいいのか
source.OrderBy(e => condition ? (IComparable)e.Age : (IComparable)e.Name).ToResult();
0200デフォルトの名無しさん2014/11/06(木) 22:49:26.10ID:0qVlggyZ
source.OrderBy(e => condition ? (object)e.Name : e.Age).ToResult()
まあ普通に条件分岐で十分じゃないかね
var ordered = condition ? source.OrderBy(e => e.Name) : source.OrderBy(e => e.Name);
ordered.ToResult();
0201デフォルトの名無しさん2014/11/06(木) 22:54:22.69ID:Go7L49j8
検証せずに妄想で書くけど、こういうの作るとか?

public static IOrderedEnumerable<TSource> LazyOrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<Func<TSource, TKey>> lazyKeySelector)
{
 return source.OrderBy(lazyKeySelector());
}
02021972014/11/06(木) 23:15:38.76ID:7wtzQbu2
色々とご回答ありがとうございます。

地味に難しい話だったのですね。

condition ? で分岐する方法だとスッキリ書けて良いなと思いましたが、
実際のクラスメンバーは7つほどありまして、
switch文で泥臭く作るのが手っ取り早いかなとも考えております。
0203デフォルトの名無しさん2014/11/07(金) 17:09:05.05ID:LAFld7sB
リフレクション使えば文字列でメンバを選択できるぞ
事前にPropertyInfoを取得しといてラムダの中ではGetValueするだけなら
まあボトルネックにはならんだろう
タイプセーフじゃなくなるけど、DRYとのトレードオフだな
0204デフォルトの名無しさん2014/11/08(土) 15:24:53.71ID:CgJi/Bg6
質問です。

C#でIEを操作するプログラムを作っています。
以下の様なサイト(HTML)の場合(IDがHTML属性に無い場合)に
どうやれば以下のボタンをクリックする事が出来ますでしょうか?
※WebBrowserコントロールはトラブルが多いので使っていません。

<button type="button"class="hogeclass" style="background-image:url(/file/hoge.gif);">押したらいけない</button>
0205デフォルトの名無しさん2014/11/08(土) 15:28:03.10ID:aQgxSc+J
JavaScriptの知識があれば解決できる問題のように思える
0206デフォルトの名無しさん2014/11/08(土) 15:35:44.46ID:CgJi/Bg6
>>205
かなり困っています。

IDの無いHTML要素のボタンのクリック方法を教えてくださいm(_)m
※WebBrowserコントロールは使っていません。あくまでもIEを操作して行いたいです。
0207デフォルトの名無しさん2014/11/08(土) 15:53:52.67ID:dGtCtmeI
ところで、idがある場合はどうやって押そうとしてるの
君の言うIEって何?IHTMLDocumentインスタンスのことか?
0208デフォルトの名無しさん2014/11/08(土) 16:02:28.08ID:fxTw9dkh
再帰的に検索すればいいだけではないかと
0209デフォルトの名無しさん2014/11/08(土) 16:05:31.61ID:aQgxSc+J
querySelector使えればすぐ終わる
0210デフォルトの名無しさん2014/11/08(土) 16:26:53.29ID:6SBoRSVL
IHTMLDocument系のインターフェース使わずに実現したいって意味かと思ったわwww
IHTMLDocument使っていいならbutton文字とか何番目のボタンとかで区別すれば?
0211デフォルトの名無しさん2014/11/08(土) 16:31:36.64ID:dGtCtmeI
Seleniumの可能性
0212デフォルトの名無しさん2014/11/08(土) 16:44:58.24ID:Op/46+dq
マルチは放置するに限る
0213デフォルトの名無しさん2014/11/08(土) 17:07:45.04ID:IOkpKWmF
フォームに入力してsubmitするだけならRubyでmechanizeやnokogiri使ったほうが遥かに早くて簡単だよ
0214デフォルトの名無しさん2014/11/08(土) 17:37:10.05ID:6mAHE7MV
どうせ下らない用途に决まってるんだよなあ
0215デフォルトの名無しさん2014/11/08(土) 20:36:55.04ID:/T4w+cw/
>>209
初めて聞きました。

>querySelector使えればすぐ終わる
これなんですか?
0216デフォルトの名無しさん2014/11/08(土) 20:57:36.20ID:6mAHE7MV
>>215
死ね
0217デフォルトの名無しさん2014/11/08(土) 21:21:49.51ID:aQgxSc+J
querySelectorの使い方はC#と関係ないんでよそで調べて
0218デフォルトの名無しさん2014/11/09(日) 00:14:30.70ID:4fS6tU8I
.>>217
はい


Webbrowserコントロールを使うとマシンにインストールしているIEと
確認君とかにアクセスして確認してみると異なるIEのバージョンとして表示されてしまったり
実環境と差異が出てしまうので使いたくないのです。
0219デフォルトの名無しさん2014/11/09(日) 00:22:20.81ID:wBio4qN0
またパズドラ厨か
0220デフォルトの名無しさん2014/11/09(日) 03:21:30.09ID:2oRSpyx5
質問です。
以下のようなコードを書いたのですが、
参照渡し?になりません。
オブジェクト型は参照を渡すんじゃないんですか??

static class Test{
public static MyClass val;
}

class RefrenceTest{
private MyClass val = new MyClass();
void test(){
Test.val = val;
val = null;
Console.WriteLine(Test.val.ToString());  → Nullになっていない
}
}
0221デフォルトの名無しさん2014/11/09(日) 03:46:33.33ID:FHwf4T5v
代入はコピー 参照型ならインスタンスの参照をコピーする
MyClassの代わりにstringならこの動作納得できる?

あるいはメソッド引数でも参照のコピーが行われるけどこれはどうかな
static void Exec(MyClass obj) {
&nbsp; &nbsp; obj = null;
}
static void Main() {
&nbsp; &nbsp; MyClass a = new MyClass();
&nbsp; &nbsp; Exec(a);
&nbsp; &nbsp; Console.WriteLine(a); // aはnullではない
}

さらに言うとローカル変数2つならどう?
MyClass a = new MyClass();
MyClass b = a;
b = null;
Console.WriteLine(a); // aはnullではない
0222デフォルトの名無しさん2014/11/09(日) 06:34:04.12ID:grv9CRp6
>オブジェクト型は参照を渡すんじゃないんですか??

そのとおり

>参照渡し?になりません。

参照と参照渡しは別です
0223デフォルトの名無しさん2014/11/09(日) 07:43:44.66ID:fVdgiIbs
>>220
Test.val = val;
この操作は、valに設定してあるnew MyClass();のアドレスをTest.valに設定してるだけ

unsafe使えば参照渡しできるかもだけど、普通は使わない
0224デフォルトの名無しさん2014/11/09(日) 14:46:45.72ID:2oRSpyx5
では、変数Aを変えたときに変数Bも自動的に参照が変わるようにするには
どのように実現すればいいのでしょうか?
0225デフォルトの名無しさん2014/11/09(日) 14:53:03.65ID:PMdr4BQl
クラスで包むとか配列使うとかやり方はいろいろあるけど、
「そんな小さなレベルで設計を考えない」が正解
目的をもっと素直に実現できる方法は必ずある
0226デフォルトの名無しさん2014/11/09(日) 15:04:36.08ID:yEIgI+gw
何がしたいんだろう。

ダメな人って(間違った)手段に固執するんだよねw
普通は、同じ目的を実現する別の手段はないかとか、
そもそも目的設定そのもものが間違ってるんじゃないかとか考えるんだけど。
0227デフォルトの名無しさん2014/11/09(日) 15:06:37.95ID:cypa0x+8
>>224
変数Bを使うところで変数Aを使えばいい
0228デフォルトの名無しさん2014/11/09(日) 15:36:26.40ID:2oRSpyx5
グローバルな変数Aを作りまくるのがベストということでよろしいでしょうか?
0229デフォルトの名無しさん2014/11/09(日) 15:39:49.42ID:pMT4VI9d
ただのレス乞食
0230デフォルトの名無しさん2014/11/09(日) 16:41:24.70ID:CgCMrjjx
いみわからないで質問してるだろ、もうちょっとコーディング慣れてからおいで
0231デフォルトの名無しさん2014/11/09(日) 20:03:57.13ID:us+ae5fB
ある動画ファイルの時間を簡単に取得する方法はありませんか?
0232デフォルトの名無しさん2014/11/09(日) 20:24:40.91ID:wBio4qN0
シェルのファイルプロパティ取得
0233デフォルトの名無しさん2014/11/09(日) 22:21:37.88ID:xhDtWh1m
mediainfo.dll使えば、殆どの動画フォーマットのプロバティーを取得できます
C#から使う方法もサンプルに収録されています
0234デフォルトの名無しさん2014/11/11(火) 10:33:16.57ID:CtvaXIGm
>>232>>233
ありがとう
0235デフォルトの名無しさん2014/11/11(火) 14:34:38.60ID:TsA8Knwq
教えてください
C++でかかれたDLLをC#から利用する場合に下記のようなケースは
どのように書き換えてアクセスすればいいのでしょうか?

DWORD WINAPI HogeA(
DWORD id,
DWORD* HogegeSize,
HOGEGE_INFO** HogegeInfoList
)

typedef struct _HOGEGE_INFO{
WORD n;
WORD t;
WORD s;
HOGEGE_EXT_INFO* extInfo;
}HOGEGE_INFO;

typedef struct _HOGEGE_EXT_INFO{
BYTE st;
BYTE Flag;
WCHAR* pname;
WCHAR* sname;
WCHAR* nname;
WCHAR* tname;
BYTE rid;
}HOGEGE_EXT_INFO;
0236デフォルトの名無しさん2014/11/11(火) 14:37:56.38ID:bgJKYijO
マーシャリングでggrks
0237デフォルトの名無しさん2014/11/11(火) 14:51:16.74ID:TsA8Knwq
さっぱりわからん
というかC++の構造体とか教えればそろそろ自動変換してくれる機能あってもよさそうなものだが・・・
0238デフォルトの名無しさん2014/11/11(火) 15:20:04.06ID:fSQuMDRd
[DllImport( "hage.dll" )]
static extern int HogeA( int id, ref int size, out HOGEGE_INFO info ); //どうせ構造体のサイズだろうからint。つかWCHARなのにAなの

struct HOGEGE_INFO
{
 public short n;
 public short t;
 public short s;
 public HOGEGE_EXT_INFO extInfo; // こんなんできるか知らんけど。できんかったらIntPtrにしとけ
}

[StructLayout( LayoutKind.Sequential )]
class HOGEGE_EXT_INFO
{
 public byte st;
 public byte flag;
 public IntPtr pname;  // あとでMarshal.PtrToStringUniしろ
 public IntPtr sname;
 public IntPtr nname;
 public IntPtr tname;
 public byte rid;
}

なんか知らんけど。
0239デフォルトの名無しさん2014/11/11(火) 15:21:57.91ID:qSp4OacN
>>238
HogeAは勝手につけた名前です
ややこしくしてすみません
0240デフォルトの名無しさん2014/11/11(火) 15:35:14.81ID:+FZC/J3X
最近の若いもんはhogeやfugeやhageを
使いたがるなあ。
私等の若い頃はmoboとかmogaだったわ。
0241デフォルトの名無しさん2014/11/11(火) 15:42:13.79ID:PojkbTOa
「日付が変わったら」というイベントを作りたいです
タイマーイベントで定期的に古い日付と今の日付を比較する方法を思いついたのですが、他に方法はありますか?
この方法で特に問題があるわけじゃないのですが、よりスマートな方法があれば知りたいです
0242デフォルトの名無しさん2014/11/11(火) 15:42:43.82ID:qSp4OacN
ちなみに32bitでコンパイルした場合アライメントは双方で一致するのかしら?
HOGEGE_INFOの場合short 3つだと2byte調整が入り
HOGEGE_EXT_INFOの場合byte,byteと来て2byte分調整が入りと・・・
0243デフォルトの名無しさん2014/11/11(火) 18:41:36.14ID:CafYlsI+
>241
基本は00:00のタイマー実行で、時計の変更とかに対応するためにSystemEvents.Timechangedを捕捉して補正とかは?

まあプラットフォーム依存になるけど。
0244デフォルトの名無しさん2014/11/11(火) 19:37:53.54ID:cIVTijq0
>>240
nemeとかmumaとかも有ったよな。
0245デフォルトの名無しさん2014/11/11(火) 19:57:29.95ID:bgJKYijO
>>241
タスクスケジューラーに登録する
0246デフォルトの名無しさん2014/11/11(火) 20:55:40.57ID:PojkbTOa
>>243,245
ありがとうございます
参考にします
0247デフォルトの名無しさん2014/11/11(火) 21:44:41.50ID:qSp4OacN
なれてなくて>>235で情報が足りませんでした
HogegeSizeはHogegeInfoListの個数(構造体の配列)でこちらはわかるのですが
HogegeInfoListのほうは構造体の配列はDLLで作って送り返すのでその先頭を
収めるポインタ?を渡すだけでいいのですがどのように書けばいいのでしょうか?

C/C++だとイメージ沸くんですがC#から呼び出しがさっぱりわかりません
いろいろ試してみたんですがdllの先で落ちてたりしてる感じですorz
0248デフォルトの名無しさん2014/11/11(火) 21:59:57.75ID:yiLdbl6P
>>247
構造体の配列をそのまま渡す。
っていうか最初から最後まで丸投げだなw

どうしてそれでいいのかの理屈はMSDNに書いてあるんだから少しは読んで自分で考えて、
その上でわからない点だけを質問すべきだ。
0249デフォルトの名無しさん2014/11/11(火) 22:08:08.02ID:qSp4OacN
>>248
その後dllの中の情報がわかったのですが
C#->C++DLLへは配列の中身は渡さないですよ
あくまでC++DLL->C#で返ってくる構造体の配列を受けるための
ポインタを渡せばいいだけなんですけどこの辺の記述がさっぱり・・・
構造体の実態を作ってそれを渡すパターンはネットで割りとみるんですけどね・・・

ポインタからバイナリアクセスして無理やり復元してもいいですけど
できればMarshal周りでやってみたいんです・・
0250デフォルトの名無しさん2014/11/11(火) 22:11:14.89ID:bBncU+2E
out HogeHogeInfo[] にすればダブルポインタとしてマーシャリングしてくれるはず
0251デフォルトの名無しさん2014/11/11(火) 22:31:15.43ID:qSp4OacN
C++側はこんな感じのものを返してくるようです
this->HogegeInfoList = new HOGEGE_INFO[this->HogegeSize];
0252デフォルトの名無しさん2014/11/11(火) 22:31:49.05ID:qSp4OacN
>>250
それも試してみましたがダメでした
どうもC++DLL側で落ちてる感じでした
0253デフォルトの名無しさん2014/11/11(火) 22:33:31.03ID:wrrbazZW
解放どうすんの?
0254デフォルトの名無しさん2014/11/11(火) 22:38:43.05ID:qSp4OacN
>>253
開放はdll側が面倒見るみたいです
関数をアクセスすると以前確保した構造体があればそれを開放した後新規に作ってくれるようです。
0255デフォルトの名無しさん2014/11/11(火) 22:42:18.70ID:qSp4OacN
それにdllを使うのは一時的なものにする予定で
基本的にはC#のコンソールアプリからこのdllを呼び出す構造にしておいて
このコンソールアプリも必要なときに子プロセスとして起動して短時間で
落とすので最悪はOSが開放してくれることを期待してます。
0256デフォルトの名無しさん2014/11/11(火) 22:57:43.98ID:qSp4OacN
見てもらったほうが早いかな・・・
EDCBってソフトのEpgDataCap3.dllの糞ARIB周りの処理だけ拝借したいんですよね・・・
https://github.com/epgdatacapbon/EDCB/tree/master/EpgDataCap3

RecTaskを操作してUDPでtsを送ってもらってそれをUDP受信して
EPG情報が入ってるtsパケットだけを抽出してEpgDataCap3.dllに流し込んで
糞ARIBの糞文字コードからs-jisなどの比較的扱いやすい情報に変換したいんです・・・

構造体を使わないやりとの関数は動いてるんですが構造体をやり取りするところがどうも・・・
0257デフォルトの名無しさん2014/11/11(火) 23:19:16.94ID:wrrbazZW
IntPtrでやれば良いよ→配列
受け取った後で個数分ループしてMarshal.PtrToStructureしていく
0258デフォルトの名無しさん2014/11/11(火) 23:33:03.14ID:qSp4OacN
>>257
一つ目は取れたみたいです
SERVICE_INFO _SERVICE_INFO = (SERVICE_INFO)Marshal.PtrToStructure(serviceList, typeof(SERVICE_INFO));

Marshal.PtrToStructureの第一引数でSERVICE_INFOの長さを足しこみたい場合はどう書けばいいんだろう
0259デフォルトの名無しさん2014/11/11(火) 23:49:20.44ID:qSp4OacN
>>258の件も解決しました
構造体の配列の移動うまくいったようでテストプログラムで与えてる
録画済みのtsのパケットから情報を取り出せたようです。

いろいろお手数おかけしました
0260デフォルトの名無しさん2014/11/12(水) 00:20:49.93ID:GpaZnCA5
一つのプロジェクトでコンソールアプリ用とフォームアプリ用の2つのexeを作りたいんだけど
やり方がわかりません
0261デフォルトの名無しさん2014/11/12(水) 00:23:39.12ID:pdAxKpZn
ソリューションの下にプロジェクトを複数持たせればOKよ
ソリューションエクスプローラを開くとソリューションの中にプロジェクトがあるはず
0262デフォルトの名無しさん2014/11/12(水) 01:10:18.32ID:GpaZnCA5
あ、そういうことか、ありがとう
0263デフォルトの名無しさん2014/11/12(水) 07:42:10.46ID:GpaZnCA5
GetPropaties()で派生クラスのプロパティを取得するとき
派生クラスのプロパティから取得されちゃうんだけど
基本クラスから先に取得するようにできませんか?
0264デフォルトの名無しさん2014/11/12(水) 07:45:26.12ID:cOTDpCR1
>>259
tsって違法じゃないの?
通報しとくか
0265デフォルトの名無しさん2014/11/12(水) 07:47:08.84ID:ZuWm+87C
わろた
0266デフォルトの名無しさん2014/11/12(水) 07:57:23.63ID:WozPiuot
>>263
Type.BaseTypeとPropertyInfo.DeclaringTypeがあれば自分で実装できるだろ
0267デフォルトの名無しさん2014/11/12(水) 09:19:05.69ID:zOxa4Ave
C#には画像処理を扱う高レベルなライブラリはないのでしょうか?
速度などよりも汎用性を重視したJavaでいうImageIOのようなものを探しています。
0268デフォルトの名無しさん2014/11/12(水) 09:26:24.85ID:pdAxKpZn
もうちょい具体的にどういうことするの?
Javaは知らん
まあC++のライブラリも呼べるからほぼなんでもござれだけど
0269デフォルトの名無しさん2014/11/12(水) 10:16:15.55ID:SidN/2Hy
tsが違法って、どこの国の話だよw
0270デフォルトの名無しさん2014/11/12(水) 12:10:21.33ID:cOTDpCR1
>>267
WPF
0271デフォルトの名無しさん2014/11/12(水) 12:14:26.92ID:5FUxYKA2
>>267
ImageIOをぐぐった範囲だとbmpクラスでFile関連の読み書きして
そのbmpクラスのimageからGraphicsを取得してしまえば画像に円描き込んだり
いろいろできるよ
http://dobon.net/vb/dotnet/graphics/fillrectangel.html
0272デフォルトの名無しさん2014/11/12(水) 13:30:12.48ID:JBFAsK6q
IOということならImageクラスのstaticメソッドとかじゃねーの
Image.FromFileとかImage.FromStream, Image.Saveその他
0273デフォルトの名無しさん2014/11/12(水) 13:42:22.29ID:5FUxYKA2
知らん
第一その程度ならbitmapクラスでできる
0274デフォルトの名無しさん2014/11/12(水) 13:50:01.63ID:ZuWm+87C
「高レベル」って何なんだか
0275デフォルトの名無しさん2014/11/12(水) 13:52:12.24ID:5FUxYKA2
ヒントは与えたからいいよ
bitmapオブジェクト作ってGraphics取得すりゃ
GraphicsPathもできるしz軸固定の座標系の処理もできるし
印刷向けの機能もあるしでいろいろできる
0276デフォルトの名無しさん2014/11/12(水) 16:08:43.87ID:GpaZnCA5
インターフェースを引数にしたらすごく便利だな
クラスごとに利用する側のメソッドも用意してたけど
ひとつのメソッドでできるようになった
多態性とか既に覚えてたけど、どのように実用していくかのとこまで想像が追いつかなかった
他人のソースコード見るのって勉強になるなぁ
0277デフォルトの名無しさん2014/11/12(水) 16:24:15.89ID:GpaZnCA5
多態性やインターフェースの解説サイトでも大体が同じメソッドを持ったクラスで解説してるので
アップキャストしたときは基本クラスやインターフェースで定義したメソッドしか利用できないと刷り込まれてた
でも実際はそれぞれのインスタンスの固有のメソッドも利用できるんだな
やっぱり例題が悪いよね
0278デフォルトの名無しさん2014/11/12(水) 21:14:32.08ID:I9sb4WdK
ダウンキャストすれば実行できるって話?
そんなん多態性なんていらないでしょ
いまどき多態性よりパターンマッチだよね〜
0279デフォルトの名無しさん2014/11/12(水) 22:49:30.88ID:KZdkgKg8
匿名クラスがあったらなー
0280デフォルトの名無しさん2014/11/12(水) 22:53:03.55ID:cfawQ6Ya
>>277
ちょっと何言ってるのか分からない。
0281デフォルトの名無しさん2014/11/12(水) 23:10:09.59ID:pyEYxLrW
>>280
俺もわからんけど気にしないことにする
0282デフォルトの名無しさん2014/11/12(水) 23:13:53.48ID:ozyu6RFa
基本が出来ていないから意味不明な思い込みをする
0283デフォルトの名無しさん2014/11/12(水) 23:48:43.77ID:4T4vzDZo
class Program{
 static void Main(string[] args){
  Tasizan(new Class1());
 }
 private static void Tasizan(IMsg c1)
 {
  //↓これができるのはなぜだって言おうとしてたけど
  //やっぱりできないことに今気づいた
  c1.Tasizan(5, 4);
 }
}

class Class1:IMsg{
 public void Tasizan(int n,int m){Console.WriteLine(n + m);}
 public void Message(){Console.WriteLine("aho");}
}
interface IMsg{void Message();}
0284デフォルトの名無しさん2014/11/12(水) 23:53:06.41ID:4T4vzDZo
でも今作っているプログラムではインターフェースで定義していないプロパティも取得できているんですよ
今ちょっと短いコードで再現できるように書きなおしているのでちょっとまってください
0285デフォルトの名無しさん2014/11/13(木) 00:13:30.83ID:SEVtdBVh
再現出来た
class Program{
 static void Main(string[] args){
  IMsg c1 = new Class1(5, 6);
  foreach (var p in c1.GetType().GetProperties()){
   Console.WriteLine(p.GetValue(c1));
  }
  Console.ReadLine();
 }
}
class Class1 : IMsg{
 public Class1(int n, int m){
  this.Goukei = n + m;
 }
 public int Goukei { get; set; }
 public void Message(){
  Console.WriteLine("aho");
 }
}
interface IMsg{
 void Message();
}

なぜこれでインターフェースにないプロパティが取得できるんだろう
0286デフォルトの名無しさん2014/11/13(木) 00:16:08.36ID:cPE1V/ru
>>285
c1の実体はClass1だから
0287デフォルトの名無しさん2014/11/13(木) 00:19:57.99ID:2NE0aFui
GetTypeでClass1が返ってきてるでそ
0288デフォルトの名無しさん2014/11/13(木) 00:27:00.20ID:dDueGjNV
>>285
インターフェイスの型(IMsg)に変換しても元の型情報(Class1)は残っている。

IMsg imsg = new Class1(5, 6);
Class1 c1 = (Class1)imsg;
Console.WriteLine(c1.Goukei);
0289デフォルトの名無しさん2014/11/13(木) 00:28:53.63ID:SEVtdBVh
あーー、ダウンキャストしているようなものなのかー
入れ物がインターフェースでも実体はそのまま残ってるのね
つまりインターフェースの変数に代入するということは、機能制限ができるだけってことか

インターフェースの説明って複数のクラスの同じ名前のメソッドを同じように使えますーって書いているだけで
こういうことしっかり解説しているとこってないよね
0290デフォルトの名無しさん2014/11/13(木) 00:41:32.21ID:La2Edcl7
え、大抵の初心者向けサイトで解説していると思うんだが・・・
0291デフォルトの名無しさん2014/11/13(木) 01:50:19.95ID:E9Q887xN
>>289
>c1.GetType().GetProperties()

こういう普通じゃないことをしてるから
普通じゃない所でひっかかるんだろ。
お前にリフレクションは5年早い
0292デフォルトの名無しさん2014/11/13(木) 02:47:05.83ID:SEVtdBVh
えー、じゃあデータベースに自作クラスを自動でデータバインドするとき
普通はどうするの
0293デフォルトの名無しさん2014/11/13(木) 02:51:18.10ID:9ttVFngg
可能な限り出来合いのマッパー使います
本質でないところに時間を割くだけ無駄なんで
0294デフォルトの名無しさん2014/11/13(木) 02:58:07.56ID:o5qZT60+
>>289
>c1.GetType().GetProperties()){
>なぜこれでインターフェースにないプロパティが取得できる
>しっかり解説しているとこってないよね

インターフェースに無いGetType()メソッドを自分で呼び出しておいて何を言ってるんだか
O/Rマッパーを再発明しちゃう人には難しかったかな
0295デフォルトの名無しさん2014/11/13(木) 03:06:38.70ID:9ttVFngg
俺は別に煽る意図はない
0296デフォルトの名無しさん2014/11/13(木) 06:55:03.87ID:jeild1QZ
EF使ってみたけどエラーばっかり出て使えないんだが
これだから自前で作るしかないんだよな
0297デフォルトの名無しさん2014/11/13(木) 07:22:34.24ID:jeild1QZ
ssd使ってるのになんでCドライブにデータベース作成すんのこれ
プロジェクトフォルダに保存しろよ。見つけるのに一苦労したわ
イライラするわー
0298デフォルトの名無しさん2014/11/13(木) 08:28:45.14ID:MtfA5m0o
Entity FrameworkはVisual Studioチームの糞ソフトの集大成。
自分のパソコンで動けばいいと言う人にぴったり。
環境が汚れるとか細かいこと気にしない人向け
0299デフォルトの名無しさん2014/11/13(木) 08:38:53.16ID:t1HkoJK+
大抵dapperで済ましてますわ
0300デフォルトの名無しさん2014/11/13(木) 09:13:01.47ID:oCyPAeSH
>>270-271
マルチプラットフォームで共通して使えるGDI+やWPFを完全にラッピングしたような高レベルなライブラリを探しています。
0301デフォルトの名無しさん2014/11/13(木) 09:15:05.32ID:t1HkoJK+
ああ、この人めんどうくさい人だ
0302デフォルトの名無しさん2014/11/13(木) 09:16:29.99ID:qdXC2B3z
>>300
Monoでこの辺の機能さがしてみなよ
0303デフォルトの名無しさん2014/11/13(木) 09:18:04.80ID:qdXC2B3z
>>301
この手合いはもう放置だね
0304デフォルトの名無しさん2014/11/13(木) 09:34:15.30ID:33W6V3FI
単一プラットフォームですらGDI+やWPFを完全にラッピングしたものなんてないのに……
0305デフォルトの名無しさん2014/11/13(木) 09:36:47.10ID:evRN4Vfo
GDI+程度の機能ならsystem.drawingに全部あるんじゃね?
0306デフォルトの名無しさん2014/11/13(木) 09:37:13.91ID:2NE0aFui
俺はEntity Framework重宝してるわー
0307デフォルトの名無しさん2014/11/13(木) 10:05:43.62ID:r5wPib5j
インテルのOpenCVのベースになってるIPLがまさにそんな感じだしCから移植したらいい。
0308デフォルトの名無しさん2014/11/13(木) 10:12:20.36ID:r5wPib5j
C#の画像周りはボロクソなのでJavaかCを使った方が早いと思うけど
0309デフォルトの名無しさん2014/11/13(木) 14:41:11.17ID:jeild1QZ
標準ライブラリじゃjpgすら読めないしね
拡大縮小も汚すぎて文字潰れるし
0310デフォルトの名無しさん2014/11/13(木) 14:43:04.94ID:a/8mYto/
Graphicsに画像ツールによくある圧縮モードとかあるだろ
もっと調べてから言え
0311デフォルトの名無しさん2014/11/13(木) 14:44:29.11ID:jeild1QZ
それで最高品質でやっても汚いんだよ
試してから言えよカス
0312デフォルトの名無しさん2014/11/13(木) 14:45:17.73ID:a/8mYto/
http://dobon.net/vb/dotnet/graphics/antialias.html
0313デフォルトの名無しさん2014/11/13(木) 14:46:05.16ID:a/8mYto/
http://dobon.net/vb/dotnet/graphics/interpolationmode.html
0314デフォルトの名無しさん2014/11/13(木) 14:47:26.53ID:qZui1jGZ
jpgすら読めないってどういうこと?
jpeg2000の話?
0315デフォルトの名無しさん2014/11/13(木) 14:52:28.04ID:1IhIdMPE
こら、犬のウンコなんて突っつかないの!
0316デフォルトの名無しさん2014/11/13(木) 14:55:25.98ID:jeild1QZ
>>313
だーかーらー、それやったっつーの
そこらのフリーの画像縮小ツールにも劣る性能だから使えないっていってんの
試せって言ってるだろ
0317デフォルトの名無しさん2014/11/13(木) 14:59:38.63ID:hxp//LQh
画像処理といっても入出力などの表示周りの依存性が高い部分と
読み書きやアルゴリズム周りの依存性が低い部分が一体化しているからおかしいんだよ。
0318デフォルトの名無しさん2014/11/13(木) 15:08:05.53ID:jeild1QZ
>>314
プログレッシブだと読めないとかで読めない画像が多数あった
0319デフォルトの名無しさん2014/11/13(木) 15:12:59.78ID:jeild1QZ
http://www.vector.co.jp/soft/win95/art/se257813.html
これと同じ画質以上、同じ容量以下で画像を縮小してjpgで保存できてから言え
0320デフォルトの名無しさん2014/11/13(木) 15:27:52.49ID:HnULWsPZ
>>316
縮小アルゴは、どんな画像でも一番ってのはないけどな
http://belle.digiweb.jp/nsystem/resize/man/quality.html

自分で好きなの実装すればいいだろ。
0321デフォルトの名無しさん2014/11/13(木) 15:33:50.86ID:jeild1QZ
言われなくてもいろいろ試したよ
でも文字が潰れたり、輪郭がガタガタだったりで>>319のソフトには敵わなかったよ
たーめーしーてーかーらーいーえーって言ってんだろ!
0322デフォルトの名無しさん2014/11/13(木) 15:36:18.97ID:jeild1QZ
あ、標準ライブラリを使った場合の話な
他所のライブラリ使えばーなんて話はしてないからな
0323デフォルトの名無しさん2014/11/13(木) 15:44:11.41ID:A8P9e+11
自分の説明が足りないくせに後から後から条件つけることw
0324デフォルトの名無しさん2014/11/13(木) 15:45:18.03ID:d+n31ASg
>>318
ほう、ではその読めないプログレッシブJPEGとやらをupしてみろ
0325デフォルトの名無しさん2014/11/13(木) 15:55:12.54ID:evRN4Vfo
>>301,303
大正解で糞わろたwww
0326デフォルトの名無しさん2014/11/13(木) 16:07:21.21ID:jeild1QZ
>>323
標準ライブラリじゃできないということは一貫している

>>324
それぐらい自分で試せよ
うpろだとかから画像全部DLして全部読み込んでみろ
逆に読めないjpgあるとでも思ってるのか?
使ったこともないだろアホ
0327デフォルトの名無しさん2014/11/13(木) 18:33:22.09ID:33W6V3FI
画像拡大縮小特化アプリにかないまちぇーんってアホか
0328デフォルトの名無しさん2014/11/13(木) 19:16:00.15ID:ezidJwaJ
318 デフォルトの名無しさん sage 2014/11/13(木) 15:08:05.53 ID:jeild1QZ
>プログレッシブだと読めないとかで読めない画像が多数あった

326 デフォルトの名無しさん sage 2014/11/13(木) 16:07:21.21 ID:jeild1QZ
>逆に読めないjpgあるとでも思ってるのか?

読めるのか読めないのかどっちだ?
0329デフォルトの名無しさん2014/11/13(木) 20:10:12.93ID:nVB+xnK4
だいたい拡大縮小の画質なんてほとんど思い込みだから
静止画で横に並べて比べれば何の違いもないのが分かるだろう
0330デフォルトの名無しさん2014/11/13(木) 20:25:18.55ID:mcxodWQV
なんでここは初心者用なのに怖そうな人が多いのですか?
試さず調べずテンプレを読まずに書き込むような2ちゃん初心者用ではないからですか?
初心者は色々なことが初心者であることが多いですので少し多めに見るよう回答者向けの注意書きをテンプレに追加してはどうでしょあ?
0331デフォルトの名無しさん2014/11/13(木) 20:33:15.47ID:evRN4Vfo
《誰かが》優しくレスをしてくれるスレッドだからこれでいいだろ
こんな基地外に対しても答えてる奴いるしw
0332デフォルトの名無しさん2014/11/13(木) 20:57:07.52ID:nVB+xnK4
Microsoftが「.NET」をオープンソース化&クロスプラットフォーム化、さらに無料版「Visual Studio Community 2013」も公開
http://gigazine.net/news/20141113-microsoft-net-framework/

>「Visual Studio Community 2013」自体は以前までのVisual Studio Expressとはまた違うもので、
>無料ですべてのIDE機能を持っているのが特徴。Windows・Android・iOS向けのアプリをこれで一気に開発できるようになる、というわけ。
0333デフォルトの名無しさん2014/11/13(木) 21:06:47.97ID:+4tBmYMj
すいません、LinuxでもmonoじゃなくてWindowsと同じ.Net Frameworkが使えるようになるってことですか?
0334デフォルトの名無しさん2014/11/13(木) 21:14:39.35ID:nVB+xnK4
今日(米国時間11/12)、Microsoftはデベロッパー・ツールのクロスプラットフォーム化の努力を
一歩押し進め、近く.NETをMacとLinuxに移植することを発表した。
同時に、.NETのサーバ・サイド(クライアントの.NETではない)のコア・スタックを次のバージョンからオープンソース化するという。

MicrosoftはXamarin社と同社が後援するMonoコミュニティと協力していくという。

Somasegarは「クロスプラットフォーム化とオープンソース化は.NETにとって将来へ向けての大きな一歩だ。
Microsoftは.NETをさらに普及させたい。そのための最善の方法は新たなプラットフォームへと拡張することだ」と述べた。
http://jp.techcrunch.com/2014/11/13/microsoft-takes-net-open-source-and-cross-platform/
0335デフォルトの名無しさん2014/11/13(木) 21:48:13.01ID:evRN4Vfo
>>333
そういうこと。ニュースに出てるよ。ぐぐれ
0336デフォルトの名無しさん2014/11/13(木) 21:58:22.14ID:+AsIlOUG
Monoと協力するんじゃ期待できないな
たぶんASP.NET MVCと同じようにMonoへライブラリのソースを寄贈するだけだろう
Mac/Linux版CLRの権利をXamarinが握ってる限りは自由な利用は期待できないよ
0337デフォルトの名無しさん2014/11/14(金) 03:52:47.98ID:eObxMTAS
http://i.imgur.com/gvzbjVZ.jpg
プログラミング自体が初めての初心者なのですが、windowsフォームアプリケーションのテンプレートの上記画像の部分について教えてください。
まず実行される順番について、Form1がインスタンス化する際、Form1コンストラクターに書かれてあるInitializeComponentが先に実行されて1が先に、その後2が実行されるという認識でいいんでしょうか。
その場合、componentsという変数には1でSystem.ComponentModel.Containerのインスタンスが格納された後、2でnullが代入されてしまい1が意味をなさなくなるんじゃないかと、
また逆の場合でもコンストラクターが最初に実行されるんじゃないのかと混乱しております。
0338デフォルトの名無しさん2014/11/14(金) 04:41:12.38ID:5lsdT5qm
>>337
グロ注意
0339デフォルトの名無しさん2014/11/14(金) 05:42:45.13ID:+9Z/kvkr
>>337
結論が間違ってるんだから前提がおかしいと考えてみよう
0340デフォルトの名無しさん2014/11/14(金) 07:25:45.33ID:w3RPJIr/
どうしたらコンストラクタが先に実行されると思うんだろう
0341デフォルトの名無しさん2014/11/14(金) 08:06:59.62ID:NpG0If6a
>>337
コンストラクターが呼ばれる
 →コンストラクターの中身の前に2が自動的に実行される
 →その後コンストラクターの中身が実行される
  →コンストラクター内からInitializeComponentが呼ばれる
0342デフォルトの名無しさん2014/11/14(金) 10:40:49.24ID:AzG2qFhq
>>337
その2は呼ばれるも糞もビルドする際にクラス(インスタンスを作るための雛形)
に封入されるので実行時には先も糞もない
0343デフォルトの名無しさん2014/11/14(金) 10:51:19.15ID:WmelKXp2
class AA
{
&nbsp; &nbsp; public int a = 1;
&nbsp; &nbsp; public AA()
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; a = 2;
&nbsp; &nbsp; }
}
class BB : AA
{
&nbsp; &nbsp; public int b = 11;
&nbsp; &nbsp; public BB()
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; a = 3;
&nbsp; &nbsp; &nbsp; &nbsp; b = 12;
&nbsp; &nbsp; }
}
static void Main()
{
&nbsp; &nbsp; BB bb = new BB();
}
こんな感じのでnew BBにブレークポイント置いて、
デバッグ実行でブレーク後にF11押していって
どういう順番で処理されるか確認してみると良いよ
0344デフォルトの名無しさん2014/11/14(金) 10:54:13.65ID:AzG2qFhq
>>343
ここ使えw
http://ideone.com/

最初はJavaとかになってるからボタンを押してC#に切り替えて
Runボタン押せば公開用のページ作ってくれるよ
0345デフォルトの名無しさん2014/11/14(金) 20:33:46.39ID:RUcmi/GC
>>332
今インストールしているんだが、標準だとストアアプリ環境が外されていてワロタw
0346デフォルトの名無しさん2014/11/14(金) 21:48:24.55ID:x7IjEtjY
WEBから小さい画像(5KB程度)を100個ぐらいダウンロードしたいんだけど、
どれぐらいの間隔でアクセスしたらいいの?

1秒間隔だと100秒もかかるし・・・ウエイト無しだとDOSアタックみたいになるし・・・
0347デフォルトの名無しさん2014/11/14(金) 22:00:30.19ID:meQYBZQG
好きにしろよ
あれは特殊なケースだが図書館で逮捕されたやつは1秒1回程度
0348デフォルトの名無しさん2014/11/14(金) 22:14:08.93ID:aP1RfszB
ランダム性持たせて
決して急がず現実的に有りえる速度で落とす
0349デフォルトの名無しさん2014/11/14(金) 22:19:22.72ID:QJfa8JkR
ブラウザなんかどう考えても、制限してるのはスレッドの数(同時にダウンロードする数)だけで
間隔なんか開けてるようには思えんが...
0350デフォルトの名無しさん2014/11/14(金) 23:24:15.64ID:aDWn1a/V
サムネ落とす程度なら同時に一気に100個落とそうとしても問題ない
DMMのでかい画像を片っ端から落としてるけど全く問題ない
個人鯖っぽいとこならブロックされる可能性があるけどね
0351デフォルトの名無しさん2014/11/14(金) 23:47:25.69ID:WbZKePEl
WPFとC#をさわっています。
進捗をWPFで表示させるためにbackgroundworkerを使用しています。

現状ではmainformのクラスでインスタンス化してmodel側に参照を渡してます。
progressChangedイベントなどもmainformのクラスに記述してます。

mainformのクラスは変更用のプロパティのみにしてmodelにbackgroundworkerを全部記述することも考えましたが、
本来であればどういった実装をするのがよいのでしょうか?
0352デフォルトの名無しさん2014/11/15(土) 00:15:00.22ID:SFshrUIb
IProgress<>を引数に受けてTask<>を返すメソッドをモデルに定義する
0353デフォルトの名無しさん2014/11/15(土) 04:46:07.30ID:W46BZ//t
>>351
まずはBackgroundWorkerを捨てます
0354デフォルトの名無しさん2014/11/15(土) 07:40:46.08ID:URe6Go0h
この世からBackgroundWorkerを紹介している初心者向けのサイトを撲滅する旅に出ます
0355デフォルトの名無しさん2014/11/15(土) 09:17:03.97ID:y85CLGz9
Visual Studio Community 2013 の日本語化が失敗してしまいます
たすけてください
0356デフォルトの名無しさん2014/11/15(土) 09:22:50.70ID:2nJK8oqb
MFCも入ってるのか。
いままで.netで作ってたアプリC++で作りなおすかな。
0357デフォルトの名無しさん2014/11/15(土) 09:30:40.64ID:SFshrUIb
そんなくだらん理由で作り直せる程度のアプリならどうでもいいわ
0358デフォルトの名無しさん2014/11/15(土) 09:41:11.93ID:zYpHtv4G
やっぱりクラス図も描けるのな
面白い
0359デフォルトの名無しさん2014/11/15(土) 10:55:45.84ID:bxsLni/J
>>357
ほんと
0360デフォルトの名無しさん2014/11/15(土) 11:05:30.66ID:4cfUEJN+
>>355
実はすでに成功している可能性あり。
VS起動後にオプションから言語モードを切り替えてみるんだ。
0361デフォルトの名無しさん2014/11/15(土) 11:06:39.64ID:2nJK8oqb
MFC使えないからって嫉妬するなよw
0362デフォルトの名無しさん2014/11/15(土) 11:07:59.81ID:bxsLni/J
日本語化できるのかw
0363デフォルトの名無しさん2014/11/15(土) 11:08:59.18ID:bxsLni/J
MFCにこだわるやつなんでどうせしょーもないコードを
見られたくないとかわけのわからんこと言ってるやつだろ
0364デフォルトの名無しさん2014/11/15(土) 11:15:20.23ID:bxsLni/J
ネットワークインストール 直リン
ttp://go.microsoft.com/?linkid=9863608

ISOダウンロード
ttp://go.microsoft.com/?linkid=9863609

日本語パッチ
ttp://go.microsoft.com/?linkid=9832174

直リン嫌な人はここから
http://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs#d-community-expando
0365デフォルトの名無しさん2014/11/15(土) 11:17:05.55ID:puVkGEvz
チャートの具体的使用例がわかるようなサイトを紹介してください。
0366デフォルトの名無しさん2014/11/15(土) 11:49:55.64ID:bxsLni/J
>>364の日本語化パッチ当てた後
Visual Studio Community 2013を起動してtools->optionsでウインドウ開いて
Enviromentツリーの中のInternational SettingsをクリックしてLanguageを
日本語もしくはsam as Microsoft Windowsを選択してOKを押すと再起動すると有効だよ
英語で書かれたメッセージボックスがでるのでそれに従えば日本語になってる
0367デフォルトの名無しさん2014/11/15(土) 13:11:06.27ID:q46k53kw
C#のソースでデザインパターンを説明しているサイト知らないですか?
海外サイトでも全然okです、お願いします
0368デフォルトの名無しさん2014/11/15(土) 13:18:51.44ID:Jdv0StyT
>>367
ググればいくらでも出てくるけど、2.0時代の物が多いから考え方の参考にしかならないかも
0369デフォルトの名無しさん2014/11/15(土) 13:36:08.08ID:cf+dnJvy
VC#2008で、配列変数を初期化したいのですが、いろいろググってみてarrayなるものを使えばいいようでしたので
Array.Clear(X, 0, X.Length);
としてみたのですが、実行してみると
「オブジェクト参照がオブジェクトインスタンスに設定されていません」とエラーが出ます

何が間違っているのでしょう?他の方法でしなければならないのでしょうか?
0370デフォルトの名無しさん2014/11/15(土) 13:52:54.19ID:GzDZx6pY
newしたか?
0371デフォルトの名無しさん2014/11/15(土) 13:54:27.95ID:QYEam8kn
Array.Clearは

for(var i = 0; i < X.Length; i++)
  X[i] = default(T); // ←多分null

であって

for(var i = 0; i < X.Length; i++)
  X[i] = new T();

ではないからな?
0372デフォルトの名無しさん2014/11/16(日) 00:22:17.69ID:dRXKEMGB
ちょっと教えて欲しいんですが
一定期間ごとにドライブ内のファイル構成をすべてデータベースに保存したいのですが
ドライブ内のすべてのファイルを取得して、データベースにあるのかどうかを検索して
新しくドライブに追加、削除されたファイルだけを更新するという考え方でいいのでしょうか?
0373デフォルトの名無しさん2014/11/16(日) 00:27:53.22ID:vxT+UTz0
>>372
要件がよくらわからない…(´・ω・`)
0374デフォルトの名無しさん2014/11/16(日) 00:32:13.78ID:Qf0y7Eih
>>372
再起的に探索して列挙したファイル名をDBと付き合わせればいいんでないの?
http://jeanne.wankuma.com/tips/csharp/directory/getfilesmostdeep.html
0375デフォルトの名無しさん2014/11/16(日) 01:05:23.68ID:dRXKEMGB
すみませんうまく説明できていなくて

ドライブ内のすべてのファイルを取得します
Directory.GetFiles(@"D:\", "*", SearchOption.AllDirectories);
それをエンティティに書き込みます
db.DDriveFiles.AddRange(GetFiles());
更新
db.SaveChanges();

数日後にドライブ内のファイル構成に変更があったので、dbを更新しようと上記のことを再度実行します
今現在はdbファイルを削除して、dbを新規に作りなおしていますが
変更(ファイルの削除、追加など)があった部分だけを更新した方がよいのではと思いまして
その変更があった部分だけを更新する方法がよくわからないということです
0376デフォルトの名無しさん2014/11/16(日) 01:14:12.18ID:Qf0y7Eih
好きにしろよw
0377デフォルトの名無しさん2014/11/16(日) 01:18:56.90ID:DAojpZSh
FileSystemWatcherで監視じゃだめなん
0378デフォルトの名無しさん2014/11/16(日) 04:30:18.23ID:CBCW2czo
>>367
ネットでデザインパターンを学ぶなら
相当いろんなサイトを見まくらないとデザインの意図がわからん。
素直に本買った方がいいかもしれん
0379デフォルトの名無しさん2014/11/16(日) 06:57:20.56ID:/gjxNyIJ
例の再帰原理主義君なら>>372の場合はパスを持たせるんじゃなくて
親ディレクトリを外部キーとして持つんだろうな
0380デフォルトの名無しさん2014/11/16(日) 07:37:43.24ID:9ijdtOHH
別に再帰の構造だろうと好きにしろと言いたいが
>>379は他人の再帰の設計が許せないほど嫌いらしい。
再帰に親を殺されでもしたのか
0381デフォルトの名無しさん2014/11/16(日) 07:47:33.62ID:ARcUbCRW
>>379
死ねよ粘着
0382デフォルトの名無しさん2014/11/16(日) 11:12:38.20ID:MPlnW1b4
>>380
再起設定は全然いいとおもうよ。

>>381
お前がしねば?>>380は凄く全うな意見をいってると思うよ。
0383デフォルトの名無しさん2014/11/16(日) 15:27:46.53ID:dRXKEMGB
Entity Frameworkで動的にデータベースを作成する方法はありますか?
ユーザーがデータを作成、任意のデータベース名で保存というのをしたいんですけど
0384デフォルトの名無しさん2014/11/16(日) 20:33:44.95ID:qmyZLHei
接続文字列変えれば普通に出来る
0385デフォルトの名無しさん2014/11/16(日) 21:16:37.54ID:Kyr5+wjo
>>378
C#でありますか?
0386デフォルトの名無しさん2014/11/16(日) 21:26:01.41ID:/gjxNyIJ
サンプルはJavaでいいよ
GoFデザインパターンはJavaで実装できるように作られてるから、
ソースがC#で書かれてたとしてもほとんどJavaと同じになる
C#だと言語に組み込まれてて必要ないパターンが多い
0387デフォルトの名無しさん2014/11/16(日) 23:00:57.33ID:AOJe6Gu7
質問です。
.net frameworkの話になっちゃうかもなのですが、
HTMLを表示するコンポーネントが使いたい場合は、WebBrowserしかないですか?
レンダリング機能だけでいいんです。
バージョンは4.5です。
0388デフォルトの名無しさん2014/11/16(日) 23:29:00.37ID:hNK9i3hs
WebBrowserはIEの表示部分を使ってるけど
ほかのブラウザの代表的なレンダリングエンジンも確か
dllとか入手すればできたはず
0389デフォルトの名無しさん2014/11/16(日) 23:35:15.57ID:dRXKEMGB
>>384
ありがとうございます
接続文字列について調べてみます
0390デフォルトの名無しさん2014/11/17(月) 00:25:03.63ID:GE7y1svb
>>387
http://mysearch.ritlweb.com/search/GeckoFX
0391デフォルトの名無しさん2014/11/17(月) 09:01:35.45ID:Y68KMpg5
>>386
そりゃ結城本が日本のデファクトスタンダードだけどGoF自体はC++の為に書かれた本ですよ
http://qiita.com/irxground/items/d1f9cc447bafa8db2388
ここにも有るように
>本が出版されたのは1994年であり、Java(1995)が出てくるよりも前だった
が事実です
0392デフォルトの名無しさん2014/11/17(月) 11:10:56.20ID:Y68KMpg5
wpfなら、Frameクラスでweb表示はできるな。結局IEだから何か変わるわけでもないが
0393デフォルトの名無しさん2014/11/17(月) 16:52:43.68ID:zkcfJ/xj
アルゴリズムの課題で
要素数2000のchar配列にアルファベット大文字が入っていて、
そのなかに入っているかもしれない小文字の位置を探し、なければ-1を返す。
というのを高速で行うプログラムを作るように言われたのですが、
自分なりにいろいろ試してもどれも似たり寄ったりな結果で早くなりません。
先生の話だと半分くらいの速さで出来るようになるらしいのですが。

↓試したこと
コード:http://ideone.com/AIiwx0

Visual Studio 2008での実行結果
----------------------------------------------------------
a以上z以下だったら小文字
forで要素番号アクセスで調べた版の時間=322817.7μs
whileで要素番号アクセスで調べた版の時間=310172.4μs
とりあえずポインタとwhile使ってみた版の時間=293710.3μs
とりあえずポインタとfor使ってみた版の時間=302182.4μs

とりあえず小文字は大文字よりでかい
forで要素番号アクセスで調べた版の時間=311770.6μs
whileで要素番号アクセスで調べた版の時間=289567.9μs
とりあえずポインタとwhile使ってみた版の時間=282193.7μs
とりあえずポインタとfor使ってみた版の時間=288668.3μs
----------------------------------------------------------

キーワードになるようなものを教えていただければ
あとはとりあえず自分で調べてみようとは思っています。
どなたかよろしくお願いします。
0394デフォルトの名無しさん2014/11/17(月) 16:59:05.42ID:v7H6Hs1d
課題は自分でやるか知恵遅れでやれ
byteじゃなくて4byte以上の数値
比較じゃなくてビット演算
0395デフォルトの名無しさん2014/11/17(月) 16:59:13.94ID:/GFfUKTo
全然アルゴリズムの課題じゃないねそれw
0396デフォルトの名無しさん2014/11/17(月) 17:00:18.94ID:75vbnKxq
出題者のレベルが低い問題だな
0397デフォルトの名無しさん2014/11/17(月) 17:00:22.85ID:NIIxetfA
そんな条件で高速化もくそもないと思うが
0398デフォルトの名無しさん2014/11/17(月) 17:01:21.75ID:rdWO/fjv
>>393
文字判定とループの二つの課題があふと思うけど前者で思いつくのは
1.
65536のbool配列を用意してchar値をintにキャスとしてインデックスアクセス

2.char値をintにキャスとして、
 0x61を引いた値をuintにキャストした値が
 26以下かどうかで判定

ただ「小文字」というのがUnicodeの
カテゴリLlのことを指すなら
Char.GetUnicodeCategoryするのが筋だろうね
0399デフォルトの名無しさん2014/11/17(月) 17:03:32.82ID:75vbnKxq
こんな問題だしてる教師は首にしたほうがいい

生産性も糞もねえ
0400デフォルトの名無しさん2014/11/17(月) 17:04:47.44ID:75vbnKxq
昔マシン語でクロック節約のみみっちい処理改善してたけどあれが脳裏を浮かんだ
今そんなの必要かね?ってレベル
0401デフォルトの名無しさん2014/11/17(月) 17:07:15.62ID:NIIxetfA
ああ立ってるビットで判定するのか
if (str[i] >= 'a' && str[i] <= 'z')
こんな2度の判定じゃなくて1度の判定だから速度が半分になる!
ってアホか
0402デフォルトの名無しさん2014/11/17(月) 17:08:26.31ID:5RaFTbYR
それ講師が使ってるPCが高速とかそういうオチだったりしないだろうなw
何にせよC#使って処理速度の講義するのはナンセンスだと思う
0403デフォルトの名無しさん2014/11/17(月) 17:09:25.34ID:HQeW7j2d
応!アホだぜ!とびっきりのな!
0404デフォルトの名無しさん2014/11/17(月) 17:10:29.97ID:75vbnKxq
>>402
まあチューニングは必要だがそれでもこの出題はねーわってレベル
もっとゲーム作る際のロジックとか教えたほうがいいレベル
0405デフォルトの名無しさん2014/11/17(月) 17:21:09.09ID:prLSHqpN
>>393
まず配列を2つ分割します
足し算して要素数で割ることで小文字があるか判断できます
なかったら除外
あったら更に分割して繰り返します
0406デフォルトの名無しさん2014/11/17(月) 17:28:26.08ID:XGJfmgWE
マルチスレッドでやるんじゃねーの?
0407デフォルトの名無しさん2014/11/17(月) 17:29:37.25ID:2R07lXEB
2000程度ならスレッド立てるコストのほうが高いだろう
0408デフォルトの名無しさん2014/11/17(月) 17:31:24.39ID:75vbnKxq
2kbなんて小さい小さい
2048ないんだぜ
0409デフォルトの名無しさん2014/11/17(月) 19:25:25.23ID:Y68KMpg5
課題を見る限り、大文字と小文字しかないようだから’a’以上だけで判定すればいいようだな
0410デフォルトの名無しさん2014/11/17(月) 19:51:22.39ID:SZFANCPm
char[]→char*→long*で32のビットが立ってるか4文字同時に見れるんじゃないの
0411デフォルトの名無しさん2014/11/17(月) 20:00:52.93ID:h2FCwdqo
C#って今後も使える言語なんですか?
0412デフォルトの名無しさん2014/11/17(月) 20:16:52.00ID:ppTtjJs6
バリバリ使えます
0413デフォルトの名無しさん2014/11/17(月) 21:08:02.36ID:TrB9TvSV
C#6.0て
プライマリコンストラクタもoutでの変数定義も導入されないんじゃ
マイナーアップデートどころの騒ぎじゃねえな
C#5.1に改名しろよ
0414デフォルトの名無しさん2014/11/17(月) 21:33:11.44ID:1jM2I2pq
Unity に Unreal Engine がんがん採用してますがな
04153932014/11/17(月) 21:41:37.38ID:zkcfJ/xj
みなさん回答ありがとうございます。
これから参考にさせてもらって作ってみます。

ちなみに授業は一応授業名が「アルゴリズムとデータ構造」って授業で、
やっぱり課題コピペで出されると困るとかでできるだけネットに載っていないことを取り上げているそうです。
先生が基準として提示していたアルゴリズムがwhereIsLowercase3に書いているアルゴリズムで、
先生曰くその半分くらいの速さでできるアルゴリズムがあるって話でした。
私の環境がWindows7+Visual Studio2008で先生の環境がWindows8(または8.1)+秀丸+マクロ(たぶんgccも使ってる?)
などのスペック差はありますが、先生に私の環境での実行時間を見せてはいないので
あの時間よりって話ではないです。
時間を載せてみたのは、似たり寄ったりの時間だったというのをアピールするためです。
0416デフォルトの名無しさん2014/11/17(月) 22:06:43.06ID:ABjyrQD9
>>413
宣言式は対応したってリリース情報に書いてあったぞ
コムパイル出来なかったけどな

それよりC#6の"x=\{x : "#.000"}" のキモい文法は何とかならなかったのか
0417デフォルトの名無しさん2014/11/17(月) 23:39:02.27ID:TrB9TvSV
>>416
うせやん
tps://ufcpp.wordpress.com/2014/10/05/934/
これらは両方ともまだまだやるべき作業が大量に残っている。
また、より大きなストーリー(後述するrecord/pattern matchingのこと)の開始地点でもあった。
primary constructorsはrecordに、declaration expressionsはpattern matchingとdeconstructionになる。
これらの機能はもっと後のリリースに入れる。段階的な投入は不要な面倒になる。
0418デフォルトの名無しさん2014/11/18(火) 00:38:10.64ID:c4Wts7yi
なんだよリリースノートとは何だったのか
http://www.visualstudio.com/en-us/news/vs2015-preview-vs#ManLang
『local variables can be declared inside expressions』
さすがベータだな
0419デフォルトの名無しさん2014/11/18(火) 00:46:02.06ID:CnBUgYqj
ここにいる奴って頭が固いな
キャストだのマルチスレッドだの
アルゴリズムの課題だと言っているのに
言語固有の機能ばかりしか思いつかないなんて
専門卒レベルしかいないんじゃないのか?

そもそもC#でやるようなレベルじゃないのも確かだけどな
2000文字検索するよりアプリ起動する時間の方が何千倍も時間がかかるし
でもそこが論点じゃないんだからわからないなら黙ってればいいんだよ
0420デフォルトの名無しさん2014/11/18(火) 00:47:52.78ID:Nf1Ct0kP
普通に考えてこの>>398の1の配列で小文字かどうか調べるやつが最速だろう
0421デフォルトの名無しさん2014/11/18(火) 00:52:46.50ID:KA7ActE3
>>419
違うよ。君が馬鹿なだけ。
最初から言ってるじゃん。こんなの(>>393)はそもそもアルゴリズムの課題として成立してない。
0422デフォルトの名無しさん2014/11/18(火) 01:05:23.63ID:CnBUgYqj
アルゴリズムが思いつかないから問題が悪いとかwwお前相当やばいぞ
0423デフォルトの名無しさん2014/11/18(火) 01:07:32.43ID:KA7ActE3
>>422
ふーんじゃあお前さんが>>393のお題を解決するそのアルゴリズムとやらを開陳してみたら?
まあ無理しなくていいよ。馬鹿なのはわかってるから。
0424デフォルトの名無しさん2014/11/18(火) 01:08:01.33ID:bsF1yz9X
なんでもやればいいってわけじゃない
いまどきこんなのやって何するの?って話
0425デフォルトの名無しさん2014/11/18(火) 01:08:31.40ID:9rb5mlGB
C#ってもう6になってるのか・・・
3で止まってる俺
0426デフォルトの名無しさん2014/11/18(火) 01:14:36.60ID:CnBUgYqj
今時も何も基礎はいつの時代でもどの言語でも必要でしょw
アルゴリズム学ばなかったの?w
0427デフォルトの名無しさん2014/11/18(火) 01:16:42.21ID:bsF1yz9X
設問が悪すぎる
現実離れした例題出してどうするのという話

というかこれは教師のレベルが低いから何に使えるの?という問題を今でも平気で出す

もっと時代を理解してそれに有効な問題を出したほうがいい
0428デフォルトの名無しさん2014/11/18(火) 01:25:05.23ID:CnBUgYqj
>>427
バカだなーお前は
基礎学力無さ過ぎじゃね?

四則演算わからなきゃ直角三角形の斜辺の長さも求められないんだよ?
今時算数なんて教えるなってか?www笑わせるなwww

最初からUnity使ってゲーム作れってか?
初学者にそれはないわwww
0429デフォルトの名無しさん2014/11/18(火) 01:26:11.20ID:FwR26ejN
>>425
LINQもなしってのは今となってはちょっと想像できないな…
0430デフォルトの名無しさん2014/11/18(火) 01:27:04.46ID:J/3RePHa
LINQなんてこれまで使った事がない。
使わなくてもプログラムで自動化出来るし必要なし
0431デフォルトの名無しさん2014/11/18(火) 01:27:34.51ID:bsF1yz9X
お前こそあほだろ
教え方の問題なんだよ
ちまちま端を教えるかいきなり本題を教える中で後でこういう
チューニングに必要なことを教えるか

IT業界において日本が生産性悪いのはそういうところなんだよ

まさしく

木を見て森を見ず

こんな木ばっかり見るのはマシン性能が限られた世界だけ
0432デフォルトの名無しさん2014/11/18(火) 01:27:43.33ID:CrwA3Nxe
最近煽り目的の子が増えたね
0433デフォルトの名無しさん2014/11/18(火) 01:28:53.28ID:9rb5mlGB
アルゴリズムにこだわる人がマネージド使ってるのもなんか違和感あるな
趣味ならいいけど
0434デフォルトの名無しさん2014/11/18(火) 01:32:48.37ID:CnBUgYqj
>>431
それは一理あるし否定はしないよw
クソみたいな自社製フレームワークでクソみたいなゲーム作らされるのが日本の現状だからなww

でも彼はそういう段階じゃないだろw
if文習ってるレベルなんだからさw

お前も始めた頃は基礎から勉強しただろ?
昔の自分を思い返してみろ
0435デフォルトの名無しさん2014/11/18(火) 01:33:02.26ID:bsF1yz9X
ほんと
.netの世界でなんで威張ってるのかわからん

.netはどっちかといえば生産性重視で効率は二の次ってイメージなんだが
>>393だってそりゃ低レベルな言語ならレジスタの幅でいきなりアクセスしたりして
文字コードの範囲を把握してフラグチェックなんかすりゃいいけど.netでそんなことできるのか?
って話だしな

無能教師に単位もらう上ではとりあえず>>393のレベルでいいとして
内心は糞教師ばーかばーかと見下してればいいレベル

このくらいのチューニングなんてがんがんコード書いてある程度規模が大きくなると
どうしても無駄で目立つ部分がでてくるから後でやればいいレベル
0436デフォルトの名無しさん2014/11/18(火) 01:34:41.32ID:bsF1yz9X
>>434
if文習うにしても無駄
作る側にとって楽しい題材に踏み込めば覚えるべきことはすべて入ってる
hello worldで黒い窓開いてるくらいこっけいな題材
0437デフォルトの名無しさん2014/11/18(火) 01:40:32.20ID:CnBUgYqj
俺も学校で習ってたときはそう思ったよ
習う前に独学で既にゲームとか作ってたからな
今更なんでこんなつまんないことやらされるんだって思ったよ
もちろん時間の無駄だから授業に出なかったけどな

>>436のようなやり方でついてこれるのは本当にやる気のあるやつ
周り見てみろ、やる気のないやつだらけだろw
そういう奴は1から手間暇かけて教えてやらないとダメなんだよw
0438デフォルトの名無しさん2014/11/18(火) 01:42:53.12ID:bsF1yz9X
やる気を出させるのが教師だよ
教師がわかってる範囲で課題出すのが身分的に保証されてるアホ国家だから
こんな問題でも恥ずかしくも無く平気で出せる

目的を与え取り組ませればこの程度の課題は勝手にぶち当たる
そのとき需要が生まれるんだから教えればいい
需要がないのに無理に叩き込もうとするからつまらない暗記だけの教育になって
勝手にできないと見下す
0439デフォルトの名無しさん2014/11/18(火) 01:45:56.88ID:bsF1yz9X
ゲームなんて演算資源を1/30か1/60して1フレームに与えられた時間内に
処理おわりゃ無駄コードだろうがどうでもいいんだよ
乱暴にいうと

第一先輩面するならまとものなエンジン作っとけ
0440デフォルトの名無しさん2014/11/18(火) 01:49:33.40ID:CnBUgYqj
その教師は長年C言語でアルゴリズム教えてたんだろ
パソコン一新されても授業内容は一緒、大体想像がつく

お前が言っているのは理想論だよ
マンツーマンで教えるわけじゃないんだよ
どこにぶち当たるかなんて千差万別
だから基礎を教えるんだろうがハゲ
0441デフォルトの名無しさん2014/11/18(火) 01:51:39.95ID:CnBUgYqj
>>439
お前がゲームを一つも作ったことがないのがよくわかったw
0442デフォルトの名無しさん2014/11/18(火) 01:54:21.23ID:bsF1yz9X
ゲーム作ったことあるけどw
結局のところ作るものによってはチューニングしまくらないといけないが
そもそも素人がそこまでのものをいきなり作れるわけがない
どうせ弾幕とかだろうしそれに手を出すだけでもこの手の課題に近いことは学べる
0443デフォルトの名無しさん2014/11/18(火) 01:58:18.62ID:CnBUgYqj
ピタゴラスの定理知らない生徒が多いんだろ
弾幕なんて無理www
0444デフォルトの名無しさん2014/11/18(火) 01:59:13.08ID:bsF1yz9X
目的の前の挫折なら覚える
目的が見えないのに覚えろとなると単なる暗記に終わる

日本は教育が糞過ぎる
0445デフォルトの名無しさん2014/11/18(火) 02:22:58.30ID:w68BzvGT
大学の情報科学科って、独自のCPUアーキテクチャでレイトレーシングをさせられるみたいな、課題だけ与えられて放置されるものだと思ってたわ
0446デフォルトの名無しさん2014/11/18(火) 04:40:32.41ID:nS5peXEd
>>393の時間って、μsとか書いてるけどむちゃくちゃだから、実際の時間は当てにならんが
「倍早くなるアルゴリズム」ってのは非常に興味があるな
たんに比較を大小判定からビットテストにするとか言うのがアルゴリズムだとか言い出さんよな
C++でやったら倍速いとかもアルゴリズムの話じゃないしな

2000回ループして比較するのに対して倍速いアルゴリズムなんだから
1000回の比較で済む方法があるってことだろ
0447デフォルトの名無しさん2014/11/18(火) 06:45:15.27ID:ynMC4nVv
小手先のチューニングって頭使わなくていいから楽しいけど、
実際には大局的に見てうまいことキャッシュしたりアルゴリズムを工夫したりするほうが遥かに効果あるんだよね
0448デフォルトの名無しさん2014/11/18(火) 07:43:42.17ID:KmsCzcmg
うっかり作ってしまった手もつけていないような不要なイベントハンドラって
勝手に削除してくれないの?
0449デフォルトの名無しさん2014/11/18(火) 08:18:26.23ID:ynMC4nVv
他で使ってないなら手で削除すればVSが勝手にイベントハンドラの割り当ても解除してくれる
0450デフォルトの名無しさん2014/11/18(火) 10:22:24.37ID:8jDpdQv9
昔、一種の試験で文字列検索アルゴリズムの高速化の問題が出たな。
一文字じゃアセンブラレベルを意識した高速化しか思いつかんな。
0451デフォルトの名無しさん2014/11/18(火) 10:47:34.36ID:rnsI4fUl
アルゴリズムの授業なんだから別におかしくないと思うけど何でこんな批判されてるの?
アルゴリズムの授業なんだから言語とかあんま関係ないし、小手先のテクニックで改善させる話と違うだろ。
マネージドでアルゴリズム云々意味ないとかも的外れ。

アルゴリズムの授業なんてパスカルでやってたとこも多いし、そもそも言語に大きく依存するようなこと扱ってすらいない。

アルゴリズムの授業に相応しい題材かは別問題で、そこだけの批判なら分かるが。
0452デフォルトの名無しさん2014/11/18(火) 11:08:15.41ID:8jDpdQv9
配列全部なめるだけ。計算量はO(n)。アルゴリズムでなにをどうするんだ?
これはアルゴリズムの問題ではないよ。単純に高速化の課題だと見るべき。
つまりifをなくせ、ループを減らせ、CPUアーキを考慮しろ、キャッシュサイズを考慮しろ、SSE、AVX使えということ。
0453デフォルトの名無しさん2014/11/18(火) 11:29:29.55ID:6mzMY+NX
「アルゴリズム」って言っても定義は色々あるからな。初心者向けの課題としては別にいいだろ
単純な処理でも色々な実装方法があって速度も変わるってことが実感できりゃいんだよ
0454デフォルトの名無しさん2014/11/18(火) 12:29:43.29ID:YUjooFxI
そりゃお前等のようなウィザード級プログラマーから見たら大抵の課題なんてくだらねえだろ
0455デフォルトの名無しさん2014/11/18(火) 12:37:03.54ID:HkeGOvvH
ゆとり死ね
0456デフォルトの名無しさん2014/11/18(火) 12:39:41.01ID:bsF1yz9X
>>448
プロパティ開くと上のほうに雷マークみたいなのない?
あれがイベントを設定したり解除したりするやつだから

でイベントが設定されてるところは太い文字になってるからいらない場合は
イベントの上で右クリックするとリセットってでるからそれを選べばイベント消える
0457デフォルトの名無しさん2014/11/18(火) 12:41:21.94ID:SNYtXSA4
アルゴリズムの件は言語指定あるの?
C限定の話に見えるなあ
0458デフォルトの名無しさん2014/11/18(火) 12:49:26.39ID:bsF1yz9X
>>448
http://www.dotup.org/uploda/www.dotup.org8093.png
0459デフォルトの名無しさん2014/11/18(火) 14:07:58.83ID:LKdhEty/
>>452
世の中にオーダーが同じアルゴリズムでもいっぱい提案されたり作り出されてるのはなんでだ?
O(n)なら全部同じならほとんどは必要ないことになるだろう。
0460デフォルトの名無しさん2014/11/18(火) 14:13:35.12ID:opmnJd+Z
>>452
>CPUアーキを考慮しろ、キャッシュサイズを考慮しろ、SSE、AVX使えということ。
.netでやることじゃないです

結局言語依存じゃないか
だからアホな題材っていわれるんだよ
低レベル言語経験してるからこそ.netだと泥臭くやるくらいしかなくね?ってなる
下手に型を変えるとそのオーバーヘッドも無駄にならないだろうし
マーやシャルとか使い出すともうね

だから木をみて森を見ずって話

やっぱり出題者が間抜け
さっさと首にしろこんな教師
0461デフォルトの名無しさん2014/11/18(火) 14:32:37.59ID:YbtBtVuJ
>>458
こんな機能あったのか初めて知った
0462デフォルトの名無しさん2014/11/18(火) 14:35:25.70ID:opmnJd+Z
プロセスのアタッチあたりも知らない人いるのかな?
プロジェクト作成中に生成されるバイナリと
そのバイナリを使って別の場所で本番環境作ってる際に
テストがめんどくさくなるけどアタッチ機能使えば
楽にテストできるんだけど
0463デフォルトの名無しさん2014/11/18(火) 16:55:41.82ID:SQHKjkjR
採点や評定とは一切関係ないプラスアルファ課題っぽいから別にいいんじゃないの
ただ、その早くなるアルゴリズムには興味があるから、可能であれば
講義が終了してから講師に質問して、こっちに共有してくれると嬉しい
環境依存なら環境依存で納得できるし
0464デフォルトの名無しさん2014/11/18(火) 16:58:19.65ID:+pRvZNhA
というか方法なんてあるか?
実行環境で使えるレジスタ幅でまとめて数byte読んでbit周りでちょろっと
処理すればできそうな感じだが.netだとそれは・・・って感じだし
0465デフォルトの名無しさん2014/11/18(火) 17:09:12.20ID:8jDpdQv9
マルチスレッドを使うんですよ。
0466デフォルトの名無しさん2014/11/18(火) 17:09:38.76ID:+pRvZNhA
2000バイトなんてスレッド起動コストが高くつくんじゃね?
0467デフォルトの名無しさん2014/11/18(火) 17:13:36.59ID:TlVwqTNn
vs2013ceってBlendもAddinもついてるんだな。バケモンだわ
これでやっとWPFやろうって気になった
0468デフォルトの名無しさん2014/11/18(火) 17:57:14.74ID:JVYtZzDi
たぶん気のせいだから止めた方がいいよ
0469デフォルトの名無しさん2014/11/18(火) 18:22:51.20ID:m0CeBGq0
Blendってexpressにもついてなかったっけか
0470デフォルトの名無しさん2014/11/18(火) 18:32:51.34ID:P1cKJGOb
>>469
最近はインストールの際にceと同じようにあったはず
0471デフォルトの名無しさん2014/11/18(火) 18:59:33.68ID:F8LzGWbb
express使ったことないけど、ストアアプリ専用じゃないのそれ
0472デフォルトの名無しさん2014/11/18(火) 19:34:38.91ID:kVlsPNtk
Blendがあってようやく産廃から紙屑くらいにはレベルアップした感じ
0473デフォルトの名無しさん2014/11/18(火) 19:35:47.45ID:P1cKJGOb
Blendないときついよね
というかのBlendも重いんだわw
04743932014/11/18(火) 21:38:06.16ID:miqRIGI7
>>457
>アルゴリズムの件は言語指定あるの?
>C限定の話に見えるなあ

ここに書き込んでるってのもそうですが、C#の授業なので、C#で作ることが大前提です。

>>463
>採点や評定とは一切関係ないプラスアルファ課題っぽい
残念ながらそうではないんですよね・・・
(正直言ってしまうと、これがもし成績に関係ないならこの手のは面倒なのでやらないですw)

ついでに、この授業の過去の課題の内容も簡単に上げてみます。
(こちらは終わっているので回答結構です。
それまで授業あまりまじめに受けていなかったのでw先生の解答コードは持ってません。)
・9×9のchar配列に入っているパターンを回転させて出力せよ。
ただし、使える配列はその1つだけ。
(高速でやれとか言う話はなし。
たぶんforいじって出力順序変えて回転させましたなんてのはだめ。)
・効率よくゴールドバッハ予想の和がnとなる2つの素数の組み合せの数を求めるプログラムを作れ。
04753932014/11/18(火) 21:39:48.49ID:miqRIGI7
この授業の先生の他の履修した経験上楽だと思って取ったのですが、
今回はいつもより人数が多い(といっても10人くらいですが。今までは5人以下w)からか
先生が真面目に(?)課題を出すんで正直面倒ですw
(その先生の別のC#の授業でテストなし課題提出なし演習のみ
いざ出来なくても解説で理解できればいいよ的な授業もありましたw
受講者の人数が私入れて3人しかいなかったのと、
残りの2人があまり授業についていけてないっぽかった
というのもあったかもしれませんが。)
その先生の評判云々は同学部だけど他学科なのでわかりません。

皆さんのアイデアをまだわからないことを調べながらコードにして実行してる最中です。
たぶん今度の月曜授業のときに先生の解説があると思うので、
遅くとも月曜の夜までにはここで結果を報告します。
0476デフォルトの名無しさん2014/11/18(火) 21:58:57.69ID:P1cKJGOb
char型で大文字小文字が〜ってなると中身はおそらくアスキーコードだとして
大文字もしくは小文字しかはいってないのなら簡単なんだよな
たぶん半角に関してはc#のchar型のunicode 2byteも同じだと思う
アスキーコード表
http://itpro.nikkeibp.co.jp/article/COLUMN/20060929/249401/hyo02.jpg

大文字は0x41〜0x5A
小文字は0x61~0x7A
この差は0x20のビットが立ってるかどうかを見ればいい

でCのunionみたいなのはこの辺使えばできるからスタンダードな32bit環境だと
2つのchar型を一度にアクセス可能(2bytex2)だから「半分くらい」なんだと思う

でもこれをc#でやってどうするんだろうと・・・
http://smdn.jp/programming/netfx/struct/1_structlayout_fieldoffset/
0477デフォルトの名無しさん2014/11/18(火) 22:09:08.71ID:lgNnyNRV
unsafeでlong*使えば1/4になるからint*が正解なんじゃないの
Vector<T>ならさらに速くなるかもしれんけど、charは使えないからunsafeでshortとかにする必要がある
0478デフォルトの名無しさん2014/11/18(火) 22:09:52.27ID:P1cKJGOb
あんまり気にしたことなかったけどchar型ってリトルエンディアンなのね
0479デフォルトの名無しさん2014/11/18(火) 22:47:55.39ID:MrjqSV46
Unicodeだから2バイトなのか。シリアライズするとエンディアン関係なくなるのかな。
0480デフォルトの名無しさん2014/11/18(火) 22:50:48.81ID:P1cKJGOb
.netは内部では2バイトコードだね
メモリは食うけどアクセスは一定だし
リトルエンディアンだからushortとみなして問題ない
だからuintとかフラグなしの数値型でアクセスすりゃ問題なく復元されてる
04813932014/11/18(火) 22:53:13.07ID:miqRIGI7
とりあえずlong*変換とビット演算やったら基準より約3〜6倍速くなりました!
ありがとうございます。

コード:http://ideone.com/En5hTV
Windows7(32bit)+Visual Studio 2008での実行例。
----------------
基準の時間
565635.5μs
1つずつビット演算版の時間
468610.6μs
long変換ビット演算版の時間
112053.6μs
----------------
基準の時間
339519.1μs
1つずつビット演算版の時間
434149.3μs
long変換ビット演算版の時間
88974.3μs
----------------
基準の時間
683335.3μs
1つずつビット演算版の時間
567164.5μs
long変換ビット演算版の時間
123403.8μs
----------------
0482デフォルトの名無しさん2014/11/18(火) 22:54:00.59ID:P1cKJGOb
chara型の配列にAとBをいれると
0x0041,0x0042となる
それをメモリ上でみると
0x41,0x00,0x42,0x00とならぶ
ushortx2して復元しても0x0041,0x0042となるはずだし
uintで復元すれば0x00420041となるはず
0483デフォルトの名無しさん2014/11/18(火) 22:55:35.52ID:P1cKJGOb
そこはてんてーの顔を立てる形でuintかintにして
実はlongのほうが・・という説明余地を与えておいたほうがいいかもw
0484デフォルトの名無しさん2014/11/18(火) 22:57:55.48ID:lgNnyNRV
0x0020002000200020って書かないと何が何だか…
あとLengthが4の倍数じゃない場合ケツが無視されるよ
0485デフォルトの名無しさん2014/11/18(火) 22:59:57.07ID:P1cKJGOb
c#は0x0020とか書けば16進数で表現できるよ
04863932014/11/18(火) 23:33:43.75ID:miqRIGI7
>>484
>あとLengthが4の倍数じゃない場合ケツが無視されるよ

確かにあの方法だと配列の要素数が4の倍数じゃなかったら余りの部分探索されないですねw
課題が要素数2000固定みたいだったので考えてませんでした。
他で使うことがあるかわかりませんが、
一応割りきれずあまりの部分があった場合はそこも調べるようなコードにしておきます。

>>482,>>484,>>485

ビットで32が立っていれば小文字と言うのを利用したんですけど、
C#で2進数や16進数の表現法覚えてなくて調べるのなんか面倒だったもので。
そこで10進数の32を2進数16ビットずつに並べたのを4つ並べて
Windowsのプログラマ電卓に投げて10進数にして使いましたw
なんかすいません。
0487デフォルトの名無しさん2014/11/18(火) 23:53:16.55ID:uh4lSBH2
アルゴリズムなんてものは無用の長物ですよ
ttp://peace.2ch.net/test/read.cgi/tech/1403215505/
0488デフォルトの名無しさん2014/11/18(火) 23:54:34.06ID:P1cKJGOb
必要なものは大体組み込まれるしな
リストなんて今時よほどの開発じゃなきゃ実装しないだろうし
0489デフォルトの名無しさん2014/11/19(水) 00:19:52.52ID:2laFv2BR
医療プログラマーが超高難易度の免許制に / フリーソフトやオープンソースの無作為配布も全面禁止
http://fox.2ch.net/test/read.cgi/poverty/1416286592/
0490デフォルトの名無しさん2014/11/19(水) 00:36:52.90ID:uIlzNIA8
アルゴリズムは不要とか言い出す辺り、社会の底辺を見ている感じがして面白い
0491デフォルトの名無しさん2014/11/19(水) 01:10:11.80ID:bW2sCLTJ
実装方法は知らなくても計算量くらい知っとくべきだよな

重複の検出を線形検索でやる奴とか普通にいるからな…
0492デフォルトの名無しさん2014/11/19(水) 02:03:30.87ID:kwgA2QhE
>>481
アルゴリズムの最適化ではないので0点。
0493デフォルトの名無しさん2014/11/19(水) 04:58:16.54ID:33zbxk5i
charからuintにしたら要素数が半分になるから速度倍ってか
もしそれがホントに正解だったとしたら
アルゴリズムの問題だと思ってたのは勘違いで
データ構造の問題だったんじゃないの
0494デフォルトの名無しさん2014/11/19(水) 05:36:36.03ID:FctIhtvr
言葉遊びはもういい
0495デフォルトの名無しさん2014/11/19(水) 06:47:25.58ID:z3yXCTNW
2段階に検索して高速化してるんだから十分アルゴリズムの範疇
0496デフォルトの名無しさん2014/11/19(水) 10:51:01.98ID:zly8Yzj+
32ビットプロセスで実行したら2倍程度だったりして。
0497デフォルトの名無しさん2014/11/19(水) 13:37:07.64ID:2kRgVtqW
>>496
おさーんが若いころのPC9801あたりのCPUクロックとメモリクロックが
同期してた時代のCPUならそうだが今のPCは巨大なキャッシュは持ってるわ
メモリはプリフェッチやってるわで
http://pc.nikkeibp.co.jp/article/NPC/20061129/255237/

logでもいける理由を勝手に納得してる
log分解しても所詮は32bitx2だからね
0498デフォルトの名無しさん2014/11/19(水) 13:38:24.88ID:2kRgVtqW
質問者のosは32bitだしね
0499デフォルトの名無しさん2014/11/19(水) 13:52:38.89ID:2kRgVtqW
logになってもた
long
0500デフォルトの名無しさん2014/11/19(水) 14:04:48.33ID:Vgbqj7n2
実際の最適化でアルゴリズムの問題になることなんて殆ど無いからね
ライブラリ任せになってるところを手動でfor文にゴリゴリ書きなおすとかそんなのでだいたい解決する
0501デフォルトの名無しさん2014/11/19(水) 14:22:31.04ID:TeiOoKBS
vs2013ceいいわー
AddInのCODEMAIDとCodeMapがすごく便利
メソッドの並び替え、自動region、指定メソッドをカラーマーク
0502デフォルトの名無しさん2014/11/19(水) 16:02:39.06ID:kwgA2QhE
>>493
今のintelのデータバスは256bitだから速くなるだけで、
8bitCPUならuintにしても速くはならない。つまりSSE、AVX使うレベルのインチキ。
これをアルゴリズムの問題とか笑える。
0503デフォルトの名無しさん2014/11/19(水) 16:07:04.99ID:2kRgVtqW
>>502
でもC言語あたりでこの手の処理を高速化しろとなるとたぶん>>476みたいな考えになるだろ

.netでポインター禁止で組めといわれるとマジで思い浮かばん
型がしっかりしてるだけにね

だからこそ最初から言ってるじゃん
.netでやることなのかねえ?と
0504デフォルトの名無しさん2014/11/19(水) 16:12:46.20ID:TsL3cNTk
問題以前の問題でした
0505デフォルトの名無しさん2014/11/19(水) 20:01:26.02ID:z3yXCTNW
>>502
C#の仕様に32ビット未満の整数演算は無い
だから必ずデータ幅は減る
0506デフォルトの名無しさん2014/11/19(水) 20:29:45.96ID:LEs4PyhW
http://ideone.com/Gene7w
カメラの前に通過した人数をカウントする処理は多分できたけど10秒以上カメラの前にいた人をカウントする処理はどうすればいいんや
アドバイスお願いします
0507デフォルトの名無しさん2014/11/19(水) 23:59:59.61ID:SRjwq44J
ファイルダウンロードを行う方法をいろいろ見てたら、ashxを使うのがおすすめということみたいなんだけど、なんかいろいろ見てるうちにセキュリティ的にどうという話が出てきた。
これってどう考えたらいいの?

ttps://social.msdn.microsoft.com/Forums/ja-JP/33068c56-0cdc-4855-b688-8971194790dc/aspnet?forum=aspnetja
0508デフォルトの名無しさん2014/11/20(木) 00:11:27.18ID:8VGwuv1c
>>507
なにを実現したいかによるな
ユーザーに与える自由度が高いほど要注意
0509デフォルトの名無しさん2014/11/20(木) 04:49:09.89ID:rHo/cmkZ
こんな問題をアルゴリズムの問題と称して出してるとか
相変らず大学教授のレベルが低いことがバレたな。
0510デフォルトの名無しさん2014/11/20(木) 10:10:47.04ID:5jODTKrp
>>506
人がいないとこを校正画像にして(最初から人がいても動いて常に同じ色になる部分があればそこを組み合わせる)
それ以降で人(違う色の塊)が存在したら、カウントすれば良いんでね?
人か他の物か識別する必要があるかは知らんが
0511デフォルトの名無しさん2014/11/20(木) 11:39:52.63ID:PgRRKicL
>>507
何をやりたいかによるが、フォルダ単位なりさらにファイル名なり、あるいはIDにするなりしてきちんと制御するなら問題ない。

そこで提案されてる権限設定は論外、有り得ないレベル。
これをすすめて、危険性を指摘されても引かないとかキチガイ。
0512デフォルトの名無しさん2014/11/21(金) 02:33:37.36ID:OSMNTXnU
はじめまして
C#を使いMIDIファイルを再生し、再生中に外部入力によってテンポや音量の変更を行いたいのですが
何か良い実装を教えていただけないでしょうか
0513デフォルトの名無しさん2014/11/21(金) 05:02:39.80ID:j7NTCHCy
>>456
うまくいきました!ありがとうございます
0514デフォルトの名無しさん2014/11/21(金) 11:34:31.31ID:P4yIqwrD
>>512
APIに頼らずシーケンサーを自分で作る
いや、マジでこの方法がエエよ
0515デフォルトの名無しさん2014/11/21(金) 12:17:10.13ID:OSMNTXnU
>>514
返信ありがとうございます
シーケンサーを自作する際に参考になるような書籍やサイトがあれば
教えていただけないでしょうか
0516デフォルトの名無しさん2014/11/21(金) 13:06:17.96ID:ARrBio5e
           YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
         /                  \
【ググった?】                       NO → なら、ねぇよ 死ね
         \
            NO → 死ね
0517デフォルトの名無しさん2014/11/21(金) 14:18:55.96ID:3E36WIhF
>>514
でた独自ライブラリ厨
既存の使ったほうがどう考えても楽だし多機能だろうにね
0518デフォルトの名無しさん2014/11/21(金) 14:45:06.47ID:qfta97/C
WMPじゃテンポ変えられなかったような
何か良いのあるん?
0519デフォルトの名無しさん2014/11/21(金) 14:59:09.95ID:qQzHHkA4
IDirectMusicで再生
0520デフォルトの名無しさん2014/11/21(金) 15:29:11.51ID:ARrBio5e
WPFのMediaElementならテンポ変えられるな
音量は効かないけどw
0521デフォルトの名無しさん2014/11/22(土) 17:01:51.99ID:AIZNpp9w
もしかしてEF6のコードファーストで動的にテーブルを作成するのってかなり大変ですか?調べているんですがわからなくて困ってます
0522デフォルトの名無しさん2014/11/22(土) 17:35:46.02ID:zdky++Ll
EFでやることじゃないのは確か
0523デフォルトの名無しさん2014/11/23(日) 00:29:37.85ID:jWvtOKUs
>>522
そうなんですかー
じゃあ、SQL文でやる感じなんですかね
0524デフォルトの名無しさん2014/11/23(日) 02:33:44.50ID:HUsyrd3J
運用ミス一発で全テーブルが初期化されたら怖いよね
0525デフォルトの名無しさん2014/11/23(日) 10:37:21.51ID:cJpMtoO6
下記のようなコードがあるとして、
Personを再帰的にtreeViewにバインドしたいのですが、
Children の数が可変になる場合、
どう書けば良いのか解りません。

よろしくお願いします。

public class Person
{
public string Name { get; set; }
public List<Person> Children { get; set; }
}

this.treeView.ItemsSource = new List<Person>
{
new Person
{
Name = "田中 太郎",
Children = new List<Person>
{
new Person { Name = "田中 花子" },
new Person { Name = "田中 一郎" },
}
}
};
0526デフォルトの名無しさん2014/11/23(日) 10:39:42.64ID:hWyln1lg
>>525
HierarchicalDataTemplate
0527デフォルトの名無しさん2014/11/23(日) 14:28:49.90ID:HHUd7Sbd
>>526
そんなんあるんやなー
WinFormsなら普通にメソッドを再帰的に呼ぶところ
0528デフォルトの名無しさん2014/11/24(月) 11:51:07.32ID:AvRvgdFi
FFFTPはリストビューが左右にあってマウスポインタの下の
リストビューがマウスホイールでスクロールするのですが
こういうのってどうやってるんでしょう?
普通だとフォーカスのあるコントロールがスクロールしてしまいます。
0529デフォルトの名無しさん2014/11/24(月) 11:59:02.84ID:zzRKpAKM
マウスをフックするとかいろいろやり方はありそうだけど。

単純なやり方だと、コントロールにホイールイベントが来たとき
マウスカーソルが自分のクライアント領域内じゃなくて他のコントロール内にある場合
そっちにフォーカスを移すコード書けばそうなるだろうし

汎用的なやつだとマウスのフックプロシージャでマウスカーソル下のウィンドウに
WM_MOUSEWHEELをリダイレクトするとか。
0530デフォルトの名無しさん2014/11/24(月) 12:19:02.18ID:AvRvgdFi
>>529
なるほど。リダイレクトですか。
FFFTPはフォーカスは移動してないみたいなんで
リダイレクトをしてるのかもしれませんね。
リダイレクトっていうのはウィンドウプロシージャで
PostMessageしてやるってことでいいでしょうか。
0531デフォルトの名無しさん2014/11/24(月) 13:57:20.15ID:AvRvgdFi
>>529
WM_MOUSEWHEELのリダイレクトで思ったとおりの動作ができました。
ありがとうございました。ちょっと感動。
05323932014/11/24(月) 15:11:18.25ID:zIecUg3E
「アルゴリズムとデータ構造」受けてきたので報告。

先生の解説の要約。
番兵でやると早くなる。
配列の要素数を1つ増やし、一番最後に'a'を入れる。
"最後で'a'が見つかったら入っていなかった"
"そうでなければ入っていた"
ということになる。
---------------------------
'a'はあくまでも小文字の例として挙げてるだけだと思うんですけど、
解説出ささっと書いていたコードには
if(x[i]=='a')という'a'かどうかというコードが書かれていました。
05333932014/11/24(月) 15:12:06.17ID:zIecUg3E
先生が提示したアルゴリズムによる時間比較
for=100%
while番兵=64.19%
pointerWhile番兵=58.32%
HalfFor=68.98%
PointerHalfWhile番兵=40.17%
oddEvenPointerBit番兵=30.26%
eightPointerBit番兵=16.28%
longPointerBit番兵=10.79%
05343932014/11/24(月) 15:12:42.07ID:zIecUg3E
その他先生の説明の要約

HalfFor
2つずつやる。
番兵のいる場所をど真ん中にする。
前からと後ろから探す方法。

oddEvenPointerBit番兵
番兵を後ろにして偶数と奇数に分けて探す方法。

eightPointerBit番兵
8個?4個?とりあえず多くをまとめて調べる方法。

longPointerBit番兵
私のはこれに似ているらしい。
先生のは4文字じゃなくて8文字まとめて調べられるらしい?

すべてを試すのにそのまま書いていたらMainが100行くらいになってしまう。
ストップウォッチをリセットして実行して―は共通なので、
delegateを使って関数のアドレスを配列で保持しておけばまとめて書くことができるようになる。
------------------------------------------
言えば見せてくれたかもしれないですけど、
先生が作った検索部分のソースは見られませんでした。

ちなみに、次やるのはソートです。
(実はこの授業テストがあるらしいです。)
0535デフォルトの名無しさん2014/11/24(月) 15:33:31.20ID:SGtUfJ6F
配列の要素数を1増やすコストがライブラリやOSに依存し計算できない以上、完全に反則。
他の名前から推測できるものもやっぱり反則ばかりだな。
0536デフォルトの名無しさん2014/11/24(月) 15:43:56.06ID:a85cdfnt
その解決方法が許されるなら
if文2000個書けばよかったんじゃ…
0537デフォルトの名無しさん2014/11/24(月) 15:49:26.41ID:Fx9sxyxG
C#の言語仕様上char演算はintにキャストして行うからJITが16ビットに特殊化していない限り速くなるぞ
0538デフォルトの名無しさん2014/11/24(月) 16:40:53.68ID:xqArJBuP
連続する領域をポインタでアクセスする時にループカウンタを使わず
ポインタ自身の値をループの終了条件にするっていうのは機械語レベルでは
当たり前の最適化(≠アルゴリズム)として理解できるけど、
番兵を置くって本当に効果あるのかねw

思いっきり疑わしいと思うけど。
0539デフォルトの名無しさん2014/11/24(月) 17:39:12.99ID:pUZya6py
スタックを一番下の1個だけを残して全部削除する方法ありますか
ステートマシンで使っていて最後の1つ(初期状態)に戻したいのですが
スマートな良い方法が思いつきません。
0540デフォルトの名無しさん2014/11/24(月) 17:40:46.21ID:2tzTlBla
再作成
0541デフォルトの名無しさん2014/11/24(月) 18:33:50.48ID:zzRKpAKM
while( stack.Count > 1 ){ stack.Pop(); }
これか再作成しかないでしょ
最後の一つが何かわかってるなら再作成が一番コスト低いんだから
それへの参照をどこかに残しておくとか。

あるいは設計を変えて、空を初期状態にするとか
0542デフォルトの名無しさん2014/11/24(月) 18:51:05.25ID:wCkEdUJA
List<T>で代用
05435392014/11/24(月) 19:17:10.12ID:pUZya6py
まあ、そうですよね
うーーーーん、2行以上書きたくない
絶対に書きたくないでござる
0544デフォルトの名無しさん2014/11/24(月) 23:06:28.07ID:JDFV6yz/
番兵の効果って、それにより無駄な判断を減らせることだとおもうんだが
番兵おこうが何しようが、2000個の文字比較することには変わらんのじゃないか
(それを無理やり型変換して比較回数を減らしたとしても、それは番兵関係ないし)
なんで番兵で速くなるか理解できん
実はソートしてあるとかソートしろとか、明示されてない条件あるんじゃないのか
0545デフォルトの名無しさん2014/11/24(月) 23:11:11.74ID:cxOxEmtO
番兵なしの場合、文字の比較の他に境界判定が必要になる
0546デフォルトの名無しさん2014/11/25(火) 00:10:13.61ID:EUvhssXg
>>539
マジで行儀よくやりたいならStack<T>を内部に持つ新しいクラスを作る
0547デフォルトの名無しさん2014/11/25(火) 00:13:12.06ID:iQo6P3SX
なるほど一理ある気はするが
要素数(事前に解ってる)固定の配列に入ってるって前提じゃないのか
配列増やしてまでやってペイするほどの速度差か疑問だな
0548デフォルトの名無しさん2014/11/25(火) 00:27:08.20ID:/ryh0fns
BCLのスタックとかキューはいまいち柔軟性がないね。

以前リングバッファーが必要になった時当然最初Queue<T>の利用を検討したけど、
機能が乏しすぎて結局自作することになった。
0549デフォルトの名無しさん2014/11/25(火) 00:44:15.51ID:uMipTR6D
for(;;){
ch=chars[i]
if('a'<=ch && ch <= 'z') return i
if(i == 2000) return -1
}

を

for(;;){
ch=chars[i]
if('a'<=ch && ch <= 'z') return i
if(ch == '\0') return -1
}

にしたところで速くなるのか...?
0550デフォルトの名無しさん2014/11/25(火) 00:56:43.33ID:gJKZVwWb
int型で比較する方が速そう

char型だと、int型に変換して比較して、
マスクしてchar型に戻したりなどの、余計な処理が入りそう
0551デフォルトの名無しさん2014/11/25(火) 03:20:12.84ID:iQo6P3SX
>>549
'a'のダミーデータを最後に追加する事によって
if(i == 2000) return -1
や
if(ch == '\0') return -1
のif文が不要になるって話だろ
ループ中のifが2個から1個になるから理論的に倍程度の速度にって話
ch=chars[i]はともかく、iのインクリメントとか必要だからきっちり倍とかにはならんが
あと要素中に該当データは0個か1個のみとする、とか、複数個あっても最初の1個のみ検知すればよいとか
暗黙の了解もあるにはあるんだが
charの比較がintより速いかどうかは言語の特性の話でアルゴリズムの話じゃないし
0552デフォルトの名無しさん2014/11/25(火) 04:04:38.95ID:iQo6P3SX
試したけど、配列増やしてダミーデータ入れる時間考慮しなければ
たしかに6割以下の時間で終わる

配列増やす時間も処理時間に含めたら、けっきょく倍以上かかったけどw
ちなみに
AR = AR.Concat(new char[] { 'a' }).ToArray();
とかやったら、200倍ぐらい遅くなってやがんのww

まあC#の配列向きの処理ではないのは確かだけど
アルゴリズムの問題としてはありかもしれん
0553デフォルトの名無しさん2014/11/25(火) 04:25:28.50ID:yAblyZLy
結局ここにいる奴は大学1年生で習う程度のこともわからなかったわけだな
0554デフォルトの名無しさん2014/11/25(火) 04:37:15.93ID:759pxpfa
馬鹿かおまえは。
0555デフォルトの名無しさん2014/11/25(火) 11:10:02.98ID:m//yKiDS
>>551
>ループ中のifが2個から1個になる
なってない。
ループの終了条件がAから別のBに変わっただけ。
馬鹿じゃないの。
0556デフォルトの名無しさん2014/11/25(火) 11:24:30.29ID:8Ypqtz6C
>>555
番兵知らないならもうちょっと謙虚に書かないと無視されるだけだよ
0557デフォルトの名無しさん2014/11/25(火) 11:26:04.20ID:o/tBCIE8
>>555
こう言いたいんじゃね?
にしても番兵なんて普通使うのか?初めて聞いたぞ

ループ内2回比較
for (i = 0; i < len: i++)  ←比較
{
 if (data[i] == 'a') break; ←比較
}

ループ内1回比較
data[len - 1] = 'a';
for (i = 0; data[i] != 'a': i++)  ←比較
{ }
0558デフォルトの名無しさん2014/11/25(火) 11:32:45.96ID:m//yKiDS
>>557
上のループの中のifは冗長。
要するに、最初から言ってるように単にループの終了条件がAからBに変わっただけ。
こんな簡単なことが分からない奴って何なんだろうね。
0559デフォルトの名無しさん2014/11/25(火) 11:46:59.42ID:izswgYeA
もともと必要な比較が終了条件にもなってるということがまだわからないんだな
0560デフォルトの名無しさん2014/11/25(火) 11:48:28.81ID:iQo6P3SX
>>558
AからBじゃなくて、AとBだったのを、Aだけにします、って話なんだが
そのために確実にAに引っかかるようにダミーデータ入れますって話なんだが
0561デフォルトの名無しさん2014/11/25(火) 11:53:00.86ID:m//yKiDS
>>560
だから>>557のifは冗長だと言ってる。
なにが「なんだが」だ馬鹿か本当。
0562デフォルトの名無しさん2014/11/25(火) 11:56:16.54ID:1jwMJAuJ
こな流れは初心者っぽくていいよ
0563デフォルトの名無しさん2014/11/25(火) 11:56:46.15ID:8Ypqtz6C
>>561
forもいらねえよ
0564デフォルトの名無しさん2014/11/25(火) 11:58:08.67ID:o/tBCIE8
>>561
具体的にどういういコードになるんだ?
0565デフォルトの名無しさん2014/11/25(火) 11:59:25.35ID:8Ypqtz6C
>>561
あのさ、本来の目的がそのif文なんだけど。
それをいらないって言い張ってるのはキミだけ
0566デフォルトの名無しさん2014/11/25(火) 12:00:34.98ID:iQo6P3SX
>>561
>>557のループ中からif抜いたら、何も処理しないのと同じだが、何をする話かわかってる?
たんにループして終わりの話じゃないよ
0567デフォルトの名無しさん2014/11/25(火) 12:26:22.61ID:uMipTR6D
if(i == 2000) return -1 を消したら見つからなかったとき2000が戻りそう
ループ内でreturnしないでbreakだけにしておいてループ外で分岐するんだと思うが
0568デフォルトの名無しさん2014/11/25(火) 12:30:13.76ID:uMipTR6D
いちいちiが2000かみなくてもOutOfRangeExceptionで止まるしまあいいか
0569デフォルトの名無しさん2014/11/25(火) 12:31:51.83ID:pSkNhkFB
Cの文字列処理を思い出す
0570デフォルトの名無しさん2014/11/25(火) 12:32:05.41ID:1jwMJAuJ
昼飯食ってねえでもっと熱く罵倒しあえや
0571デフォルトの名無しさん2014/11/25(火) 12:36:11.35ID:o/tBCIE8
>>568
そういう例外の使い方やめろww
0572デフォルトの名無しさん2014/11/25(火) 12:42:54.55ID:uMipTR6D
>>569
俺C#は初心者に毛が生えた程度でいままでCいじってたから
ふとスレを開いたらなんかやってるんで便乗してみただけ

>>571
ifよりtry catchがクソ重い処理ってことは知ってる
C#で配列を拡張するのが模範解答ならいいかなと思って
0573デフォルトの名無しさん2014/11/25(火) 12:51:14.41ID:iQo6P3SX
>>572
すくなくともC#で配列って前提で考えるなら拡張はないわ
純粋なアルゴリズムの問題として考えないとダメじゃね
0574デフォルトの名無しさん2014/11/25(火) 13:44:10.93ID:m//yKiDS
やってみた。
http://ideone.com/0a0aiN

Ideoneだと微妙。でもVSだとなぜか予想に反して大差がつく。
すまんよくわからん。
0575デフォルトの名無しさん2014/11/25(火) 13:54:29.59ID:o/tBCIE8
>>574
>>557と何が違うのかサッパリ分からないんだが・・・
もしかして「if('a'<=ch && ch <= 'z') 」が比較2回だから1回に減っていない!って言ってるのか?
0576デフォルトの名無しさん2014/11/25(火) 15:28:10.68ID:yAblyZLy
ここにいるやつってこんなにレベル低いんだw
アムロになれないパンピーがガンダム乗って俺つええしてるだけじゃんww
高卒のプログラマはこれだから困るわww
0577デフォルトの名無しさん2014/11/25(火) 16:28:16.48ID:pSkNhkFB
番兵なら、条件にマッチする値を末尾において
ループ終わるようにして、ループでindexを見ない

while( 'a' <= chars[i] ) i++;
ループ後 iが末尾かそうじゃないかだけ確認する。
0578デフォルトの名無しさん2014/11/25(火) 16:33:39.22ID:iQo6P3SX
>>574
なぜBreakLoopBySentinelのループ内に余計な判定処理入れるのか
ループ内は
if ('a' <= x[i] && x[i] <= 'z') brek
だけにしろって話だぞ
ダミーだったかどうかの判定は必要ならループ出てからやれ
iのスコープはループより大きくとれよ
0579デフォルトの名無しさん2014/11/25(火) 16:42:09.90ID:m//yKiDS
>>578
BAKA?(笑)
0580デフォルトの名無しさん2014/11/25(火) 16:45:46.64ID:759pxpfa
しかしここまで馬鹿な解答だと脱力感半端ねーな。

アホすぎる。
0581デフォルトの名無しさん2014/11/25(火) 17:00:16.97ID:pSkNhkFB
if内が実質ループ外だが、末尾書き換えして最後戻すとか
まー分かりにくいわ
0582デフォルトの名無しさん2014/11/25(火) 20:53:40.37ID:092i97u5
525ですが、すみません。
xamlの部分では無く、コードビハインドの側の書き方が解らず。

例えば

public class Person
{
public string Name { get; set; }
public List<Person> Children { get; set; }
}

this.treeView.ItemsSource = new List<Person>
{
new Person
{
Name = "親",
Children = new List<Person>
{
new Person { Name = "子A" },
}
}
};

のコードがあるとして、
Children が 子A、子B、子Cあるケースや、存在しないケースを、
再帰処理でどうやって書けば良いか解らず。
(上の書き方だと、親1子1の決め打ちしかできず)

非常に初歩的なことと思いますが、よろしくお願いします。
0583デフォルトの名無しさん2014/11/25(火) 20:57:10.42ID:0S4mnAaS
インスタンス化できないのか、列挙の仕方が分からないのか
具体的に何がしたいの?
0584デフォルトの名無しさん2014/11/25(火) 21:05:43.45ID:NLFhhIGW
列挙の仕方というかデータが存在してそれをTreeViewにつっこみたいのなら
>>526はそんなこと必要ないよって言ってるんだが

そもそものデータの構築の仕方が分からないのかな?
0585デフォルトの名無しさん2014/11/25(火) 21:17:40.27ID:092i97u5
526ですが、インスタンス化の仕方が解りません。

上のコードはネットで拾ってきたのですが、
実際にやりたいのは、親と複数の子のデータを
ItemsSourceに設定することです。

そうなると、拾ってきた
new Person
{
Name = "親",
Children = new List<Person>
{
new Person { Name = "子A" },
}
}
では、子の増減に対応できず、困っている次第です。

自分が何で詰まっているのか、説明できないほどの初心者ですみませんが、
よろしくお願いします。
0586デフォルトの名無しさん2014/11/25(火) 21:19:26.37ID:0S4mnAaS
入力データの形式は?
0587デフォルトの名無しさん2014/11/25(火) 22:01:31.54ID:092i97u5
Listあたりのコレクションを使おうと思っています。

データ的に親と子の区別はつくので、
取り出したものを処理で振り分けるつもりです。
0588デフォルトの名無しさん2014/11/25(火) 22:13:06.68ID:0S4mnAaS
var 親ディクショナリ= items.Where(...).ToDictionary(...)
var 子リスト = items.Where(...).ToList()
foreach(var g in 子リスト.GroupBy(親のキー))
{
 親ディクショナリ[g.Key].Children = g.ToList();
}

return 親ディクショナリ.Values.ToList();

敢えて冗長に書いてるので適当に
0589デフォルトの名無しさん2014/11/26(水) 14:43:50.66ID:wZCHEHa6
番兵なんていう定石かつ簡単な話が幾ら説明しても理解できないってのは衝撃だな。
今となっては昔みたいに重要ではないけど。
0590デフォルトの名無しさん2014/11/26(水) 14:49:11.51ID:N0ZtewiF
「番兵」って単語は一般的なの?
0591デフォルトの名無しさん2014/11/26(水) 15:05:54.95ID:mrEHIgdQ
sentinel、番兵はデータ構造とアルゴリズムの本読むと当たり前に載ってたがなあ
最近のは読んでないからしらんけど。
0592デフォルトの名無しさん2014/11/26(水) 15:40:46.28ID:N0ZtewiF
番兵 C#でぐぐっても895件だからあんま使われない単語なんだろうな
0593デフォルトの名無しさん2014/11/26(水) 16:01:29.27ID:1fVYxz3D
C言語によるアルゴリズム辞典で知ったかなー
22年くらい前に
0594デフォルトの名無しさん2014/11/26(水) 18:04:43.73ID:jGVOTHDh
>>591
番兵そのものはいまも載ってる

配列の拡張なんかしないでもchars[1999]を先に見て小文字ならそれ返して
それ以外ならchars[1999]='a'してからループ回して番兵かどうか見ればいいだけでは
この話いつまで続けんだろ
0595デフォルトの名無しさん2014/11/26(水) 18:22:15.11ID:KxJPwkRM
>>593
「最新」が抜けとるで
初版は23年前だけども、まだまだ現役の凄い本やw
0596デフォルトの名無しさん2014/11/26(水) 18:25:29.81ID:qDZYpt4L
終わった話を掘り返してる奴が「いつまで続けんだろ」ってどういう思考回路だよアホか。
0597デフォルトの名無しさん2014/11/26(水) 19:23:41.64ID:5G4Bbp7I
勝手に配列の中身を書き換える実装とかあり得ないだろ
0598デフォルトの名無しさん2014/11/26(水) 19:54:58.45ID:JR4oGybM
アセンブラ時代には「自己書き換え」と言う、コード自身をリアルタイムで書き換えて高速化するテクニックが有ったりね
0599デフォルトの名無しさん2014/11/26(水) 19:58:53.05ID:fGJ/K96a
>>598
スレチだよ死ねよ老害
0600デフォルトの名無しさん2014/11/26(水) 22:19:28.69ID:sxbyCjcn
そもそも論として配列に文字列を入れなければいいんだけどね
0601デフォルトの名無しさん2014/11/27(木) 03:27:52.32ID:ul68CLMk
>>598
いまはJITコンパイラが頑張ってやってるね
0602デフォルトの名無しさん2014/11/27(木) 08:49:37.69ID:cWrX169e
動的なIL生成はわりとC#で一般的に使われてるテクニック
シリアライザとかdynamicとか
0603デフォルトの名無しさん2014/11/27(木) 11:32:59.15ID:s6v6wpOO
System.Linq.Expressionのことも忘れないでください
0604デフォルトの名無しさん2014/11/27(木) 12:43:22.13ID:NrN2Xbgt
グローバルフックでのマウスカーソル移動相当のことをやろうと思ったらどうすればいいんだろ?
0605デフォルトの名無しさん2014/11/27(木) 12:59:56.75ID:yHc6eK5+
「グローバルフックでのマウスカーソル移動」相当なのか
グローバルフックでの「マウスカーソル移動相当」なのか
前者にしろ後者にしろ相当って何なのか
グローバルフックって何のフックなのか
0606デフォルトの名無しさん2014/11/27(木) 13:24:20.95ID:1UM2Y07y
番兵が実務で全く使われない理由も教えろよ、馬鹿講師。
0607デフォルトの名無しさん2014/11/27(木) 14:08:26.62ID:ZoBqTrPg
愚かなお前の実務なんて知らんよ
0608デフォルトの名無しさん2014/11/27(木) 14:40:17.13ID:pRtd75f0
>>604
適当に「C# グローバルフック マウス」でググってみた。
以下のサイトとか使える?
http://tocsworld.wordpress.com/2014/04/25/c%E3%81%A7mousewheel%E3%81%AE%E3%83%95%E3%83%83%E3%82%AF/
http://hongliang.seesaa.net/article/7651626.html

(知らないことだったからとりあえず調べてみたらなんかそれっぽいのがあったから上げただけ。
これじゃ知ったかと同等に思われてしまうかもしれないですね。)
0609デフォルトの名無しさん2014/11/27(木) 17:19:30.25ID:3JRXUen2
マウ筋をC#で作りたいですとかのほうがわかりやすいよな
0610デフォルトの名無しさん2014/11/27(木) 19:52:42.62ID:I7EixFnZ
どうせMMOで自動化とかそういうくだらんことやりたいだけなんだろうな
0611デフォルトの名無しさん2014/11/27(木) 19:54:29.96ID:jLN2KxyE
結局お前ら一本取られて発狂してるのか
0612デフォルトの名無しさん2014/11/27(木) 19:58:02.46ID:NrN2Xbgt
>>610
html5のcanvasで移動を受け取ってwebサーバー経由でPCのカーソル動かしたいだけかな
0613デフォルトの名無しさん2014/11/27(木) 23:13:56.82ID:ou4wZIoY
>>612
javascriptでマウスの動きを取得。操作側はhtmlだけで完結

操作される側はsendinputで受信した情報にもとづいてマウスを動かす。
操作される側はhtmlだけでは作れない。C#じゃマウス動かせないからwinapi利用
0614デフォルトの名無しさん2014/11/28(金) 13:35:25.14ID:KMJUZvfD
また遠隔ウイルス作成方法の質問か。
0615デフォルトの名無しさん2014/11/28(金) 13:42:32.61ID:tBECKF8J
>>606
配列は静的に大きめに確保しておくのが普通だった時代の発想だからね
年季の入った業務アプリだとたまに使われてるけど、まず速度目的じゃないから
同じループで添字の境界チェックも併用されてる場合が多いよ
0616デフォルトの名無しさん2014/11/28(金) 16:27:04.91ID:hZPBmLkW
>>614
そういえば踏んだあとのリンクの色が変わることがfirefoxのバグとして報告されてたな
0617デフォルトの名無しさん2014/11/29(土) 00:11:32.69ID:G52vZbAO
以下のコードですが、SetTextの箇所はもっと短くできますでしょうか?
(C#2012,WPF)

Dispatcher.BeginInvoke(new Action<string>(SetText), "Test!");


private void SetText(string text)
{
this.TextBox1.Text = text;
}

よろしくお願いします
0618デフォルトの名無しさん2014/11/29(土) 00:35:28.81ID:tRG4REso
何がしたいのか意図がわかんない

Dispatcher.BeginInvoke(SetText, "Test!");

private Action<string> SetText()
{
  return (x) => {TextBox1.Text = x};
}

とか?w
0619デフォルトの名無しさん2014/11/29(土) 00:46:53.58ID:G52vZbAO
>>618
Dispatcher.BeginInvoke 1行で記述できますでしょうか?
0620デフォルトの名無しさん2014/11/29(土) 00:57:38.54ID:tRG4REso
Dispatcher.BeginInvoke(() => {TextBox1.Text ="Test!";})

でDispatcher.BeginInvokeのActionを引数にとるバージョンが選択されるんじゃない?
0621デフォルトの名無しさん2014/11/29(土) 06:01:43.20ID:UPWNNF7N
{と; }も省略できる
0622デフォルトの名無しさん2014/11/29(土) 09:33:56.89ID:lI4HpkTW
communityインストールしてからLanguage Pack入れようとしたらインストーラーが起動しません
これって何が問題かわりますか?
ちなみにシステム復旧でcommunityをインストールした前に戻すまで
VS2013 community
Language Pack
VS2013 Express
のインストーラーが起動しません
0623デフォルトの名無しさん2014/11/29(土) 13:48:15.19ID:Lz6qstEi
>>621
プロパティのセッターもvoid返すメソッドの呼び出しと同じ扱いになるのか。
知らんかった。
0624デフォルトの名無しさん2014/11/29(土) 15:02:01.46ID:5ryFjzxG
voidどころか

Func<string> f = ()=>TextBox1.Text ="Test!";

こういうのもありだったりする
0625デフォルトの名無しさん2014/11/29(土) 15:04:41.99ID:Lz6qstEi
>>624
それはC系の言語では代入演算子は式なんだから当たり前かと
0626デフォルトの名無しさん2014/11/29(土) 16:09:08.77ID:Ppi1W3oY
>>624
そこじゃない
プロパティのsetアクセッサーの呼び出し結果がvoid型になるのを
623が初めて知ったって話だろ
0627デフォルトの名無しさん2014/11/29(土) 16:25:17.31ID:UPWNNF7N
ならねーよ。代入演算子は右辺の値に決まってるだろ
ラムダ式は(Action)(() => a.ToString())とか戻り値を無視できるってことだ
0628デフォルトの名無しさん2014/11/29(土) 16:40:22.37ID:lI4HpkTW
>>622
自己解決しました
0629デフォルトの名無しさん2014/11/29(土) 22:00:53.87ID:UEas1JmU
C# で画像処理する場合、LockBits でいいの?
OpenCV 使えとかはなしで
0630デフォルトの名無しさん2014/11/29(土) 22:24:17.49ID:minsRaFd
ガチな画像処理ならそんなの使わずに最初から普通のメモリに置いてポインタや配列で扱うでしょ
デコーダやエンコーダはネイティブのライブラリを使う
0631デフォルトの名無しさん2014/11/29(土) 22:39:27.55ID:UPWNNF7N
計算はClooでI/OはWPFかなあ
0632デフォルトの名無しさん2014/11/29(土) 22:41:51.10ID:UEas1JmU
まあそうなんだろうけど、どちらも専門じゃないもんで
ピン止めしてコピーでそこそこ使えるなら、使ってる人いないかなと
0633デフォルトの名無しさん2014/11/29(土) 22:45:55.71ID:UEas1JmU
>632
>630 ね

>631
つまり GPU使えと
0634デフォルトの名無しさん2014/11/29(土) 23:17:36.98ID:UPWNNF7N
具体的にやりたいこと次第だな
でも画素変換程度ならともかく5×5畳み込みとか入るのならCPUじゃキツイと思うよ
0635デフォルトの名無しさん2014/11/29(土) 23:35:43.10ID:minsRaFd
リアルタイム処理でもなければ画像処理の速度なんてわりとどうでもいい
imagemagickみたいなゴミが広く使われてるくらいなのに
0636デフォルトの名無しさん2014/11/29(土) 23:40:43.53ID:c89uzboz
どんな用途の画像処理するかだな
ここで質問するレベルならGetPixel、SetPixelだけでもいいだろw
0637デフォルトの名無しさん2014/11/30(日) 02:10:48.79ID:uGm55OyQ
取りあえずお前のやりたいようにやってみて、満足できなかったら
どういう処理をしたのか、ゴールは何か、を添えた上でもう一度聞け

蚊を退治したいのか、プレデターに立ち向かいたいのかで回答は全然違うぞ
土台無理なことかもしれんしな
0638デフォルトの名無しさん2014/11/30(日) 15:49:49.08ID:puqCk3Rg
SlimDX使えば数行で圧倒的な速さで画像処理できるよ
0639デフォルトの名無しさん2014/11/30(日) 19:40:03.48ID:M4F6S5lV
バージョン管理のためにビルドした日付を取得したいんですが、どうやったらできますか?
考えているのはFileInfoクラスのCreationTimeから取得する方法なんですが他に方法ありますか?
0640デフォルトの名無しさん2014/11/30(日) 19:48:56.94ID:e7tqAohM
カスタムビルドイベントに日時をファイル保存するツールいれておくw
0641デフォルトの名無しさん2014/11/30(日) 19:51:25.71ID:5m13pE5F
同レベルだけど俺はT4を推す
0642デフォルトの名無しさん2014/11/30(日) 22:04:57.65ID:aWPIbHoZ
>>638
イミフ
結局オンメモリでCPU使って演算するんなら何使おうが同じだし、
シェーダ使うという意味なら「SlimDX使う」なんて表現はしないだろう
まさか画像処理ってポリゴン描画したりすることだと思ってるのか?
0643デフォルトの名無しさん2014/11/30(日) 22:06:52.67ID:uGm55OyQ
いちいち不思議ちゃんに突っ込み入れなくていいのに
荒れるんだから
0644デフォルトの名無しさん2014/11/30(日) 22:23:42.91ID:5m13pE5F
曲面変換とかも画像処理の一種だから一概には否定できない
間違ってもLockBitsでやることではないが
0645デフォルトの名無しさん2014/11/30(日) 22:31:20.70ID:aWPIbHoZ
まあ数行は大袈裟としても、線形変換なら数十行でいけるな
曲面変換はメッシュに分割しなきゃいけないから百行以内は厳しい
0646デフォルトの名無しさん2014/12/01(月) 02:33:48.25ID:D2vTJS6N
XNAなら数行でできるけどな
0647デフォルトの名無しさん2014/12/01(月) 07:42:40.15ID:6Jy+Wc+z
  
         ,, _
       /     ` 、
      /  (_ノL_)  ヽ
      /   ´・  ・`  l    XNAは死んだんだ
     (l     し    l)    いくら呼んでも帰っては来ないんだ
.     l    __   l    もうあの時間は終わって、君も人生と向き合う時なんだ
      > 、 _      ィ
     /      ̄   ヽ
     / |         iヽ
    |\|         |/|
    | ||/\/\/\/| |
0648デフォルトの名無しさん2014/12/01(月) 10:33:43.11ID:MyAxac2q
DirectX.netでも・・・
0649デフォルトの名無しさん2014/12/01(月) 19:36:26.22ID:6hW3eGe3
なんでxnaは死んでしまったの?
06506292014/12/01(月) 20:57:20.00ID:x9s1c7n/
おお、いつの間にかこんなにレスが
アイデアが固まってなくて、ペイントツール+メガデモ+動き検出みたいなのを考えてたんだけど
質問が曖昧すぎたね。もうちょっと煮詰まってからまた来るよ。
レスくれた人ありがと

昔ソフトレンダラで 20fps ぐらい出たから、今なら画面小さければ CPU でもいけると思ったんだけどなあ
0651デフォルトの名無しさん2014/12/02(火) 13:34:58.51ID:37sdoWzK
このスレでもGetPixelとSetPixelはちょっと・・・
封印して欲しいくらい
0652デフォルトの名無しさん2014/12/03(水) 10:07:42.38ID:EWM+0aWP
諸君
VC#2010だ。ビルドの出力パス"...\bin\Debug\"に当たったコンソールをサクっと
開く魔法とかはないかね?デスクトップにショートカットは無しだ。
0653デフォルトの名無しさん2014/12/03(水) 10:10:36.02ID:5VlD72dU
ビルド後イベントに指定wか、デバッグコマンドに指定
0654デフォルトの名無しさん2014/12/03(水) 10:30:27.86ID:o9Nej2bz
ツール>外部コマンドで初期ディレクトリを$(TargetDir)にしたcmd.exeを追加
0655デフォルトの名無しさん2014/12/03(水) 10:33:26.58ID:EWM+0aWP
ビルド後にイベント指定。

ビルド後に実行するコマンドライン:
start cmd.exe

確かに開くな・・・う”閉じないと何もできなくなるじゃねーかwww
しかし、確かにコンソールは開いた、かたじけない。
0656デフォルトの名無しさん2014/12/03(水) 10:36:49.18ID:EWM+0aWP
>>653 デバグコマンド調べ中 m(_ _;)m
>>654 調べ中。レスサンクス m(_ _)m
0657デフォルトの名無しさん2014/12/03(水) 11:10:05.19ID:vLDSeA4N
コンテキストメニューに入れとくといいぜ
0658デフォルトの名無しさん2014/12/03(水) 11:17:59.80ID:EWM+0aWP
>>653
手持ちではないですが、VC++2008あたりデバッグコマンドを指定できたみたい。
ttp://housoubu.mizusasi.net/data/other/ot003.html
VC#2010では、プロジェクトのプロパティー内デバッグ項目にコマンド指定
できる箇所はなく、引数のみを与えることができるようです。>>653さんの答えとは
ちがうかもですが、答えに着けなかった。すまん。

>>654
いいですね、これ。ありがとう。
$(TargetDir)ではなく$(BinDir)にしました。[F5]デバッグ開始のカレントDirが
$(BinDir)の方だからという理由です。

まとめです。VC#2010では、
 メニュー[ツール(T)][外部ツール(E)...]で"外部ツール"ダイアログを開く。
 タイトル(T):"コマンドプロンプト"(任意)
 コマンド(C):"cmd.exe"
 初期ディレクトリ(I):"$(BinDir)"
とすることで、メニュー[ツール(T)]にユーザ定義のコマンド[コマンドプロンプト]
が追加される。
0659デフォルトの名無しさん2014/12/03(水) 12:11:41.33ID:EWM+0aWP
>>657 ありがとう m(_ _)m。発展まとめ。
ユーザが定義した外部コマンドを追加ができる(>>658)。
メニュー、ツールバー、コンテキストメニューへ外部コマンドを追加できる。

例:メニューへ追加する方法
 メニューから[ツール(T)]>>[カスタマイズ(C)...]
 [コマンド(O)]タブ>>[メニューバー(B)]>>[メニューバー]リスト>>[コマンドの追加(A)...]ボタン
 [カテゴリ(G):ツール]>>[コマンド(D):外部コマンド1]>>[OK]
メニューに"コマンドプロンプト"が追加される。
0660デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 15:50:18.52ID:4QrhI0rB
適切な書き方(処理の仕方?)について教えて下さい。

クラスAとクラスAを継承して少し要素を足したクラスBがあったとします。
イメージとしては両方アイテムでAは消耗品、Bは装備品といった感じです。
両方アイテムなので同じリストItemに入れて普段は処理を行います。

装備品だけの処理をするときはクラスBであることを確認してから装備品の処理をします。
このとき、リストItemはクラスA(親)のリストとクラスB(子)のリストどちらとして作るべきでしょうか?

仮にリストItemをクラスAのリストとするとクラスBとして使う時は常にキャストしなくてはならず、少し使いづらく感じています。
一方でリストItemをクラスBのリストとすると新たにクラスAの子としてクラスC(仮に素材)を作ったとき、クラスCはリストItemに入れられなくなってしまいますよね?
こういう継承したクラスをリストや配列で管理したい場合、親と子、どっちのリストとして作るのが適切なのでしょうか?
0661デフォルトの名無しさん2014/12/03(水) 16:11:54.40ID:Bru9FJIX
Listには IItemとして入れてAやBへはキャストせずに扱う
interface IItem アイテムとしての関数を宣言
class A : IItem派生で装備品処理を実装
class B IItem派生で消耗品処理を実装
0662デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 16:34:45.94ID:4QrhI0rB
ありがとうございます。
キャストせずに処理するためにはクラスAにも中身が空でもクラスBと同じメソッドが必要ということですね・・・。
どうするかなー。
0663デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 17:22:20.70ID:4QrhI0rB
試しにやってみたら
クラスAが別のクラスの継承していて、その元クラスのメソッドをリストItemからも呼び出していたので、そいつが見つからなくなってしまいました。
ぐは

とりあえずキャストで対応しつつ別の方法も考えてみます
もし他に適切なやり方があれば教えて下さい
0664デフォルトの名無しさん2014/12/03(水) 17:37:15.48ID:2MKvb10J
これが、不適切な関係です
0665デフォルトの名無しさん2014/12/03(水) 18:41:16.13ID:DzxgO9Mu
IItemインターフェイスで必要なメソッドを全部宣言、リストとかは基本的に全部IItem経由で使用する
IItemを継承するAbstractItemに空の実装を全部実装
AbstractItemを継承するAItemでAに必要な実装だけオーバーライド
AbstractItemを継承するBItemでBに必要な実装だけオーバーライド
0666デフォルトの名無しさん2014/12/03(水) 20:18:59.76ID:TyhAry/M
ほとんどの場合、そういう先を見越した抽象化は無駄に複雑になるだけで役に立たない
とりあえず2つのリストで実装しといて、もっと増えるようなら後でリファクタリングするのが正解
0667デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 20:46:39.39ID:4QrhI0rB
>>665
すみません、これはメソッドをオーバーライドしている以外は>>661と同じですか?
オーバーライドしてみたらクラスAが別のクラスを継承していてもうまくいくのかな

>>666
リストを視覚的に順に表示する(消耗品も装備もまとめて表示したい)とか、別のリスト(例えば倉庫)と中身の交換処理などをしているので、
できれば一緒のリストで管理したいのです。
0668デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 20:59:17.39ID:4QrhI0rB
とりあえずオーバーライドしたらインターフェイスなしでキャストなしでも
クラスAでリストを作った場合にも、中身がクラスBならBのメソッドを呼んでくれたのでこれで行ってみます。
なぜか、今回のケースだとオーバーライドしてもしなくても変わりはないと思い込んでいました。

ありがとうございました。
0669デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 21:21:47.85ID:4QrhI0rB
と思ったらメソッドは対応してくれるけど、独自の変数は対応してくれないのね・・・。
0670デフォルトの名無しさん2014/12/03(水) 21:23:48.64ID:4WAiKI7z
そういうのは基本的にキャストするのが解決だから
Itemとして処理するときは基本インターフェース越しでいいけど
それ以外は全部ifしてキャストだよ
0671デフォルトの名無しさん 転載ダメ©2ch.net2014/12/03(水) 21:40:15.21ID:4QrhI0rB
うい、諦めてキャストして処理します。。。
0672デフォルトの名無しさん2014/12/03(水) 21:41:26.05ID:Re3JbBDI
public class Box
{
public string No {get; set;}
public List<Box> BoxItem{get; set;}
}

というクラスがあるとして

下記のtestList にデータを100件ほど登録したいのですが

var testList = new List<Box>();

// データ1:Noに"A1" BoxItemに"AItem1","AItem2"
// データ2:Noに"B1" BoxItemに"BItem1"
// 以降データが100件ほど続く

どのようなコードを書けば良いのか解りません。

初心者質問で恐れ入りますが、
よろしくお願いします。
0673デフォルトの名無しさん2014/12/03(水) 21:54:35.42ID:TyhAry/M
意味がわからない
BoxItemはList<Box>なのかList<String>の間違いなのかどっちだ
その100件のデータには何か法則はあるのか、それとも全てソースにベタッと書くのか
しかし、そのレベルならまずは何がしたいのか目的を言ってくれたほうが早い(ソースコードいらない)
そもそものやり方が間違ってる可能性が高いから
06746722014/12/03(水) 22:17:57.61ID:Re3JbBDI
下記のようなものをList<>に入れたかったのですが
確かに、自分でも意味が解らなくなってきました。

new Box
{
No = "A1",
BoxItem = new List<Box>
{
new Box { No = "AItem1" },
new Box { No = "AItem2" },
}
},
new Box
{
No = "B1",
BoxItem = new List<Box>
{
new Box { No = "BItem1" }
}
}

上のような書き方を何というか解らず、
問題を正確に伝えることが出来ません。

すみません、頭を整理します。
0675デフォルトの名無しさん2014/12/03(水) 22:19:14.21ID:4WAiKI7z
Boxの中にBoxを複数入れるなら
木構造かな
0676デフォルトの名無しさん2014/12/03(水) 23:21:17.59ID:uT3reKmu
自分は自動アップデートの類は全てオフにしてるんですけど
Windows7、8だと.NET Framework4.5が入ってる人のほうが多いもんですかね?
0677デフォルトの名無しさん2014/12/03(水) 23:26:32.46ID:3mqHhFN3
8は4.5がデフォだったはずだが
0678デフォルトの名無しさん2014/12/04(木) 05:49:28.21ID:14Xx0DqB
>>674
そういうオブジェクト初期化子みたいなシンタックスシュガーを使わないで
まずコンストラクタを定義する基本のところから始めたほうがいい

class Box
{
 public Box( string no, IEnumerable<Box> boxItems )
 {
  this.No = no;
  this.BoxItem = new List<Box>( boxItems );
 }
 ...
}

........
var testList = new List<Box>();
testList.Add( new Box( "A1", new List<Box>(){ AItem1, AItem2 } ) );
testList.Add( new Box( "B1", new List<Box>(){ BItem1 } ) );
...
0679デフォルトの名無しさん2014/12/04(木) 19:50:49.50ID:jXuaBtGH
VC# のLabelにutf-8のテキストを表示すると文字化けするのですがこれを解決する方法は
どっかに載っていないでしょうか。
0680デフォルトの名無しさん2014/12/04(木) 19:53:13.34ID:XankvZRb
utf8からunicodeに変換して表示
変換方法はぐぐれ
0681デフォルトの名無しさん2014/12/04(木) 19:54:05.57ID:NZ0PkiE/
679がリテラシーを身につけることが先決です
06826742014/12/04(木) 20:06:37.54ID:fwfWerp4
>>678
testList.Addで、そのように書けることが解ったので
ありがたいですが、結局、来るデータの内容が解っている前提で、
ハードコーディングのように書かないとダメなのでしょうか?

「1つの親と多数の子」というデータを、繰り返し文で処理するサンプルは、
検索をかけても、なかなか出てこないので、
世間の人はあまりやらないのかなと思い始めております。。。
0683デフォルトの名無しさん2014/12/04(木) 20:11:44.04ID:14Xx0DqB
その「来るデータ」ってのはどういう形式なんだよ?
それがわからなきゃなんとも言えないでしょうが
0684デフォルトの名無しさん2014/12/04(木) 20:15:43.64ID:VutEPLrK
おそらくLINQ一行で書けるレベルだしググってもしょうがないぞ
0685デフォルトの名無しさん2014/12/04(木) 21:54:06.19ID:1mQzcOkm
>>680
C#の文字列って文字コード抽象化されてないのかよ・・・信じられねぇ
これ本当にモダン言語か? C++じゃねぇんだからさぁ
Objective-CとかSwiftを見習えよ
0686デフォルトの名無しさん2014/12/04(木) 21:55:53.02ID:xUHDYU2H
ちょっと何言ってるか分からない
0687デフォルトの名無しさん2014/12/04(木) 21:58:06.66ID:VutEPLrK
ド低能はBOMでも付けとけ
0688デフォルトの名無しさん2014/12/04(木) 22:01:10.32ID:XankvZRb
意味不明わろたww
この思考はスクリプト脳でも出てこないぞ
0689デフォルトの名無しさん2014/12/04(木) 22:12:41.37ID:0Um0wrg2
なんか数年前に、ソースコードのエンコーディングがそのままアセンブリ中の
文字列リテラルのエンコーディングに反映されると盛大に勘違いしてる人がいたけど、
あれを思い出した。
0690デフォルトの名無しさん2014/12/04(木) 22:13:07.51ID:1mQzcOkm
>>688
プログラムで文字列扱うときまで文字コード意識したくないんだよ
文字列の内部表現を統一して、文字列オブジェクトの初期化の段階で変換噛ませるのが普通だろ、今どきの言語は
速度を最優先するC++なら変換噛ませるとオーバーヘッドになるからっていうのはわかるが、
C#は速度最優先じゃないでしょ? なら初期化の段階で変換噛ませて入口と出口以外では文字コードは意識しなくて済むようにってのが
優れた言語設計だと思うけどなぁ
0691デフォルトの名無しさん2014/12/04(木) 22:14:51.22ID:VutEPLrK
内部はUTF-16に統一されてることぐらい調べてから書け
0692デフォルトの名無しさん2014/12/04(木) 22:20:25.22ID:XankvZRb
入口と出口以外では文字コードは意識しなくて済むようになってるのに
その入口を無視して直接Labelに入れたらそりゃ・・・
0693デフォルトの名無しさん2014/12/04(木) 22:28:00.80ID:pIL5zWrJ
>>690
馬鹿は死ね
すぐ死ね
二度と生まれてくるな
0694デフォルトの名無しさん2014/12/04(木) 22:32:54.88ID:owpnwM0a
よく知りもしない言語のスレに出しゃばって来て
一体何がしたいんだか
0695デフォルトの名無しさん2014/12/04(木) 22:37:25.38ID:gCwfOcft
ソースとなる文字列がどの文字コードかなんて完全な自動判別は無理じゃね?
0696デフォルトの名無しさん2014/12/04(木) 22:44:07.30ID:0Um0wrg2
>>695
一応強制指定もできるんだよ。
知らなかったのか。
0697デフォルトの名無しさん2014/12/04(木) 22:44:39.38ID:0Um0wrg2
っていうか、文字コードてw
前も文字コードがどうのとか言ってる人いたなw
0698デフォルトの名無しさん2014/12/04(木) 23:27:53.56ID:gCwfOcft
>>696
強制指定ってなんぞ?
0699デフォルトの名無しさん2014/12/04(木) 23:40:01.90ID:A4Z5xDH3
>>698
すまんEclipseと勘違いしてたかもw

ファイル→保存オプションの詳細設定で一応エンコーディングそのものは
指定できるようだけど、そもそもVSがエンコーディングを誤判定して読んでる場合は
どうなっちゃうんだろうなこれ。

このあたりはEclipseの方がよくできてるな。
0700デフォルトの名無しさん2014/12/04(木) 23:44:48.17ID:gCwfOcft
>>699
んー。ソースってソースコードという意味じゃないんだけど・・・・
元って意味のつもりだったんだけど。
0701デフォルトの名無しさん2014/12/04(木) 23:49:02.54ID:A4Z5xDH3
>>700
それこそそれ何の話?
0702デフォルトの名無しさん2014/12/04(木) 23:53:08.22ID:gCwfOcft
>>701
え?>>679の話のつもりだけど。あれ?
0703デフォルトの名無しさん2014/12/05(金) 00:01:15.67ID:IB217T8D
>>702
ラベルにどうやってエンコードされてない生のバイナリを与えるの?
0704デフォルトの名無しさん2014/12/05(金) 00:06:54.75ID:6rj9JiXr
>>703
ネットとかファイルから読んだものをメッセージボックスとかで
表示すると化けることなかったっけ?
そういう話をしてると思って。だから文字コード指定して
読まなきゃだめでしょって話の流れかと思ってたけど違うのか。
まあそれならそれで眠いので寝ます。
0705デフォルトの名無しさん2014/12/05(金) 00:11:09.72ID:7At5sO4n
頭のおかしいApple信者(を装うキチガイ)の因縁でしょ
実際にC#を打っていたのかも怪しい
0706デフォルトの名無しさん2014/12/05(金) 00:12:09.16ID:OtjMl/SX
元質問者もおそらうそういう話をしていて、皆もそういう前提で話をしていたのに、
何故かソースコードの文字コードと、ずれた会話をしだしたやつが居るというので
認識は合ってる
0707デフォルトの名無しさん2014/12/05(金) 00:15:00.25ID:IB217T8D
>>704
だから、ラベルにそんな機能あるの?
何を言ってるんだ?
0708デフォルトの名無しさん2014/12/05(金) 00:15:43.06ID:IB217T8D
>>706
お宅も馬鹿だねw
0709デフォルトの名無しさん2014/12/05(金) 02:43:57.07ID:En7QyCki
>>691
お前は入力された文字列データを正規化もせずに
Unicodeだったら何でもそのままDBに突っ込んでるわけ?
0710デフォルトの名無しさん2014/12/05(金) 04:57:59.55ID:xLezLWr8
>>709
キチガイはすっこんでろ
0711デフォルトの名無しさん2014/12/05(金) 07:14:05.47ID:XJlvxsal
キチガイの相手すんなよ
余裕なしの能なし君
0712デフォルトの名無しさん2014/12/05(金) 10:37:05.69ID:Y2imYt2a
>>711
荒らすな
0713デフォルトの名無しさん2014/12/05(金) 10:42:11.79ID:Fp1NhL2M
LINQって普通のメソッド形式とSQLっぽい記法とありますけどどっちを先に覚えるべきですか?
0714デフォルトの名無しさん2014/12/05(金) 10:56:59.63ID:J+iOfKZ4
荒れてるねぇ・・・落ち着けもまえら、と、先達たちに質問。
"@"(あっとマーク)ってなにw?怒るな!落ち着け!
とあるブログのとあるクラスのとあるメソッドで使われてるのを見た。

1:class boo{
2:  void foo() {
3:    string woo = @"helohelo";
4:    boo(woo);    
5:  }
6:
7:  void boo(string s) {
8:    SomeProperty = SomeMethod(@s);

な感じだ。リテラルと変数の頭にくっ付いてる。
0715デフォルトの名無しさん2014/12/05(金) 10:59:17.65ID:J+iOfKZ4
ぐあ、割り込んじまった、スマン>>713。
0716デフォルトの名無しさん2014/12/05(金) 11:07:21.61ID:Y2imYt2a
>>714
http://msdn.microsoft.com/en-us/library/aa691090%28v=vs.71%29.aspx
0717デフォルトの名無しさん2014/12/05(金) 11:31:21.21ID:xLezLWr8
string @int = "this is not int";
MessageBox.Show( @int );
0718デフォルトの名無しさん2014/12/05(金) 11:39:16.90ID:J+iOfKZ4
>>716 サンクス!勉強させていただきました(礼)。
ブログ内ではwooはフルパスファイル名だったので、エスケープなし文字列と予想可能な範囲だった。
しかも"C# 文字列 @"でググれば即当たった。修行が足りないです。
0719デフォルトの名無しさん2014/12/05(金) 11:53:25.13ID:J+iOfKZ4
>>717 サンクス!笑えました(礼)。
すげーー!!!C#、どこへ向かっているんだ!?
string @^_^ = "^_^"; とかできてもいいな。
0720デフォルトの名無しさん2014/12/05(金) 14:40:26.79ID:Dlg/1A6N
>>713
個人的にはメソッド形式だけで十分かなと
二重ループの表記もSelectManyあればなんとかなるし
0721デフォルトの名無しさん2014/12/05(金) 18:57:00.64ID:J5J3kGrG
クエリ構文のことは忘れていいよ
0722デフォルトの名無しさん2014/12/05(金) 20:19:59.69ID:hbrVObTI
誰も>>680に突っ込まないの?
0723デフォルトの名無しさん2014/12/05(金) 20:25:50.47ID:vsJiS7zm
>>722
またおまえか。素直にUTF8の取り込み方がわからないって言えよw
0724デフォルトの名無しさん2014/12/05(金) 20:33:50.09ID:hbrVObTI
>>723
誰かは知らんけど、そう言うことじゃなくて
UTF -8をUnicodeに変換ってトコロだよ

ホントに誰も違和感を感じないの?
0725デフォルトの名無しさん2014/12/05(金) 20:35:47.22ID:M7z0XNkV
そら頭痛も痛いわ。
0726デフォルトの名無しさん2014/12/05(金) 20:39:07.19ID:vsJiS7zm
今度は言葉遊びかよw
0727デフォルトの名無しさん2014/12/05(金) 20:39:22.03ID:TK9vw08w
うまいこと言おうかと思ったけど止めときます
0728デフォルトの名無しさん2014/12/05(金) 20:40:59.40ID:AT+xL3al
Microsoft系だと以前はucs2今はutf16をワイド文字とかUnicodeという表記で扱っててそれが普通だから違和感は特に無いな
0729デフォルトの名無しさん2014/12/05(金) 20:44:23.22ID:7At5sO4n
Encoding.Unicode「」
0730デフォルトの名無しさん2014/12/05(金) 20:55:28.02ID:hbrVObTI
わかってくれた人も居たので一安心
0731デフォルトの名無しさん2014/12/05(金) 20:58:31.10ID:TK9vw08w
そうか。安心したか。
じゃあ死ね。手伝うか?
0732デフォルトの名無しさん2014/12/05(金) 20:59:48.53ID:MSHCgKVi
Unityの本を読むのにC#の基礎知識が必要になったんですが文法をある程度理解するのにおすすめの本はありますか?
ちなみにPythonを多少触ったことがあるので全くの初めてというわけではないです
0733デフォルトの名無しさん2014/12/05(金) 21:14:38.70ID:hbrVObTI
なんか荒れてるなー
このコラムでも読んで心を落ち着けてほしい

「駄目な面接の質問」
http://www.aoky.net/articles/david_pickett/stupid_interview_questions.htm
0734デフォルトの名無しさん2014/12/05(金) 21:38:59.04ID:X0/J0vn/
>>720
from a in A
from b in a.B
select new { a.Name, b.Age }
みたいなSelectMany後にaを使うようなのだとクエリ構文が欲しくなる
まあ滅多にないけど…
0735デフォルトの名無しさん2014/12/05(金) 21:44:07.78ID:f5JIJXMS
Joinはクエリ使わないときつい
クエリだと途中で変数使えるのもぽいんとだね
0736デフォルトの名無しさん2014/12/05(金) 22:16:00.55ID:J+iOfKZ4
まだウニウニやってたのねん。
しかし、BOM(>>687)を学んで一つ利口になれた。オレにとっては無駄ではないw

VC#2010Express+NetFramework4.0CL+XPPro32SP3な環境。
フォームデザイナとそのプロパティーダイアログの質問です。すいません、また下らない質問で。

WebBrowserをフォームに貼り付け。そのインスタンスのプロパティーダイアログでStatusTextChangedイベント
を探してるんだけどリストに無い。雷マークも押してます。
コードの手書きでは、自動で補完してくれるアレ(インテリセンス?)が、ちゃんと候補だしてくれる。
実行するとイベントも反応してくれて動作は問題なさげです。
MSDNで「サポートされていません」とか「使ったらダメ」なアイテムは除外されてるなど、
オレより利口な統合環境なので、ちょっと気になってます。
0737デフォルトの名無しさん2014/12/05(金) 22:20:04.74ID:7At5sO4n
>>736
BrowsableAttributeが付いてるからだよ
EditorBrowsableとかもある
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.statustextchanged%28v=vs.110%29.aspx
0738デフォルトの名無しさん2014/12/05(金) 22:31:42.71ID:J+iOfKZ4
ふっ・・・(T_T)
0739デフォルトの名無しさん2014/12/05(金) 22:35:59.58ID:umG4WL4p
SQL使うならSQL表記覚えてもいいけど
一般のコレクションでLINQ使うケースのほうが圧倒的に多いし
SQL風表記はコレクションとはまるで合わない
0740デフォルトの名無しさん2014/12/05(金) 22:54:42.46ID:f5JIJXMS
クエリ式使うかどうかはともかく、SQLアレルギーは治したほうがいいよ
Micro Frameworkを除けば、SQLはC#が使える環境なら何作るのにも極めて便利に使えるんだから
0741デフォルトの名無しさん2014/12/05(金) 22:56:34.27ID:9G6QuTUe
SQLは関係ない。クエリはとにかく糞遅いのだ。
0742デフォルトの名無しさん2014/12/05(金) 23:12:25.21ID:3HvtcmF2
メソッドチェインで書くほうがなんとなく違和感がない…気がする
0743デフォルトの名無しさん2014/12/05(金) 23:17:53.83ID:umG4WL4p
普通はSQLって直接SQL文字列作って送り込むよな?
0744デフォルトの名無しさん2014/12/05(金) 23:21:17.57ID:7At5sO4n
T-SQLプロシージャを作っといてメソッドにバインドじゃないの
0745デフォルトの名無しさん2014/12/05(金) 23:21:44.28ID:J+iOfKZ4
降参orz(>>736です)

[hogehoge]がアトリビュートとか属性っていうのを示すところまでは
わかりました(わかったつもり)。#ifdefな事をコードで、全部盛りでやってんのか。
みたいな(泣)。ちと、ハードル高い^^;;;エディタやデザイナに影響するような定義
までクラスで動的に管理しているのか?

ぶっちゃけ、できるのならばですが、どこにどの様にその定義を設定すれば、デザイナによ
ろしく伝えられますか(イヤむしろ伝えたらダメっぽい気がする)?

MSDNによると、『BrowsableAttribute コンストラクターの browsable パラメーターを
false に設定してマークされたメンバーは、デザイン時の編集には不適切であるため、
ビジュアルなデザイナーに表示されません。』とあるため、手書き前提。という理解で
いいでしょうか。実際インテリセンスは補完してくれる。
0746デフォルトの名無しさん2014/12/05(金) 23:29:46.03ID:uSRU3H8t
EF使うならクエリ式の方がSQLを想像し易い

VBならラムダはSub/Functionキーワードが必要だからクエリ式の方が見易い

後は、クエリ式の方が()が減って見易くなるかも?
0747デフォルトの名無しさん2014/12/06(土) 00:26:15.02ID:rkxW+A3/
>>745
UserControl継承でコンポーネント作って、プロパティにbrowserble(false)やEditorBrowsable(Never)の属性つけてみればたぶん一撃でわかるよ
0748デフォルトの名無しさん2014/12/06(土) 10:50:06.84ID:e2sqyFCD
(>>745です)
ふっ・・・ (T_T
To Be Continued...
0749デフォルトの名無しさん2014/12/06(土) 16:27:46.61ID:IRFBv0F0
List<string>で、以下のようなデータを格納していて

A親
A子1
A子2
B親
B子1
C親
C子1
C子2
C子3
・
・
・
Z親
Z子1

これをWPFのtreeviewに表示したいのですが、
どのように書けば良いのでしょうか?
0750デフォルトの名無しさん2014/12/06(土) 16:30:56.12ID:1MG24EwX
その形式である限りどのようにも書けないです
HierarchicalDataTemplateにバインドできるような形式にしない限りは

絶望の前に崩れ落ちるがいい
さぁさぁ
0751デフォルトの名無しさん2014/12/06(土) 16:34:20.84ID:rkxW+A3/
>>749
List<string>じゃ無理だろ(´・ω・`)
0752デフォルトの名無しさん2014/12/06(土) 17:18:41.92ID:1X8GhzUe
A親
A子1
A丼2
0753デフォルトの名無しさん2014/12/06(土) 17:31:33.78ID:3ykiRKPl
>>749
末尾が数字なら子、でなければ親でいいんじゃない?
0754デフォルトの名無しさん2014/12/06(土) 17:53:25.07ID:yTh+Y5T7
まず普通に解析して木構造に変換しろよ
0755デフォルトの名無しさん2014/12/06(土) 21:17:30.71ID:s6L9xGNJ
>>748
属性ってマークなんだよ
それ単体では何の処理も行われない、プログラムのその箇所に付いているだけのさ。
でも、それぞれの属性を知っている人が居て、その人がそのマークを見つけたらそれ専用の処理をする、
っていう仕組み。

例えば、Obsoleteという属性だと、コンパイラがそれを見つけて、コンパイル時に警告とかエラーを出してくれる。
browsableだと、IDEのデザイナーが見つけてプロパティに表示するかどうかを処理してくれる。
0756デフォルトの名無しさん2014/12/07(日) 08:28:05.94ID:axGcne8v
よろしくお願いします。

環境:VS2013
想定動作環境:Win7〜8.1、タブは想定しない(持ってない)

「PNG、またはJPGファイルを、タイル状に並べてスムーズにスクロール表示させる」というのをやりたいと考えています。
画像ファイルは5万個前後あり、横10個、縦が5000個並び、というかんじになると考えています。
流石に5万個事前に読む、というのはアホというのは理解しているのですが、事前にスクロールされる先の先読みをする
とか、それをスムーズに、となると手段もググる取っ掛かりもわかりません。
また、次のステップとしてタイル状に配したPNGファイルをクリックして、結びついているIDを得る、と言うのもやりたいと考えています。
「この辺の資料にヒントがある」とか、「このテキストに載ってる」とかありましたら、教えてください。
0757デフォルトの名無しさん2014/12/07(日) 08:30:43.47ID:O6jlUXZ3
WPFでVirtualizingStackPanelを使うだけ
0758デフォルトの名無しさん2014/12/07(日) 08:42:22.31ID:xmKDDPFT
『よろしくお願いします。』

何をお願いするのかぐらい
書いたらどうだ?
0759デフォルトの名無しさん2014/12/07(日) 08:50:47.83ID:4p9g0YXS
>>758
死ねよ
0760デフォルトの名無しさん2014/12/07(日) 09:03:28.93ID:YCWAN+Z7
>>758はさすがに釣りだろ。マジに言ってるなら基地外すぎる
0761デフォルトの名無しさん2014/12/07(日) 09:24:01.03ID:4opLAAex
むしろ>>759=>>760がキ○ガイぎみ。
日本語を正しく使えってだけだろ。この程度のアスペ レスぐらい
スルーできないようじゃこの先心配。
0762デフォルトの名無しさん2014/12/07(日) 09:26:30.75ID:Bzu/18ga
listviewのvirtualモードでは出来ないかな。?
0763デフォルトの名無しさん2014/12/07(日) 09:29:01.24ID:bfkTF4nN
>>761
人の将来の心配()はスレチ
0764デフォルトの名無しさん2014/12/07(日) 09:59:35.39ID:QWUQ7mOo
>>756
以前それと同じようなことをやったことがある。
RPGのゲーム制作のときだけど…。
RPGのマップは主人公の位置を元にマップチップのどこを読むかを決めて、不要な部分は読まないです。

縦スクロールだけというなら、シューティングゲームの方が近いですが、基本的にはRPGもシューティングも似たような仕組み。
シューティングゲームに+αで、スクロールバーも付けてあげれば良いんじゃないか。

C# + DXライブラリを使えば、Windowsフォームアプリで作れます。

■ Webの場合
良く分からない

■ 納品の場合
DXライブラリを使ったやつを納品したこと無いから分からない。

■ 難易度
180人日くらいを見込んで置いた方がいいw
0765デフォルトの名無しさん2014/12/07(日) 10:21:47.36ID:L2Jpm8jj
そんなので9ヶ月もメシ食えるのか
9日でもボッてると思うぞ
0766デフォルトの名無しさん2014/12/07(日) 10:29:53.56ID:O6jlUXZ3
>>764みたいに低レベルから組まなきゃいけない超非効率な方法でやるなら
180は大袈裟としても相当な手間はかかりそう
0767デフォルトの名無しさん2014/12/07(日) 10:32:08.51ID:jAFrNG/z
今日中にWPFで作ってやるからちょっと待ちな〜
0768デフォルトの名無しさん2014/12/07(日) 10:47:30.86ID:5CT1OZvc
もちろんWindowsネイティブね
早死にしそうだ
0769デフォルトの名無しさん2014/12/07(日) 12:37:31.40ID:DGGd5tkK
とりあえずプロキシパターンでいいんじゃないですか
0770デフォルトの名無しさん2014/12/07(日) 23:47:11.73ID:+hH354w+
listviewクラスでviewプロパティを詳細ビューにしてFullRowSelectをtrueにしているんですが
listview.Items[0].Selecetedをtrueにすると一部分(行ごとではない)だけ選択されてしまいます
Selecterdプロパティをtrueにしても行全体を選択するにはどうすればいいですか?
0771デフォルトの名無しさん2014/12/08(月) 06:02:10.12ID:GS6rLfPL
再現しません
0772デフォルトの名無しさん2014/12/08(月) 09:12:35.97ID:U2G/o8q1
>>770
owner drawとかが関係あるんじゃないか?
0773デフォルトの名無しさん2014/12/08(月) 22:22:34.99ID:lOw1scB4
>>767がどうなったのか気になる
0774デフォルトの名無しさん2014/12/08(月) 23:51:21.49ID:jpXGpnih
>>772
ありがとうございますオーナードローでした
選択行の描画で
if((e.ItemState & ListViewItemState.Selected) == ListViewItemState.Seleted)〜描画処理〜
としていたのを
if(e.Item.Selected)〜描画処理〜
に変更すると解決できました

ちなみになぜ>>770みたいな現象が起きたのでしょうか?
アプリ起動時は1行選択されていて選択されているところにカーソルを持っていくと
描画がおかしくなり、一部分選択になります
他の行を選択すると正常になるんですが・・・
変更前、変更後のコードの違いを知りたいです
0775デフォルトの名無しさん2014/12/09(火) 01:33:58.02ID:zeGcS36x
再現コード出せっての
0776デフォルトの名無しさん2014/12/09(火) 21:23:03.83ID:yaJpdVwF
フンッ
0777デフォルトの名無しさん2014/12/09(火) 23:53:52.73ID:3VlD8PnB
断固拒否
0778デフォルトの名無しさん2014/12/10(水) 13:25:05.96ID:BQ7Ojkfw
比較的新し目で日本語の電子書籍の入門書ってないですか?
Visual C# 2013パーフェクトマスター欲しいんだけど分厚すぎる…
0779デフォルトの名無しさん2014/12/10(水) 17:08:25.21ID:p7pdAcdT
Paintイベントメソッドはe.Graphicsでオブジェクトを取得できるので
CreateGraphicsで生成する必要がないと本で見たのですが

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Font myfont = new Font("MS 明朝", 10);
SolidBrush mybrush = new SolidBrush(Color.Black);
e.Graphics.DrawString("1行目", myfont, mybrush, 0, 0);
e.Graphics.DrawString("2行目", myfont, mybrush, 0, myfont.Height);
e.Graphics.DrawString("3行目", myfont, mybrush, 0, myfont.Height*2);
}
07807792014/12/10(水) 17:09:41.69ID:p7pdAcdT
>>779
途中送信してすみません。

作成したForm1に文字が表示されないのですがソースに誤りがあるのでしょうか?
実行しても表示されずエラーも出ていないので原因がわかりません
0781デフォルトの名無しさん2014/12/10(水) 17:16:16.17ID:Bt3w6SNQ
・もしかしてメソッドを追加しただけとか?
イベントしてインスタンスに追加しないとダメよ

this.Paint += this.Form1_Paint;

・FontとかSolidBrushはDisposeしようね

using( var myFont = new Font(.. ) )...
using( Var mybruhs = new SolidBrush( ... ) )...
0782デフォルトの名無しさん2014/12/10(水) 18:19:07.10ID:p7pdAcdT
>>781
ありがとうございます。
メソッドを追加しただけでした・・・

Designer.csに追加しないといけないんですね
0783デフォルトの名無しさん2014/12/10(水) 18:27:14.28ID:ut3AbCv+
別にdesigner.csの方である必要はないけど
手でdesigner.csに入れるのは駄目で、designer.csの方に入れる場合、
プロパティウィンドウの雷アイコンで開くイベント一覧から追加する
手で入れるならコンストラクタのInitializeComponent()を呼び出した後あたりに入れる
0784デフォルトの名無しさん2014/12/10(水) 23:42:09.65ID:oTNmgQpK
>>778
まともな回答がつくまでの補助的な回答だけど
こういうサービスや小物を知ってると選択肢が広がるかもしれない
http://www.bookscan.co.jp/
http://www.amazon.co.jp/dp/B00JJHAT5G/
0785デフォルトの名無しさん2014/12/11(木) 11:00:38.74ID:tIuluyGV
class Tank {
 public enum Mode {
 }
 public Mode Mode {get;set;}

みたいにenumの名前とプロパティの名前を同じにしたいのですが、コンパイルエラーになります
何か良いアイディアはないでしょうか
0786デフォルトの名無しさん2014/12/11(木) 11:11:49.46ID:zPuHyCPh
enumをクラスの外に出す
0787デフォルトの名無しさん2014/12/11(木) 12:10:13.05ID:igldqqez
Modetypeとかにする
07887852014/12/11(木) 12:14:48.49ID:tIuluyGV
>>786
名前空間を汚したくないです
>>787
できれば遠慮したいです
0789デフォルトの名無しさん2014/12/11(木) 12:17:18.96ID:2XHdUhkU
じゃあクソして寝ちまえ
0790デフォルトの名無しさん2014/12/11(木) 12:19:21.75ID:igldqqez
じゃあそういう所を直したサブセット言語作ろっか
0791デフォルトの名無しさん2014/12/11(木) 12:37:43.75ID:37mmfa27
名前空間を汚すって発想が理解不能
0792デフォルトの名無しさん2014/12/11(木) 12:48:15.62ID:p8p7Ebpe
enumがスコープにならないとかいう残念仕様のC++なら理解できるけどC#だしな
0793デフォルトの名無しさん2014/12/11(木) 13:16:53.62ID:jtLcXmlj
名前空間を汚す?よりも同じ名称をenumとプロパティに付ける方がもっと気持ち悪いとか思わないんだろうか
0794デフォルトの名無しさん2014/12/11(木) 13:20:22.08ID:2XHdUhkU
enumと同じ名前にしたい気持ちは分かるが?
0795デフォルトの名無しさん2014/12/11(木) 14:08:21.22ID:wLsoL50V
こんなときに自分でシンタックスを作れるような機能さえあれば!
そんな問題も解決できる
そうcommon lispならね
0796デフォルトの名無しさん2014/12/11(木) 14:17:17.96ID:Pkcv7ZOn
まあ、問題か似非問題(勘違い、思い込み、理解不足)か、
それが問題なんだけどねw
0797デフォルトの名無しさん2014/12/11(木) 14:19:03.26ID:zPuHyCPh
>>793
ttp://msdn.microsoft.com/ja-jp/library/ms229012.aspx
列挙型に厳密に型指定されたプロパティを使用する場合は、プロパティの名前を列挙型の名前と同じにできます。
たとえば、CacheLevel という名前の列挙型がある場合は、その値のいずれかを返すプロパティにも CacheLevel という名前を付けることができます。
0798デフォルトの名無しさん2014/12/11(木) 14:30:16.93ID:Pkcv7ZOn
>>797
MSDNなんか引用しなくてもそこは当たり前。
Fontを返すプロパティ名はFontにしたいし、Colorを返すプロパティ名はColorにしたい。
enumだって型なんだからその辺の事情は変わらない。
0799デフォルトの名無しさん2014/12/11(木) 14:38:39.30ID:DmWdJaH2
> Fontを返すプロパティ名はFontにしたいし、Colorを返すプロパティ名はColorにしたい。
この辺から考えを改めた方がw
0800デフォルトの名無しさん2014/12/11(木) 14:41:32.44ID:Hazp7zEC
よろしくおねがいしますw

MSDNのWebドキュメントやVSで使われてるアイコンの一覧ってみたことある?
飛ぶピンクの箱 = パブリック メソッド
黄色い稲妻 = パブリック イベント
S = スーパーマン
カギがついたらプライベート

とかとか。
0801デフォルトの名無しさん2014/12/11(木) 14:53:45.90ID:DmWdJaH2
2005、2008のといきはVS2008ImageLibrary.zipみたいなのがあってそこに画像ファイルが入ってた
評価版とか使えば今も入手できるのかとかは知らない
0802デフォルトの名無しさん2014/12/11(木) 15:05:37.87ID:2XHdUhkU
>>799
じゃあFont/Colorを返すプロパティはなんて名前にするのん?
0803デフォルトの名無しさん2014/12/11(木) 15:10:57.59ID:Hazp7zEC
ありがと。素材としていい。覚えておきます。
というのじゃなくて、仕様書あたりで使う、略語一覧とかアイコン説明、みたいな。
マウスホバーでTIPでるし、用意されていないかもしれませんね。
0804デフォルトの名無しさん2014/12/11(木) 15:14:55.22ID:Hazp7zEC
>>802
煽るなよw
MyFontにMyColorに決まってるじゃん!
0805デフォルトの名無しさん2014/12/11(木) 15:19:08.23ID:kmQk8CxQ
お前のソースコード自己主張が激しいな
0806デフォルトの名無しさん2014/12/11(木) 15:25:45.55ID:DmWdJaH2
BackColorとか、普通に何に使われるのか分かるようにしろってこと。
Myでもいいがww
0807デフォルトの名無しさん2014/12/11(木) 15:28:20.92ID:tIuluyGV
Fontを返すプロパティはFont
Colorを返すプロパティはColor
が常識だと思います
問題はそれらがクラス外で定義されていればいいのですが
クラス内で定義されている場合(区別が付かないから?)コンパイルエラーになります
これをフルで修飾するとかして回避できないかどうかを教えて下さい
0808デフォルトの名無しさん2014/12/11(木) 15:31:54.63ID:Hazp7zEC
^^;ごめん、話ややこしくした。
単純にFont/Colorを返すプロパティは、Font/Colorをつかう方に一票です。
Back*がついたらForward*とか探してしまうもにょ罠。Myはサンプル厨です。
0809デフォルトの名無しさん2014/12/11(木) 15:35:26.68ID:p8p7Ebpe
できないです
0810デフォルトの名無しさん2014/12/11(木) 15:50:27.34ID:DmWdJaH2
public MODE Mode { get; set; }
0811デフォルトの名無しさん2014/12/11(木) 15:56:11.03ID:4AxBUv+p
そんなクラス内で定義されたもんが外にだされても使えちゃうのは汚染じゃないのかよ
0812デフォルトの名無しさん2014/12/11(木) 17:37:00.03ID:tIuluyGV
Tank.Modeでしか使えないから汚染じゃないですよ
問題はModeというのがあまりにも一般的な単語なので見せたくないという配慮です
0813デフォルトの名無しさん2014/12/11(木) 17:38:18.08ID:2XHdUhkU
あのー、見えてますけど
0814デフォルトの名無しさん2014/12/11(木) 18:31:08.54ID:2LyM0kV6
無いって言われてるのに頭の足りねえ奴だな
脳に障害でも抱えてんのか?
周りに配慮してこの世から退場しとけチンカス野郎
0815デフォルトの名無しさん2014/12/11(木) 19:26:24.24ID:Hazp7zEC
クラス内で定義したenumを外から使いたいんだろうけど。
んで使うときは、Tank.Modeで必ずまとめて使うと。できそうで、出来んw
まぁ、気持ちはわかる。今のC#では出来ないが結論だな・・・。
TankModeでクラスの外に定義するのが筋ちゃうかな?
0816デフォルトの名無しさん2014/12/11(木) 19:42:45.71ID:WvT8ipHf
ライブラリ使用者の視点からするとcase Tank.Mode.Hoge:とかイラッとするから止めとけ
作ってるときに階層化したくなる気持ちは分かるが
0817デフォルトの名無しさん2014/12/11(木) 20:02:32.48ID:b1Gf8sZ/
Environment.SpecialFolderのウザさ思い出したじゃないか
0818デフォルトの名無しさん2014/12/11(木) 20:22:12.68ID:baBRPOSo
http://msdn.microsoft.com/ja-jp/library/vstudio/sbbt4032.aspx
>通常、列挙型は名前空間内に直接定義して、
>名前空間内のすべてのクラスが共通の利便性でアクセスできるようにするのが最も適切です。

クラスの外に出すのが正解で終わり
0819デフォルトの名無しさん2014/12/11(木) 22:18:55.88ID:xLKJiLFX
tank.Mode == Tank.Mode.A
tank.Mode == TankMode.A
0820デフォルトの名無しさん2014/12/11(木) 23:58:29.30ID:0YeLy4vy
publicなenumはクラスの外が正解だと思う

入れ子にするとうざい
0821デフォルトの名無しさん2014/12/12(金) 00:01:06.38ID:N2D/7/+F
enumはusingして型名を一文字にすると可読性が上がるよ
0822デフォルトの名無しさん2014/12/12(金) 00:25:49.02ID:5KzEvkxb
あれだな、名前空間を握ってる上司と折り合いが悪いんじゃないか?
良好な人間関係の構築が解決への糸口だ。
0823デフォルトの名無しさん2014/12/12(金) 04:07:56.35ID:wb7lSXTp
ボクチャンが考えた正しい言語仕様じゃないのはおかしい!
そんなときにも簡単に言語仕様を修正できる
そうcommon lispならね
0824デフォルトの名無しさん2014/12/12(金) 07:49:52.14ID:Znidw3Lc
型名はともかく、変数名というかプロパティ名は出来るだけ目的を表すものにすべき。

Fontだと、そりゃ確かにフォントだろうけど、使う人にとって何に使う使えるのか
名前からは分からず、仕様書を見るか、ソースを解析するしか無くなる。

あれは誰ですか?
人間です
というようなものだ。

作った本人しか扱わないんだったら好きにしろというとこだが。
0825デフォルトの名無しさん2014/12/12(金) 08:44:34.93ID:c9uTJiJ1
そんなん型によるとしか
Control.Fontが何に使われるのか分からないなんてあり得ないだろ
0826デフォルトの名無しさん2014/12/12(金) 09:10:45.62ID:W3DI7Tcy
複数有ったら、Font1,Font2,Font3とするのか?
どうやって見分けるんだ?
作った本人は分かるだろうが
0827デフォルトの名無しさん2014/12/12(金) 09:14:05.79ID:45nt6qg/
常識なんだろ。もう放っとけよ
おれらが非常識だったんだよ!
0828デフォルトの名無しさん2014/12/12(金) 09:55:11.85ID:KaklwhVH
位置を取得するのはLocationでも出来るけども、
位置を指定するのはTopとLeftってのが
0829デフォルトの名無しさん2014/12/12(金) 10:51:17.44ID:eCwBUTkP
exeなプロジェクトがあるdllを参照してるとします。
dll内のメソッドのシグネチャを変える場合、引数なしからオプション引数にしても
やはりexeの方のリビルドが必要になるでしょうか?

public void M(){...}
↓
public void M( int i = 0 ){...}

みたいな感じです。

exeのほうではソースコード上は変更はないんですが。。。
0830デフォルトの名無しさん2014/12/12(金) 10:57:40.55ID:5KzEvkxb
TextBox.Colorは否定してもよいがTextBox.Fontは否定できん。
*.MyFontを否定するヤツだけ、かかってこい!ゴルァ!
0831デフォルトの名無しさん2014/12/12(金) 11:00:25.48ID:c9uTJiJ1
>>829
必要
0832デフォルトの名無しさん2014/12/12(金) 16:09:27.63ID:XdRx77KE
すれ立てるまでもない質問スレないんで誰かたててください
0833デフォルトの名無しさん2014/12/12(金) 18:04:34.07ID:eCwBUTkP
>>831
やっぱそうですよね
オーバーロードで対処することにします
0834デフォルトの名無しさん2014/12/12(金) 18:47:27.60ID:O76G4hyd
>>832
雑談スレにでもかいてみろ
0835デフォルトの名無しさん2014/12/12(金) 22:02:16.50ID:Znidw3Lc
>>830
TextBox.Fontはどっちのフォント?
最近、でもないけど、〜を入力して下さいだの入力例だとかを
薄い色で別フォントで表示したりするが。
0836デフォルトの名無しさん2014/12/13(土) 00:34:45.30ID:Ln23jMW6
テキストボックスのフォント、と言われて
それを思い浮かべる人はどれぐらいいるのさ
0837デフォルトの名無しさん2014/12/13(土) 09:02:42.28ID:7s8TJDbk
TextBox.Fontって言われてほかのを思い浮かべるのは基地外
だがそんな定義しとくと、あとで別フォントプロパティを追加したくなった時に名前の統一性がなくなる
そんな細かいことは考えずにTextBox.Fontってしとくのが常識なんだよ!
0838デフォルトの名無しさん2014/12/13(土) 09:21:12.63ID:aIxuvf1S
不毛な話だな〜
お前らハゲだろ
0839名無しさん@そうだ選挙に行こう2014/12/13(土) 15:08:21.12ID:wlttdUXG
ラムダが読めません
0840名無しさん@そうだ選挙に行こう2014/12/13(土) 19:03:14.76ID:zZQzVeIa
>>839
読めない時は自分で書けって昔の人が言ってた
0841名無しさん@そうだ選挙に行こう2014/12/13(土) 20:08:05.47ID:6easkU0j
最近C#のデスマーチ増えてるけど、大抵ラムダokのプロジェクトなんだな。
0842名無しさん@そうだ選挙に行こう2014/12/13(土) 20:17:08.89ID:aIxuvf1S
C#のプロジェクトなんかあるんだ(棒)
0843名無しさん@そうだ選挙に行こう2014/12/13(土) 20:19:51.99ID:/UEpnQ1u
ラムダ式禁止とだけ書いたらdelegateまみれになった案件なら知ってる
0844名無しさん@そうだ選挙に行こう2014/12/13(土) 20:20:35.48ID:1Rys2+MB
>>841
そりゃラムダに限らず単に管理がいい加減なだけだろう
0845名無しさん@そうだ選挙に行こう2014/12/13(土) 20:25:05.19ID:wHnW1l6n
>>839
lambda
bが無音だからな…
0846名無しさん@そうだ選挙に行こう2014/12/13(土) 20:36:50.22ID:poMTmu/t
社畜だからなのかもしれないけどラムダの何が良いのかさっぱりわからない
コードの行数が減るってだけなんだろうか
0847名無しさん@そうだ選挙に行こう2014/12/13(土) 20:41:50.27ID:aIxuvf1S
何と比較して良さが分からないと言ってるのかによって回答が変わる
delegateでいいじゃんって?それともメソッド定義すればいいじゃんって?
0848名無しさん@そうだ選挙に行こう2014/12/13(土) 20:50:46.44ID:gqZ8fUEZ
>>846
それもあるけど名前をつけなくていいってのがでかい

Javaにおいては匿名クラス(正式名称)
C#2.0においては匿名メソッドってのがあって
手続きをパラメータ化したいときとか便利だったね
やっぱそういうのは欲しくなるのよ
0849名無しさん@そうだ選挙に行こう2014/12/13(土) 20:51:28.15ID:gqZ8fUEZ
おっとw

×匿名クラス(正式名称)
○匿名クラス(正式名称忘れた)
0850名無しさん@そうだ選挙に行こう2014/12/13(土) 21:00:15.27ID:jrsNMnhJ
LINQでラムダ式NGだったら化けて出るかんね
0851名無しさん@そうだ選挙に行こう2014/12/13(土) 21:10:20.51ID:D6PKj09G
delegateじゃ煩雑すぎて誰も使わなかったのを見れば
記述量こそが本質なんだよね

本来関数呼び出しとコールバックは同じ頻度で起こっていいんだけど
コールバックの方はinterfaceとinterfaceを実装するクラスに分かれて膨大な記述が必要だった
delegateまで記述量を縮めてもまだ「コレクションに対するちょっとした処理にもコールバックを使おう」という風には出来なかった
ラムダで本来必要な記述量までもってこれたのでLINQやいろんなコールバックが実用レベルに達したんだわな
0852名無しさん@そうだ選挙に行こう2014/12/13(土) 21:18:12.10ID:wHnW1l6n
>>846
コードが少なくなるのもいいが、式木が取れるのでよりタイプセーフに書けるようになる
LINQ to Entitiesとか
0853名無しさん@そうだ選挙に行こう2014/12/13(土) 21:30:04.10ID:LmsGKyNP
>>845
Lisp をやるんだ。その内半分寝てても忘れなくなる
0854名無しさん@そうだ選挙に行こう2014/12/13(土) 23:53:06.24ID:ygYpq94K
>>845
らんばだ!!!!
0855デフォルトの名無しさん2014/12/14(日) 00:06:27.94ID:WRu95xzB
2.0時代は有用で粒度の小さい高階関数がほとんどなかったから匿名メソッドを使う必然性もなかった
List<T>のも使わなくても何とかなるようなのばっかだし、イベント処理や非同期は普通のメソッドで問題がない
0856名無しさん@そうだ選挙に行こう2014/12/14(日) 12:56:41.29ID:KVR8TTmq
エクスプローラーのファイル名変更みたいなテキストボックスってどうやればいいんでしょうか
0857名無しさん@そうだ選挙に行こう2014/12/14(日) 15:19:18.13ID:JuIDwWj+
あるクラスがあってnullだった場合でもメソッドを呼ぶにはどう書けばいいですか
A.GetValue()が時々null.GetValue()になっても落ちずに値(0でいい)を返して欲しいです
0858名無しさん@そうだ選挙に行こう2014/12/14(日) 15:26:57.15ID:27JY2ZAb
禁句「拡張メソッド」
08598572014/12/14(日) 15:30:14.43ID:JuIDwWj+
拡張メソッドで出来ました
ありがとうございました
いいアイディアです
0860名無しさん@そうだ選挙に行こう2014/12/14(日) 15:50:13.68ID:AdYRt8Z2
マジですか フハハ
0861名無しさん@そうだ選挙に行こう2014/12/14(日) 16:30:34.51ID:W1cJ1DCe
>>855
テキストボックスを前面に表示してフォーカス移動で消すみたいなのでいいんじゃね?
0862名無しさん@そうだ選挙に行こう2014/12/14(日) 16:43:37.09ID:hAmdtxyb
>>856
listview edit c#
0863名無しさん@そうだ選挙に行こう2014/12/14(日) 19:11:39.34ID:ivAaTykD
>>857
C#6.0ならそのものズバリの機能があってA?.GetValue()と書くだけ
0864名無しさん@そうだ選挙に行こう2014/12/14(日) 19:24:29.97ID:uwJwvBsv
class TEST_CLASS{
//省略
}
class USECLASS{
  public TEST_CLASS[] tc1 = new TEST_CLASS[3];
}

こんな感じでメソッド外に書くことが出来ますが
これはTEST_CLASS3個分の参照テーブルを作った、
という処理なんでしょうか?
この場合、USECLASSを破棄したい場合はC++でいう deleteが tc1 についても必要なのでしょうか?
0865名無しさん@そうだ選挙に行こう2014/12/14(日) 19:29:35.67ID:PfCpzNnh
C#のGCについてお勉強しましょう
0866名無しさん@そうだ選挙に行こう2014/12/14(日) 19:31:00.67ID:8QLnjScp
いろいろひどい質問だな
まず、入門書を一冊買ってから最初のページから順に読んでいって欲しい
0867名無しさん@そうだ選挙に行こう2014/12/14(日) 19:36:10.74ID:uwJwvBsv
>>865
nullを入れればGCの対象になってそのうち消える、てのはなんとなく知ってるのですが
メソッド外なのでクラスごと消せば消えてくれるのかな?と思った次第。
C++とかのクラス内に持ったクラスが自動でデストラクトが通ってたのでそういう風な…
0868名無しさん@そうだ選挙に行こう2014/12/14(日) 19:42:00.57ID:AdYRt8Z2
原因と結果の理解が狂ってる
nullを入れるとGCの対象になるんじゃなく
あらゆるオブジェクト(ルートオブジェクトを除く)からの参照が切れるとGCの対象になるの
0869名無しさん@そうだ選挙に行こう2014/12/14(日) 19:47:23.14ID:uwJwvBsv
聞きたいことを答えてもらえる感じじゃないようなので取り下げます

ありがとうございました
0870デフォルトの名無しさん2014/12/14(日) 20:08:25.84ID:ivAaTykD
>>868が完璧な回答だよ
C++使いって変なプライドがあるから厄介だよな
クラスとインスタンスの区別も怪しいくせに
0871デフォルトの名無しさん2014/12/14(日) 20:20:12.31ID:Zdvy35Z9
質問の回答にすらなっていないものが完璧な回答とは片腹痛い

>>864
>TEST_CLASS3個分の参照テーブルを作った、
>という処理なんでしょうか?
その通り。
ただしTEST_CLASSの実体はまだ作成されていないことに注意。

>この場合、USECLASSを破棄したい場合はC++でいう deleteが tc1 についても必要なのでしょうか?
その通り。
TEST_CLASSがIDisposableを実装する場合はDisposeの呼び出しが必要。
IDisposableを実装しない場合は何もすることが無く、
ガベージコレクションに解放をまかせるだけ。
0872デフォルトの名無しさん2014/12/14(日) 20:33:16.45ID:uwJwvBsv
>>871
> その通り。
> ただしTEST_CLASSの実体はまだ作成されていないことに注意。
そういう挙動かと思い、
tc1[0]=null
・・・
tc1[4]=null
となるのを期待していたのですが tc1=nullのままでした。
クラスではなく int で試した場合は期待通り配列化していたので
参照型と値型で挙動が違うのかな?と思い調べています。

> IDisposableを実装しない場合は何もすることが無く、
> ガベージコレクションに解放をまかせるだけ。
IDisposableも調べてみます。

環境はUnity4.6+VSでやっているのでそっちの問題…てのはないですよねさすがに
ありがとうございました。
0873デフォルトの名無しさん2014/12/14(日) 20:49:17.01ID:uwJwvBsv
しつこくて申し訳ないですが続報

  public TEST_CLASS[] tc1 = new TEST_CLASS[3];
これを
  private TEST_CLASS[] tc1 = new TEST_CLASS[3];
public宣言をやめたら期待通りの挙動になりました。
理由は別途調べますが、とりあえずはprivateにしてゲッターなど利用するような
コードで実装していこうと思います。

そんで、言語仕様についての理解を深める必要が相当あるようなので
改めて勉強することにします。
ありがとうございました
0874デフォルトの名無しさん2014/12/14(日) 20:53:17.25ID:W1cJ1DCe
>>871
>TEST_CLASSがIDisposableを実装する場合はDisposeの呼び出しが必要。

原因と結果の理解が狂ってるw
DisposeしたいからIDisposableを実装するんだろ
IDisposableを実装したからってGCは何もしてくれないし

>>872
>>873
>クラスではなく int で試した場合は期待通り配列化していたので
>参照型と値型で挙動が違うのかな?と思い調べています。

何を期待したのかよく分からんが規定値で初期化されてるの
intなら0
参照型ならnull

あとpublicをprivateにしても何も変わらんよ
なにか勘違いしてるんじゃないか
0875デフォルトの名無しさん2014/12/14(日) 20:55:37.02ID:6O3kdg4C
いや、publicで試してみたが、各要素にnullが格納された配列が生成されたぞ

例えば、各要素にどういう値が入っているかループで回して確認しようとして
ぬるぽで落ちたから、で判断したんじゃないよな?
> tc1[4]=null
は存在しないぞ、念の為
0876デフォルトの名無しさん2014/12/14(日) 20:55:46.77ID:wVCO8+lc
>>874
もうほっとき
その人はちょっとまだ入門書すら買ってないレベルよ
個別でいちいち対応しても日が暮れる
0877デフォルトの名無しさん2014/12/14(日) 20:58:47.93ID:uwJwvBsv
>>874
> あとpublicをprivateにしても何も変わらんよ
そう思ってたんだけどね。
参照型の配列サイズが決まる、もしくは配列が作られて
tc1
 tc1[0] null
 tc1[1] null
 tc1[2] null
これを期待したら
tc1 null のままだったから質問をしてみた。
メソッド内に書いた場合は期待通りだから、メソッド外で挙動が違うのかな?とか
Unityはエディタのインスペクタ表示が絡むからpublicとprivateで挙動が違うのかな?とか
0878デフォルトの名無しさん2014/12/14(日) 20:59:49.38ID:WRu95xzB
>>874
Disposableパターンを実装するとそれだけでGCジェネレーションが上がるから何もしないわけではない
ファイナライザーの効果だけど
0879デフォルトの名無しさん2014/12/14(日) 21:03:37.55ID:W1cJ1DCe
酒飲んでるから付き合っちゃうぞ

まずフィールドとローカル変数を区別しよう

フィールド→規定値で初期化される
ローカル変数→自分で初期化しないと使えない

次に配列と配列の要素の初期化を区別しよう

object[] arr = new object[3]; ← arrは配列として初期化された。要素は全部null
0880デフォルトの名無しさん2014/12/14(日) 21:04:30.84ID:6O3kdg4C
確認したコードをさらしてみ
0881デフォルトの名無しさん2014/12/14(日) 21:07:19.26ID:uwJwvBsv
>>875
> ぬるぽで落ちたから、で判断したんじゃないよな?
デバッガ(VC2013+VCT)で配列に格納する前の行にブレークポイントをかけて
変数を見てるチェックしてます。
最初の書きこみのときはVCTをつかってなかったので if で判定してプリントデバッグでしました。
0882デフォルトの名無しさん2014/12/14(日) 21:08:06.90ID:WRu95xzB
まさかデシリアライザーみたいなのでpublicメンバーの値を書き換えたりしてないよね?
0883デフォルトの名無しさん2014/12/14(日) 21:09:28.04ID:qO8UXc2Q
>>881
適当に書いただけだがtc1[0] nullになるぞ
ttp://ideone.com/DWVOaf
0884デフォルトの名無しさん2014/12/14(日) 21:24:29.13ID:xrTmhpq1
(VC2013+VCT)
ってなに?
0885デフォルトの名無しさん2014/12/14(日) 21:26:21.74ID:uwJwvBsv
再現コードのつもりで書いたものが普通にちゃんと動いた。
わけわからぬ…
using UnityEngine;
using System.Collections;

public enum TEAMTYPE : int{
TEAMTYPEFRIEND=0,
TEAMTYPEENEMY
}
public PartyState class {
public TEAMTYPE Team;
}
public class AAAclas : MonoBehaviour {

public PartyState[] FriendParty= new PartyUnitState[5];
private PartyState[] EnemyParty= new PartyUnitState[5];

Start()
{
if ( FriendParty==null )
{
Debug.Log("friend null DAZE");
}
if ( EnemyParty==null )
{
Debug.Log("Enemy null DAZE");
}
}
}
0886デフォルトの名無しさん2014/12/14(日) 21:29:36.23ID:uwJwvBsv
>>884
タイプミスしちゃってて申し訳ない
VisualStudio2013pro + VisualStudioTools for unity
VS2013+VST が正しい感じの表記

ちなみにこれ
https://visualstudiogallery.msdn.microsoft.com/20b80b8c-659b-45ef-96c1-437828fe7cf2
0887デフォルトの名無しさん2014/12/14(日) 21:32:37.89ID:6O3kdg4C
>>885
それで当然の動き
再現元のコードがバグってたんじゃないの?
0888デフォルトの名無しさん2014/12/14(日) 21:33:23.63ID:Fbd/Rg6I
>>877
> > あとpublicをprivateにしても何も変わらんよ
> そう思ってたんだけどね。
> メソッド内に書いた場合は期待通りだから

何をいってんのかワケがわからない。
一応検証コード。
http://ideone.com/icyETS
0889デフォルトの名無しさん2014/12/14(日) 21:59:23.48ID:uwJwvBsv
>>887
public PartyState[] FriendParty;
Start(){
FriendParty = new PartyState[5];
}
こう書いていたものを宣言でまとめてできるっぽいぞ?int[]では出来たし、と思って
public PartyState[] FriendParty= new PartyState[5];
こう変えたらだめだった、という。

885の再現コードがさりげなくバグあり()だったりと酷い状況ですので
ここらで失礼します。
後日原因が分かったら極力簡潔なかたちで報告したいと思います。
テストコード埋め込んでたらソースがぐちゃぐちゃに・・・
0890デフォルトの名無しさん2014/12/14(日) 22:14:27.98ID:VBO4p4MJ
c#もunityも、c++だけでプログラムしてたひとでは経験・先入観からの見落しや勘違いをしやすい
焦らずじっくり勉強すべし、だわ
0891デフォルトの名無しさん2014/12/14(日) 22:22:54.99ID:OpFAx2j5
>>857 の this に null が入ってもメソッドが呼べる、てのは C++ そのものだからね‥、いろいろと違うね‥
0892デフォルトの名無しさん2014/12/14(日) 22:24:49.26ID:AdYRt8Z2
2つ目3つ目に学習する言語はこんな物だと思う
5つ6つとなると大分手慣れてくる(個人の感想です)
0893デフォルトの名無しさん2014/12/14(日) 23:53:03.99ID:4rcvUB9C
>>889
〉public PartyState[] FriendParty;
これはpublic配列として使う「宣言」だよね。
そして、
〉FriendParty = new PartyState[5];
これはコードとしての「実装動作」だよね。

〉public PartyState[] FriendParty= new PartyState[5];
これはどんな動作を期待したいのかな?
public宣言しているからFriendPartyを外から使いたいのは解る。
外から使うのに、既にオブジェクトの実装数を限定したいのかな?

privateならば、クラス内部でコンストラクタ稼働時に必要数を実装出来るから
なんとなく理解出来るけどね。
C#は難しいな〜(^_^;
0894デフォルトの名無しさん2014/12/15(月) 00:03:06.93ID:eiRiYLem
未だにID:uwJwvBsvが何がしたいのかよくわかっていない俺
0895デフォルトの名無しさん2014/12/15(月) 00:49:38.61ID:DDIABndf
C++メインな身としては一緒にされたくない逸材
0896デフォルトの名無しさん2014/12/15(月) 00:51:28.35ID:k0hijP0T
初心者はあらゆる部分に勘違いがあるから
初心者の思う原因も結果も因果も全部間違ってるのが普通だよ
0897デフォルトの名無しさん2014/12/15(月) 00:56:25.19ID:nXcrYynr
だな。初心者対応するときは最初からすべて確認しないとドツボる
0898デフォルトの名無しさん2014/12/15(月) 01:03:28.45ID:THtQWzMx
勘違いしながらも同時に

>>877
> そう思ってたんだけどね。

みたいに、妙な自説にしがみ付くのも特徴

あと、コンパイラがおかしいとか
コンパイラのバグだの
仕様がクソとか
あらぬこと言い出すケースもちらほら
コンパイラを批判する資格も
言語の仕様を批判する資格もありゃしねえのに
0899デフォルトの名無しさん2014/12/15(月) 01:54:50.91ID:AI+Ip1SR
そういうユーザーの報告が実際バグで修正されてきたC#。
0900デフォルトの名無しさん2014/12/15(月) 05:40:56.65ID:+L/AJz6N
それは一通り理解した上での話
0901デフォルトの名無しさん2014/12/15(月) 09:31:30.29ID:nAH6ZI+o
>>892
はい
0902デフォルトの名無しさん2014/12/15(月) 10:53:00.60ID:Ebr+HX3H
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
0903デフォルトの名無しさん2014/12/15(月) 11:50:27.76ID:x1tnaevV
そんなものは幻想です
ぷち殺しますよ
0904デフォルトの名無しさん2014/12/15(月) 12:29:34.48ID:Ebr+HX3H
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。


まったりいこうぜ
0905デフォルトの名無しさん2014/12/15(月) 19:35:54.09ID:aer3P+Xr
ゼロからスタートの初心者なら優しく教えられるけど思い込みでマイナスになってる他言語経験者はちょっと…
0906デフォルトの名無しさん2014/12/15(月) 21:13:05.77ID:x1tnaevV
わざと言葉を選ばずに言うと
生意気盛りのクソガキのような印象を受けるよね
0907デフォルトの名無しさん2014/12/15(月) 21:33:31.71ID:V3VIb95y
このブログのコードで、Googleドライブにアップロードしようとしてますが、
http://logicalerror.seesaa.net/article/369633781.html

認証が終わって、アップ終了した時に、「VS2010_GoogleDrive.cs」の109行で、
「リモート サーバーがエラーを返しました: (403) 使用不可能」と出ます。

ボクは一体どうすればいいですか?
0908デフォルトの名無しさん2014/12/15(月) 21:42:17.06ID:x1tnaevV
適切なURLから403が返ってきてるなら、レスポンスの中に以下の例ようなエラーメッセージがあるはず
https://developers.google.com/drive/web/handle-errors#403_the_authenticated_user_has_not_installed_the_app_with_client_id_clientid
とりあえず確認する
0909デフォルトの名無しさん2014/12/15(月) 21:55:50.03ID:V3VIb95y
>>908
ありがとうございまう!やってみまう!
0910デフォルトの名無しさん2014/12/15(月) 21:56:54.82ID:V3VIb95y
あ、「S」キーが調子悪いのでふざけたような文章になりましたことをお詫び申し上げます
0911デフォルトの名無しさん2014/12/15(月) 21:57:51.79ID:aer3P+Xr
かわいい
0912デフォルトの名無しさん2014/12/15(月) 22:01:24.28ID:x1tnaevV
BPS思い出すなあ〜
0913デフォルトの名無しさん2014/12/16(火) 01:18:05.33ID:mMLJOthS
>>910
この文章はどうやって書いたのだw
0914デフォルトの名無しさん2014/12/16(火) 02:57:11.82ID:VXsDbY/1
DataGridViewの特定の列の要素を判定して、
識別した行に色を付けたいのですが
for(int i=0;i<DataGridView.Rows.Count;i++)
こんな感じで行は取得できそうなのですが任意のセルを取得するにはどのようにアプローチすれば良いでしょうか?
0915デフォルトの名無しさん2014/12/16(火) 10:12:39.31ID:7OJw80iE
>>914
DataGridView: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/datagridview/index.html
0916w2014/12/16(火) 11:22:54.85ID:DEAjekYp
http://www.geocities.jp/skchanage/
0917デフォルトの名無しさん2014/12/16(火) 13:39:36.39ID:B2iD7zcI
DataRowのインデクサで取れないっけ
0918デフォルトの名無しさん2014/12/16(火) 14:14:51.14ID:L8rGXtu9
もしかして行はRowだけど列がColumnって知らないとか?
0919デフォルトの名無しさん2014/12/17(水) 11:52:58.68ID:goobBjj8
ちわ、お世話になります。毎度くだらないですが・・・
VC#2010/.NET4CPです。どっちかというと.NET方面かもしれませんがどぞ許して。

Form1にPanel1が配置されています。Panel1のサイズはコードが変化させますが、
そのとき、Form1の表示の大きさをぴったりあわせるにはどのようにすれば良いかをいう質問です。

ビジュアライザをいじっていると、Panel1.Sizeが(sx,sy)のときForm1.Sizeを(sx+8,sy+8)に
するとぴったりはまるのですが・・・。本来なら、どのようにすべきでしょうか。
もっとよいアプローチがあればそちらでも。
よろしくおねがいします m(_ _)m
0920デフォルトの名無しさん2014/12/17(水) 11:58:12.56ID:Ic6k31WW
ぴったりはまるサイズが分かってるならあとは
Panelのサイズ変えるときにFormのサイズも変えるだけじゃないの
0921デフォルトの名無しさん2014/12/17(水) 11:59:57.33ID:goobBjj8
(>>919) TYPO訂正です。誤:(sx+8,sy+8) 正:(sx+8,sy+34)
0922デフォルトの名無しさん2014/12/17(水) 12:09:16.51ID:sj8BlXCC
Panel1.Dock = DockStyle.Fill;
0923デフォルトの名無しさん2014/12/17(水) 12:15:40.28ID:goobBjj8
>>920 ども m(_ _)m ありがとう。
ぴったりはまるサイズがわかっているのはVisualStudioのデザイナ上の話なんです^^;。
差分(+8,+34)は、枠やタイトルの太さなどWindowsデザインに依存していそうですので、
環境に依存してずれが生じそうです。

今、考えているアプローチは、Form1.FormBorderStyleをnoneにした後、Form1.Sizeを
指定し、Form1.FormBorderStyleを元に戻す事をしてます。もっと単純に出来たらいいなと
思っています。
0924デフォルトの名無しさん2014/12/17(水) 12:27:35.32ID:Ic6k31WW
Form.Sizeの代わりにForm.ClientSize使えば
0925デフォルトの名無しさん2014/12/17(水) 12:29:45.87ID:goobBjj8
>>922 ども m(_ _)m ありがとう。 説明下手で申し訳ない。

Panel1をForm1にドックするとForm1のサイズに合わせてPanel1のサイズが変化してしまいます。
Panel1のサイズに合わせてForm1のサイズを変化させたいのです。
(間違ってたら指摘おねがいしますm(_ _)m)
0926デフォルトの名無しさん2014/12/17(水) 12:39:32.98ID:goobBjj8
>>924
やっぱあった。ありがとう!コーヒーおごりたい気分です。
いいねボタン押しと来ました(心のなかで)。
0927デフォルトの名無しさん2014/12/17(水) 13:17:59.86ID:Q38dn9K3
何だろうこの文章から漂ってくるウザさw
0928デフォルトの名無しさん2014/12/17(水) 19:12:37.87ID:5ocdt4/c
読書と映画をこよなく愛してそう
0929デフォルトの名無しさん2014/12/17(水) 19:21:44.58ID:YvBpGqSu
(_ _)とか書かれると(_ => _)に見間違える
0930デフォルトの名無しさん2014/12/17(水) 19:23:17.14ID:GxR8d4Z7
LINQ星人乙
0931デフォルトの名無しさん2014/12/17(水) 22:55:25.63ID:+fEq78kP
まうまうー
0932デフォルトの名無しさん2014/12/18(木) 00:05:16.53ID:XtM22rPl
しかしまにあわなかった!(予算が)
0933デフォルトの名無しさん2014/12/19(金) 16:48:28.34ID:6AGjM5WU
if(x>=x+1)
if(x=>x+1)
0934デフォルトの名無しさん2014/12/19(金) 16:54:59.55ID:dYfy0i7q
>>933
コンパイルエラーで良かった
0935デフォルトの名無しさん2014/12/19(金) 17:25:09.68ID:kja8cZws
ラムダ式はデリゲート型ではないため
0936デフォルトの名無しさん2014/12/20(土) 17:48:39.50ID:dGYeLiS2
#region ソースエディタの質問

エラーが出た時、コードエディタの#region 〜 #endregionで囲んだブロックが全部勝手に展開される・・・
これ設定で変更できます?
0937デフォルトの名無しさん2014/12/20(土) 18:40:53.28ID:EeqnIlDr
スレチ
0938デフォルトの名無しさん2014/12/20(土) 18:46:44.76ID:D1/kAlGg
展開されないと困るだろ
0939デフォルトの名無しさん2014/12/20(土) 18:48:42.34ID:dGYeLiS2
>>938
関係ないブロックも開かれるんですよ・・・
0940デフォルトの名無しさん2014/12/20(土) 19:07:27.23ID:z0Uvrlhl
桁をそろえて空白で埋めたいんだが(小数点を揃えたい)
WriteLine("{0,8:#.###}", 12.345); // 12.345 => 12.345
WriteLine("{0,8:#.###}", 12.34); // 12.34 => 12.34
WriteLine("{0,8:#.###}", 12.3); // 12.3 => 12.3

これならいけるけど、カッコワルイし後ろの空白が
WriteLine("{0,4:####}{1:.###}", 12.34, 0.34);
どうにかなりませぬか
0941デフォルトの名無しさん2014/12/20(土) 20:14:16.19ID:dGYeLiS2
#endregion
0942デフォルトの名無しさん2014/12/20(土) 20:15:57.08ID:78QsKz05
展開されて困る程の糞長いコードを1つのファイルに書いているのがそもそも間違いじゃね?
0943デフォルトの名無しさん2014/12/20(土) 20:27:51.58ID:mAbPDdUl
まずはできるかできないかを答えろよ
説教するために生まれてきたのかお前
0944デフォルトの名無しさん2014/12/20(土) 20:32:42.86ID:X3IvCxu9
>>940
試してないが、例えば
WriteLine("{0,3:0}{0:.#####}", 12.345);
とかでいけるのでは?
0945デフォルトの名無しさん2014/12/20(土) 20:35:10.11ID:X3IvCxu9
>>936
そんな設定みたことないから出来んのじゃないの?

っていうか、くだらないことを気にするよりキーボードショートカット使って
とっとと閉じることを覚えた方が生産的。
0946デフォルトの名無しさん2014/12/20(土) 20:44:59.23ID:acQ5HpBR
>>943
それ以外に世間で生きる意味無いだろ
0947デフォルトの名無しさん2014/12/20(土) 21:59:54.71ID:dGYeLiS2
>>942
なるほど、それはあるわ
>>945
一応Ctrl+MLMLで閉じてんだけどなんかもう忘れるわありがとう
0948デフォルトの名無しさん2014/12/20(土) 23:28:02.33ID:sewmLJl3
ちょっとずれた話になるかもですが、設定値の保存とかについて、
レジストリとINIファイル(などのファイル保存)、どちらを利用していますか?
「レジストリが壊れるから」というのもそろそろ今は昔という気もするのですが、
長年iniで(VC++でだけど)やって来てたので、C#での最近の事情が知りたいです
0949デフォルトの名無しさん2014/12/21(日) 00:04:26.14ID:LfG/evkY
権限でトラぶる
コピーできる
ユーザーが見られる&弄れる

って点でファイルかなあ
XMLだとめんどいけど
key=Value形式だとパーザー作るのもも簡単だし

こんどのVIsualStudioはプロジェクトファイルJSONなんだっけ
0950デフォルトの名無しさん2014/12/21(日) 07:32:48.36ID:vbD8hcbj
XElementとLINQ to XMLでめちゃくちゃ使いやすくなったでしょう
フラットな設定値がずらーっとあるならiniでもいいけど
ツリー状とかオブジェクトのコレクションをシリアライズするならXMLだよね?

俺はレジストリに保存するけど
0951デフォルトの名無しさん2014/12/21(日) 08:35:29.54ID:giCb3w8x
user.configか自作XAML
0952デフォルトの名無しさん2014/12/21(日) 09:44:43.05ID:DX6UP5Bm
全部SQLiteに突っ込む
0953デフォルトの名無しさん2014/12/21(日) 10:04:10.42ID:7WbNxZ9e
テキストエディタで値を変えたい時があるんで、
ini か、jsonだな
0954デフォルトの名無しさん2014/12/21(日) 19:02:24.82ID:R4RxZxju
YAMLの事もたまには思い出してやって下さい(><)
0955デフォルトの名無しさん2014/12/22(月) 02:59:39.15ID:BbVtRe2C
JSONも手書きを続けてると人間が書くもんじゃねーな感がしてくる
「再発見者」とやらが何を考えてあそこまでstrictにしたのかよく分からん
ちなみにコメントが存在しない理由は、Google+で言い訳してる奴が言うには
コメントにメタデータ持たせて相互運用性を破壊している連中が気に食わなかったからだと
嫌がらせが趣味とは大層な奴だ。こいつはGoodじゃねえ、Evilだな

YAMLは記述こそ悪くないけど
Date型とか固有型入れられる所とか欲張りすぎだと思う
おかげで仕様がチンプンカンプン
0956デフォルトの名無しさん2014/12/22(月) 05:02:57.66ID:+auGIeie
ここはいつから恥ずかしい日記帳スレになったのか。
0957デフォルトの名無しさん2014/12/22(月) 06:15:32.18ID:QqQAUNoi
>>956
そういう恥ずかしいレスはちゅいったーにでも書け
0958デフォルトの名無しさん2014/12/22(月) 08:17:14.98ID:JbUWZTgk
YAML使うくらいならLuaでも組み込むわ
0959デフォルトの名無しさん2014/12/23(火) 16:23:52.87ID:W51mY81m
ふらっとスレと相談室スレの違いはなんですか?
0960デフォルトの名無しさん2014/12/23(火) 16:54:18.49ID:JQ5oTczV
こっちは元々くだすれだったような
住人は同じ
0961デフォルトの名無しさん2014/12/23(火) 17:53:13.07ID:eMNIdGcp
ここは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です

あっちは
!(「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」)です
0962デフォルトの名無しさん2014/12/23(火) 18:33:00.68ID:7elv4dse
>>961
!見落としてて一瞬何のことか判らなかった
0963デフォルトの名無しさん2014/12/23(火) 18:52:14.55ID:egk/n0nz
♮>>961
論理関係がおかしいからコンパイルエラー
0964デフォルトの名無しさん2014/12/24(水) 00:20:46.29ID:W6S7LdHP
2014年.Dispose();
0965デフォルトの名無しさん2014/12/24(水) 09:25:26.46ID:IlBhBVXC
破棄されたオブジェクトにアクセスできません。
0966デフォルトの名無しさん2014/12/24(水) 09:45:28.87ID:o7RXIr7q
まだ終わってないだろ!
冗談もいい加減にしろ
0967デフォルトの名無しさん2014/12/24(水) 10:30:32.90ID:cFNtodJD
System.GC.Collect(お前の人生);
0968デフォルトの名無しさん2014/12/24(水) 15:11:14.37ID:kybKN1U1
NullException
0969デフォルトの名無しさん2014/12/24(水) 15:37:29.27ID:ovcwIXh2
>>967
ローンクラスのインスタンスが参照を掴んでるため、解放できません
0970デフォルトの名無しさん2014/12/24(水) 17:02:58.68ID:o7RXIr7q
技術的負債も返せないんじゃあ〜
徳政令カードくれ〜
0971デフォルトの名無しさん2014/12/24(水) 18:16:21.64ID:yD2cHbRY
Here is not 雑談スレ
0972デフォルトの名無しさん2014/12/24(水) 20:41:11.47ID:B3z8hPRX
>>971
恥ずかしい直訳英語だなw
0973デフォルトの名無しさん2014/12/24(水) 21:11:00.66ID:Of30kaEh
じゃあ恥ずかしくない英語で言ってみろよ
0974デフォルトの名無しさん2014/12/24(水) 21:14:30.59ID:MCikQ0Ol
Here isだとスレの中に何かがあるって感じだし否定するならnotじゃなくてno
主語はThisでいいんじゃないの
0975デフォルトの名無しさん2014/12/24(水) 21:24:16.41ID:kybKN1U1
Here we are!
0976デフォルトの名無しさん2014/12/24(水) 21:24:54.66ID:skTfK3cK
>>974の監修により
This is no Zatsu-talk thread.
となりました。
0977デフォルトの名無しさん2014/12/24(水) 21:34:21.51ID:MCikQ0Ol
酷い
0978デフォルトの名無しさん2014/12/25(木) 00:58:23.45ID:iKaNeT60
英検二級の俺の出番か

this forum is not like that people say what kidding the wrong way
0979デフォルトの名無しさん2014/12/25(木) 01:32:12.52ID:OuqylsES
英検四級の俺が採点してやる
大文字で始まってない。ピリオドで終わってない。0点
0980デフォルトの名無しさん2014/12/25(木) 02:24:49.09ID:EL6gBj3v
電検3級の俺が採点してやる、say の従属節の動詞は何?
0981デフォルトの名無しさん2014/12/25(木) 05:27:11.75ID:/+ifpSdH
あ
0982デフォルトの名無しさん2014/12/25(木) 05:27:30.96ID:iwW5OkLk
way
0983デフォルトの名無しさん2014/12/25(木) 05:42:44.31ID:aK/woPpc
hey say jump
0984デフォルトの名無しさん2014/12/25(木) 09:10:59.56ID:KQ7q0pC/
Yes, fuck me
0985デフォルトの名無しさん2014/12/25(木) 11:21:29.49ID:o1TfFGjI
Kuraudo
0986デフォルトの名無しさん2014/12/25(木) 11:37:12.67ID:ehEYD0mx
雑談スレでやれ
0987デフォルトの名無しさん2014/12/25(木) 12:11:31.65ID:/ZgBys0i
ある数を超えない数まで繰り返し加算するのはどうやればいいんでしょうか

int m = 0;
ave = ある平均値;

for(int i = 0; m < ave; i++)
{

}
これだと動作しません

while(m < ave)
{

}
これだとaveを超えてしまいます

if(m > ave)
{

}
超えたあとに減算しても上手く行きません

何かすごく初歩的なことかもしれませんがよろしくお願いします。
0988デフォルトの名無しさん2014/12/25(木) 12:23:44.49ID:592UL+bA
int m = 0, n = 0;
while (n < ave) {
&nbsp; m = n;
&nbsp; n += ...;
}
0989デフォルトの名無しさん2014/12/25(木) 12:35:22.10ID:TqK/oue3
while(m + d < ave) { m +=d;}
0990デフォルトの名無しさん2014/12/25(木) 13:04:24.14ID:/ZgBys0i
>>988-989
何とか上手く行ったようです。どうもありがとうございました。
0991デフォルトの名無しさん2014/12/25(木) 13:42:27.12ID:Awif54Rz
>>987

int m = 0;
ave = ある平均値;

for(int i = 0; m < ave; i++)
{

}
これだと動作しません

for(int i = 0; i< ave; i++)
条件のmが変化しないんだから当たり前だろw
iをmに変えればよろし
0992デフォルトの名無しさん2014/12/25(木) 16:44:35.42ID:/ZgBys0i
>>991
処理はiを加算するとmも増えるようにしてあります。
中身を書いておらず申し訳ありませんでした。
0993デフォルトの名無しさん2014/12/25(木) 17:42:05.22ID:o1TfFGjI
m=i;
ってあったとしても、こんな変態条件は普通書かない
0994デフォルトの名無しさん2014/12/25(木) 17:50:44.45ID:XUvirAC8
mを加算する場所の問題だと思うけどソースが判らないので何とも言えない
0995デフォルトの名無しさん2014/12/25(木) 18:43:24.64ID:uh58Cp5Z
仮に ループの中で m+=nを実行と仮定すると
while((m+n)<ave) とするのが正解ですね

ループの中でnを計算するなら
while(true)
{
n=func();
0996デフォルトの名無しさん2014/12/25(木) 18:45:27.36ID:uh58Cp5Z
おっと送っちゃった 続き
  if((m+n)>=ave) break;
  m+=n;
}

でどうだ
0997デフォルトの名無しさん2014/12/25(木) 19:23:27.85ID:GrWyoqbb
なんで解決済みの問題をgdgdやってんの?
目新しさもないし
0998デフォルトの名無しさん2014/12/25(木) 19:28:16.66ID:KQ7q0pC/
自分では絶対に書かないコードなので
頭の体操にはなるな
0999デフォルトの名無しさん2014/12/25(木) 19:43:42.75ID:+nUsgBTn
うめ
1000デフォルトの名無しさん2014/12/25(木) 19:46:05.93ID:+nUsgBTn
千
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。