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

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

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

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

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

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

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

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

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

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん2014/07/08(火) 05:13:27.14ID:PHoFICaa
>>1乙
0003デフォルトの名無しさん2014/07/09(水) 01:23:10.71ID:uovn3Ve0
pictureboxとかがWindowsのDPI設定の影響でサイズが変わってしまうのですが、
簡単に影響を受けないようにする方法ってあります?
0004デフォルトの名無しさん2014/07/09(水) 03:13:28.65ID:9XvDoF3c
それは変わるのが正解なのでは
0005デフォルトの名無しさん2014/07/09(水) 09:03:06.26ID:/8Zca8DM
アルファチャンネル付きBMPを生成してファイルに保存したいのですが
どのようにすればいいでしょうか?
0006デフォルトの名無しさん2014/07/09(水) 09:17:07.72ID:dUInrtoG
アルファチャネル付きの画像をbmpとして保存したいのか
アルファチャネル付きの画像をなんか適当な形式で保存したいのか
前者はbmp形式にアルファの定義がないから基本無理
後者なら何が分からないのか分からん
0007デフォルトの名無しさん2014/07/09(水) 09:34:19.10ID:/8Zca8DM
アルファチャネル付きのBMPファイルって無いのですね。
失礼しました。
0008デフォルトの名無しさん2014/07/09(水) 09:52:59.55ID:ysQEDzEU
え?
0009デフォルトの名無しさん2014/07/09(水) 10:41:31.32ID:QQm9iNty
一般的なアプリが対応してるかはおいといて

Bitmap bmp = new Bitmap( 32, 32 );
using( var g = Graphics.FromImage( bmp ) )
{
 g.FillRectangle( Brushes.Red, new Rectangle( 0, 0, 16, 16 ) );
}
bmp.Save( @"C:\Users\ホゲ\Desktop\test.bmp", ImageFormat.Bmp );

これで一応32bitBMPとして保存されたっぽい
ただしエクスプローラのプレビューやペイントだと透明部分が黒に見えるが
GIMPだとアルファチャネルが存在してる
0010デフォルトの名無しさん2014/07/09(水) 10:50:41.27ID:QQm9iNty
訂正

Bitmap bmp = new Bitmap( 32, 32 );
using( var g = Graphics.FromImage( bmp ) )
{
 using( var sb = new SolidBrush( Color.FromArgb( 128, Color.Red ) ) )
 {
  g.FillRectangle( sb, new Rectangle( 0, 0, 16, 16 ) );
 }
}
bmp.Save( @"C:\Users\ハゲ\Desktop\test.bmp", ImageFormat.Bmp );
0011デフォルトの名無しさん2014/07/09(水) 10:55:10.08ID:dUInrtoG
ベンダ拡張だからね
GDI+(System.Drawing.Bitmap)でもWIC(System.Windows.Media.Imaging.BmpBitmapDecoder)でも
ロード時にアルファは無視される
new Bitmap("test.bmp")してPixelFormat確認すると32bppRgb(!32bppArgb)になる
0012デフォルトの名無しさん2014/07/09(水) 11:20:34.21ID:QQm9iNty
すると保存はできてもファイルからBitmapオブジェクトを復元はできないわけか
>>5の使い道はなんなんだろ

pngではだめなんだろうか
0013デフォルトの名無しさん2014/07/09(水) 11:29:59.93ID:/8Zca8DM
pngでもいいかもしれません。
0014デフォルトの名無しさん2014/07/09(水) 12:16:10.06ID:6Q5lDVVy
PixelFormat.Format32bppArgb とかあるし、保存だけなら出来る
あとは表示させるソフト次第
0015デフォルトの名無しさん2014/07/09(水) 12:37:42.56ID:ysQEDzEU
読み込みも出来る
http://www.ipentec.com/document/document.aspx?page=csharp-32bit-argb-bitmap-load

pngでもいいかもって言ってるってことはそもそもの目的が
アルファチャネル付きのBMPではない?
0016デフォルトの名無しさん2014/07/09(水) 15:05:29.33ID:/8Zca8DM
よく考えると保存する必要がありませんでした
0017デフォルトの名無しさん2014/07/09(水) 15:15:27.65ID:6Q5lDVVy
ヽ(・ω・)/ズコー
0018デフォルトの名無しさん2014/07/09(水) 20:29:21.22ID:sGyAOB2p
C#はフラットじゃなくてシャープなんですが…
0019デフォルトの名無しさん2014/07/09(水) 22:50:53.10ID:gcrBKwnE
class A
┗class B
class C

とあってclass A内で
var data = new class B();
としてclass Bのインスタンスを作り、
class C内で
var data = new classC();
として自身のインスタンス生成したとして、class Cのdataに
class Bのインスタンスをどうにかして入れる事はできますか?
0020デフォルトの名無しさん2014/07/09(水) 22:53:38.34ID:fe1OzD4f
全く意味が分からん
0021デフォルトの名無しさん2014/07/09(水) 23:12:03.71ID:gcrBKwnE
すみません、いくつかのクラスをシリアライズして保存したいんです
主にclass Cのインナークラスを保存したいので
var data = new classC();
↓
filestream(ファイル開く)
↓
BinaryFormatterでSerialize(filestream, data);

という風にしているのですが、他クラスのインナークラスのいくつかも
保存したいんですが、何かいい方法はありますか?
0022デフォルトの名無しさん2014/07/09(水) 23:30:21.37ID:wWXEN3tU
var使う人には教えません。
0023デフォルトの名無しさん2014/07/10(木) 00:23:33.81ID:9Pt+y14M
var 使ったらいかんのか!
0024デフォルトの名無しさん2014/07/10(木) 00:36:31.66ID:fPVmWtXg
いかんでしょ
0025デフォルトの名無しさん2014/07/10(木) 00:55:15.57ID:cLGdXR9n
ちなみに、なぜ使ってはいけないのか教えて下さい
0026デフォルトの名無しさん2014/07/10(木) 03:35:57.19ID:b3bChvC0
http://www.youtube.com/watch?v=k985x7CMiNA#t=130
var〜
0027デフォルトの名無しさん2014/07/10(木) 04:53:32.87ID:4Q/eQNS1
たしかにvarのやりとりはトムとジェリーのようでもある
0028デフォルトの名無しさん2014/07/10(木) 06:36:28.62ID:RC8foVCr
classBをinternalにして
classD { classC c; classB b; }
をシリアライズすればいいとかそんなん?
0029デフォルトの名無しさん2014/07/10(木) 11:48:10.69ID:pH5M7v7R
VS使ってるなら積極的にvar使え
0030デフォルトの名無しさん2014/07/10(木) 11:57:38.46ID:Y03yL7vi
えっ?
0031デフォルトの名無しさん2014/07/13(日) 01:48:23.12ID:f9bs6J9O
dataGridViewの使い方について教えてください。

private System.Windows.Forms.BindingSource bindList= new System.Windows.Forms.BindingSource();
dataGridView.DataSource = list;
bindList.DataSource = list;

button_click(){
list.RemoveAt(i);
}

このようなコードを書いたのですが、
リストを消した後にgridViewを移動すると、
インデックスエラーが発生します。

BindingSourceに対して変更を行うのは容易ですが、
list自体を変更するとgridviewも更新されるようにしたいです。
どうようなことをすればいいのでしょう?
0032デフォルトの名無しさん2014/07/13(日) 01:56:11.63ID:8folUtN/
>>31
消した後にもう一回
dataGridView.DataSource = list;
でバインド
0033デフォルトの名無しさん2014/07/13(日) 02:24:33.55ID:f9bs6J9O
ありがとうございます。
その操作を勝手にしてくれるようなプロパティとかはないのでしょうか?
0034デフォルトの名無しさん2014/07/13(日) 02:43:42.39ID:8folUtN/
>>33
わしは知らんなあ
見た目に拘るならデータソースじゃなくて
DataGridViewの物理行を削除しなされ
0035デフォルトの名無しさん2014/07/13(日) 04:29:59.05ID:f9bs6J9O
デバッグ目的の補助ツールなので何箇所も設定しないといけないようなコードにはしたくないんですよね。
BindingSourceに操作を行えば自動更新できるので、
それを暫定的な対応として、ベストプラクティスを探してみたいと思います。
0036デフォルトの名無しさん2014/07/13(日) 07:21:45.16ID:NeP+9it7
そもそもlistの実体は何?
listが変更をBindingSourceに伝えられなけりゃ実現できるわけがないが
具体的にはIBindingListとかそういうのが必要
0037デフォルトの名無しさん2014/07/13(日) 11:13:54.11ID:f9bs6J9O
実態はList<customClass>です

Listを継承して、IBindingListを実装すれば実現できるのですかね?
長期的に役に立ちそうなのは作っていきたいと思いますが
0038デフォルトの名無しさん2014/07/13(日) 12:32:36.84ID:NeP+9it7
BindingList<T>を使えば取りあえず最低限の実装(追加削除の変更通知)は使える
(もちろんリストへの追加削除はBindingListに対して行う)
その場合はこういう関係になるな
DataGridView<-BindingSource<-BindingList<-List
ListをIList<T>として扱ってればさりげなくBindingListに実体置き換えても影響が出ない
0039デフォルトの名無しさん2014/07/13(日) 18:38:32.58ID:f9bs6J9O
なるほど。
BindingListについて研究したいと思います!
0040デフォルトの名無しさん2014/07/14(月) 00:06:41.50ID:Xwe8tCu/
プロパティから自動設定されたDataGridView、または実態のリストに対して
sqlを実行する方法はありますか?
0041デフォルトの名無しさん2014/07/14(月) 06:04:06.89ID:x82lWHK8
そういうプロパイダ書けばできるよ!
ていうのはともかく、LINQ to Objectsで妥協できんか
0042デフォルトの名無しさん2014/07/14(月) 15:24:12.63ID:DvBldTQU
XmlSerializerでxml読み込むと、文字列の中の\r\nが勝手に\nに置き換わって
しまうようなのですが、防止する方法ありますか?
0043デフォルトの名無しさん2014/07/14(月) 15:30:26.16ID:Q4WHJ1SO
>>42
XMLの改行コードは\nなので仕様です。
0044デフォルトの名無しさん2014/07/14(月) 15:45:26.79ID:DvBldTQU
>>43
ゲゲ、本当ですか。
困った困ったこまどり姉妹
0045デフォルトの名無しさん2014/07/14(月) 21:28:47.72ID:Xwe8tCu/
>>41
LINQ to Objects?
なんぞこれ、素晴らしすぎんだろぉぉぉぉ!

プロパティも日本語で命名して、一発で完成ですわ。
0046デフォルトの名無しさん2014/07/15(火) 00:20:05.16ID:9hne90ms
>>42
試してないけど、これじゃいかんのか?
http://www1.atwiki.jp/www1/pages/65.html

もしくは、エンティティ使う
http://stackoverflow.com/questions/2265966/xml-carriage-return-encoding
0047デフォルトの名無しさん2014/07/15(火) 04:58:28.65ID:2C1Abc6L
>>46
おお、良い情報ありがとうございました。試してみます。

もう一つ質問なんですが、
FormにTextBoxを隣接して三つ横に並べて
[      ][        ][    ]
Formの幅を広げた時に、三つのTextBoxも、隣接状態を保ったまま
[        ][          ][      ]
それに比例して伸びるようにしたいのですが、アンカー設定だけでできますか?
それとも何か別の方法が必要ですか?
0048デフォルトの名無しさん2014/07/15(火) 12:34:48.10ID:m0dHXqeo
>>47
TableLayoutPanelを使う。
0049デフォルトの名無しさん2014/07/15(火) 13:25:36.26ID:2C1Abc6L
>>48
情報ありがとうございます。
さっそくTableLayoutPanel試してみたのですが、どうやっても左端のTextBoxだけが
拡大縮小して他のTextBoxは幅が変わりません。何か設定のコツありますか?
0050デフォルトの名無しさん2014/07/15(火) 13:39:37.62ID:j3zFGvRv
>>49
ちょっと触ってみたけど、列と行の設定でパーセント指定したらいいんじゃないかな?
0051デフォルトの名無しさん2014/07/15(火) 13:40:53.54ID:NqAQeGoH
Columnsプロパティで各列%で設定する
0052デフォルトの名無しさん2014/07/15(火) 14:36:21.23ID:2C1Abc6L
>>50,51
ありがとうございます。
そんなプロパティがあるのは知らなかったです。
できました。
0053デフォルトの名無しさん2014/07/15(火) 14:38:29.82ID:lIGhna3c
横だけども、パーセント指定しても勝手に変わるから使ってないなー
どっかにAutoSizeとかのプロパティでもあるん?
0054デフォルトの名無しさん2014/07/15(火) 16:13:06.15ID:NqAQeGoH
私があんまり使ってないから分からないだけかもしれんが

> パーセント指定しても勝手に変わる
何がどう変わるの?

> どっかにAutoSizeとかのプロパティでも
どういう動作からどういう動作になることを期待してるの?
0055デフォルトの名無しさん2014/07/15(火) 18:48:08.83ID:1WDzCzu7
interface ISampleInterface
{
 void SampleMethod();
}

public class Name : ISampleInterface {

 void ISampleInterface.SampleMethod()
 {
  // メソッド
 }

 ISampleInterface obj = new Name();

 obj.SampleMethod(); ←なんでここでエラー出るんですか?
0056デフォルトの名無しさん2014/07/15(火) 18:52:42.44ID:NqAQeGoH
でないけど
0057デフォルトの名無しさん2014/07/15(火) 21:30:25.35ID:zqJ3eiiK
クラスに直接書いたらエラーになるに決まってる
0058デフォルトの名無しさん2014/07/15(火) 21:48:39.37ID:ieC5KU93
}がないからじゃね
0059デフォルトの名無しさん2014/07/15(火) 22:04:23.55ID:1WDzCzu7
>>57
そうなんですか?
よく理解できていない・・・
0060デフォルトの名無しさん2014/07/15(火) 22:46:39.28ID:Ngk0Hx9g
SampleMethodがパブリックじゃねーな
0061デフォルトの名無しさん2014/07/15(火) 23:06:26.64ID:PdngeYug
クラスの中にかけるのはメンバー変数とかメンバーメソッドみたいなものの定義だけ。クラス内にかけるものは全て、その単位ごとに並び替えても正しい設計になる。メソッドなら、メソッドのスコープが一つの単位ね。

ISampleInterface obj = new Name();
はメンバー変数の定義だから大丈夫だけど、

obj.SampleMethod();
は行を入れ替えたら実行順序が変わってしまう。だから、クラスに直では書けない。
0062デフォルトの名無しさん2014/07/15(火) 23:06:43.65ID:0r8KqbfZ
>>60
明示的なインターフェイスの実装
0063デフォルトの名無しさん2014/07/15(火) 23:18:49.46ID:1WDzCzu7
>>61
ありがとうございます。

>クラス内にかけるものは全て、その単位ごとに並び替えても正しい設計になる。
>メソッドなら、メソッドのスコープが一つの単位ね。
ここがちょっとよく分からないですが、調べてみます
0064デフォルトの名無しさん2014/07/15(火) 23:20:29.55ID:8gxfvMcm
staticフィールドは上から順に初期化されるから間違い
0065デフォルトの名無しさん2014/07/16(水) 23:19:13.49ID:rm2vz3cR
string や intってオーバーライドできますか??
0066デフォルトの名無しさん2014/07/16(水) 23:25:50.14ID:gY6XKdVm
mscorlib使わずにビルドしたら上書きできるかもね
0067デフォルトの名無しさん2014/07/17(木) 00:25:20.53ID:BzDRQrTd
インターフェイスに出来なくてクラスに出来る事を教えて下さい
0068デフォルトの名無しさん2014/07/17(木) 01:20:21.65ID:lSZpZqQ0
実装書ける
0069デフォルトの名無しさん2014/07/17(木) 01:21:36.66ID:lxr4vzM0
abstract
0070デフォルトの名無しさん2014/07/17(木) 02:45:34.42ID:2ovuHeul
コンストラクタにabstractつけたら無理って怒られちゃったんですけど、
どうやって抽象化するのでしょうか?
0071デフォルトの名無しさん2014/07/17(木) 03:10:54.91ID:lxr4vzM0
コンストラクタじゃなくクラスにつけれ

abstract class Class1
{
  public Class1()
  {
    // ・・・
  }
}

class Class2 : Class1
{
  public Class2() : base()
  {
    // ・・・
  }
}
0072デフォルトの名無しさん2014/07/17(木) 08:19:28.54ID:7o7dkerS
仮想コンストラクタとかでぐぐってみたら
0073デフォルトの名無しさん2014/07/17(木) 13:15:41.03ID:s17utiS1
wpfでSliderをアニメーションさせたら、アニメ終了後に手でスライダーが動きません
どうやればいいのか教えてもらえませんか

アニメはxamlじゃなくてコードで書いています
0074デフォルトの名無しさん2014/07/17(木) 13:18:28.86ID:9wZzgWXp
アニメの終了イベントでアニメーションをクリアする
具体的に教えろと言うなら今のコードをまず書いてね
0075デフォルトの名無しさん2014/07/17(木) 13:28:34.26ID:s17utiS1
>>74
こんな感じです。よろしくお願いします

DoubleAnimation CreateAnimation(Slider target,float newValue)
{
   var anime = new DoubleAnimation()
     {
       Duration = TimeSpan.FromSeconds(0.5),
       To = newValue
     };
   Storyboard.SetTarget(anime, target);
   Storyboard.SetTargetProperty(anime, new PropertyPath(Slider.ValueProperty));
   return anime;

}

本体
     Storyboard sb = new Storyboard();
     var ani32 = CreateAnimation(Slider32, item.Gain32);
     sb.Children.Add(ani32);
    sb.Completed += (s, ex) => Dispatcher.BeginInvoke(new Action(() =>
     {
       IsBusy = false;
     }));
     sb.Begin();
0076デフォルトの名無しさん2014/07/17(木) 13:41:38.53ID:9wZzgWXp
ttp://msdn.microsoft.com/ja-jp/library/aa970493.aspx
sb.Completedで、
Storyboard.Remove(target)とか
target.BeginAnimation(Slider.ValueProperty, null)とか
あと同時にアニメーション後の値をプロパティに設定する

参考:依存関係プロパティ値の優先順位
ttp://msdn.microsoft.com/ja-jp/library/ms743230.aspx
0077デフォルトの名無しさん2014/07/17(木) 14:05:46.06ID:s17utiS1
>>76
target.BeginAnimation(Slider.ValueProperty, null)でうまくいきました。
ありがとうございました
0078デフォルトの名無しさん2014/07/17(木) 18:55:27.72ID:6G5bJay8
System.Windows.Forms.TextBox;
System.Windows.Controls.TextBox
は何が違うんですか?
どうして同じようなものが二つあるんですか?
0079デフォルトの名無しさん2014/07/17(木) 19:05:22.76ID:9wZzgWXp
WinForm用とWPF用
前者がWindows標準のウィンドウライブラリ使ったもの
後者はレガシーに引きずられてると自由度とか低いから全面的に新しく作ろうぜってことで作られたもの
0080デフォルトの名無しさん2014/07/17(木) 20:21:24.02ID:6G5bJay8
>>79
解説ありがとうございます。
0081デフォルトの名無しさん2014/07/17(木) 22:18:00.17ID:6m/ARb1L
ASP.NETのヘルプを頼まれたんだけど
Formのメッセージボックスを使ってて
しかもそれが表示されてるのにびびった
.NETすげえ。いやIEがすごいのか
0082デフォルトの名無しさん2014/07/17(木) 22:23:24.73ID:3NPE8Kwe
それWebサーバー上でメッセージボックスが出てるだけじゃ…
0083デフォルトの名無しさん2014/07/17(木) 23:06:11.56ID:CmAi6+Pr
object要素使って.NETライブラリをクライアント側で実行するってのは一応ある
今も残ってるのかどうかはしらんが
0084デフォルトの名無しさん2014/07/18(金) 13:34:08.39ID:H4/dInHH
>>81
ちょっとサンプルコード晒してみてくれないか
0085デフォルトの名無しさん2014/07/19(土) 06:47:16.20ID:AaS1tAmI
俺も知らなかったから調べてみた
実用的かどうかしらんが、こういうことができるようだ

[Hosting .NET Windows Forms Controls in IE]
ttp://www.codeguru.com/csharp/.net/net_general/internet/article.php/c19639/Hosting-NET-Windows-Forms-Controls-in-IE.htm
0086デフォルトの名無しさん2014/07/19(土) 23:16:34.41ID:0o8EVBYO
>>85
ASP.NET関係なさそうだな
IE6の時代なら意味有ったのかもしれんけど、今時使うべきじゃなさそうね
0087デフォルトの名無しさん2014/07/21(月) 20:04:32.57ID:ZTdtGxYS
xmlシリアライザでデータを復元・保存していて、扱うデータ量を増やしたいんですが
public class Data{
public int age
public int height
}

みたいなのを新たに
public class Data{
public int age
public int height
public int weight
}
こういうのってできませんかね?前やろうとしてXmlExceptionで挫折したんですが・・・
やっぱり自分でデータ読み書きするしかないんですかね?
0088デフォルトの名無しさん2014/07/21(月) 20:14:48.61ID:PAbp4tWj
[XmlIgnore]
int weight{get;set;}

[XmlElement("weight")]
string weightString{
 get{ return weight.ToString(); }
 set{
  int i;
  int.TryParse(value,out i);
  weight=i;
 }
}

試してないけどこんな感じなら行けるんじゃね?
0089デフォルトの名無しさん2014/07/22(火) 13:52:06.49ID:g9QQ7Nsg
デシリアライズにXElement使えば解決
0090デフォルトの名無しさん2014/07/22(火) 14:16:23.05ID:K4xASBS3
というかXmlSerializerってプロパティ増やしても
デシリアライズ時にxml内になかったら初期値がそのまま残るだけじゃなかったっけ?
0091デフォルトの名無しさん2014/07/22(火) 15:51:33.39ID:7sSt+lwx
来春から就職でC#を使うそうなので勉強したいのですが
比較的新しく、入門にお勧めな本があれば教えて下さい

お勧め本はググれば出てきますが新しいものがなかなか無いので
0092デフォルトの名無しさん2014/07/22(火) 15:56:00.62ID:UdhhORTs
仕事だと新しいのを使ってる確率は低いぞ
0093デフォルトの名無しさん2014/07/22(火) 16:17:08.24ID:n6USit9y
>>91
何を勉強したいのかとか、現在のほかの言語の習得状況とかによるから、
とりあえず本屋で何冊か立ち読みして、自分に合ってそうなのを
買うといい。
0094デフォルトの名無しさん2014/07/22(火) 16:29:19.46ID:c18b9aBU
>>91
川俣大先生の記事で十分
0095デフォルトの名無しさん2014/07/22(火) 19:25:00.71ID:7sSt+lwx
>>92
なるほど、それは盲点でした
>>93
田舎なので遠出しないと専門書売っている本屋がないのです
>>94
最初いいかと思いましたが他の言語経験も少ない私には難しかったです

オライリーは翻訳が酷いようなので
独習C#買ってみようと思います
ありがとうございました
0096デフォルトの名無しさん2014/07/23(水) 01:33:28.69ID:mkGkREWO
>>95
和書しか読めないゴミなんて死ねばいいよ。てか、死ねよ
0097デフォルトの名無しさん2014/07/23(水) 08:52:08.27ID:exug49Pi
MSDNでいいよ
0098デフォルトの名無しさん2014/07/23(水) 19:35:44.01ID:j3JmNZ+q
こんにちは。お教え頂きたいことがあります。よろしくお願いします。

とある、すでに完成しているアプリケーションのVisualC#プロジェクトがありまして、
それをベースに少しだけ中身を変更して、
もともとのアプリケーションと同じPCに別アプリとしてインストールしたいと思っています。

インストーラのプロジェクトのProductName、Titleを違う名前に変更してインストラーを作成しました。
いざインストールしようとすると「このプロダクトの新しいバージョンがすでにインストールされているためインストールできません。」
と表示されてしまい、インストールできません。

あとどのプロパティを変更すればインストール可能になるでしょうか。
0099デフォルトの名無しさん2014/07/23(水) 19:54:52.89ID:UvLOZQCE
>>98
セットアッププロジェクトのことだと思うけど、それなら
Dobonさんのところに詳しい解説があるから全部読んでちゃんと理解した方がいい。
生兵法はけがの元
0100デフォルトの名無しさん2014/07/23(水) 22:41:54.81ID:38EuJqRN
ゆうちゃんのときにGUIDが話題になっただろー
0101982014/07/24(木) 09:35:43.27ID:YR5zi8hk
>>99
>>100
ご意見ありがとうございます。
きっちり勉強したいのは山々ですが、
急に対応しなくてはいけなくなり、場当たり的に対応せざるを得ない状況です。

GUIDという単語を今回はじめて知りましたので、
少し調べてみます。
0102982014/07/24(木) 11:59:18.46ID:YR5zi8hk
>>100
slnファイルとcsprojファイル内のGUIDをすべて変更したらいけました。
ありがとうございました。
0103デフォルトの名無しさん2014/07/24(木) 12:41:12.34ID:8hVBn3gl
絵に描いたようなダメグラマだな。
0104デフォルトの名無しさん2014/07/26(土) 14:58:46.73ID:+7Kb6odc
あるオブジェクトに対してアクションをした場合に、
オブジェクトのViewの更新などを一元管理するマネージャークラスと
ロジックの同一メソッドを呼び出したいです。

void Click()
{

LogicManager.Instance.Click(this);
  ViewManager.Instance.Click(this);

}

上のような書き方だとDragメソッドを追加した場合、
コピペをしていかなければなりませんが、
もっとスマートな方法はないでしょうか?
0105デフォルトの名無しさん2014/07/26(土) 15:10:54.92ID:zn9EcAW4
同じシグネチャならデリゲートにでも入れといてマルチキャストしろ
0106デフォルトの名無しさん2014/07/26(土) 15:43:20.17ID:oUeek/ov
enum Action
{
 Click,
 Drag,
 ...
}

...

void Click()
{
 LogicManager.Instance.Do(this, Action.Click);
 ViewManager.Instance.Do(this, Action.Click);
}

void Drag()
{
 LogicManager.Instance.Do(this, Action.Drag);
 ViewManager.Instance.Do(this, Action.Drag);
}
0107デフォルトの名無しさん2014/07/26(土) 15:50:48.79ID:TIo93YdL
インターフェイス付けてコレクション処理でいいじゃない
0108デフォルトの名無しさん2014/07/26(土) 16:55:54.55ID:+7Kb6odc
コードだとどうなりますでしょうか?
0109デフォルトの名無しさん2014/07/26(土) 16:59:12.89ID:nFKdU08j
http://c-genngo.blogspot.jp/2008/09/c_12.html

ここにあるソースをVS2012にコピペすると

// 画像の色情報の取得
for (i = 0; i <>
for (j = 0; j <>
{
で構文エラーがるんだが、どうすればいいんですか?
0110デフォルトの名無しさん2014/07/26(土) 17:02:48.99ID:8nNWA9Q8
>>109
そのサイトの管理人に連絡してあげたらいいんじゃないでしょうか。
0111デフォルトの名無しさん2014/07/26(土) 17:05:05.09ID:TIo93YdL
よく分からん独自記法
普通のforにすればいいと思うけど、Bitmap扱う時はLockBitsとか使わないとクソ遅いぞ
ref int[,] iArrayとか見ても分かってないんじゃないのこの人
0112デフォルトの名無しさん2014/07/26(土) 17:14:18.91ID:xYX2zmVY
多分コピペしたら<がhtmlのタグと解釈されて、ブログ側で勝手になんかの処理が行われて壊れてるんじゃない
0113デフォルトの名無しさん2014/07/26(土) 18:13:04.42ID:oUeek/ov
ip = pictureBox1.Image.Width - 1; // ip値をpictureBox1.Image.Width - 1に設定

これは分かりやすいコメントですね
0114デフォルトの名無しさん2014/07/26(土) 18:42:57.50ID:j8MnQQBx
俺様に言わせれば"設定"とかいう謎用語を使うコメントはすべてゴミ
0115デフォルトの名無しさん2014/07/26(土) 18:50:27.14ID:TIo93YdL
プロパティのsummaryは「〜を取得または設定します。」って書くのがMS流なんですが
01161092014/07/26(土) 21:01:43.76ID:nFKdU08j
VBしかわからないので謎だったんだけど
VBにすると
for I =0 to I
   for J =0 to J

   next J
next I

こんな感じの、普通の2重ループってことなのですなw
0117デフォルトの名無しさん2014/07/28(月) 02:14:35.09ID:iIPJQPNt
processstartで別のexe実行する時にstandardとerrorのoutputをredirectしておくと出力文字をゲット出来ますよね。
でもそれでもゲット出来ない物があるのですが、何か他に設定必要ですか?
0118デフォルトの名無しさん2014/07/28(月) 20:35:32.53ID:OeppQSFP
タイムゾーンの設定を抑止する方法ありますか?
0119デフォルトの名無しさん2014/07/28(月) 21:38:02.03ID:TI2394bg
それはセキュリティポリシーで制御することじゃないか?
0120デフォルトの名無しさん2014/07/28(月) 23:43:31.48ID:8+Kg3bmT
空のcsファイルにTestEnumだけを書いて、
別のcsファイルからリフレクションでenumを取得しようと思ったのですが、

string[] arr = Enum.GetNames(typeof(TestEnum));

↑は取得できるのですが、

Type t = Type.GetType("TestEnum");
文字列から取得しようとするとnullになってしまいます。

どうすれば取得できるのでしょうか?
0121デフォルトの名無しさん2014/07/28(月) 23:44:56.13ID:8+Kg3bmT
今のところ空のcsファイルにtestenumを作ったのですが、
クラスに属していないといけないなど、何か決まりがあるのでしょうか?
0122デフォルトの名無しさん2014/07/28(月) 23:57:54.31ID:QsHnd0QE
エスパーしてみるけど、名前空間がいるんじゃね?
0123デフォルトの名無しさん2014/07/29(火) 00:00:53.88ID:jt6qgrVo
いま試してみてたところなんです!

名前空間をつけてenumを定義しました。
同CSファイルだと取得できますが、
違うCSファイルになると取得できませんでした。

そちらも当然同じ名前空間がつけてあります。
0124デフォルトの名無しさん2014/07/29(火) 00:02:05.82ID:p/w2ar3b
122に加えて、enumを定義してるアセンブリとGetTypeしようとしてるアセンブリが別なら
完全限定型名が必要になるぜ
0125デフォルトの名無しさん2014/07/29(火) 00:02:33.10ID:jt6qgrVo
Type t = Type.GetType("TestNameSpace.TestEnum");
0126デフォルトの名無しさん2014/07/29(火) 00:26:24.96ID:jt6qgrVo
うわぁーとれそうでとれねぇぇ
0127デフォルトの名無しさん2014/07/29(火) 00:51:36.27ID:jt6qgrVo
できたぁぁぁぁ
ありがとございやしたー
0128デフォルトの名無しさん2014/07/30(水) 13:00:14.61ID:ViFnhaRI
【「ファイルを開く」ダイアログを表示する】
http://jeanne.wankuma.com/tips/csharp/dialog/openfile.html

ここの [読み取り専用] チェックボックスを表示部分で、「openFileDialog1.ShowReadOnly = true;」を省いたり、falseに変更するとフリーズするのでしょう?

メモ帳で入力したソースをWin7-64bitの.NET 3.5にあるcsc.exeでコンパイルして現象が発生しいます。
0129デフォルトの名無しさん2014/07/30(水) 13:01:33.18ID:4eOtxaF4
エスパーしてみる
Mainメソッドに[STAThread]が付いてない
0130デフォルトの名無しさん2014/07/30(水) 14:11:05.86ID:SQ43lNFb
>>129
そういや昨日、BitmapImageをバックグラウンドのタスクから呼び出していて20分ぐらいハマったな
コイツだけさり気なく落ちるから気付くくまで時間がかかるんだよな
0131デフォルトの名無しさん2014/07/30(水) 22:13:43.54ID:BXt3k7V+
IEnumeratorにMoveBackがついたようなコレクションてフレームワーク内に入ってない?

インデックスを意識せずに進んだり戻ったりしたい
0132デフォルトの名無しさん2014/07/30(水) 22:38:39.13ID:hevpKXWy
ない
0133デフォルトの名無しさん2014/07/31(木) 01:45:43.00ID:ECmf22BC
>>129
まさにその通りでした。
Windowsフォームでのプログラミングを始めたばかりなので分かりませんでした。
FileDialogの派生クラスはSTAにする必要があったのですね。
ただ、何故ShowReadOnlyをTrueにするとビジーにならないのかがまだ解りませんが、おいおい理解を深めていきます。
有難うございました。
0134デフォルトの名無しさん2014/07/31(木) 07:41:11.39ID:8BDU/9Qz
>>131
それ、終端ではどういう動きになる?
0135デフォルトの名無しさん2014/07/31(木) 13:42:09.26ID:KgmaOuns
質問です。

マルチスレッド下で、Lock内からフィールドの変数へアクセスする場合、volatileは不要なのでしょうか。
不要だとすれば、常に一つのスレッドからアクセスされることが分かっている変数は、Lockもvolatile指定する必要はないということでしょうか?
0136デフォルトの名無しさん2014/07/31(木) 14:16:28.12ID:CMs90KqI
>>135
何言ってるのかよく分からんが、排他制御は「祟りに合わないためのおまじない」じゃない。
理屈を理解して使わないとダメだし、それはそんなに難しくない。
0137デフォルトの名無しさん2014/07/31(木) 18:12:45.70ID:C0tjZ4HX
>常に一つのスレッドからアクセスされることが分かっている
なら排他制御必要なくね?


volatileについてはまずこれを読む。

C# メモリ モデルの理論と実践
http://msdn.microsoft.com/ja-jp/magazine/jj863136.aspx
C# メモリ モデルの理論と実践 (第 2 部)
http://msdn.microsoft.com/ja-jp/magazine/jj883956.aspx
0138デフォルトの名無しさん2014/07/31(木) 18:34:46.82ID:KgmaOuns
>>136-137
ありがとうございます。
基礎的な知識が無いのに触っちゃ駄目ですね。勉強してきます。
0139デフォルトの名無しさん2014/07/31(木) 19:58:26.40ID:eXBVk06O
>>137の記事なんか別に読む必要ないけどね
初心者にこんなの勧める人の言うことを聞いちゃだめw
0140デフォルトの名無しさん2014/07/31(木) 21:35:22.40ID:C0tjZ4HX
えーvolatileとかの最低限の知識だけどー
そもそもvolatile使ってみようっていうのは初心者じゃないでしょ
0141デフォルトの名無しさん2014/07/31(木) 21:47:08.39ID:eXBVk06O
volatileが何に使えるか、どう機能するかを知ることと、
それがC#やCLRでどうやって実現されているかを知ることはイコールじゃない。

それはコンパイラを使うのにコンパイラの理論を知らなくても問題ないのと同じこと。

普通のプログラマにとっては前者を知るだけで必要十分。
0142デフォルトの名無しさん2014/08/01(金) 01:18:50.44ID:wXjRLhW2
asp.netなんだが、
/Page/Hoge.aspxがあるとして、コードビハインドHogeクラスから自身のパスを求める方法ってある?

名前空間とクラス名から求められそうだけど、パスと名前空間は一致しない可能性もあるし…

目的としては、できる限り文字列でパスを書きたくない
0143デフォルトの名無しさん2014/08/01(金) 03:24:27.71ID:QJEXwkWP
パスってのは何を取りたいんだ
リクエストのURLで良いんじゃねえのか
それかそこからMapPathするとか
0144デフォルトの名無しさん2014/08/01(金) 07:51:28.49ID:wXjRLhW2
Response.Redirect()の引数にできるパスが欲しい

Response.Redirect(クラスからパス取得<TestWeb.Page.Hoge>()) みたいな
0145デフォルトの名無しさん2014/08/01(金) 14:25:12.02ID:QJEXwkWP
Hogeクラスが使われてる.aspxは一つとは限らないんだが
0146デフォルトの名無しさん2014/08/01(金) 22:57:29.69ID:vuXUoB8O
この手の輩って精神衛生に拘ってるだけだろ
変数に代入しとけば文句でなさそう
0147デフォルトの名無しさん2014/08/02(土) 01:22:07.14ID:A2e8j0iO
>>145
確かに無理っぽいな
名前空間とクラス名から求めるのが無難か…変則的な命名はしないようにして

>>146
リダイレクトしてるaspx削除した時にエラーが出てくれたら便利じゃね?
0148デフォルトの名無しさん2014/08/02(土) 16:59:29.93ID:3baSja/P
クラス名からURLが欲しい場面が思い浮かばない
.aspxの命名規則決めてURL機械的に生成するならまだわかるんだが

>リダイレクトしてるaspx削除した時にエラーが出てくれたら
404エラーがでると思うが
0149デフォルトの名無しさん2014/08/02(土) 21:06:53.71ID:A2e8j0iO
>>148
例えば>>144みたいな方式だとコンパイルエラーになってくれる
0150デフォルトの名無しさん2014/08/02(土) 21:53:25.00ID:3baSja/P
Response.Redirectできるのは.aspxに限らんし自サイトとも限らんのだが
.aspxってサーバ側コード全く含まない単なるhtmlかもしれんのだが

そもそも特定クラスにリダイレクトしたいという場面が思い浮かばんが
0151デフォルトの名無しさん2014/08/02(土) 22:09:36.20ID:A2e8j0iO
自サイトのaspxに飛ぶ時だけに使えればいいんだよ
↓みたいな一式の奴
Hoge.aspx
Hoge.aspx.vb
Hoge.aspx.designer.vb

外部サイトとか静的コンテンツなら普通にURL書くよ
まあ、定数使ったりDB管理したりするかもしれんが
0152デフォルトの名無しさん2014/08/02(土) 22:12:04.93ID:A2e8j0iO
C#だと拡張子は.csだった
0153デフォルトの名無しさん2014/08/02(土) 22:27:09.68ID:3baSja/P
で、それホントにコンパイル時にエラーにできるの?
0154デフォルトの名無しさん2014/08/03(日) 00:15:54.46ID:klo46TE0
ルール決めて"~"+typeof(TPage).FullName.Substring(...).Replace('.', '/')+".aspx"とかやればいいだけじゃないの
_Defaultとかは知らん
0155デフォルトの名無しさん2014/08/03(日) 22:43:55.88ID:aVI9IO6l
URL は実行時(少なくともサーバー配置後)に決まるのだから
コンパイルエラーで検出しようとすることが間違い
0156デフォルトの名無しさん2014/08/04(月) 12:04:29.11ID:q+OJZa3I
AxWindowsMediaPlayerで動画再生してるけど
音声がずれる。mpc-hcではずれない。
音声遅延の設定ってできるかな?
0157デフォルトの名無しさん2014/08/04(月) 12:43:01.70ID:ShcA9hEt
できないはず
あと動作比較ならWMPにしろよ
0158デフォルトの名無しさん2014/08/04(月) 13:15:43.82ID:q+OJZa3I
ごめんごめん、WMPではずれた。
それで小手先療法にした。すまん。

一時停止して1秒ほど戻して再生させると音ずれが直るのを見つけたので
ずれたときはキーを押して修正することにしました。ばかすw
0159デフォルトの名無しさん2014/08/07(木) 11:20:23.09ID:0GRqsv9G
WPFのWebBrowserコントロール上で、重めのFlashゲーを動かしてるんですがたまにWebBrowserコントロールが固まります。
デバッグの出力は動いてるからブラウザーだけが固まっているみたいですが対処法が分かりません。

同様のことをやっているソフトは他にもあるので特別特殊なことをやっている訳ではないはずですが。
他にないことと言えば5秒間隔で画面を監視して今どの画面にいるかを判別してるくらいです。
監視部分のプログラムはウェイト無しで一万回位ループ回しても問題なく動きます。

問題はWebBrowserコントロール側だとは思いますが、再現性無く例外も出ずお手上げです。
エラーダイアログの抑制はしています。

大体予想つくと思いますがアレです。データのサイズが手頃だったので。
0160デフォルトの名無しさん2014/08/07(木) 14:46:32.67ID:36jzDVhH
きめえよ死ね
0161デフォルトの名無しさん2014/08/07(木) 14:48:47.49ID:z2XDt5qn
ぱずどらか?w
0162デフォルトの名無しさん2014/08/07(木) 15:32:35.69ID:0GRqsv9G
>>161
分かってて聞いてるますよね、畜生w
0163デフォルトの名無しさん2014/08/07(木) 16:10:23.01ID:UtjYrkXD
>>162
監視入れなきゃ止まることは無いの?
0164デフォルトの名無しさん2014/08/07(木) 17:11:46.55ID:0GRqsv9G
>>163
監視入れてない時から止まる時は止まってましたね。
0165デフォルトの名無しさん2014/08/07(木) 17:28:19.69ID:UtjYrkXD
なるほど、、、エラーダイアログの抑制をしないと何か出るか、と
何か出てないか探してみないとなんとも、、、うちで追試してみるかなあ、、、
もう半年以上ログインしてないがアカウントあるんだろうかw
0166デフォルトの名無しさん2014/08/08(金) 02:17:44.20ID:BYLEl754
ちょいと教えてください。
以下のSQLを実行してDataTableにデータを取得したときに
[System.Int16]型になります。[System.Boolean]型で取得する方法を教えてください。

コードでConvert.ToBoolean((int)table.Rows[0]["Flag"]);って書くのが面倒で参ってる。

【環境】
NetFramework 2.0

// 【AccessのSQL】
// FlagはAccess上はYesNo型
SELECT CBOOL(Flag) AS Flag FROM Table

// いろいろ省略したコード
using(var reader = command.ExecuteReader())
{
DataTable table new DataTable();
table.Load(reader);

// ↓これがなぜかSystem.Int16になる。
// SQLでCBoolでキャストしてるのになぜに?
 // 値はAccess上のTrueが-1で、Falseなら0で取れる。
table.Columns[0].DataType;
}
0167デフォルトの名無しさん2014/08/08(金) 06:51:04.09ID:zQrgSKZs
真偽値が整数型にマップされるのはよくある
諦めて短く書ける方法を模索したら
少なくともConvert.ToBooleanは要らん
0168デフォルトの名無しさん2014/08/08(金) 07:33:09.54ID:S2TqD3Ft
>>166
DataTableに型付カラム追加は嫌?
0169デフォルトの名無しさん2014/08/08(金) 19:19:58.45ID:vJXv8MD8
超初心者な質問ですが教えてください
「Test1」クラスとTest1クラスを継承した「Test2」クラスがあるときメインクラスで
Test1 tes1 = new Test2 {処理}
Test2 tes2 = (Test2)tes1 {処理}
とした時はそれぞれどういう読み取り方をしているのでしょうか
0170デフォルトの名無しさん2014/08/08(金) 19:36:09.86ID:6s2vkVir
読み取り方っていうのが何を指してるのか分からない
せっかくTest1に入れたのにあとからキャストしてる理由なら書いた奴に聞けとしか言いようがないが
0171デフォルトの名無しさん2014/08/08(金) 19:47:18.30ID:zQrgSKZs
コンパイル時の型チェックが違うだけで実行時は両方O型のはず
0172デフォルトの名無しさん2014/08/08(金) 23:33:58.49ID:hWu0CtOk
C#で全角⇔半角の変換ができるオープンソースライブラリってある?

Strings.StrConvは残念過ぎるので、無かったら自作しようかと


>>196
{処理}って何だ?初期化子?
01731662014/08/08(金) 23:56:21.47ID:YTdVsdZm
>>167
System.Int16にマッピングされるのが普通なのですか知らなかった。
System.Boolean型で取得するのは諦めて!=0で判定することにします。
アドバイス感謝です。

>>168
なるほど、カラムを追加するのも一つの手ですね。
アドバイス感謝です。
0174デフォルトの名無しさん2014/08/09(土) 00:36:40.24ID:j2iiR/U5
>>166
そもそもSQLにCBoolとか無いから
最低限つかってるDBとプロパイダちゃんと書けよ
0175デフォルトの名無しさん2014/08/09(土) 01:08:35.27ID:nApo80wj
CBoolの結果をbool型として取得できないから内部値の-1/0で格納されちゃうってオチか
0176デフォルトの名無しさん2014/08/09(土) 01:41:09.46ID:j2iiR/U5
ちょっと試した
Jet.OLEDBプロパイダでMDBだと、Yes/No型でそのままSELECTすればちゃんとSystem.Booleanになる

Yes/No型(Bit型)はBooleanじゃないからな

ACCESSのヘルプによれば
>ブール型 (Boolean)
>2 種類の値、真 (True) (-1) または偽 (False) (0)のみを格納するデータ型。ブール型 (Boolean) の変数は、16 ビット (2 バイト) の数値として格納されます。

だから、CBoolの結果は2バイト
つまりInt16にマップされて当然

もともとYes/No型ならなんでわざわざCBoolとかする必要があるのか
0177デフォルトの名無しさん2014/08/09(土) 02:42:52.86ID:gH6dyz5c
>Strings.StrConvは残念過ぎるので、
どの辺りが残念なんだ?
0178デフォルトの名無しさん2014/08/09(土) 08:24:13.81ID:vhTKaBjI
半角→全角でこいつら↓
゛゜゙゚
2文字で↓も
ヺ
0179デフォルトの名無しさん2014/08/09(土) 08:30:47.58ID:P4J/peWK
どこまで作りこませたいのかは知らんが、そんな変換悩まずに最初から自作しろよw
0180デフォルトの名無しさん2014/08/09(土) 08:52:14.79ID:I4thkPZv
>>172
カナの変換なら↓が使えるかな・・・
Microsoft Visual Studio International Feature Pack 2.0
0181デフォルトの名無しさん2014/08/09(土) 12:11:06.77ID:ThCM2sNf
JAVAもいいけど、
そんなつまんない話よりも、こっちこっち↓笑える休憩タイム。

【「指ぱっちん」の天才霊能者八意先生に関するサイト】

天才霊能者の八意先生は埼玉県八潮市生まれ育ちの21歳です。
悩み事があるときや困ったことが起きたら、まず八意先生に相談しましょう。
以下のサイトをすべて読み終わったら、
腹を抱えて大笑いしてしまうことをお約束します(※ は無料心霊写真鑑定)。
お気に入りに追加することをお勧めします。

※ http://blog.goo.ne.jp/nichikon1/e/e066fd39cd23872a3c73cf91f4b50b8c
※ http://blog.goo.ne.jp/nichikon1/e/5aac5cd13eafbf5581a7e2ff79b6c16c
※ http://blog.goo.ne.jp/nichikon1/e/93b5c268d3aefeccd92753a7c58a6ded
※ http://blog.goo.ne.jp/nichikon1/e/788f3056778b0f74495648964bfb1d1e
※ http://blog.goo.ne.jp/nichikon1/e/da81f66fa7c437e7ca19667c2bf35065
※ http://blog.goo.ne.jp/nichikon1/e/d9d05d45085c29df2c0e994a4b60d816
※ http://blog.goo.ne.jp/nichikon1/e/475621ba2615792fe2478f597e31b488

http://www.reinou.jp/bai.html
http://www.reinou.jp/rei.html
http://www.reinou.jp/warashi.html

http://blog.goo.ne.jp/nichikon1
http://www.reinou.jp (八意先生の携帯番号はここ。)

八意先生が口にしたことは絶対に起こりません(地震が発生する日付の予想など)
でも、あなたのどんな悩みでも、八意先生が「指ぱっちん」で解決してくれます。

一応、コメントも含めてすべて読んでみてください。
☆コメントの書き込み・誹謗中傷も大歓迎です。☆
0182デフォルトの名無しさん2014/08/09(土) 22:13:37.67ID:pmqfZ9Px
C#を覚えて間もないのですが、
クラスの継承って使いやすいのでしょうか?

やり方は学んだのですが、
どういう状況で使うのか、今一つ解りません。

クラスを普通に呼んだ方が、コードが綺麗になるような気がして。。。

実際のところ、どうなのでしょうか?
0183デフォルトの名無しさん2014/08/09(土) 22:16:22.20ID:oT4oz9MU
Windowsの音声ミュートは.netで簡単に操作できますか?
ググったところそれらしいものはないようなので質問しました
0184デフォルトの名無しさん2014/08/09(土) 22:17:28.20ID:85AgQkaA
>>182
IEnumerableのコレクションを自作する場合に楽だろ
実際はジェネリックがあるから自作する機会はまずないけど
0185デフォルトの名無しさん2014/08/09(土) 22:20:03.94ID:P4J/peWK
>>183
c# sound mute api
0186デフォルトの名無しさん2014/08/10(日) 06:38:03.66ID:TiovmIJw
Collection<T>舐めてんのか
0187デフォルトの名無しさん2014/08/10(日) 07:13:16.40ID:22viYzQw
>>183
Vista以降ならCore Audio APIを使うんだが、ライブラリ使うと簡単に使える

例えばコレ
http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control

音楽を本格的にコントロールするならNAudioとかBass.net等を使った方がいいが
0188デフォルトの名無しさん2014/08/10(日) 08:18:18.62ID:zvbFbaEf
>>182
最初はフォームの継承が一番分かりやすいと思う
基本のフォームを作成して、それを継承してポコポコ作っていくのよ
0189デフォルトの名無しさん2014/08/10(日) 10:21:51.83ID:PVWd11gL
>>186
それ遅いだろ
List<T>は速度が速い代わりに用途制限されてるけど
0190デフォルトの名無しさん2014/08/10(日) 10:36:10.56ID:TiovmIJw
Collection<T>は未指定だとList<T>を使用するんだけど
callvirtとcallの速度差が体感できる人なのかな
0191デフォルトの名無しさん2014/08/10(日) 10:37:57.45ID:RzrD/vWx
>>188
>>182は多分、継承してぽこぽこ作るくらいなら、用途毎にクラス作って「普通」に呼べばいいとか思っている
0192デフォルトの名無しさん2014/08/10(日) 11:36:04.86ID:ToinQTj6
http://bluewatersoft.cocolog-nifty.com/blog/2009/04/net-collectiont.html

こういうのもあるけどな
0193デフォルトの名無しさん2014/08/10(日) 11:39:05.84ID:qCUn903V
http://stackoverflow.com/questions/1232108/c-difference-between-listt-and-collectiont-ca1002-do-not-expose-generic

こっちの方がよくね
0194デフォルトの名無しさん2014/08/10(日) 12:37:58.79ID:TiovmIJw
>>192
非ネイティブ言語のパフォーマンス測定結果を貼るときは実行環境のバージョンも考慮したほうがいいよ
4.5系ならそんなに差は出ない
0195デフォルトの名無しさん2014/08/10(日) 22:34:31.92ID:PjPhbHph
>>188
ベースのクラスに、実装に必要そうなDB接続処理やら
ファイル処理やらを混在させると、usingも膨れ上がって
凄く見にくいなと思いました。

DB接続するならDB接続クラス
ファイル処理をするなら、ファイル処理クラスを作って
都度、実体を作る方が、綺麗で解りやすい気がします。

とはいえ、オブジェクト指向がこれだけ盛んなのですから、
自分が思うよりも、メリットが多いんだろうなと
思う次第で。。。
0196デフォルトの名無しさん2014/08/10(日) 22:45:04.85ID:vXAs/WBb
ん?むしろその方が正しいぞ??

何かそういう下手糞なコードを見て勘違いしてるのか?
0197デフォルトの名無しさん2014/08/10(日) 23:22:38.79ID:O3T0ywQ9
>>195
作るクラスにも人にもよるでしょう
俺だったらDB接続程度なら別クラスは作らない
0198デフォルトの名無しさん2014/08/10(日) 23:37:24.27ID:h7eBXMwc
実装の再利用に継承を使うのはよくあるアンチパターンじゃないのか
0199デフォルトの名無しさん2014/08/11(月) 15:58:47.56ID:fV8KAQup
C#もすべての基準になるobjectにいろいろな機能を取り付けてる
幅広く使われる機能を再利用するために継承を使うのは古くさいと思われてるけどまだ有効
0200デフォルトの名無しさん2014/08/11(月) 17:52:50.36ID:LZcDhd6q
>作るクラスにも人にもよる

これは確かにそうなんだが
馬鹿には状況によりけりなんて方法論は通用しないじゃん
馬鹿はオールオアナッシングだから馬鹿なのだ
○○はアンチパターンだと脳髄に叩き込まれたら最後
状況によっては使っても問題ないという例外すら頭から吹き飛ばしてしまう
0201デフォルトの名無しさん2014/08/11(月) 21:39:43.37ID:ewsfvN/g
DBに関してはEntityFrameworkがあるんで、クエリ実行は全部staticメソッドやってるわ
いざという時のTransactionScopeもあるし、もうDAO作る必要ないと思う

継承を使う場面て、GUIのFormやらASP.NETのPageかな
0202デフォルトの名無しさん2014/08/11(月) 22:44:57.30ID:WQtg4xYB
いかにも業務アプリしか作ってなさそうな発想だが、ビジネスロジックにデザパタ適用しちゃいけない理由はないよ
0203デフォルトの名無しさん2014/08/11(月) 23:10:38.80ID:4y5T8ryj
俺は自分向けの独自DBラッパー経由でDBアクセスしてる
汎用的なラッパーだとDBアクセスが面倒なんだよ
0204デフォルトの名無しさん2014/08/12(火) 04:33:33.28ID:iwXgz5NB
その辺よくわからないんだけど
インターフェイスじゃ駄目なの?
0205デフォルトの名無しさん2014/08/12(火) 04:38:08.19ID:paAtTHMX
>>204
その辺ってどの辺だよ
俺俺ライブラリは実装こそが必要なわけで、インターフェイスだけあっても
実装が無ければ何の意味も無いわけだが
0206デフォルトの名無しさん2014/08/12(火) 06:35:00.88ID:mwrwIBg8
明確に共通な処理がある場合、インターフェースよりアブストラクト使ったほうが修正コストが低い
全てが全てじゃないから両方あるんだけどね
0207デフォルトの名無しさん2014/08/13(水) 19:34:53.73ID:AAheRmFd
継承なんかしなくて済むならしないに限る
ベースクラスとの直観的でない膨大な依存性が発生して
可読性が皆無に近くなるからな
0208デフォルトの名無しさん2014/08/13(水) 19:44:34.97ID:tO58kIFd
>>207
継承されたクラスはベースクラスに依存してるって主張?
0209デフォルトの名無しさん2014/08/13(水) 19:51:20.10ID:EUHkWmQi
たまに現れる継承滅べ主義の人はスルーで
0210デフォルトの名無しさん2014/08/13(水) 19:52:55.50ID:tOwUt3z1
継承滅べ言うてるやつは、クソクラスを継承してるだけ
0211デフォルトの名無しさん2014/08/13(水) 20:25:53.24ID:+QYs/J2/
class B : A
{
...
}

IEnumerable<A> a1 = new List<B>();   // 問題なし

IList<A> a2 = new List<B>();  // ←コンパイルエラー


どして?
0212デフォルトの名無しさん2014/08/13(水) 20:27:05.40ID:tOwUt3z1
エラーのメッセージも書きなよ
プロが教えてくれるよきっと
0213デフォルトの名無しさん2014/08/13(水) 20:35:57.04ID:EUHkWmQi
IEnumerable<T>は出してくるだけのインターフェイスだから
A a = ie.GetEnumerator().Current; // Aへの代入は必ず成功する
対してIList<T>は出し入れするインターフェイスだから
A a = list[0]; // Aへの代入は成功する
list[0] = a; // Aを代入は無理

こういう事ができるようにIEnumerable<T>は宣言ではIEnumerable<out T>となってる
詳しくは
ttp://msdn.microsoft.com/ja-jp/library/dd799517.aspx
0214デフォルトの名無しさん2014/08/13(水) 20:37:40.13ID:+QYs/J2/
なるほど
なっとく
0215デフォルトの名無しさん2014/08/13(水) 23:26:31.75ID:AAheRmFd
>>208
そう
根深くて全く切り離せない依存性が発生して
そのうち身動きがとれなくなる
0216デフォルトの名無しさん2014/08/13(水) 23:44:13.56ID:CdExR14e
直感的になるように型を分割しろよ
0217デフォルトの名無しさん2014/08/14(木) 00:08:00.25ID:AAheRmFd
いずれ仕様変更でベースクラスの形も変わる
その時に継承していると密接に結びつきすぎて
全体がバラバラに崩壊してしまうのさ

単純な型の単純な組み合わせならこういうことは起こらない
0218デフォルトの名無しさん2014/08/14(木) 00:33:08.40ID:vikQ1+r+
ベースクラスぶっ壊すような仕様変更は、新しく作り直した方がいいんじゃないか

汎用メソッドだけは引き継いで
0219デフォルトの名無しさん2014/08/14(木) 00:46:24.12ID:q7TkIODT
ベースクラスがなければ
新しく作りなおさなくてもいいんだから
継承なんてやめたらいいのだ
0220デフォルトの名無しさん2014/08/14(木) 01:54:31.03ID:sRN+xfnp
クラスの形が変わるとか良くわからん話だが
ベースクラスの形が変わるぐらい仕様変更されてるのに継承クラスの仕様はそのままって?
そりゃそんなに無関係なクラス同士なら継承する必要なんてないわな
0221デフォルトの名無しさん2014/08/14(木) 03:10:01.53ID:pxWvkh5e
戻り値にリスト関係を返す関数を作る場合、
用途を限定しない場合はEnumratorを返したほうがスマートなんでしょうか?

内部でListなんか作ったときなんかそのまま返しちゃっていますが。
0222デフォルトの名無しさん2014/08/14(木) 03:22:36.57ID:KdYtw7FM
「メソッドの持ち主のインスタンスが内部で保持しているリスト」を返す場合、変更不可にするためにIEnumerator型で返す
内部で保持しているリストを外部で自由に書き換えられる作りは、ほとんどの場合避けた方がいい

そうではない、リストを作成して返すメソッドとかならIList型とかでいい
0223デフォルトの名無しさん2014/08/14(木) 03:44:28.44ID:pxWvkh5e
なるほどー、弄られたくない場合はIEnumratorを返すわけですね。
IList使ったことなかったけど使ってみます!
0224デフォルトの名無しさん2014/08/14(木) 03:53:52.49ID:pxWvkh5e
new する場合左辺はインターフェースで定義しておいた方がいいんですかね?
IList<string> list = new List<string>();

なんか何がしたいか分からなくなってきた;o;
0225デフォルトの名無しさん2014/08/14(木) 03:54:43.30ID:mNiYegMq
要素まで変更不可なリストを返したい場合はどうするんですか?constポインタはなぜないのですか?
0226デフォルトの名無しさん2014/08/14(木) 05:49:32.74ID:3TSi24g0
IEnumeratorなんか返されてもめんどくさいだけだからIEnumerableにしてくれ
0227デフォルトの名無しさん2014/08/14(木) 08:05:14.78ID:vikQ1+r+
>>224
ローカル変数を抽象化するメリットはないんじゃないか
積極的にvar使っていけよ

>>225
ReadOnlyCollection<T>、ReadOnlyList<T>
インデックスアクセスが不要ならIEnumerable<T>
0228デフォルトの名無しさん2014/08/14(木) 09:50:37.48ID:ISEo4/jU
IEnumerable<T>で返すようにしたけど
.Countプロパティが必要になったりしてやり直しとかよくある
0229デフォルトの名無しさん2014/08/14(木) 12:10:25.49ID:Tb3ur59k
>>228
拡張メソッドのCount()でいいよ
ICollectionを実装してたらいちいち列挙せずにCountプロパティが使われるからコストはない
0230デフォルトの名無しさん2014/08/14(木) 13:01:12.67ID:ISEo4/jU
なるへそ
0231デフォルトの名無しさん2014/08/14(木) 13:13:54.93ID:vikQ1+r+
微々たるもんだがtrycastのコストはかかるぜ
0232デフォルトの名無しさん2014/08/14(木) 14:12:10.21ID:2tof3LIX
IEnumeratorとかIEnumerableなどって、どこに詳しく(日本語)載っていますか?もしくは書籍?
再度マジメに勉強してみたいと思ってます。皆さんの参考とした文献を教えて下さい
0233デフォルトの名無しさん2014/08/14(木) 14:22:41.88ID:mNiYegMq
典型的なイテレータパターンだからデザインパターンの本読めばいくらでも載ってるはず
0234デフォルトの名無しさん2014/08/14(木) 14:33:59.69ID:gKLP5dsi
>>232
真面目に勉強するほど中身あるかなあ。
IEnumerableとIEnumeratorを一度自分で実装してみればそれで十分でしょ。
0235デフォルトの名無しさん2014/08/14(木) 17:19:43.10ID:5wWAIMwO
ついでにその時 yield return; の存在意義が分かって一石二鳥
0236デフォルトの名無しさん2014/08/14(木) 17:44:32.54ID:KoQj0PZj
task中にクリップボード操作をしたいのですが、素直に次のとおりやってみたところ失敗しました
(エラーは出ないですが、クリップボードにデータコピーしてくれません)。

private void button1_Click(object sender, EventArgs e)
{
Task.Factory.StartNew(
() =>
{
Clipboard.SetDataObject("テスト文字列");
});
}

何かいい方法はないでしょうか?
教えてください。
0237デフォルトの名無しさん2014/08/14(木) 17:48:37.20ID:KoQj0PZj
すいません、書き込んで1分で解決しました(この1時間の悩みはなんだったのか・・・)

SetDataObjectではなく、SetTextにすればうまくいきました。
(ただ、疑問として、Taskの中でなければ
Clipboard.SetDataObject("テスト文字列");
でも「テスト文字列」がクリップボードにコピーされるのですが、Task中だとなぜコピーされないのかはわからないままです。
やりたいことは解決したので、問題はないのですが)
0238デフォルトの名無しさん2014/08/14(木) 17:57:25.22ID:q4XoDj7G
STAじゃないと問題ありそう
データ用意するところとかはともかく、
クリップボードにアクセスする部分だけはメインスレッドでやった方が安定しそう
0239デフォルトの名無しさん2014/08/14(木) 18:01:42.70ID:iwMxtFqp
>>237
STAThreadじゃないと動かないプログラムってのが多数あって、多分SetDataObjectもその類だと思われる
内部でComを使っているものは動かないものが多いそうだ
って事で、そんなものに捕まった場合はBeginInvokeかInvokeを使って回避するのが常套手段です
0240デフォルトの名無しさん2014/08/14(木) 18:04:27.48ID:KoQj0PZj
すいません、237ですが、解決してませんでした。
(タスクの外に出したまま実行していました)
0241デフォルトの名無しさん2014/08/14(木) 18:18:14.84ID:q4XoDj7G
> データ用意するところとかはともかく、
DataObjectのインスタンス作るところもSTA下じゃないと多分駄目だな
0242デフォルトの名無しさん2014/08/14(木) 18:31:01.54ID:mNiYegMq
スレッドをSTAにしてから走らせればOK
0243デフォルトの名無しさん2014/08/14(木) 19:59:04.25ID:KoQj0PZj
>>239
ありがとうございます。
解決はまだできていませんが、問題の原因はわかりました。
教えていただいた内容を元に調べたところ、次のサイトで今回の件が解説されていました。

STAThreadの意味は?: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/form/stathread.html
方法 : クリップボードにデータを追加する
http://msdn.microsoft.com/ja-jp/library/637ys738(v=vs.110).aspx

>Clipboard クラスは、シングル スレッド アパートメント (STA: Single-Threaded Apartment) モードに設定されたスレッドでのみ使用できます。
0244デフォルトの名無しさん2014/08/14(木) 21:50:16.15ID:KoQj0PZj
delegateで挫折しそうです。
これまでに見たことがない概念なので、イマイチ内容がよくわからず、
このへんとかを参考にしてソースをコピーして動かしてみようと思ったのですが、
http://ufcpp.net/study/csharp/sp_delegate.html

「OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。」とでてそもそも動かず。。。
質問ではなくて挫折報告ですいません。
0245デフォルトの名無しさん2014/08/15(金) 01:49:18.50ID:CyDz3wwl
これの通りやったらいいんじゃないの

クリップボードのデータの取得、設定がうまくいかないときは
http://dobon.net/vb/dotnet/system/nostaclipboard.html
0246デフォルトの名無しさん2014/08/15(金) 01:56:48.70ID:1e8miiUY
delegateは、イベントハンドラの追加で使うものだろ?

A,B,Cなどのイベントハンドラを追加するとき、
obj += A
obj += B
obj += C
と足していけば、ABCの順に呼ばれる(この順序で正しいかい?)

逆にそこから、Bを引けば、
obj -= B
ACの順に呼ばれる
0247デフォルトの名無しさん2014/08/15(金) 04:02:13.92ID:lLqTBTtV
>>246
イベントに対する+=とデリゲートオブジェクト自体に対する+=って実は全く別の操作なんだぜ
後者は文字通り加算してるんだけど、前者は特殊なプロパティ呼び出しの一種だ
=がsetの呼び出しになるようなもん
0248デフォルトの名無しさん2014/08/15(金) 09:11:24.84ID:b0b0FaSy
delegeteの暗黙の変換は、知っている人は楽になったけど
知らない人にはよくわからないものから、まったく理解できないものに
なったと思う。
0249デフォルトの名無しさん2014/08/15(金) 16:29:36.11ID:HcuU/6Wi
>>244
http://code.msdn.microsoft.com/ParExtSamples
↑これをダウンロードした中に
StaTaskScheduler.csというのがあるからそれをプロジェクトに追加して
Task.Factory.StartNewのTaskScheduler使うオーバロードにStaTaskSchedulerのインスタンスを設定すればTaskのスレッドがSTAになる
0250デフォルトの名無しさん2014/08/15(金) 17:21:47.41ID:kWKWFX82
STAって何ですか?
0251デフォルトの名無しさん2014/08/15(金) 18:10:11.73ID:hUiEEqSg
http://dobon.net/vb/dotnet/form/stathread.html
0252デフォルトの名無しさん2014/08/15(金) 20:40:38.19ID:HcuU/6Wi
>>250
COMという技術において、複数のスレッドからCOMのオブジェクトがアクセスされるときの約束事の一つ。
STA(シングルスレッドアパートメント)。アパートメントに入る(アクセスする)ときに自動的になんとか(マーシャリング)してくれるかわりに
性能的には最速ってわけじゃないよ、という感じ。

他にはMTA(マルチスレッドアパートメント)とかがあって、これはパフォーマンスはSTAより良いけどちゃんと自前で同期させてねという約束事。


OLE スレッド モデルの概要としくみ
http://support.microsoft.com/kb/150777/ja
0253デフォルトの名無しさん2014/08/15(金) 22:28:46.02ID:qW4TrPbm
アウトオブプロセスのCOMコンポートのようなものをC#で作るにはどうすれば良いのですか?
0254デフォルトの名無しさん2014/08/15(金) 23:19:03.99ID:zQitFObJ
>>253
コードを書いてコンパイルする。
0255デフォルトの名無しさん2014/08/15(金) 23:31:22.55ID:5qqE9d/r
>>253
むかーし調べたことがあるけど
確か登録する際にレジストリを適切に書けばなんとかなるとかなんとか
0256デフォルトの名無しさん2014/08/16(土) 15:16:23.22ID:3yXS8Hio
例えばメモ帳のファイルメニューを開くと

ファイル(F)
 │新規(N)     Ctrl+N│
 │開く(O)     Ctrl+O│
 │上書き保存(A)  Ctrl+A│

こんな感じで、サブメニューの文字の右側がピッタリ揃っていますが、
これは何かこういう機能があるのでしょうか?それとも、スペースの
数を調整して揃えているのでしょうか?
C#のフォームにtoolStripMenuItemを使って同じようなメニューを作りたいのですが、
同じように揃えたいのです。
0257デフォルトの名無しさん2014/08/16(土) 15:43:35.90ID:n9y9z0V3
ショートカットキーは自然と右寄せになるよ
0258デフォルトの名無しさん2014/08/16(土) 15:45:33.73ID:3yXS8Hio
>>257
ありがとうございます。
0259デフォルトの名無しさん2014/08/17(日) 13:28:21.08ID:ZU93glA/
Formの上にtextBoxを置いて、↑の256のようにショートカットキーを
定義したら、メニューは無事に完成したのですが、問題が起こりました。
それは、例えば Ctrl+A を押したらFromがキー入力を受け取るようで、textBoxの
テキストの全選択(Ctrl+A)が出来なくなりました。他のショートカットキーも同じです。
どうすればtextBoxが受け取れるようにできますか?
0260デフォルトの名無しさん2014/08/17(日) 13:37:45.62ID:06R8hAZM
>>259
バカなのかマジで
0261デフォルトの名無しさん2014/08/17(日) 14:18:37.81ID:ZU93glA/
>>260
おまえみたいな童貞に聞いてない。
0262デフォルトの名無しさん2014/08/17(日) 14:47:25.56ID:x1jf4qnu
どうしたいんだよこのバカは。
テキストボックスにフォーカスがあるときに

1. メニューだけ
2. テキストボックスだけ
3. 両方で

処理させる選択肢があるわけだが
1は嫌なんだろ?
じゃ2か3だけど、
3はユーザーの直感に反する動作になるだろうから普通の知能があれば却下する。
しかし2もモードによってショートカットキーの動作が変わるという最悪のUIだよ。
それでもよけりゃFormのProcessKeyMessageメソッドでもオーバーライドして判定しろ。

ようするにCtrl+Aなんて汎用的なキーを割り当てるな低能、ってことだよな〜
普通はAltにするだろ……
0263デフォルトの名無しさん2014/08/17(日) 14:49:35.19ID:06R8hAZM
バカ丸出し。

>>259の仕様そのものは、要はメニューのイベントハンドラでTextBoxが入力フォーカスを
持っているかどうかで処理を分ければ簡単に実装できる。

でも普通はこんな馬鹿な仕様のUIなんか作らない。
少なくとも俺はこんな馬鹿なUI見たことない。
0264デフォルトの名無しさん2014/08/17(日) 15:27:46.88ID:FZOf3SxN
ここまで、俺以外全員バカ確定
0265デフォルトの名無しさん2014/08/17(日) 15:33:00.89ID:sI1u/7Zz
ここまで全員童貞
0266デフォルトの名無しさん2014/08/17(日) 19:37:24.48ID:1fj3Uw55
c++に慣れてるせいな疑問かもしれないですが、誰か教えてください。
・参照型の変数を使うときに毎回 new するのがめんどすぎるんですが、c# はそういうもんなんでしょうか?
・参照型メンバをもつクラスはコンストラクタで1つずつ new するというノリで合ってますか?
・string は参照型なのに string s = "hoge"; ってな具合に使えるのはなぜなのでしょうか?
0267デフォルトの名無しさん2014/08/17(日) 19:45:31.22ID:sI1u/7Zz
ここまで全員初心者
0268デフォルトの名無しさん2014/08/17(日) 19:53:00.66ID:vFtnH5FG
参照型と値型でgoogle先生に聞いてみれば!?
0269デフォルトの名無しさん2014/08/17(日) 20:20:58.06ID:Ot0PKOG+
>>266
・そういうもん。参照型はヒープにしかインスタンスを置けない。
・もしくはコンストラクタやプロパティで渡す。その方が単体テストはしやすい。
・"hoge"はヒープ上のどこかに勝手に作られてるStringオブジェクトへの参照を返す。
0270デフォルトの名無しさん2014/08/17(日) 20:24:03.21ID:sI1u/7Zz
ここまで全員グーグラー
0271デフォルトの名無しさん2014/08/17(日) 21:04:29.28ID:ZU93glA/
>>262
>>263
晩飯食った後少し考えたら上手くいったぞ。
童貞1号2号、また教えてくれよ!
0272デフォルトの名無しさん2014/08/17(日) 21:13:43.96ID:sI1u/7Zz
ここまで全員チエブクラー
0273デフォルトの名無しさん2014/08/18(月) 13:46:54.14ID:VSyd+JSt
37歳童貞です(;^_^
0274デフォルトの名無しさん2014/08/18(月) 13:50:06.96ID:r8tHn57o
グーグラーに似た名前のやつがマクドナルドにいなかったっけ
0275デフォルトの名無しさん2014/08/18(月) 20:50:48.38ID:cOfP4VQV
ヒネリもないハンバーグラーだっけ?
0276デフォルトの名無しさん2014/08/18(月) 22:54:25.98ID:irIfLVCe
>>269
なるほど、ありがとうございますー
0277デフォルトの名無しさん2014/08/18(月) 23:22:44.53ID:OdlWZdI3
ここまで全員チエオクラー
0278デフォルトの名無しさん2014/08/20(水) 10:35:49.88ID:7AUPK+eR
入門向けのお勧め書籍ありますか?
もしくはサイトを教えて頂ければ幸いです。
0279デフォルトの名無しさん2014/08/20(水) 10:57:40.25ID:Dp0mKQ3T
ユーザーコントロールに貼り付けた内部コントロールのイベントを
ユーザーコントロールのクライアントのプロパティウィンドウに
表示できませんか?

内部コントロールをプロパティとして公開すると、内部コントロールの
プロパティがユーザーコントロールのクライアントのプロパティ
ウィンドウに表示できることは分かったのですが、
イベントタブの方に内部コントロールのイベントは表示できませんでした。

ユーザーコントロール.内部コントロール.イベント += (o,e)=>{}
のように自分でコーディングすれば、内部コントロールにイベントを
追加できますが、デザイナーから操作できないでしょうか。

UserControlでなく、内部コントロールを継承すればできそうですが、
内部コントロールが複数あるため、すべてのコントロールについて
そのような手段をとることができません。
0280デフォルトの名無しさん2014/08/20(水) 11:04:28.63ID:3itp5IL2
>>279
知らんがな。

はい、次。
0281デフォルトの名無しさん2014/08/20(水) 11:39:46.32ID:ekRS8u1z
質問能力が足りない
0282デフォルトの名無しさん2014/08/20(水) 12:17:34.91ID:6nqDeMnP
>>279
イベントプロパティーを使ってUserControl自身のイベントとして公開するのが普通。
0283デフォルトの名無しさん2014/08/20(水) 13:24:17.36ID:Dp0mKQ3T
例えば、SplitContainerです。
内部にSplitterPanelを持っていて
デザイン時にSplitterPanelをクリックすると
SplitterPanelのプロパティとイベントをいじれます。

これと同じように、内部に置いたコントロールを
いじれるようにできないでしょうか。
0284デフォルトの名無しさん2014/08/20(水) 13:49:27.16ID:9ne3lOon
そもそも内部のコントロール直接いじるならユーザコントロールにする必要ないんじゃね
0285デフォルトの名無しさん2014/08/20(水) 13:53:18.19ID:k6J6U7+T
ParentControlDesignerから派生させたクラス作って
Initialize, InternalControlDesigner, NumberOfInternalControlDesigners
辺りをオーバーライドして内部コントロールのデザイナ返せるようにして
ユーザコントロールのDesigner属性で(上記クラス, IDesitner)って指定すれば
まあ最低限動くっぽい
0286デフォルトの名無しさん2014/08/20(水) 16:11:29.09ID:ekRS8u1z
質問能力が低い質問者の質問に答えるバカは
自己顕示欲が強いor初心者の糞回答
0287デフォルトの名無しさん2014/08/20(水) 16:59:29.26ID:k6J6U7+T
279だけならともかく283の補足がありゃ質問としては十分だろ
0288デフォルトの名無しさん2014/08/20(水) 18:21:58.73ID:au1JYGQl
はい
0289デフォルトの名無しさん2014/08/20(水) 20:05:14.17ID:ekRS8u1z
はいじゃないが
0290デフォルトの名無しさん2014/08/20(水) 21:31:17.25ID:3itp5IL2
はい、次。
0291デフォルトの名無しさん2014/08/21(木) 00:04:51.61ID:XJB1lpOg
>>283

ttp://ideone.com/4hlLnY

1) 参照に System.Design を追加。
2) 適当なクラスファイルを追加して、上記のコードをコピペ。
3) ビルド
4) ツールボックスに UserControl1 が出てくるのでフォームにに貼り付ける。

参考程度に。
0292デフォルトの名無しさん2014/08/21(木) 03:12:52.59ID:87qwD2AX
>>278
入門者向けなら
Visual C# 2013 パーフェクトマスター とか
猫でもわかるシリーズ とか
あとはタイトルにVisualStudioと冠しているのを探せばよろしいかと

ある程度覚えて.NETの仕組み自体を理解したいならMS公式の
プログラミング.NET Framework(Jeffrey Richter) とか
でもこちらは上級者向け
0293デフォルトの名無しさん2014/08/21(木) 03:38:41.48ID:NL9QY8jL
>>292
どうもありがとうございます。
早速書店に行ってきます。
0294デフォルトの名無しさん2014/08/21(木) 04:12:46.74ID:JsL1zQzE
早速書店に行ってきます笑
0295デフォルトの名無しさん2014/08/21(木) 05:43:06.74ID:hIdRF2P5
projAで作ったUserControlをprojBで使いたいんですが、参照設定してもツールボックスに出てこないんですが、何か忘れていますか?
0296デフォルトの名無しさん2014/08/21(木) 05:45:42.59ID:hOocc919
>>295
ビルド
0297デフォルトの名無しさん2014/08/21(木) 06:02:45.49ID:hIdRF2P5
ビルドしても出てこないんです。
projAとprojBが別々のソリューションなんですが、それが原因でしょうか?
0298デフォルトの名無しさん2014/08/21(木) 06:41:10.58ID:6yN9jcnV
publicじゃないとか。
本当に参照に追加されてるかどうか確かめるなら
コードエディタの方で名前空間.クラス名と打ち込んで色が変わるかどうか見る
0299デフォルトの名無しさん2014/08/21(木) 07:16:36.23ID:hIdRF2P5
>>298
アドバイスありがとうございます。
いろいろ試した結果、やはりソリューションが別々だと、
出ないようです。

Solution1
 projA ここにUserControl1作成
 projB projAを参照設定

==> projBでUserControl1がツールボックスに出る。
なので、同一ソリューションでは、上手く行く。

Solution2
 projC projAを参照設定

==> projCでUserControl1がツールボックスに出ない。

ようするに、同一のソリューション内では正常なのですが、
異なるソリューションでは、出ないんです。
全部VS2013でFramework4.0です。何が悪いんでしょうか?
0300デフォルトの名無しさん2014/08/21(木) 07:32:43.09ID:hIdRF2P5
どうやっても出ないんです。
VS2013 Update3のバグじゃないかなと思うくらい出ないんです。
0301デフォルトの名無しさん2014/08/21(木) 08:49:07.74ID:Yz297+aB
プロジェクト参照ならともかく、アセンブリを参照しただけでツールボックスに出てきたっけ?
ツールボックスの右クリックのアイテムの選択で参照して追加する必要があったような
0302デフォルトの名無しさん2014/08/21(木) 10:19:34.67ID:NL9QY8jL
>>294
何か可笑しいですか?
0303デフォルトの名無しさん2014/08/21(木) 12:41:11.80ID:9S57VCiO
projA の UserControl1 を projC のクラス内で使用して、コンパイルと実行は出来る?デザイナーではなくて、コード上で。
0304デフォルトの名無しさん2014/08/21(木) 13:24:30.58ID:npCrOf/M
デザイン時と実行時の振る舞いの違いかな
0305デフォルトの名無しさん2014/08/21(木) 13:29:01.36ID:hIdRF2P5
>>303
デザイナーではなくて、コード上ではインテリセンスにも出るし、
Formの上に無事に表示されました。
UserControlといっても、単にButtonを一個置いただけのシンプルなものです。
ツールボックスに出ないのが不思議です。
03062792014/08/21(木) 13:40:15.40ID:qbNPYBVD
>>285 でなんとかいけるかと思っていたのですが手こずってました。
>>291 でいけました。

ありがとうございました。
0307デフォルトの名無しさん2014/08/22(金) 04:30:26.88ID:4uiJKXyL
>>299
なにか他に原因があるんじゃないか?
もしその通りだとすれば、
サードパーティ製コントロール コンポーネントも全滅して
問題が大きくなっているはずだろうけど
そういう話は聞こえてこない
>>301 は試してみたのか?
0308デフォルトの名無しさん2014/08/22(金) 08:41:21.23ID:iJwHIx30
>>307
レスありがとうございます。
301を見落としていました。今試したところ、
 XXX.dllにはツールボックスに配置できるコンポーネントが何もありません。
と出ます。困った。
0309デフォルトの名無しさん2014/08/24(日) 12:42:01.47ID:EYMdVqe7
西アフリカで、アウトブレイクした潜伏期間延長型エボラの死者・罹患者の数を散布図にし近似曲線を出してみたら
片対数グラフで直線だから既に指数関数的増加だった

2014年に、西アフリカでアウトブレイクした潜伏期間延長型エボラの死者は、2014年8月半ばで1000人。←今ココ
2014年12月上旬で1万人。
この時点で世界規模で空路シャットダウン開始、世界経済大混乱

2015年5月で10万人。
2015年9月で100万人。
この時点で、第二次世界大恐慌発生

2015年大晦日で1000万人。

ちなみに
http://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%81%AE%E8%A5%BF%E3%82%A2%E3%83%95%E3%83%AA%E3%82%AB%E3%82%A8%E3%83%9C%E3%83%A9%E5%A4%A7%E6%B5%81%E8%A1%8C
:カナダ保健省のサイトでは体内に数個のエボラウィルスエアロゾルが侵入しただけでも発症するとしている
:ハマダラカが、吸血したての人の新鮮血を媒介しているという学説が浮上している

エボラ出血熱は蚊やアブに刺されただけで感染する。

:「この地域には内戦、政府による搾取、テロが長い間続いており、それによって生まれた恐怖、貧困、猜疑心などがある。エボラは耐え難い騒音に付け加えられた一つのざわめきに過ぎない」
現地では

や る 気 は 皆 無
0310デフォルトの名無しさん2014/08/24(日) 13:57:00.60ID:gaQQwBox
コピペマン参上!まで読んだ。
0311デフォルトの名無しさん2014/08/24(日) 23:38:00.81ID:CUyBAPs+
>>308
ユーザー コントロールの partial クラス定義のところで
[ToolboxItem(true)] がついてないとか
0312デフォルトの名無しさん2014/08/27(水) 22:04:33.78ID:/LKK4qqK
LINQってなんて読むの?ラインキュー?
0313デフォルトの名無しさん2014/08/27(水) 22:55:23.15ID:bHLx5W9n
リンク
0314デフォルトの名無しさん2014/08/27(水) 23:22:02.12ID:j7X/JcPX
リンクって他の意味でも使うから、リンキューって読んでた
0315デフォルトの名無しさん2014/08/28(木) 07:29:06.85ID:1HnlY5d+
エルインキュー
0316デフォルトの名無しさん2014/08/28(木) 16:41:21.43ID:wWBbSxVR
利休
0317デフォルトの名無しさん2014/08/28(木) 17:46:34.67ID:QwMv3Idg
助けてーリンク!
0318デフォルトの名無しさん2014/08/29(金) 01:13:22.93ID:b0G4rJJs
ヘイ!リッスン!
0319デフォルトの名無しさん2014/08/29(金) 14:31:36.19ID:i+ciY2lr
ラインク
0320デフォルトの名無しさん2014/09/02(火) 20:17:40.82ID:DKwFM48V
素人が独習買って、オブジェクト指向以降が全く頭に入らず挫折しそう。強引に配列進んだけどよくわからん。とりあえずオブジェクト指向に戻った方がいいんでしょうか?それともとりあえず進むべき?
0321デフォルトの名無しさん2014/09/02(火) 20:33:16.35ID:ma9XsxCL
一般論で言えば、金が許すなら、理解しづらい本に固執するよりもっとやさしい本を
探す方が賢明だと思う。

独習は読んだことないから正当な評価はできんけど。
いずれにしろ今時オブジェクト指向の理解を避けて通るのは無理。
って言ってもオブジェクト指向そのものは全然難しい話じゃないけど。
0322デフォルトの名無しさん2014/09/02(火) 20:37:31.78ID:y16u0Hqw
勉強したいなら好きな本読んでろ
プログラミングできるようになりたいならぐぐりながら暗中模索して作れ
0323デフォルトの名無しさん2014/09/02(火) 20:43:51.15ID:hUjf3Nke
>>320
@ITの川俣の入門記事読めば?
川俣は好き嫌いがあるだろうけどあれだけは評価できる
0324デフォルトの名無しさん2014/09/02(火) 23:49:49.18ID:+PmGTbdC
プログラム入門として基本となるCを勉強するだろ
そんで普通に練習用のアプリ書いたら
いつの間にか構造体とその構造体専用の関数が増えてきたなあって気が付くだろ
それを言語レベルで書きやすくサポートしたのがオブジェクト指向な
合理的に考えて行ったら誰でもすぐに辿り着く方法のひとつでしかない
先人はオブジェクト指向なんて仰々しい名前を付けて有り難がってるけど本来そんなに難しく構えるもんじゃないんだよ
人間の赤ん坊が二本足で歩き出すように自然に気が付き身に付くものだから本なんか読まなくてもいいよ
とにかく良く考えてコードを書くことだ
そうすればオブジェクト指向は自然に身に付く
0325デフォルトの名無しさん2014/09/03(水) 00:02:58.72ID:lXYrBgsz
まるで関数のプリフィックスを削るためにOOPがあるかのような物言い
0326デフォルトの名無しさん2014/09/03(水) 00:12:04.06ID:Tb5gOUQT
>>325
それは逆だよ
記述を楽にするためにOOPが発明されたのではなく
OOPでの実装を楽にするための記述が発明されたんだよ
OOPを楽にするためにプレフィックスを書かなくてもいいような言語を作ったわけだな
0327デフォルトの名無しさん2014/09/03(水) 00:30:49.07ID:1QhJ8A9t
例えばグローバル変数に対して、アプリのあちこちにその変数に対する実際の読み書き処理が有ると、
仕様変更が有ったときは、特に巨大アプリだったら1つも漏らさず修正して回るのは大変だし、
どっかの処理がミスってたというのは有りがちのバグだったりする。

でも、そのグローバル変数にアクセスする為のライブラリ一式が提供されて、
それを通じてしか変数に触れないようになっていれば、そのライブラリを修正すれば良くて、
どっかの処理がミスることも有りえない。

という風に考えると現実的で分かり易いかな。

↑これが、いわゆるカプセル化というもので、
そのライブラリを容易に拡張する仕組みが「継承」だし、
同じインターフェースのまま、ライブラリ側の処理をごっそり差し替えることが出来る仕組みが「多態」だしで。

「オブジェクト指向」なんて名前だと、「物として考える??何のために??」なんて、初心者には訳わからんよね。
03283202014/09/03(水) 00:49:09.80ID:5O+o1mFv
皆さん、ありがとうございます。
とりあえず何となくはわかってきたんですが、コンストラクターやらなんやらで頭がこんがらがってしまいました。とりあえず分かるまでここはひたすらリピートして、ほかの記事も読みながらやってみます。
30超えてのプログラミングチャレンジですが、なんとか物にしたい!
0329デフォルトの名無しさん2014/09/03(水) 01:04:58.71ID:1QhJ8A9t
コンストラクターは、最初に必ず初期化しないといけない変数を確実に初期化出来る仕組みってことだな。

そういう仕組みの無い言語だと、初期化漏れでバグるというのが、まれに頻繁に有るw問題だったりするw
0330デフォルトの名無しさん2014/09/03(水) 02:17:14.17ID:IorV3B6b
const楽太〜
0331デフォルトの名無しさん2014/09/03(水) 02:57:54.26ID:tM7J5uOO
やっぱ教えてもらうなら若い女性がいいよね
0332デフォルトの名無しさん2014/09/03(水) 07:19:57.80ID:0crzKw/t
>>329
コンストラクタと変数宣言時の自動初期化はまた別の話だろ
0333デフォルトの名無しさん2014/09/03(水) 07:51:56.21ID:gbep5tPJ
ちょっと視点が違うな。
上で書いたのは、非オブジェクト指向言語では、むき出しの変数に対する初期化とか初期処理が
漏れてしまうことが有るけど、クラス化によるカプセル化でそれが無くなるという内容を意図してる。
0334デフォルトの名無しさん2014/09/03(水) 10:11:26.34ID:WbIyRM3C
最近すごくイライラするのは

class Point(int x, int y)
{
 public int X{ get; } = x;
 public int Y{ get; } = y;
}

C#erはこんなので喜んでるけど、Xが3箇所、Yが3箇所に出てくる
いままでだと

class Point
{
 public int X{ get; private set; }
 public int Y{ get; private set; }

 public Point(int x, int y)
 {
  X = x; Y = y;
 }
}

4箇所だったのが、3箇所になった程度で喜んでるわけじゃん
もっとScalaみたいに

class Point(val int X, val int Y){}

こんな決まり文句は1箇所で、一行でかけなければ導入する意味が無いと思うんだよ
0335デフォルトの名無しさん2014/09/03(水) 10:50:57.16ID:K9clyNMl
別に喜んでない 苦肉の策だねーぐらいの印象
0336デフォルトの名無しさん2014/09/03(水) 12:55:17.48ID:SJ+lkstv
友達いないから脳内で喜んでるC#探したんだろ
その程度察する能力は持てよ
0337デフォルトの名無しさん2014/09/03(水) 13:09:50.70ID:/IfKcUHI
化石言語C#
0338デフォルトの名無しさん2014/09/03(水) 21:35:36.64ID:S+Bh3MK5
自動プロパティの初期値か

>もっとScalaみたいに
>class Point(val int X, val int Y){}

C#er()の感覚だと本来それは「キモい」んだよ
まあいろいろキモい新機能が追加されてきちゃったわけだけども
0339デフォルトの名無しさん2014/09/04(木) 00:43:49.33ID:wyz+uFP0
それ以前に、Pointのような物は構造体で作れよ
0340デフォルトの名無しさん2014/09/04(木) 01:13:04.28ID:m8z0a+Ny
if (x == null) x = new CX; return x;

上のコードのように初回アクセスのみなにかしら初期化処理を実行
それ以後はオブジェクトを返すだけ
アクセスするまではnullのまま

このコードからif文のオーバーヘッドを取り除くにはどう書けばいいの?不可能?
0341デフォルトの名無しさん2014/09/04(木) 01:32:34.99ID:RKO8bX3L
>>340
こういう感じ?
動くか知らん。

private Func<CX> retX = () =>
  {
    x = new CX();
    retX = () => x;
    return x
  };

....

public CX X
{
  get { return retX(); }
  set {...}
}
0342デフォルトの名無しさん2014/09/04(木) 01:36:11.93ID:RKO8bX3L
C#のフィールドは確かインスタンスメンバー使って初期化できないから無理か。
VBならできそうだけど。
やっぱりコード書いてないとどんどん忘れるな。
0343デフォルトの名無しさん2014/09/04(木) 01:40:01.66ID:m8z0a+Ny
>>341
ifよりコスト大きくない?
0344デフォルトの名無しさん2014/09/04(木) 01:44:04.79ID:RKO8bX3L
う〜ん、どうでしょう(プリティ長嶋で)
0345デフォルトの名無しさん2014/09/04(木) 01:48:01.72ID:B/UF4Mgg
>>340
x が任意のクラスのメンバーなら、そのクラスインスタンス作成時に初期化すればいい
そうでないなら、(if 文でなくても)なんらかの分岐は避けられないんじゃね
三項演算子とか null 合体演算子とかショートサーキット評価とかでも見えない分岐はあったと思う
コードメトリックスを計算するとサイクロマティック複雑度の値で分岐の存在がわかるはず

>>341
できる
0346デフォルトの名無しさん2014/09/04(木) 05:37:13.86ID:TIeZUDIH
そもそもnewに比べれば全く無視できるコストでしょ
わざわざlazyな初期化かつキャッシュしたいってことは尚更
0347デフォルトの名無しさん2014/09/04(木) 05:38:21.51ID:wyz+uFP0
return x??(x= new CX()};ってのが常套手段だけどオーバーヘッド避けるなら予め初期化しか無いでしょ
0348デフォルトの名無しさん2014/09/04(木) 05:46:13.31ID:TIeZUDIH
nullオブジェクトを入れといて、そのメソッド内でCXを初期化してxを差し替えるという手もある
でも>>346で言ったようにまずは測定してみるべきだけどね
インスタンス生成と分岐の処理時間は何倍で、初期化以後に何回程度そのインスタンス取得メソッドが呼ばれるか
0349デフォルトの名無しさん2014/09/04(木) 06:26:48.95ID:zRlj+QsQ
nullチェックのコストなんざ屁でしょ
0350デフォルトの名無しさん2014/09/04(木) 09:12:58.43ID://Mt3g2G
分岐予測があるんだから毎回どっちかになる分岐のコストなんか考えなくていいでしょ
0351デフォルトの名無しさん2014/09/04(木) 20:30:39.19ID:SeObKpOy
素直にLazy使えよ
0352デフォルトの名無しさん2014/09/04(木) 20:42:18.94ID:FUEgnzZL
下記のようなコードを書くと、
「'classTest.Form1.Employee' に、引数を 2 個指定できるコンストラクターがありません」
とエラーが出ます。

これは、どのような書き方をすれば良いのでしょうか?
よろしくお願いします。

public void test()
{
List<Employee> employeeList = new List<Employee>();
employeeList.Add(new Employee(2, "William Henry Gates"));
employeeList.Add(new Employee(1, "Lawrence Edward Larry Page"));
}

public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
}
0353デフォルトの名無しさん2014/09/04(木) 20:56:35.89ID:SeObKpOy
エラーメッセージの通り引数2個のコンストラクタがない
0354デフォルトの名無しさん2014/09/04(木) 20:58:05.35ID:CRg7xf6G
>>352

(1) 「引数を 2 個指定できるコンストラクター」を書く。
(2) プロパティー初期化子を使う。
0355デフォルトの名無しさん2014/09/04(木) 21:03:03.22ID://Mt3g2G
一々コンストラクタを書かなきゃいけないのは
本当に苦痛だよね
0356デフォルトの名無しさん2014/09/04(木) 21:33:28.40ID:FUEgnzZL
プロパティー初期化子のヒントをもとに
以下のように書くことができました。

ありがとうございました。

public void test()
{
List<Employee> employeeList = new List<Employee>();
employeeList.Add(new Employee() { ID = 2, Name = "William Henry Gates" });
employeeList.Add(new Employee() { ID = 1, Name = "Lawrence Edward Larry Page" });
}

public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
}
0357デフォルトの名無しさん2014/09/04(木) 21:45:26.04ID://Mt3g2G
その初期化を使うとだいたいメンバが増えても書き換えるのを忘れて
ヌルポインタエクセプションに遭遇することになんのさ
0358デフォルトの名無しさん2014/09/04(木) 23:55:40.83ID:T9GfJae9
.NETではぬるぽではなくぬるりです。
0359デフォルトの名無しさん2014/09/05(金) 00:32:33.87ID:a7+2CN2u
>>355
そういう考え方もあるんだな
俺は .NET を始めたときに
デストラクタを書かない風習が気持ち悪かった
0360デフォルトの名無しさん2014/09/05(金) 06:25:47.09ID:9R1ZKGlv
だってデストラクター書くとジェネレーションが下がって効率悪くなるし…
0361デフォルトの名無しさん2014/09/05(金) 16:40:11.49ID:8DUbPaVU
is演算子って実際はどういう処理なの?
必要な動作の割に処理速度が早過ぎるから多分キャッシュされてるんだと思うんだけど

var table = obj.GetType().GetIsTable();
bool? nullable = table[type.ID];
if(nullable == null)
{
 bool result = Calc(obj, type);
 table[type.ID] = result;
 return result;
}
else{ return nullable.Value; }
0362デフォルトの名無しさん2014/09/05(金) 17:02:32.84ID:TpiIS8S+
どういうレベルで実際というのか
ILレベルなら構造体にも使えるasみたいな命令が存在してるので
それでnullかどうかテストする
x86レベルならインスタンスが型情報へのポインタを持ってるので
そのポインタが指すアドレスが指定されている型情報のアドレスと一致してるかテストする
0363デフォルトの名無しさん2014/09/05(金) 18:21:11.92ID:hFhhE4Vw
public class MyClass
{
 public string s;
 public MyClass()
 {
  s = "�Aコンストラクラの設定を優先したい";
 }
}
static void Main()
{
 MyClass mc = new MyClass() { s = "�@初期値を入れるが" };
 Console.WriteLine(mc.s);
}

実行すると、�@が表示されるのですが、コンストラクタ内での設定を優先する
ことは可能でしょうか?
0364デフォルトの名無しさん2014/09/05(金) 18:29:39.24ID:NecQB92T
プライベートにして外部から入れさせなければいいんでは?
0365デフォルトの名無しさん2014/09/05(金) 18:46:56.49ID:8DUbPaVU
>>362
一致じゃないでしょ
isは継承・実装されてるか調べるんだから親をたどっていく必要があるでしょ
でも測ってみると親を辿らなきゃいけないケースでも全然時間がかかってない
0366デフォルトの名無しさん2014/09/05(金) 19:06:41.73ID:hFhhE4Vw
>>364
レス有難うございます。
sはプライベートには出来ない事情がありまして、それは、
sの初期値がファイルに保存されているので、それをコンストラクタ内で
読み込みsに設定してます。
もしファイルが無い場合に限り�@の初期値をsに入れたいのですが、どうやっても、
�@が設定されてしまうんです。
0367デフォルトの名無しさん2014/09/05(金) 19:10:26.27ID:aX2ucZki
これ「は」ペンですの「は」の意味を聞いてるのとほとんど同じだねw

読んだままの意味っていうか、よくis-a関係とhas-a関係の違いって文脈で出て来る
isの意味そのまんまっていうか。
0368デフォルトの名無しさん2014/09/05(金) 19:25:22.30ID:79mj9gnx
>>366
プロパティにすれば?
private string _s = null;
public string S {
set { if (_s == null) _s = value; }
}
0369デフォルトの名無しさん2014/09/05(金) 19:47:30.79ID:TpiIS8S+
>>365
そだね 一致しない場合はインスタンスの型情報へのポインタが指す型情報の
親とで一致するかってのをさかのぼる必要があるね

でC0からC9まで継承関係作って試してみたけど
c9 is C9とc9 is C5とc9 is C0でちょうど良い感じの時間差が出てるよ
0370デフォルトの名無しさん2014/09/05(金) 19:57:16.27ID:y1mYSEPB
>>366
>ファイルが無い場合に限り
をどう判定するかによるんじゃないの
0371デフォルトの名無しさん2014/09/05(金) 20:10:18.35ID:0CDHk7zA
>>366
�@の初期値をコンストラクタで設定 or コンストラクタの引数にする or >>368
0372デフォルトの名無しさん2014/09/05(金) 21:08:35.96ID:hFhhE4Vw
>>368
ありがとうございました。この方法で出来ました。
初期化の順番は、コンストラクタが最初で、次に初期化子
のようですが、この順番は保証されているのでしょうか?
ググっても分りませんでした。
0373デフォルトの名無しさん2014/09/05(金) 21:20:12.20ID:L9jBRhl4
初期化子ってシンタックスシュガーだから

T t = new T(){ member = m };

↓

T t = new T();
t.member = m;

と同値
0374デフォルトの名無しさん2014/09/05(金) 21:47:28.09ID:hFhhE4Vw
>>373
解説、ありがとうございました。
追加で質問なのですが、
ファイルが無く、初期化子でも初期値が与えられ無かった場合に、
デフォルトの初期値を与えたい場合のやり方が分りません。
368さんの方法で、初期値 null を
private string _s = "�Bデフォルト初期値";
としたらうまく動かないですよね。どうしたらいいでしょうか?
0375デフォルトの名無しさん2014/09/05(金) 21:56:27.31ID:0CDHk7zA
コンストラクタで設定しろよ…
0376デフォルトの名無しさん2014/09/05(金) 21:58:23.14ID:L9jBRhl4
フィールドの(初期)値と、ファイルの有り無し、読み込みの成功失敗が直結しすぎじゃね?
そこを分離して考えた方がいいと思う

常にファイルを使うクラスなら、パス文字列を受けるコンストラクタにして
有効なパスを渡す責任をどこか別のクラスなりに使用者の責任にするとか。
無効なら例外投げる。
0377デフォルトの名無しさん2014/09/05(金) 22:22:56.34ID:zQgA7Cgw
ファイルがなければデフォルトを返すようなクラスでもつくって
それをMyClass.sに渡しなよ
0378デフォルトの名無しさん2014/09/05(金) 22:28:10.39ID:8DUbPaVU
>>369
http://ideone.com/QvbEBP

全然出ないけど
0379デフォルトの名無しさん2014/09/05(金) 22:41:00.88ID:0CDHk7zA
ジェネリックにしてvarで宣言しろよ…

http://ideone.com/evU4S0

後、ideoneよりローカルの方が差が出るっぽい
0380デフォルトの名無しさん2014/09/05(金) 22:41:20.23ID:TpiIS8S+
普通に考えればC0 obj is C0ならobjがnullかどうかだけに最適化するよね
0381デフォルトの名無しさん2014/09/05(金) 22:43:08.08ID:8DUbPaVU
>>378はなし
http://ideone.com/xG8MSu
http://ideone.com/xYwbJb

たしかにちょっと違いはあるね
法則はよく分かんないけど
03823202014/09/06(土) 10:57:26.68ID:IgQpYU5t
>>379
素人質問ですみません。
Varは便利な反面、実行速度が下がるという認識で宜しいですか?
0383デフォルトの名無しさん2014/09/06(土) 11:00:00.64ID:lDOzh9kA
全く変わらない
0384デフォルトの名無しさん2014/09/06(土) 11:12:54.02ID:pLN4mCUo
varは単なるシンタックスシュガー
0385デフォルトの名無しさん2014/09/06(土) 11:55:53.42ID:/AsM7GKg
型名書くのを省略してるだけ
0386デフォルトの名無しさん2014/09/06(土) 12:26:18.17ID:4S46Uu0i
せいぜいコンパイル時間が数クロック伸びるぐらいか
と思ったがvar使った方がコンパイル時間が短くなる可能性もありそう
0387デフォルトの名無しさん2014/09/06(土) 13:33:42.01ID:KJA2RRpG
>>386
> 数クロック伸びるぐらいか

そんな微妙なわけないだろ w

> と思ったがvar使った方がコンパイル時間が短くなる可能性もありそう

これはあるかも
字句解析は楽になるし、型名書かれてたら、色々チェックも要るしな
0388デフォルトの名無しさん2014/09/06(土) 14:43:12.03ID:bx1Lvhhz
SDKは
Microsoft Windows SDK for Windows 7
Windows SDK for Windows 8.1
の二つありますが、どちらを入れればよいでしょうか?
とりあえず8.1のほうが新しいようなので8.1入れておけばよいですか?
0389デフォルトの名無しさん2014/09/06(土) 15:00:15.85ID:GuSRX+KM
C#でWinSDKなんか要らん
VS2013Expressを入れるだけでいい
0390デフォルトの名無しさん2014/09/07(日) 05:12:05.68ID:AvfUsBTO
コンパイルした時にinlineに展開されたか確かめるオプションないのか?
vc++だったらビルドログに書いてあるのによォ
0391デフォルトの名無しさん2014/09/07(日) 07:44:14.82ID:KNwhARCn
>>390
コンパイル時にインライン展開は一切行われない
インライン展開が行われるのはJITコンパイル時
ブレークポイントかけてアセンブリコードを確認するくらいしかないな
0392デフォルトの名無しさん2014/09/08(月) 15:29:39.83ID:xt4eq/u0
C#初心者向けのサイトを見ていて思うのですが
簡素で魅力のないサンプルソースで文法を解説していますが
全く頭に入ってきません
理解しやすいように書けているとは思います
**ただ、デリゲートを使用して単純な四則演算をした結果をコンソールに文字列として表示したいとは思いません**
「一歩踏み込んでなぜそういう機能が必要なのかを説明する」と銘打っておきながら全くその部分を表現できていない気がします
初心者にとって必要なのはより実用的で魅力のある例題をC#を使って如何に実現していくかです
その過程において、各種文法を説明してもらえると非常に参考になると思います
0393デフォルトの名無しさん2014/09/08(月) 15:34:52.16ID:Q1dnaSh8
実用的で魅力のある例題はその人ごとに異なるんだよなぁ
0394デフォルトの名無しさん2014/09/08(月) 15:34:59.01ID:7lA1CirZ
ポエマーきもっ、まで読んだ。
0395デフォルトの名無しさん2014/09/08(月) 15:41:14.45ID:xt4eq/u0
「文法はあくまで手段であって、目的ではない」
大変崇高なお考えを表明していたわりに
文法を解説するのが目的とするような構成になっているのが残念です
これでは見ている人は目的を見つけられないままです
ある程度プログラミングに熟達した人で、目的は既に有り、参考程度にチラ見するのには良いとは思いますが…
0396デフォルトの名無しさん2014/09/08(月) 15:43:05.84ID:uk89ZkdW
サイト名も書かずに批判とかちょっと・・・
0397デフォルトの名無しさん2014/09/08(月) 15:54:15.31ID:xt4eq/u0
Google画像ビューアを作ろう

ここで問題が起きました
画像をダウンロードしている間、操作が受付られません
これではキャンセルしたくてもできないことになります
非同期プログラミングの解説

どうせなら、Googleだけじゃなくて、楽天の商品一覧も表示できるようにしよう
こちらも同じ操作で画像一覧を取得できるようにしたい
URLから自動で判別、判別したサイト用の画像ダウンロードクラスを返せるようにしたい
ここでFactoryデザインパターン、多態性、インターフェースなどの解説

ダウンロードした画像を保存したい
データベースの解説
0398デフォルトの名無しさん2014/09/08(月) 15:58:00.98ID:xt4eq/u0
>>397のような構成にすれば
実際に文法がどのように使われているかをより理解できると思います
画像ビューアは人によって魅力的には感じないかもしれませんが
あらゆるソフトを開発する上で参考になると思います
少なくともコンソールに文字列を書くだけのコードよりはマシだと思います
0399デフォルトの名無しさん2014/09/08(月) 16:07:24.73ID:xt4eq/u0
文法だけ理解できても、使われる場面を知らなければギャップは埋まらないと思います
ここが初心者にとっての大きな壁になるのは間違いないです
頭に思い浮かべる理想のソフトウェアと文法との溝を埋めるのに時間を費やすのが大半だと思います
わからない言葉は検索すれば大抵わかります
しかし、わからないことがわからないのでは調べようがありません

Google用、楽天用のクラスを作ったとして
それらクラスをインターフェースを通して同じように扱い簡潔なコーディングができること自体が知らないのです
簡潔に書きたいという発想すら出ないかもしれません
0400デフォルトの名無しさん2014/09/08(月) 16:37:43.80ID:Ur6ZrZoJ
前もこの類のアホいたね〜
コピペで動かないサンプルコード書くなとか
実用性のないサンプルコード書くなとか

お前は逆引き辞典でも写経してろ
いま流行だからな、写経
0401デフォルトの名無しさん2014/09/08(月) 16:46:38.08ID:kOvGrd4l
それこそblogでやれよ
0402デフォルトの名無しさん2014/09/08(月) 16:47:24.62ID:JTBqJ7f/
またすごいのが来たなw
0403デフォルトの名無しさん2014/09/08(月) 16:49:16.64ID:MqCKZXv3
Form1置いたcomboBox1 (DropDownStyleyはDropDown)に表示される文字列が
全選択された表示になりますが、これをさせないようにするお勧めの方法教えてください。
ググったのですが結局良く分りませんでした。一切全選択させないようにしたいのです。
0404デフォルトの名無しさん2014/09/08(月) 16:51:57.59ID:+gKVwBSi
>>399
バカにしてる奴もいるけど、俺は君の考えに賛成だよ。
ぜひとも頑張って後陣のための解説を書いてくれ。
0405デフォルトの名無しさん2014/09/08(月) 17:00:17.83ID:MqCKZXv3
>>403
誤:Form1置いた
正:Form1に置いた
でした。アドバイスよろしく。
0406デフォルトの名無しさん2014/09/08(月) 17:17:58.99ID:Ex7harAL
>>403
プロパティに何かあったと思うわ
0407デフォルトの名無しさん2014/09/08(月) 17:28:59.09ID:Q1dnaSh8
>>403
つまり、テキストの手入力はさせたいけど全選択だけはさせたくないって事?
マウスでテキストの端から端までドラッグしたらどうなるの?
0408デフォルトの名無しさん2014/09/08(月) 17:46:16.93ID:7lA1CirZ
>>403
フォームのOnLoadとか適当なところに

comboBox1.GotFocus += (x, y) =>
{
  comboBox1.SelectionLength = 0;
}

とか入れておけば一応実現できるようだけど、ちょっと不恰好だね。
0409デフォルトの名無しさん2014/09/08(月) 18:16:40.18ID:MqCKZXv3
みなさん、ありがとうございました。
408さんの方法でできました。サンプルコードありがとうございます。助かりました。

>>407
私の説明不足でした。
一切全選択させないと書きましたが、それは、間違いで、
通常のユーザー操作で文字列の選択などは普通に出来るのが望ましいのですが、
Formが表示された時に、勝手に全選択になるのでそれを防止したかったのです。
comboBox1のアンカーをFormの左右に張り付けると、Formがリサイズした時にも
勝手に全選択になりましたので、resizeイベントにもSelectionLength=0を入れました。

どうして、conboBoxは、勝手に全選択する動作するのでしょうか?
0410デフォルトの名無しさん2014/09/08(月) 21:35:15.34ID:7bILeyvz
>>409
Windowsの仕様っぽい挙動なので諦めるしか無いね
0411デフォルトの名無しさん2014/09/08(月) 22:22:31.79ID:DOYjbwxO
配列って共変なのにIList<T>とICollection<T>を実装してるんだよな
特殊型ってことで深く考えたらダメなのか…
0412デフォルトの名無しさん2014/09/08(月) 23:25:25.90ID:JcWBhojR
配列の共変性はジェネリック導入より前からある由緒正しい機能だからな
0413デフォルトの名無しさん2014/09/09(火) 00:35:16.81ID:dbFehtIN
カスタムクラスのプロパティ群を配列で返したいんですが何か良い方法はないですか?
具体的にはSQLのパラメータとしてobject[]形式で渡したいんですが
0414デフォルトの名無しさん2014/09/09(火) 00:42:26.19ID:bLmIR7/j
>>413
リフレクションを使えばOK
0415デフォルトの名無しさん2014/09/09(火) 01:14:02.34ID:dbFehtIN
public IEnumerable<object> GetProperties()
{
var properties=this.GetType().GetProperties();

foreach(var p in properties )
{

yield return p.GetValue(this);
}
}

こんな感じでしょうか?
できたような気がします
ありがとうございました
0416デフォルトの名無しさん2014/09/09(火) 01:22:12.09ID:AwUfMfP3
yeildで返すならSelect使おうぜ
0417デフォルトの名無しさん2014/09/09(火) 01:41:52.39ID:dbFehtIN
public IEnumerable<object> GetProperties()
{
  return this.GetType().GetProperties().Select(p=>p.GetValue(this));
}

こんな感じですか?
いろいろやり方があるんですね
勉強になりました
0418デフォルトの名無しさん2014/09/09(火) 12:46:17.84ID:zTFR0fil
C#2.0で止まってるから異次元だな
0419デフォルトの名無しさん2014/09/09(火) 16:42:10.33ID:QvtMIPgo
同じく
0420デフォルトの名無しさん2014/09/09(火) 20:10:12.62ID:3ojrWj8I
Class1.dll プロジェクトのDebug構成を
Form1.exeプロジェクトのDebug構成から参照設定すると、
Form1.exeプロジェクトのRelease構成もClass1.dllのDebugのほうを
参照するころになりますが、どうしてReleaseならReleaseを参照しないのでしょうか?
どうすればDebugとDebug、ReleaseとReleaseの参照設定にできますか?
0421デフォルトの名無しさん2014/09/09(火) 20:14:32.65ID:AwUfMfP3
プロジェクト参照
0422デフォルトの名無しさん2014/09/09(火) 20:41:22.26ID:3ojrWj8I
レス有難うございました。
試したのですが
Solution1
 Class1 PJ
 Form1 PJ
のように、
が同じソリューションならDebugとDebug、ReleaseとReleaseに出来たのですが、
Solution1
 Class1 PJ
Solution2
 Form1 PJ
のように別々のソリューションの場合には、DebugとDebug、ReleaseとDebugになってしまうのですが、
この場合はどうすればよいでしょうか?
0423デフォルトの名無しさん2014/09/09(火) 20:48:25.62ID:AwUfMfP3
違うソリューション(ディレクトリ)でもプロジェクト参照は可能
〜projファイル見てるだけだから
0424デフォルトの名無しさん2014/09/09(火) 20:53:22.98ID:AwUfMfP3
間違った
Solution2にClass1 PJを追加する必要がある
(既存プロジェクトの追加とかで)
0425デフォルトの名無しさん2014/09/09(火) 21:11:14.79ID:3ojrWj8I
>>424

たびたびレス有難うございます。
上手く行きました。感謝です。

>>Solution2にClass1 PJを追加する必要がある
>>(既存プロジェクトの追加とかで)

これを行うと、Class1 PJがソースコードも含めて全てSolution2に
コピーされると勘違いしていました。

とにかく有難うございました。
0426デフォルトの名無しさん2014/09/09(火) 23:58:48.08ID:L9KAhRjp
>>420
Conditionという便利なものがあるからそれを使えばいいよ
プロジェクト参照は相互参照したケースなどに対応できないから頼らない方がいい
0427デフォルトの名無しさん2014/09/10(水) 06:30:26.69ID:Nhb5WnWQ
いや相互参照の方をやめろよ
0428デフォルトの名無しさん2014/09/10(水) 06:39:29.40ID:YXIdBL/V
SQLiteを使ってデータの読み書きをするプログラムを作ろうとしています
調べるとSqlDataAdapterでDataTableを取得してDataGridViewに表示する方法と
SQLiteDataReaderを使ってList<>型でデータを取得する方法がありました
前者の方が手軽に思えるのですが、あえてSQLiteDataReaderする意味はあるのでしょうか?
将来的にはどちらがいいのでしょうか
0429デフォルトの名無しさん2014/09/10(水) 11:34:11.38ID:ofDxZsuV
>>426>>427
どっちが良いでしょうか?
0430デフォルトの名無しさん2014/09/10(水) 12:34:45.05ID:ofDxZsuV
public Dictionary<string, Dictionary<string, string>> MyDict = new Dictionary<string, Dictionary<string, string>>();

というデータ構造の変数を定義したら、プログラミングが物凄くややこしくなりそうなのですが、
もっとお勧めの方法ありますか?
0431デフォルトの名無しさん2014/09/10(水) 14:35:04.65ID:IWx4FyJE
VS2010環境で作成しています。
ボタンの表示をカスタムしたいのですが、うまくいかないため質問致しました。

1.
通常のボタンはクリックされている時と離した時にグラフィックが変わります。
同じように画像を2種類用意して、ボタンがクリックされている時と離した時にグラフィックが変わる方法が知りたい。
(button1_Clickで試していたのですが、クリック毎変える方法しか出来ませんでした)

2.
用意した画像とボタンの形を合わせたいので、ボタンの形状を変更する方法が知りたい。
(どこのコードを弄ればよいかわからないのです)

3.
フリー素材のカスタムコントローラーがあれば配布先を紹介して欲しい。
(1つ見つけたのですが、ビルド時にエラーとなり使用できませんでした)


知識があまりないので質問内容がわかり難いかもしれませんが、上記についてわかる方がいましたら、ご回答よろしくお願いします。
0432デフォルトの名無しさん2014/09/10(水) 14:44:07.11ID:fLkR7p90
相互参照なんてする奴はバカだよバカ
.NETにも一部相互参照してる部分があるしバカ
0433デフォルトの名無しさん2014/09/10(水) 19:22:26.20ID:4sCEstRk
そもそも相互参照ってどういうケースで必要?
0434デフォルトの名無しさん2014/09/10(水) 19:52:52.34ID:ofDxZsuV
結局

Conditionという便利なもの
プロジェクト参照

どっちがお勧めですか?
0435デフォルトの名無しさん2014/09/10(水) 20:27:32.05ID:fLkR7p90
プロジェクト参照に決まっとるやろ
0436デフォルトの名無しさん2014/09/10(水) 21:31:00.47ID:RxfE0CVd
>>431
class ButtonEx : Button
{
 bool pressed, hovered;
 protected override void OnPaint( PaintEventArgs e )
 {
  e.Graphics.FillRectangle( pressed ? Brushes.Red : ( hovered ? Brushes.Pink : Brushes.Blue ), new Rectangle( 0, 0, this.Width, this.Height ) );
 }
 protected override void OnMouseDown( MouseEventArgs mevent )
 {
  pressed = true;
  base.OnMouseDown( mevent );
 }
 protected override void OnMouseUp( MouseEventArgs mevent )
 {
  pressed = false;
  base.OnMouseUp( mevent );
 }
 protected override void OnMouseEnter( EventArgs e )
 {
  hovered = true;
  base.OnMouseEnter( e );
 }
 protected override void OnMouseLeave( EventArgs e )
 {
  hovered = false;
  base.OnMouseLeave( e );
 }
}
0437デフォルトの名無しさん2014/09/10(水) 22:09:56.64ID:epLGeAAS
>>428
SQLiteに限らず
接続型と非接続型という大きな違いがあるのだが

>>430
ロジック上そのデータ構造が必要ならしょうがない。
usingエイリアスで Dictionary<string, string>に別名つければ多少分かりやすくなる
http://ufcpp.net/study/csharp/sp_namespace.html
明確な理由がないならパブリックフィールドはプロパティにしとけ
0438デフォルトの名無しさん2014/09/10(水) 23:09:42.89ID:Vjdq7FSm
>>430
中でそういうの使うのは勝手だが、そんなものをpublicで持ち回るのはやめろ
プロパティにすればいいとかいう問題ではない
必要な操作だけをメソッドで公開すればいい
0439デフォルトの名無しさん2014/09/10(水) 23:13:05.66ID:4sCEstRk
>>430
エスパーしてみるがDictionary<Tuple<string, string>, string>>が必要なんじゃないか?
04404312014/09/10(水) 23:24:49.26ID:IWx4FyJE
>>436
ありがとうございます。

早速、試してみます。
0441デフォルトの名無しさん2014/09/11(木) 00:11:57.33ID:HBxO88GU
>>427
業務では客先都合があるから柔軟性のが大事
0442デフォルトの名無しさん2014/09/11(木) 00:39:46.82ID:vleFyoUy
相互参照を柔軟性って言っちゃう人って
0443デフォルトの名無しさん2014/09/11(木) 01:23:50.55ID:HBxO88GU
>>442
文盲乙
日本語できない在日は国に帰りなさい
0444デフォルトの名無しさん2014/09/11(木) 01:25:17.81ID:fAutpztf
どんな組み方したら相互参照が必要になるんだ…
0445デフォルトの名無しさん2014/09/11(木) 01:28:27.69ID:HBxO88GU
前任の頭がおかしい場合とかかな
0446デフォルトの名無しさん2014/09/11(木) 01:32:06.78ID:jelsmP7a
>>444
いや循環参照の誘惑に駆られることは正直あることはある。
もちろん実際やったりしないけど。
0447デフォルトの名無しさん2014/09/11(木) 01:37:05.95ID:qT2YKu7z
AがBを参照してる時に
BからAが呼び出したくなったら
コールバックを書けばよいだけなので
原理的に循環参照などということは起こらないのである
0448デフォルトの名無しさん2014/09/11(木) 01:38:28.12ID:HBxO88GU
だがやる奴はやるからね
それに対応する柔軟性が必要
0449デフォルトの名無しさん2014/09/11(木) 01:46:14.13ID:vleFyoUy
「必要」じゃねーよw
そういうのはトラブルシュートの範疇だろ
0450デフォルトの名無しさん2014/09/11(木) 06:10:03.07ID:jpjc/vED
最悪InternalsVisibleToでお茶を濁せるから相互参照の必要な場面なんて皆無
0451デフォルトの名無しさん2014/09/11(木) 09:00:20.11ID:vFz0q7PT
クラスの中のメンバ変数や関数に
this.
を付けるか付けないか迷うのですが、上級者の方はどうしていますか?
0452デフォルトの名無しさん2014/09/11(木) 09:05:10.02ID:YmSSQYEF
上級者じゃないけど。

結果として付いてるというか。
this.と打つとでてくるインテリセンス使いまくりなので。

this.IsHoge みたいなプロパティがしっくりくるし。

あと m_ のようなな接頭辞が嫌いというのもある
0453デフォルトの名無しさん2014/09/11(木) 12:00:10.42ID:2eUDjEIZ
>>447
呼び出しっていうか、アセンブリで定義されてる型を参照したくなるようなケースが
稀にあるんだよ。

それを分割が下手だからだというのは簡単だけど、綺麗に分けることとコードの可読性が
トレードオフの関係になってしまうような場合がある。
0454デフォルトの名無しさん2014/09/11(木) 12:24:41.05ID:p8xl46sF
分け方が綺麗かどうかというレベルの話じゃなくて、循環参照を持ち込むことは
そもそも分割することを止めてモジュールを結合してしまうことに他ならない
そんな重大な判断をしていることを理解して循環参照やる奴はまずいない
0455デフォルトの名無しさん2014/09/11(木) 17:42:52.05ID:MoOunUkv
>>451
俺はつけてるよ
メンバ変数に_つけてるけどthisもつける
0456デフォルトの名無しさん2014/09/11(木) 18:11:12.42ID:qT2YKu7z
>>453
な・り・ま・せ・ん
アセンブリA、アセンブリBを両方参照してるユーザーの側で調節するべき話で
BにAを埋め込んだって混乱が加速するだけ
0457デフォルトの名無しさん2014/09/11(木) 19:43:19.38ID:jpjc/vED
「OOPは私には解読できません」って言えばいいのになぜ「可読性が〜」とか一般化するのか
0458デフォルトの名無しさん2014/09/11(木) 20:00:11.20ID:fAutpztf
>>451
不要なものは付けない派だわ
ほぼしないけど、引数やローカル変数とメンバがかぶった場合のみ付ける

付けてた頃もあったけど、メソッドに付けるのはくどい&付け忘れも出てくるのでやめた
0459デフォルトの名無しさん2014/09/11(木) 20:04:02.96ID:fAutpztf
>>453
ジェネリック+インターフェースをうまいこと使ってればそんなケースはないはず
0460デフォルトの名無しさん2014/09/11(木) 20:26:45.40ID:vFz0q7PT
>>452>>455
レスありがとうございました。
私の場合、thisを付けたり付けなかったりと、一貫性が無いので、良く混乱します。
メンバ変数には、 先頭に m_ とか _  を付ける記法があるのですか?
私は、メンバ変数もローカルな変数もそういう区別をしていないので、その点でも
混乱します。参考にさせて頂きます。
0461デフォルトの名無しさん2014/09/11(木) 20:47:35.48ID:FYXirGQ9
>>459
あるんだよそれが。何度も言うがごく稀にだけどね。
0462デフォルトの名無しさん2014/09/11(木) 20:51:10.60ID:Jb+E9F2+
そろそろ打ち切れ
でないと打ち首な
0463デフォルトの名無しさん2014/09/11(木) 20:52:50.07ID:fAutpztf
>>461
具体例挙げてくれよ
0464デフォルトの名無しさん2014/09/11(木) 20:55:03.33ID:FYXirGQ9
だいたいジェネリック+インターフェースてw
そんなレベルの話をする奴とじゃ会話がかみ合わないよそりゃ。
0465デフォルトの名無しさん2014/09/11(木) 20:59:25.90ID:Jb+E9F2+
はい殺すから住所書け
0466デフォルトの名無しさん2014/09/11(木) 21:00:45.01ID:fAutpztf
煽るだけで具体例挙げれないのか・・
0467デフォルトの名無しさん2014/09/11(木) 21:01:54.77ID:jpjc/vED
相互参照と比べられるジェネリクスさんがかわいそう
0468デフォルトの名無しさん2014/09/11(木) 21:35:00.94ID:Xx5FAgYf
>>452
This is Hogeって合わない場合が出てきそうだな

>>460
他スコープの変数と被らないようにそういうネーミングにする流儀がある

わしは継承元のメンバ変数とかプロパティを参照する場合に付ける派
0469デフォルトの名無しさん2014/09/11(木) 22:22:40.79ID:f08XHIWY
ジェネリクスってなんか悪手なんだよな
汎用アルゴリズムとか以外に使うと全部裏目に出る
0470デフォルトの名無しさん2014/09/11(木) 23:05:12.85ID:vleFyoUy
おっと LINQ の陰口はそこまでだ
0471デフォルトの名無しさん2014/09/12(金) 01:01:57.34ID:avR4p+KM
循環参照アセンブリは新たに設計する必要はない
ただし既にあるものを扱える必要はある
必要はないと言って見ないふりをする奴は三流コーダーであり未来はない
0472デフォルトの名無しさん2014/09/12(金) 01:11:24.98ID:37/5+rHI
>>471
しつこいなあ、もうスレの流れ変わってきてんだろ
いい加減スレの流れ読めよ

なんで真っ赤になってるのか知らないけど、
前任者が循環参照やらかしたプロジェクトの保守案件なんてのはそこそこある
そういう仕事が来たら始末はつけるし、それは >>449 でトラブルシュートだといってるだろ
おまえの中で循環参照が「必要」なら、勝手にやってればいいじゃん
0473デフォルトの名無しさん2014/09/12(金) 01:17:15.06ID:avR4p+KM
>>472
俺こういう物分り悪い奴苦手
トラブルシュートでやらなきゃダメならそれは必要な技術だろうがこの脳無し
0474デフォルトの名無しさん2014/09/12(金) 01:19:42.57ID:Ny9x6EmV
循環参照が必要なんて言ってる奴は
ゴミ以下
前任者が循環参照してるなら少し手を入れて循環参照しなくすればよいだけの話
0475デフォルトの名無しさん2014/09/12(金) 01:21:09.66ID:37/5+rHI
>>473
必要なのは解決するための回避方法のノウハウでしょ・・・
あきれたもんだ
0476デフォルトの名無しさん2014/09/12(金) 02:08:31.78ID:avR4p+KM
本当お前らはド素人だなあ
世の中お前らの好き放題いじくり回せるコードばかりじゃねえんだよ
縛りに縛られた厳しい条件でも仕事をこなせる
それに見合う引き出しがある
それがプロだろうよ
やりたいことやったもんがちはプロじゃねえお遊びみたいなもんだ
自由度の高い案件なら学生バイトにでもやらせればいい
0477デフォルトの名無しさん2014/09/12(金) 02:48:26.63ID:6x9vw7C5
デスクトップアプリで自分専用に限定するなら
どのデータベースプロバイダを選びますか?
いろいろあり過ぎてわかりません
0478デフォルトの名無しさん2014/09/12(金) 06:12:59.87ID:FNTCQHYT
SQL Server
0479デフォルトの名無しさん2014/09/12(金) 07:12:01.16ID:Ldex5YVR
>>476
初心者スレでなにイキってんの僕?
0480デフォルトの名無しさん2014/09/12(金) 08:08:58.63ID:vg+iK/Ru
プロジェクト参照の話だったのになぜ相互参照くんが沸いてしまったのか
0481デフォルトの名無しさん2014/09/12(金) 14:55:21.70ID:Ny9x6EmV
ドカタのクソコードいじれない自慢ほど見苦しいものはない
0482デフォルトの名無しさん2014/09/12(金) 14:59:01.10ID:HR1YVjpK
いい加減リファクタリングが気軽にできる時代来ないもんかね
某案件であったけど、VSのリファクタリングコマンドがNGで実績のあるソースコードのコピペがOKってアホかよと・・・
0483デフォルトの名無しさん2014/09/12(金) 19:51:00.46ID:Wjkd757i
やっぱコピペ指向だよな
0484デフォルトの名無しさん2014/09/12(金) 19:52:29.48ID:nceQ+kAP
実績がない奴の意見は受け付けない
0485デフォルトの名無しさん2014/09/12(金) 20:04:13.12ID:We4wKH2p
オレは一人でビジネスホテル泊まる時は、フロでスカトロオナニーするよ、必ず。
シャワーヘッドを外して微温湯を肛門から注入。
腹をパンパンにさせてから、ちょっと我慢タイム。
まずはフロの栓をする。
そしてもう一度パンツをはいて、限界を迎えたら、中に思いっきり出すんだ。
イチジク浣腸のウンコはあんまり臭くないけど、お湯浣腸のウンコはスゴイ匂い。
後ろからそっと手をあててパンツの膨みを愉しむ。茶色い汁が付いた左手の指の匂いを嗅いで、舌を付ける。ああ、俺ってイヤらしい人間だな。変態だな。
次にモモを閉じてオシッコ。脚の間を伝わり落ちる感触がいやらしい。
フロの栓を閉じてあるから足元に溜まるので、そこに座り込んでみる。正座。
パンツの中はウンコでドロドロ。
足がまたぐりに入り込む様に座るもんだから、パンツの中身が押し潰されてマエの方にまでやってくる。
もう堪らなくなってパンツの上からタマやサオを強くこすり付ける。
ウンコが回り込んでいるからチンポや金玉はウンコまみれになってくる。
ここでチンポを思いっきり握り締めて、一回ドライエクスタシー。女のコみたいな喘ぎ声が出ちゃう。

ここから立ち上がって塗便プレイ。
パンツからすくい出したウンコを、じぶんのエロいところ全てに塗りたくる。
最期は 乳首を捻りながら便槽と化したフロの壁にウンコまみれの肉棒から射精。
飛びが普段とは全然違う。回春。ゴメンね奥さん。俺は女よりウンコみたい。浮気はしないけど変態です。

全身ウンコまみれなので、ここから1時間はかけて洗浄。お風呂もウンコだらけ。
家じゃ絶対できないな。お湯もすごいたくさん使います。すみません。
汚れたパンツは袋に入れて、明日コンビニで捨てて行きます。
0486デフォルトの名無しさん2014/09/12(金) 20:20:19.20ID:fLXqB3VX
iosとかサンプルプログラムってあるけど
c#もサンプルプログラムって
公式のあるの?
0487デフォルトの名無しさん2014/09/12(金) 21:05:06.25ID:PcDuBU9+
URLを指定して、サーバーに接続して
データのやり取りをしたいのですが、やり方がわかりません

いろいろggっては見たのですがIPアドレスで接続する方法しか見当たらず
困っています。
誰かお願いします。
0488デフォルトの名無しさん2014/09/12(金) 21:10:35.57ID:IBfP15Rf
WebRequestなら別にIPアドレスじゃなくても問題ないが
名前解決するならSystem.Net.Dnsクラス
0489デフォルトの名無しさん2014/09/12(金) 22:33:08.32ID:Ny9x6EmV
いまどきはHttpClientを使えばいいんだろ
http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/hh781239.aspx
0490デフォルトの名無しさん2014/09/13(土) 00:32:26.47ID:VE/fbqWK
>>486
どのレベルのものを求めてるのか知らないけど
MSDN 見に行けばそれなりにあるぞ
0491デフォルトの名無しさん2014/09/13(土) 02:29:17.18ID:WTMBOxF/
オブジェクトヘッダを取得するAPIは有りますか?
System.Typeのように構造化されている奴があればより助かります
無ければ文字列形式で取得する奴でも構いません
0492デフォルトの名無しさん2014/09/13(土) 06:52:03.98ID:DTDaEtud
マネージコードからは取れない
COMのホスティングAPIを使って動かせばC++で取れるけど俺は投げた
0493デフォルトの名無しさん2014/09/13(土) 13:07:39.86ID:t/yXuvcM
ヘッダーに「X-Pad: avoid browser bug」があると、AMFの解析がうまくできない・・・
なんでだろう
0494デフォルトの名無しさん2014/09/13(土) 14:45:48.32ID:jXaxzlXL
循環参照ってゲームプログラミングではよく使われているけどなー
0495デフォルトの名無しさん2014/09/13(土) 17:38:57.76ID:AnYtwD4Y
アセンブリの循環参照の話だぞ
0496デフォルトの名無しさん2014/09/13(土) 18:43:00.76ID:aWf+S5wd
文字列に対して
IsNullOrEmpty
IsNullOrWhiteSpace
の判定はあるのに

IsNullOrEmptyOrWhiteSpace
は何故無いのでしょうか?
0497デフォルトの名無しさん2014/09/13(土) 18:46:44.56ID:AnYtwD4Y
WhiteSpaceはEmptyの場合を含む概念なのだ
0498デフォルトの名無しさん2014/09/13(土) 18:55:02.92ID:aWf+S5wd
>>497
即答ありがとうございます。
>なのだ
バカボンのパパかと思いました。
0499デフォルトの名無しさん2014/09/14(日) 12:29:08.19ID:CRfFi/25
splitContainer1
┌──────────────┐
│              │
│              │
├──────────────┤
│              │
│              │
└──────────────┘
って、スプリッターを一番下まで動かしても
┌──────────────┐
│              │
│              │
├──────────────┤
└──────────────┘
下側の高さが完全には0にならずに、
20ピクセルくらいの高さがあるのですが、完全に0にして、
下側を見えないように出来ますか?
0500デフォルトの名無しさん2014/09/14(日) 13:03:43.45ID:ga9p17hQ
Panel[12]MinSize
0501デフォルトの名無しさん2014/09/14(日) 13:09:55.81ID:CRfFi/25
>>500
ありがとうございました。
0502デフォルトの名無しさん2014/09/14(日) 16:48:01.98ID:CRfFi/25
trueを3個で初期化したリスト作りたいのですが、
List<bool> booList = new List<bool>(3) { true };
だと1個しか追加されません。
どうしたら良いでしょうか?
0503デフォルトの名無しさん2014/09/14(日) 16:58:38.02ID:ga9p17hQ
true, true, true
0504デフォルトの名無しさん2014/09/14(日) 17:01:57.38ID:CRfFi/25
>>503
レス有難うございます。
3を変数にしたい場合はどうすれば良いでしょうか?
0505デフォルトの名無しさん2014/09/14(日) 17:03:17.31ID:ga9p17hQ
素直にループ回せよ
0506デフォルトの名無しさん2014/09/14(日) 17:15:29.57ID:B0PvUnRG
チッ
使えねーな
0507デフォルトの名無しさん2014/09/14(日) 17:16:44.66ID:oLWnP7Fy
List<bool> booList = Enumerable.Repeat<bool>(true, 3).ToList<bool>();
0508デフォルトの名無しさん2014/09/14(日) 17:23:24.90ID:B0PvUnRG
僕は思ってませんよ
誰かの心の声です
0509デフォルトの名無しさん2014/09/14(日) 17:53:47.49ID:CRfFi/25
>>507
有難うございます。試してみます。
0510デフォルトの名無しさん2014/09/14(日) 18:08:55.74ID:J6jLjc0R
ID:B0PvUnRG
http://hissi.org/read.php/tech/20140914/QjBQdlVuUkc.html
使えないのはあなたでは
0511デフォルトの名無しさん2014/09/14(日) 19:16:05.93ID:gO6moQCP
どうした
余所のスレで絡まれたのか?
0512デフォルトの名無しさん2014/09/14(日) 19:26:32.03ID:vxhEjgUK
>>507見るとforはもとよりforeachも記述する必要無くなってきたんだなと
0513デフォルトの名無しさん2014/09/14(日) 19:35:33.58ID:zXPpZhan
このままだと値型しか使えないので注意いるけどね
0514デフォルトの名無しさん2014/09/14(日) 20:07:15.75ID:wAtxspDt
linqは、ふ〜んって流していたけど。
繰り返し構文すら書かなくて良くなるみたいだな。ちと衝撃だった。
勉強してくる。
0515デフォルトの名無しさん2014/09/14(日) 20:33:49.23ID:kn6kIRd5
何年前の話題?
0516デフォルトの名無しさん2014/09/14(日) 20:54:26.30ID:gO6moQCP
周回遅れのJavaラーが今そんなこと言ってますね
forはもう古い!みたいな
古いのはお前だっての
0517デフォルトの名無しさん2014/09/14(日) 21:21:51.61ID:6imTz5mP
当たり前だが速度求める場合はforeachした方がいいぞ
遅延評価が欲しいって場合はlinqしかないけど

後、linqにはList.ForEachに該当するものはないので…
0518デフォルトの名無しさん2014/09/14(日) 21:32:12.49ID:s+BV7Cb9
>>511
ええ、宿題スレで年がら年中‥
0519デフォルトの名無しさん2014/09/14(日) 21:55:44.45ID:poGH8heG
>>513何処にどう注意したらいいのか教えてください。
bool型という値型しか使わないならこのまま何も気にせず
過ごせばいいの?
0520デフォルトの名無しさん2014/09/14(日) 21:59:25.23ID:VxA609sk
Repeatのイテレータは引数に渡された値をただ繰り返すだけなので
参照型なら毎回同じオブジェクトが返ってくる
値型なら勝手にコピーされるから気にしなくていい
0521デフォルトの名無しさん2014/09/14(日) 22:01:35.82ID:ga9p17hQ
うん
ちなみに参照型だと全部同じインスタンスになる
Repeatは(Func<Result>, int)みたいなオーバーロード無いのな まあ無くても困らないけど
0522デフォルトの名無しさん2014/09/14(日) 22:04:32.30ID:gCeTYvpe
こういうのってEnumerable.Range使ってなかったか?
0523デフォルトの名無しさん2014/09/14(日) 22:05:40.13ID:VxA609sk
>>521
>(Func<Result>, int)
それ副作用使わない限り要素が全部同じになっちゃうでしょ
評価順にも依存するから並列化できないし
0524デフォルトの名無しさん2014/09/14(日) 22:07:50.39ID:ga9p17hQ
>>523
うん?
Enumerable.Repeat(() => new Hoge(), 4).ToList()
みたいなの考えてたが
0525デフォルトの名無しさん2014/09/14(日) 22:08:06.11ID:gCeTYvpe
() => new Result() だろ
副作用?
0526デフォルトの名無しさん2014/09/14(日) 22:15:22.79ID:VxA609sk
>>524
ああすまんそれならいいんだ
yieldの代わりに使おうとしてるのかと思った
多分出てくるよそういう奴
0527デフォルトの名無しさん2014/09/14(日) 22:16:10.20ID:kn6kIRd5
ないなら作ればいいじゃない
0528デフォルトの名無しさん2014/09/14(日) 22:18:52.15ID:gCeTYvpe
Func<T>でnewするのを知らないと
Genericsでnew()制約をつけるようなダサい展開に陥る
0529デフォルトの名無しさん2014/09/14(日) 22:43:24.81ID:poGH8heG
初心者は気をつけようって言われてもさ
なんのことかって具体的に言われないと
何にどう気をつけるべきかって気が付かないよね
ttp://pic.twitter.com/AYGzXPnhsQ
0530デフォルトの名無しさん2014/09/14(日) 22:55:36.67ID:gO6moQCP
例外をキャッチしたら型がExceptionで、
メッセージが「エラーが発生しました」で、
InnerExceptionがnullだったりすると、
例外投げた奴をぶち殺したくなるよね。
0531デフォルトの名無しさん2014/09/14(日) 23:55:16.37ID:kn6kIRd5
VBコーダー出身者が良くやるよねそれ
0532デフォルトの名無しさん2014/09/15(月) 02:43:47.19ID:QMxpmLzA
c#のWebbrowserでグーグルマップを表示しているのですが、マップの機能のルート検索ではなく現在地、目的地をテキストボックスに入力し車や徒歩など選択してからボタンを押してルート検索したいのですが可能ですか?

また、可能であれば押していただけないでしょうか。
わかりにくくてすいません。
ちなみにwindowsフォームです。
0533デフォルトの名無しさん2014/09/15(月) 07:23:33.90ID:4DL/OwW5
そういうときGUIベースで何とかしようとするのは非常に筋の悪いやり方で、まずはAPIが使えないか検討する
Google Maps APIでルート検索できなかったっけ?
↑でググれ
0534デフォルトの名無しさん2014/09/15(月) 07:30:16.33ID:t+ySGZsQ
マップの機能のルート検索ってのにAPIも含むなら
国土基板情報か数値地図ひっぱってきてルート決めてGoogleMapに重ねるのが楽だろうけど
一方通行情報なかったりするから質の悪いものしかできないと思う。素直に諦めるのが吉
0535デフォルトの名無しさん2014/09/15(月) 07:38:51.42ID:C2JAEt1R
>>534
いやそういう話じゃないだろ
0536デフォルトの名無しさん2014/09/15(月) 07:45:32.81ID:Y1EnqdqW
逆ジオコーディングしたいってこと?
0537デフォルトの名無しさん2014/09/15(月) 07:51:16.50ID:eCBLE3YB
>>534
どう考えてもそんな手間掛けるより、Google Maps API使う方が楽でしょ。
Googleが提供するAPIに、おそらく座標を渡すだけで探索してくれるはずだから。
0538デフォルトの名無しさん2014/09/15(月) 08:21:28.94ID:TSMTA8yb
知恵袋に相談したら、人力で回答してくれるよ
プライスレス
0539デフォルトの名無しさん2014/09/15(月) 14:27:33.78ID:44b7eUon
operatorって継承できる?
下のような書き方だと、abstractが有効でないみたいなエラーが出る。。

abstract class A
{
  abstract public static int operator +(int x,int y);
}

class B : A
{
  public static override int operator +(int x,int y)
  {
    return x+y;
  }
}
0540デフォルトの名無しさん2014/09/15(月) 14:39:39.98ID:jSabMZv+
>>539
C# では static はオーバーライドできないはず
オーバーロードはできる
0541デフォルトの名無しさん2014/09/15(月) 15:11:41.02ID:kemMomf4
それ以前に>>539のコードはいろいろ間違ってるけどねw
0542デフォルトの名無しさん2014/09/15(月) 15:27:23.65ID:44b7eUon
ありがとんです。
0543デフォルトの名無しさん2014/09/15(月) 23:21:16.22ID:QMxpmLzA
google map apiはwindowsフォームでは使えないのでしょうか?

調べた所wpfでの使い方は出るのですが...
0544デフォルトの名無しさん2014/09/15(月) 23:45:15.78ID:TSMTA8yb
もちろん。
0545デフォルトの名無しさん2014/09/16(火) 06:11:28.71ID:Hlmzgx+s
使えるように組めば使えるけどそんな意味じゃないんだよな・・・
0546デフォルトの名無しさん2014/09/16(火) 09:52:42.81ID:t/dIfNP/
onPacketArrivalで受信したパケットを解析してあれこれしてるんですが、
断片化されたパケットはどのように処理したらいいんでしょうか?
0547デフォルトの名無しさん2014/09/16(火) 09:59:22.03ID:6s9b2H2c
好きにすればいいよ
MemoryStreamにでもため込んどく?
0548デフォルトの名無しさん2014/09/16(火) 11:11:05.39ID:t/dIfNP/
>>547
断片化されてるパケットがそうでないパケットにまたがって送られてくる場合、
断片化されてるパケットかどうかはどこで判断したらいいんでしょうか?
0549デフォルトの名無しさん2014/09/16(火) 11:24:26.54ID:leqJztNV
Streamなんだからそんなの自分で調べるしかない
0550デフォルトの名無しさん2014/09/16(火) 11:25:56.32ID:6s9b2H2c
TCPなりの上で使ってるプロトコル次第
0551デフォルトの名無しさん2014/09/16(火) 11:41:57.14ID:t/dIfNP/
ありがとうございます。
パケットの中身眺めていろいろやってみる事にします。
0552デフォルトの名無しさん2014/09/16(火) 11:51:31.74ID:dhQsu6oC
折れるまで半日ってとこかな
0553デフォルトの名無しさん2014/09/16(火) 12:46:59.09ID:aL5tuO4b
UserControlで質問なのですが、
例えば、
UserControl1を作り、こんな感じのレイアウトだとします。
┏━━━━┓
┃TextBox1┃
┃ ┃
┃Button1 ┃
┗━━━━┛
これと同じ機能を持つUserControl2を例えば
┏━━━━━━━━━━┓
┃TextBox1 Button1  ┃
┗━━━━━━━━━━┛
のように作りたい場合、つまり機能はUserControl1と同じで
レイアウトだけ違うので、UserControl1のButton1やTextBox1のイ
ベント処理関数などを、そのままUserControl2でも使いたいのですが、
単純にコピペすれば出来ますが、そうするとソースコードの同じものが
二か所にあることになり管理がややこしいので、一元管理できる良い方法ありますか?
クラスの継承とかを上手く使えばできますか?
0554デフォルトの名無しさん2014/09/16(火) 12:53:22.35ID:+WoYNO3c
>>553
そんな難しい話?

一番素直な解決法は、UserControl内部のコントロールのレイアウトをプロパティーで
設定できるようにするだけだと思いますが。
0555デフォルトの名無しさん2014/09/16(火) 13:01:30.50ID:aL5tuO4b
>>554
レス有難うございます。
なるほど、プロパティを使うというのは思いつきませんでした。
でも、例で上げたUserControl1や2は説明の為に簡略化したもので、
実際は、もっとたくさんのコントロールがあり、プロパティでレイアウト
を設定するのはちょっと無理があるかもしれません。
その場合、別の方法はありますか?
0556デフォルトの名無しさん2014/09/16(火) 13:50:22.47ID:+WoYNO3c
じゃあ共通処理をまとめたabstractなクラスUserControl0をUserControlから派生させて、
それをUserControl1とUserControl2の共通のベースクラスにするのが普通かな。
0557デフォルトの名無しさん2014/09/16(火) 13:53:12.28ID:HBMTClPE
継承するか外部に委託するか、それが問題だ
0558デフォルトの名無しさん2014/09/16(火) 15:17:09.89ID:Cq8dtcSK
wpfだと簡単に終わる話なんだけどね
0559デフォルトの名無しさん2014/09/16(火) 15:57:48.25ID:klLrpZrV
継承なんてのはバカのすること
コントロールは継承しなくてもあらゆる部分が変更可能に作られているので
それに倣えばいい
0560デフォルトの名無しさん2014/09/16(火) 16:09:27.79ID:dhQsu6oC
Control.DoubleBufferedをtrueにしたいんですけどどうすればいいですか?
0561デフォルトの名無しさん2014/09/16(火) 16:44:36.46ID:HBMTClPE
>>559
System.Windows.Forms.Controlも継承しないんですか
0562デフォルトの名無しさん2014/09/16(火) 17:10:21.16ID:klLrpZrV
>>561
UserControlを頑張っていじればなんとかなるやろ
0563デフォルトの名無しさん2014/09/16(火) 17:10:59.37ID:Hlmzgx+s
わろたw
0564デフォルトの名無しさん2014/09/16(火) 18:29:50.90ID:Cq8dtcSK
>>560
Control.SetStyle で行けるから詳しくはHelp見てね
0565デフォルトの名無しさん2014/09/16(火) 18:31:07.11ID:dhQsu6oC
>>564
百も承知です
そこprotected virtualなんですけど継承せずに変更したいんです
0566デフォルトの名無しさん2014/09/16(火) 18:34:05.74ID:6s9b2H2c
なんでprotectedかっつーと外部から書き換えてちゃんと動作する保証がないからな訳で
リフレクション使えば可能ではあるけどね
素直に派生させるのが良いよ
0567デフォルトの名無しさん2014/09/16(火) 18:41:07.33ID:dhQsu6oC
知ってて聞いてやがるなと察して欲しいもんだ
つまんねー
0568デフォルトの名無しさん2014/09/16(火) 21:27:36.02ID:b/OJvsO1
string[] files = {(string) lbx.Items[itemIndex]};
//DataObjectを作成する
DataObject dataObj = new DataObject(DataFormats.FileDrop, files);

//ドラッグを開始する
DragDropEffects dde =
lbx.DoDragDrop(dataObj, DragDropEffects.Copy);

上記のコードだとファイルしかドラッグできないんですが
ファイルと同時にListViewItemなども一緒にドラッグできないでしょうか?
listview.DoDragDrop(e.Item, DragDropEffects.Move);
も同時にしたいイメージです。
0569デフォルトの名無しさん2014/09/16(火) 21:59:19.71ID:Pj5zgY6q
DataObjectにSetDataすれば複数のDataFormatのデータを格納できるけどそういうこと?
0570デフォルトの名無しさん2014/09/16(火) 22:21:03.37ID:b/OJvsO1
>>569
できました。ありがとうございます!!
0571デフォルトの名無しさん2014/09/17(水) 01:09:13.06ID:3H99yoe3
お家に帰れるようになるプログラムは有りますか?
0572デフォルトの名無しさん2014/09/17(水) 01:43:33.09ID:6hHMhfnT
お家に帰れるようになるかわりにお給料がもらえなくなるプログラムならあります
0573デフォルトの名無しさん2014/09/18(木) 14:23:05.87ID:KR02GDAs
UserControlのProjectAを作って
それをFormのProjectBで利用しているのですが、
そのUCに変更を加えた場合、リビルドしただけではProjectBに反映されないようなのですが、
Form上のUCを削除して、改めて追加すればうまく行ったのですが、削除せずに簡単に
UCの変更を反映させる方法はありますか?
0574デフォルトの名無しさん2014/09/18(木) 14:34:29.78ID:BAIbXLCw
変更ってのがどういう変更なのか分からんが
プロジェクト参照してるならビルドして後はせいぜいデザイナ開き直すぐらいで事足りると思うが
0575デフォルトの名無しさん2014/09/18(木) 14:59:19.19ID:KR02GDAs
>>574
レスありがとうございました。
勘違いでした。
>ビルドして後はせいぜいデザイナ開き直すぐらい
で行けました。お騒がせしました。
0576デフォルトの名無しさん2014/09/18(木) 16:43:22.90ID:KR02GDAs
ListViewのDetailモードでカラムの境目をダブルクリックすると
表示幅を自動調整してくれる機能がありますが、
OwnerDraw=Trueにして、完全に自前のコードで描画した場合、
この自動幅調整機能は、これも自分で実装する必要ありますか?
というのは、描画するのは自分だから、表示されている
アイテムの最大幅を知っているのは自分だけだと思うので。
0577デフォルトの名無しさん2014/09/18(木) 23:18:08.29ID:/jffe+Pa
Excelのセルに値を書き込むため、
データ保持用のObject配列を作りたいのですが、
要素が1から始まるObject配列は、
どのように作ったら良いのでしょうか?

下記のように普通に作ると、当然ながら0から始まるので、
難儀しております。

Object[,] func = new Object[10,10];

何か方法がありましたら、よろしくお願いします。
0578デフォルトの名無しさん2014/09/18(木) 23:25:47.00ID:BHWk5UQT
Array.CreateInstance(Type, int[], int[])とかそんなの
0579デフォルトの名無しさん2014/09/19(金) 01:08:13.80ID:54sNaZYj
>>577
そういうのはVB使ってOption Strict Offでやった方がいろいろ楽。
いや本当に。

そういうのVBなら普通にint[,]とかdouble[,]とかをRange.Valueにぶち込むだけ。
0580デフォルトの名無しさん2014/09/19(金) 01:28:30.66ID:9JVRUaZQ
自分でインデクサを実装すればいい
0581デフォルトの名無しさん2014/09/19(金) 04:59:37.60ID:tvyonBI1
1から始める世界から卒業すればいい
0582デフォルトの名無しさん2014/09/19(金) 06:11:28.25ID:xonljUnN
VBSを実行すればいい
0583デフォルトの名無しさん2014/09/19(金) 18:03:16.37ID:3bxlVyYQ
別に使うときに+1すればいいだけだろ
1からに気にしすぎ
初心者はなんか変なことがきになるなー
0584デフォルトの名無しさん2014/09/19(金) 18:04:04.72ID:3bxlVyYQ
+1じゃねー
-1か
0585デフォルトの名無しさん2014/09/19(金) 18:26:23.30ID:97jwqaFX
その次はA1方式に変換する方法かな

OpenXMLってR1C1指定出来ないんだよな・・・
変換メソッドぐらい用意してくれよと
0586デフォルトの名無しさん2014/09/19(金) 21:27:40.64ID:BlDn+hZG
配列を1から始める言語ってあったっけ
VBは0か1か選べた気がするけど
0587デフォルトの名無しさん2014/09/19(金) 22:01:04.55ID:JGF82wP8
PL/SQL
0588デフォルトの名無しさん2014/09/20(土) 00:43:09.37ID:McNzuLVl
xbox oneってXNAじゃないの?
0589デフォルトの名無しさん2014/09/20(土) 01:17:03.28ID:9YrESwfS
>>586
VBは

Dim a(3 to 15) As Integer

とか0, 1以外にも出来たような覚えがある
あと、OptionBase 1で配列の最初の添え字のデフォルトを1に出来たと思う
0590デフォルトの名無しさん2014/09/20(土) 03:40:15.29ID:+lOTgIi9
>>586
Luaは1始まり
ただどちらかというとオブジェクトをキーとした辞書みたいな側面が強いから
配列と言っていいかは微妙
0591デフォルトの名無しさん2014/09/20(土) 10:40:40.32ID:vCscccb4
COBOLも1からじゃなかったっけ。
あんまりCOBOL触ったことなかったんで
ループの終了条件書くとき混乱したことあったな。
個人的には、pythonに慣れてしまったからListとforeachがあればそっち使いたい
0592デフォルトの名無しさん2014/09/20(土) 10:57:09.47ID:3zOaoQI9
>>586
FORTRAN, COBOL, PL/1 とか、いわゆる超古典的な言語は 1 始まりが多い
まあ、今時は FORTRAN でも下限が指定できるようになってるけど
0593デフォルトの名無しさん2014/09/20(土) 11:08:18.85ID:BR7p7mnX
昔は0始まりが珍しかった
Cの入門書には注意書きみたいに書いてあった記憶
0594デフォルトの名無しさん2014/09/20(土) 16:06:31.25ID:jWaZ47xu
>>586
昔のPCインタプリタBasicが1から
0595デフォルトの名無しさん2014/09/20(土) 23:32:45.44ID:fhk8qLhz
C# datagridview で、
その中のセルをダブルクリックすると、その行(Row)の値を引っ張って、
新しくフォームを開きたい。

ダブルクリックされた際のセルのRowを拾うにはどうすればいい?


いろいろサンプルみたけど、選択された、行とかの例が多い。
セルをダブルクリックするときは、基本、1行だけなはずです
0596デフォルトの名無しさん2014/09/20(土) 23:50:12.33ID:A/TP/TTO
セルのRowってどういうこと?
渋谷にある東京みたいな感じ?
何が言いたいの?
0597デフォルトの名無しさん2014/09/21(日) 00:15:14.79ID:tXV39T2S
>>595
>いろいろサンプルみたけど、選択された、行とかの例が多い。
解決してるじゃん
0598デフォルトの名無しさん2014/09/21(日) 00:33:04.85ID:39IvaLQc
>>597
はい、なんとかできました。これから、子フォームに値を渡さないといけないのですが、
(その値を元に、SQLを飛ばして、戻ってきたレコードを子フォームに表示
値の渡しかたを調べています
0599デフォルトの名無しさん2014/09/21(日) 00:41:52.45ID:EYp/w8pd
値を引っ張って、新しくフォームを開きたい。

これを英語で言うとなんて表現するんでしょうかね
0600デフォルトの名無しさん2014/09/21(日) 00:42:50.37ID:EYp/w8pd
SQLって飛来するものなんですか?
0601デフォルトの名無しさん2014/09/21(日) 00:50:58.75ID:hzBq2+VL
襲来するクソSQL
0602デフォルトの名無しさん2014/09/21(日) 02:26:18.35ID:yycy/lUt
Button、TextBoxなどのbaseとなるコントロールを継承して
MyButtonやMyTextBoxを作った場合、
変数cがこの中のどれかのコントロールだとして、
それが、baseに属するか、派生したものかプログラム的に区別する方法ありますか?
0603デフォルトの名無しさん2014/09/21(日) 04:00:32.69ID:hzBq2+VL
とりあえずc.GetTypeしてみて
0604デフォルトの名無しさん2014/09/21(日) 09:23:06.78ID:TDjHt+G+
isとかas演算子使えばいいんじゃね
0605デフォルトの名無しさん2014/09/21(日) 09:35:29.52ID:UHs24s50
任意の派生型かどうかには使えないだろう
そんな判定が必要になることはまず無いだろうけども
0606デフォルトの名無しさん2014/09/21(日) 10:57:39.95ID:al2mWjeZ
場合によってはMyButtonとかに専用のインターフェイスを実装させた方がいい気がする
0607デフォルトの名無しさん2014/09/21(日) 10:59:56.69ID:VRgCno47
区別する方法探す前になんで区別したいのか説明した方が早いと思う
0608デフォルトの名無しさん2014/09/21(日) 11:21:28.59ID:gc4W2ztN
ユニットテストの漏れチェックとか
0609デフォルトの名無しさん2014/09/21(日) 11:25:55.45ID:KjRwYpk6
ListViewのLargeImageListって256x256までのサイズしか指定できない?
これより大きい値を設定すると怒られるし。
0610デフォルトの名無しさん2014/09/21(日) 12:08:17.68ID:C5X6MdOG
現在のReactive Extensionsの立ち位置ってどうなん?
持て囃されなくても向いてる分野には使われているのか
それとも他の何かに取って代わられたの?
0611sage2014/09/21(日) 13:07:53.49ID:JsmbkY0j
public class hogeBase<T>
where DIC : Dictionary<int, string>, new()
{
public T Get(){}
}

上記のようなジェネリクスを
下記のような使い方をしたい。

public class hogebase<Dictyonary<int,string>>{
public T Get(){}
}

hogebaseを継承したりすれば実現できるが、
そのクラス内でTの型を固定したいです。
Dictionaryしか戻り値で返さないので、
いちいち長ったらしい型を指定するのが面倒という理由からです。
0612デフォルトの名無しさん2014/09/21(日) 13:09:33.13ID:/BXu7UWC
using T = System.Collections.Generic.Dictyonary<int,string>;でいいんじゃないの
0613sage2014/09/21(日) 13:22:06.76ID:JsmbkY0j
そんな使い方できたんですね!
ありがとうございます!
0614デフォルトの名無しさん2014/09/21(日) 13:58:15.63ID:K+3+g8yV
T : Dictonary<int,string>って
ジェネリクスを使う意味があるようには見えんな
0615sage2014/09/21(日) 16:47:32.35ID:JsmbkY0j
意味は面倒だからです。

プロトタイプなため
Dictonary<int,string>が変更される可能性があり、
一箇所で管理しておきたいのですが意味ないですか?
0616デフォルトの名無しさん2014/09/21(日) 16:58:11.94ID:d2MIJilJ
Dictionaryが毎回間違ってんのはコピペしてるから?
0617デフォルトの名無しさん2014/09/21(日) 19:30:37.00ID:bd2ZhPkS
ほんとだw
0618デフォルトの名無しさん2014/09/21(日) 20:00:06.09ID:K+3+g8yV
面倒なら>>612のやつでええがな
ジェネリクスにしたらしたで使う時面倒だからな
0619デフォルトの名無しさん2014/09/21(日) 23:30:52.22ID:NRylaSk2
typedefがあればなあ
0620デフォルトの名無しさん2014/09/22(月) 00:38:07.25ID:JTWE33kg
XNA終了しちゃったし、今からゲーム作るならどのライブラリ使うの?
0621デフォルトの名無しさん2014/09/22(月) 00:42:51.30ID:7V2OgHvP
Unity じゃね
0622デフォルトの名無しさん2014/09/22(月) 00:56:07.79ID:6dCQzrTt
>>620
PSMでいいんじゃね
0623デフォルトの名無しさん2014/09/22(月) 01:48:33.31ID:1cv2q/fA
ゲーム制作技術板で聞いた方が良い
0624デフォルトの名無しさん2014/09/22(月) 02:48:14.16ID:cQyRHW/4
今までFormばかり使っていて、WPFというのをはじめて使ってみたのですが、
Formの上にButtonを置いて、コピーしたら、同じButtonというのが出来ました。
表示されたXMLみたいなやつを見ると、2つのButtonには
Nameみたいな属性がなく
区別出来ません。一体どうなっているのでしょうか?
0625デフォルトの名無しさん2014/09/22(月) 05:43:12.32ID:hkj/60lJ
基本的にBindingであれこれするので要素自体を区別する必要があんまり無いからだよ
0626デフォルトの名無しさん2014/09/22(月) 12:14:22.73ID:2AemyjMM
使い方によってはNameは不要だから自動で名前が就かないだけで
Name属性自体は存在するから自分で名前を付けたらいい
0627デフォルトの名無しさん2014/09/22(月) 18:51:54.82ID:L7WJWaOW
>>624
みんなが書いてるように
基本、プログラム側から値をセットする方法ではやらないのでデフォじゃつかないだけ
ボタン(View)側でどの値を使うかを決めるので名前は必要ない
名前つけてプログラム側から名前.Content="ほげ";とか従来の方法でやることもできる
別に好きな方でやればいい
Bindingの方が便利だけど
0628質問�@2014/09/22(月) 23:39:51.46ID:msg0XkeP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Internet Explorer は動作を停止しました

問題が発生したため、プログラムが正しく動作しなくなりました。
プログラムは閉じられ、解決策がある場合は Windows から通知されます。

【デバッグ(D)】 【プログラムの終了(C)】
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

というダイアログが表示された場合に【プログラムの終了(C)】を
Windows APIを使ってクリックしようと次のコードを記述しましたが
うまくクリック出来ません。

気になるのは、Spy++で確認したところ CtrlNotifySink が複数ありました。
複数あるにも関わらず最初のウィンドウハンドルが取得されているのがうまく動かない
原因の様なのですが、【プログラムの終了(C)】のウィンドウハンドルを取得するには
どうすればよいでしょうか?
0629質問�A2014/09/22(月) 23:41:07.52ID:msg0XkeP
IntPtr h = FindWindow(null, "Internet Explorer");
IntPtr h_2 = FindWindowEx(h, IntPtr.Zero, "DirectUIHWND", "");
IntPtr h_3 = FindWindowEx(h_2, IntPtr.Zero, "CtrlNotifySink", "");
IntPtr h_4 = FindWindowEx(h_3, IntPtr.Zero, "Button", "プログラムの終了(&C)");

PostMessage(h_4, BM_CLICK, 0, 0);

h_3 ではウィンドウハンドルが取得出来ています。

h_4 が 0 になってしまいます。
0630デフォルトの名無しさん2014/09/22(月) 23:42:45.16ID:udgTuvtS
>>628
DirectUIHWNDは普通じゃクリックできない
UIAutomation使いなさい
06316282014/09/22(月) 23:52:52.05ID:msg0XkeP
>>630
UIAutomatoinとか使った事がなくいまいち使い方が分かりません。。。
今回の場合どういうコードを記述すれば
クリック出来ますでしょうか?
0632デフォルトの名無しさん2014/09/22(月) 23:55:52.30ID:udgTuvtS
自分でコード書く気ないなら質問なんてするなよ
ぐぐったらいくらでも出てくるだろうが
使い方なんてFindWindowと似たようなもんだ
06336282014/09/23(火) 00:15:28.67ID:e1n3LOVe
>>632

spy++で直接ウィンドウハンドルを見つけて以下のコードを実行したら
閉じることが出来ました。

しかしどうすれば >>629 の様なコードで
対象とするボタンのウィンドウハンドルを取得する事が出来るのでしょうか?

IntPtr h_4 = (IntPtr)2949584;
PostMessage(h_4, BM_CLICK, 0, 0);
06346282014/09/23(火) 00:18:54.40ID:e1n3LOVe
解決しました。

UIAutomationなんて使う必要ねーじゃねーか。あほ
0635デフォルトの名無しさん2014/09/23(火) 01:06:38.43ID:DwqQKKAS
これはどっちも酷い
0636デフォルトの名無しさん2014/09/23(火) 04:18:27.61ID:ltaCO/GF
解決方法は教えません。
0637デフォルトの名無しさん2014/09/23(火) 04:58:15.12ID:iJsbH00f
>>625,626,627
レス有難うございました。
その後、いろいろ試して、何となくWPFの良さが分ってきました。
ダイアログウインドウを作りたいのですが、最大化、最小化ボタンを取り除くには、
http://stackoverflow.com/questions/339620/how-do-i-remove-minimize-and-maximize-from-a-resizable-window-in-wpf
にあるように、WinAPIを使わなくてはならないそうですが、どうしてダイアログみたいな簡単なものを作るのに
WinAPIを呼び出さなくてはならないのか分りません。
WPFの標準的な機能にダイアログは無いのですか?
0638デフォルトの名無しさん2014/09/23(火) 07:03:58.49ID:l1+i9wNl
P/Invokeの質問はC#スレの守備範囲とは思わないけど、EnumChildWindowsとか組み合わせて探せばよかったんじゃないの
まあそんなダイアログの具体的構造なんて知らんから自分で考えるしかないけど

>>637
WindowのResizeModeでいける
0639デフォルトの名無しさん2014/09/23(火) 11:43:05.13ID:OrJ3Yw6L
>>632
ここはお前のようなカス野郎が来る場所じゃないよ。

他でくだまいてろよ、IT土方野郎
0640デフォルトの名無しさん2014/09/23(火) 11:46:09.03ID:iJsbH00f
>>638
>WindowのResizeModeでいける
出来ました。ありがとうございました。
0641デフォルトの名無しさん2014/09/23(火) 12:02:56.84ID:K+CMMeAD
このスレは雑談メインだし初心者の質問も相談室に取られちゃってるし
意味ないよね
0642デフォルトの名無しさん2014/09/23(火) 12:57:21.05ID:VrWSLpXS
すみません。
StringBuilderに追加するときに特定の文字列だけ色変更ってできないんでしょうか?
0643デフォルトの名無しさん2014/09/23(火) 13:02:38.03ID:h9MTRV8P
>>642
OSはLinux系でコンソールプログラムという前提で質問を解釈してもよいんですかね?
0644デフォルトの名無しさん2014/09/23(火) 13:06:20.27ID:u3yps4pH
カスタムクラスの初期設定をデバッグ時に強制させるような方法はないですか?
いくつかのプロパティに値を代入して、順序通りにメソッドを呼び出す必要があります

具体的にはSlimDXでデバイスやエフェクトなどの初期設定をしたいんですが
手順が多すぎて毎回大変なので、ラッパークラス?っていうんでしょうか
そういうものを作ろうとしています
0645デフォルトの名無しさん2014/09/23(火) 13:08:03.68ID:h9MTRV8P
設定ファイル外出しかDIで
0646デフォルトの名無しさん2014/09/23(火) 13:42:39.51ID:JF+1rKjg
>>642
StringBuilderに追加された文字列に色とか匂いとかはありません。
そもそも文字列には色とか匂いとか髪型とかスリーサイズというものはありません。
0647デフォルトの名無しさん2014/09/23(火) 20:08:44.48ID:bSMqpFUc
内蔵SSDから1920x1200、2560x1600の画像を60枚ほど読み込んで、
240x240にサムネイル化してListViewに登録してるんだけど、
DrawImageが遅すぎる。
なんとかして早く出来ないかな?
0648デフォルトの名無しさん2014/09/23(火) 20:17:27.73ID:lesh2qHu
仮想化
あとまさかでかい画像そのまま持ってDrawImageするときに縮小とかやってないよね
0649デフォルトの名無しさん2014/09/23(火) 20:22:48.85ID:cho2LlEf
リフレクション
0650デフォルトの名無しさん2014/09/23(火) 20:25:57.89ID:l1+i9wNl
なぜリフレクションなんだ
0651デフォルトの名無しさん2014/09/23(火) 20:42:01.01ID:bSMqpFUc
>>648
いや、ListViewに登録する時にDrawImageでスケーリング(縮小)してる。
だから、240x240にリサイズされた画像が表示の時には使用されてる。
この登録時のスケーリングが、全部の画像の合計で10秒くらい掛かるんだよね。
0652デフォルトの名無しさん2014/09/23(火) 21:22:02.84ID:rUKhUo34
それがわかってるなら縮小を自分で実装しろよ
ニアレストネイバーなら速くて簡単だろ
0653デフォルトの名無しさん2014/09/23(火) 21:43:22.54ID:8A+9zxKc
InterpolationModeのデフォルトって何だっけ
0654デフォルトの名無しさん2014/09/23(火) 22:15:29.94ID:21PmSReP
GDI+ってくっそ遅いみたいやね
0655デフォルトの名無しさん2014/09/23(火) 22:35:14.32ID:lesh2qHu
速くないのは確かだがそこまででもない 処理にも依るけど

>>651
ListViewじゃなくてImageListっしょー
ダミー登録しておいて別スレッドでロードしてリサイズ完了次第順次差し替えるとか
ロード&リサイズの高速化なんて限界があるんだから他の方策を考えんと
0656デフォルトの名無しさん2014/09/23(火) 23:35:03.12ID:bMKLIDDb
ま原因は一枚表示する度に再描画されrているんだろうから、再描画抑止をどうするか考えればなんとかなるんだろうね
実処理時間が10秒とかあり得ないし
0657デフォルトの名無しさん2014/09/24(水) 02:07:06.95ID:y0BX9PM1
>>630
馬鹿。
嘘いってんじゃねーよ!
0658デフォルトの名無しさん2014/09/24(水) 02:41:29.93ID:5Eo1+QTl
>>655
正確にはListViewのLargeImageListに登録したImageListですね。
別スレッドか、そういう方法もありか。
>>656
ListViewのBeginUpdate/EndUpdate、SuspendLayout/ResumeLayoutは使用してるんだけどね。
0659デフォルトの名無しさん2014/09/24(水) 12:05:00.78ID:D8HkcSxM
リサイズした画像を持っておけば?
0660デフォルトの名無しさん2014/09/24(水) 16:01:58.08ID:x+4QYqZM
C#の中から
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "wscript.exe"
p.StartInfo.Arguments = VBscriptファイル;
で VBscriptファイルを実行しているのですが、
たとえば、予めそのファイルの中身をC#の文字列か何かに埋め込んで置いて、
その文字列の中身のVBScriptを実行することは出来ますか?
つまり、ファイルを使わずに実行したいのです。
0661デフォルトの名無しさん2014/09/24(水) 16:32:39.14ID:LzDgpqDM
Microsoft Script Controlを参照してScriptControl作ってLanguage設定して
AddCodeしてRunしたり
ExecuteStatementしたりする
0662デフォルトの名無しさん2014/09/24(水) 19:17:31.28ID:x+4QYqZM
>>661
レスありがとうございました。
教えてもらった情報でググッて、どうにか出来そうな感じです。
VBScriptファイルの中身を文字列textに入れて
AddCode(text)を実行したら、Runしなくてもスクリプトが起動したのですが、
これは問題ないのかな。とにかくスクリプトが起動したので良いのですが。
0663デフォルトの名無しさん2014/09/24(水) 23:58:18.34ID:YpeFfPDp
private string TitleName{get;set;}
こういうことやっちゃうのはお作法的によくないの?
一応コンパイルは通るけど
プロパティ便利だから使いたいけど公開はしたくないんだよね
0664デフォルトの名無しさん2014/09/25(木) 00:11:37.42ID:HkHpnDDM
>>663
別に普通ですよ
0665デフォルトの名無しさん2014/09/25(木) 00:28:25.11ID:KQHBkyT4
フィールドと何が違うのか分からない初心者に教えてくれ・・・
0666デフォルトの名無しさん2014/09/25(木) 00:33:10.29ID:Kmfky3BE
結局大文字にしたいんでしょ
ローカル変数は小文字 ヒープ変数は大文字にしたいんだよ
そこに一番重要な意味の切れ目があるから

フィールドとプロパティの違いなんかほとんど何の意味もないしな
だから一番最初の命名規則が間違ってた
0667デフォルトの名無しさん2014/09/25(木) 05:18:12.06ID:HwpZrCil
javaのコードが気持ち悪く見えるというステキ効果があるだろ
0668デフォルトの名無しさん2014/09/25(木) 06:16:08.15ID:BRBG9Rns
プライベートメンバーの命名規則なんてねえよ
0669デフォルトの名無しさん2014/09/25(木) 07:11:47.83ID:3iFR/Phv
string strLong = "very long string AAAAASDFDLKSDFSFDFSDFSDHKJSDAKLFAHKJFSDAHKLFSDAF";
が有る時に、一定の長さに分割した文字列配列に変換したいのですが、
linqか何か使って、一行で出来ますか?
string[] strArray =
{
 "very long string AA",
 "AAASDFDLKSDFSFDFSDF",
 "SDHKJSDAKLFAHKJFSDA",
 "HKLFSDAF"
};
0670デフォルトの名無しさん2014/09/25(木) 07:26:12.96ID:GxZO89hx
>>669
from x in strLong.Select((e, i) => new { Item = e, Index = i })
group x by x.Index / 19 into g
orderby g.Key
select new string(g.ToArray())
0671デフォルトの名無しさん2014/09/25(木) 07:30:57.39ID:9U52fPpV
string src; int len;
Enumerable.Range(0, (src.Length + len - 1) / len).Select(i => i * len).Select(i => src.Length >= (i + len)? src.Substring(i, len) : src.Substring(i))
うーむ馬鹿馬鹿しい
0672デフォルトの名無しさん2014/09/25(木) 07:34:05.58ID:GxZO89hx
>>670
訂正
group x.Item by〜
0673デフォルトの名無しさん2014/09/25(木) 07:45:11.56ID:3iFR/Phv
>>670>>671
ありがとうございます。出来ました。
皆さん、物凄く頭いいですね。こんな式、私には書けません。
0674デフォルトの名無しさん2014/09/25(木) 08:56:54.40ID:Zjy5adUK
>>641
ただの馬鹿が、初心者を詰って遊んでるだけのスレだからね。
三流エンジニアってそういう奴ばかり
0675デフォルトの名無しさん2014/09/25(木) 16:38:22.82ID:Rh+pu+kg
DataSet ds = new DataSet();

ds.ReadXml(XmlReader.Create(new StringReader(xmltext)));
ds.Tables;

ds.Tables[1]
ds.Tables[2]
.
.

とノードのデータ自動的に入れてデータテーブルを作成してくれます。
ノードがn個あれば、n個のテーブルを作成します。
但しデータにより、ノード数が増減します。

ここで、自分でノード名を指定して、
そのノードの、データテーブルを作成させることはできます。
0676デフォルトの名無しさん2014/09/25(木) 18:36:40.52ID:3iFR/Phv
C#でビルドする時に、VisualStudioの上部に表示されている
Release/Debugや AnyCpu/x86/x64 などの現在の設定を示す文字列を
取得してプログラム中の文字列として使う事は可能でしょうか?
0677デフォルトの名無しさん2014/09/25(木) 18:44:50.94ID:sq6Mgyu/
>>676
プロジェクトの設定次第では可能
で、そんな情報何に使うんだ?
0678デフォルトの名無しさん2014/09/25(木) 20:17:39.71ID:3iFR/Phv
レスありがとうございました。
>>677
>プロジェクトの設定次第では可能
具体的にどうすればよいのでしょうか?

>で、そんな情報何に使うんだ?
フォルダが以下のようになっているとして、デバッグの時に 自分.exe を実行するときに、
 Proj1/x86/Debug/bin/他人.exe
 Proj2/x86/Debug/bin/自分.exe
別のフォルダにある他人.exeを、ある別のフォルダにコピーしたいのです。
0679デフォルトの名無しさん2014/09/25(木) 20:39:39.72ID:jMkf7TE/
#if DEBUG
コピー
#else
#endif
0680デフォルトの名無しさん2014/09/25(木) 20:57:23.44ID:/5ngibgN
プロジェクトのプロパティ開いて
「ビルドイベント」タブ → 「ビルド前に実行するコマンドライン」の下 → 「ビルド前の編集」ボタン → 「マクロ >>」ボタン
見てみれば参考になるんじゃね
0681デフォルトの名無しさん2014/09/26(金) 00:02:53.94ID:5O3kXax8
Datagridviewで、フィルターを作りたい。
イメージ的には、https://www.youtube.com/watch?v=eSlz_2Q1HAI
こんな感じ
どこかに良いサンプルソースないでしょうか?
0682デフォルトの名無しさん2014/09/26(金) 09:26:40.60ID:0C5jJAcT
// フィルターする前
dataGridView1.DataSource = source;

// フィルターする
dataGridView1.DataSource = source.Where( t => /*フィルターするコード*/ ).ToList();

// 戻す
dataGridView1.DataSource = source;
0683デフォルトの名無しさん2014/09/26(金) 09:28:52.00ID:2Yf6l1S1
>>682

Thanks!!
0684デフォルトの名無しさん2014/09/26(金) 18:17:48.27ID:4AqyRFBw
=>
なにこれ
0685デフォルトの名無しさん2014/09/26(金) 18:52:47.87ID:nHgoQ0oJ
>>684
ラムダ式
0686デフォルトの名無しさん2014/09/26(金) 21:55:13.66ID:8ok+NtRy
.NET開発者がよく使うサイト、本当に使えるサイト【2014年度版】
http://www.atmarkit.co.jp/ait/articles/1409/26/news109.html
0687デフォルトの名無しさん2014/09/26(金) 21:59:22.79ID:1YX4HMxC
>>686
なんだこの役立たない記事。実情把握してなさそうだな
0688デフォルトの名無しさん2014/09/26(金) 22:03:50.20ID:IN0UADRN
githubとstackoverflowだけかな
MSのフォーラムの役に立たなさは異常
0689デフォルトの名無しさん2014/09/26(金) 22:11:24.15ID:JX/CLN+N
Connectはそれなりに便利
0690デフォルトの名無しさん2014/09/27(土) 00:07:30.34ID:sN5kH76Y
このクラス使うときは絶対にこのメソッドを最初に呼べよって強制する方法はないですか?
戻り値が絶対に必要な初期化処理をするメソッドなのでコンストラクタでは処理できません
0691デフォルトの名無しさん2014/09/27(土) 00:13:41.23ID:z3mF+ujQ
>>690
消極的な方法だが、フラグを置いて、他のメソッド全部にはそれをみてフラグがオフなら例外を投げるようにしておく、ってのはどうだろう?
0692デフォルトの名無しさん2014/09/27(土) 00:15:47.23ID:44nIyQcf
>>690
コンストラクタでそのメソッドを呼ぶ
戻り値はプロパティに設定する
0693デフォルトの名無しさん2014/09/27(土) 00:41:50.14ID:sN5kH76Y
>>691
それだと実行するまでわからないですよね
でもこの方法しかないかも?

>>692
今度はプロパティを強制的に取得させる方法が必要になりますね
それに取得するのはどのタイミングでもいいわけじゃないので
0694デフォルトの名無しさん2014/09/27(土) 00:51:25.95ID:sKt0Rrir
戻り値が必要なのは誰なんだ
全部のメソッド内の最初で呼んで
呼び出し済みならスルーすれば
シングルトンの実装みたいな感じで
0695デフォルトの名無しさん2014/09/27(土) 00:54:44.12ID:EFwDHTWX
戻り値が絶対に必要な初期化処理をするメソッド、ってどういう意味なんだろうw
何か勘違いしてるとしか
0696デフォルトの名無しさん2014/09/27(土) 01:05:14.04ID:sN5kH76Y
>>694
クラスを利用する側が知る必要があります

>>695
コアクラスなのでここで初期化失敗したらアプリを終了してくださいねって知らせたいのです

インターフェースはクラス内の実装を強制するものだけど
クラスを利用する側にも強制力を持つ何かしらの機構があったらいいんだけどなー
Aインターフェースを継承したクラスはBインターフェースを継承したクラスしか利用できないみたいな
そうすればメソッドの利用を強制できるのに
ファクトリメソッドで初期化失敗したらnullを返すみたいなやりかたしか思いつかない
これも実行するまでわからないんだけど・・・一番マシかなー?
0697デフォルトの名無しさん2014/09/27(土) 01:11:05.50ID:IjUMB1jY
コンストラクタで初期化して、失敗したら例外投げればいいのでは?
0698デフォルトの名無しさん2014/09/27(土) 01:15:56.72ID:VNfSjhXW
呼び出しと値の取得を強制できたとして
呼び出した側でその値を捨てたら意味が無いわけで
そんな事を強制する意味があるとは思えん

クラスの生成と初期化の呼び出し、初期化の成功判定を行ってそのクラス返すメソッド作れ
0699デフォルトの名無しさん2014/09/27(土) 01:18:21.60ID:VNfSjhXW
>>697
コンストラクタで例外なげるなって作法があるんだよ
0700デフォルトの名無しさん2014/09/27(土) 01:25:30.59ID:sN5kH76Y
>>697
それだと利用する側は生成時にtryで囲むことを強制するために示唆する手段が必要ですよね?

>>698
やっぱりファクトリクラスを作るしかないですよね
0701デフォルトの名無しさん2014/09/27(土) 01:28:26.04ID:z3mF+ujQ
コンストラクタに参照渡しは使えないの?
0702デフォルトの名無しさん2014/09/27(土) 02:17:04.20ID:sJ6HWCQY
コンストラクタで例外を投げるのが気が進まないのなら、
コンストラクタは非publicにしてstaticメソッドでインスタンス作れば済む。

やっぱり質問者が何を悩んでるのかさっぱり分からん。
0703デフォルトの名無しさん2014/09/27(土) 06:06:57.03ID:2YkqVza8
>>699
それはお前みたいな低能向けの作法
0704デフォルトの名無しさん2014/09/27(土) 06:26:36.74ID:2Ze3kKMg
コンストラクタでnewするとメモリリークするというC++の迷信から生まれた作法だね
まあ実際メモリリークの原因になりやすいのは確かだし、
C#でもDisposeを実装したクラスなんかだと、必要な解放処理を行う前に
コンストラクタで例外投げてしまえばC++の場合と同種の問題が起こるけどね
0705デフォルトの名無しさん2014/09/27(土) 06:29:16.87ID:2Ze3kKMg
>>704
訂正
コンストラクタで例外投げるとメモリリークするというC++の迷信から生まれた作法だね
の間違い
0706デフォルトの名無しさん2014/09/27(土) 10:54:34.66ID:pw5stF+m
タイトルバーの最小化・最大化ボタンと似たボタンを作りたいんだけど

ttp://i.imgur.com/MA0ftn1.png
↑こんな風にマウスホバー時のエフェクトとか、
クリック時の色とかどうやって再現したら良いのかわかりません。

uxtheme.dll とか dwmapi.dll あたりを使うっぽいことまでは
調べてたらわかったんですが、

ttp://stackoverflow.com/questions/6480210/how-to-use-aero-glass-glow-effect-for-non-text
↑この辺みても回答がないので、
ご存じの方がいらしたら教えてください。
0707デフォルトの名無しさん2014/09/27(土) 10:56:10.48ID:C7/aqWr7
WindowChromeで頑張る
Formsは知らん
0708デフォルトの名無しさん2014/09/27(土) 13:48:34.38ID:60uQGm97
VisualStyle有効ならSystem.Windows.Forms.VisualStyles名前空間使える
無効の場合は知らん
0709デフォルトの名無しさん2014/09/28(日) 01:56:57.07ID:ihbatZ6r
C++のスマポみたいにスコープアウトしたら解放したい
usingいちいち書くのめんどくさくねえか?
なんでデフォルトをGCにしたんだろうな
循環するパターン以外にメリットないじゃん
なんかいいアイデアないか?
0710デフォルトの名無しさん2014/09/28(日) 02:26:23.87ID:LodDMuDa
スマートポインタ知らんけど、それだとDisposableなオブジェクトを
メソッドの戻り値にできなくなったりしないの?
0711デフォルトの名無しさん2014/09/28(日) 03:25:24.44ID:SiKgDQdT
手動で開放しないとだめなのはアンマネージドなリソースであって
それはもともと推奨されてはいないからだろ
0712デフォルトの名無しさん2014/09/28(日) 08:43:30.14ID:zX0vIkGp
今のC#ならRubyでよくあるみたいに
UsingHoge(hoge => {
 hoge.HogeHoge();
});
アンマネージリソースはなるべくこういうAPIで扱えるようにしておいて、
利用側にusingを明示的に使わせないようにするとスマート
0713デフォルトの名無しさん2014/09/28(日) 09:06:08.98ID:SuB5FCMe
よく分からない
リソースのオープン、クローズはどこでする?
0714デフォルトの名無しさん2014/09/28(日) 09:11:06.49ID:zX0vIkGp
>>713
UsingHoge側でusing使うんだよ
0715デフォルトの名無しさん2014/09/28(日) 09:25:45.54ID:SuB5FCMe
なるほど。

しかし、オープンからクローズまでの各種処理をバラで扱えて、
usingも隠蔽する方法があればいいんだが。
0716デフォルトの名無しさん2014/09/28(日) 21:40:23.51ID:myWmft5t
VisualC#2010エクスプレスを使っていますが、
Visual2013Professional 購入を考えています。

プロは使ったことないのですが、どのあたりが一番違うのでしょうか
私が現在困っているのは、
・パッケージ化のとき、msiにできない *これが一番大きい
・レポートが簡単に作成できない

他に、よく使う機能で、なにか致命的に違うところありますか?
0717デフォルトの名無しさん2014/09/28(日) 21:44:31.34ID:XvTEDtHL
拡張機能の有無
0718デフォルトの名無しさん2014/09/28(日) 22:01:23.55ID:XrK0HGYi
TreeViewのNodeのTextを検索し一部でも同じ文字列があったノードを選択したいと思っています。
そのような関数はありますか?
もしなければどのようにすれば実現できますか?
Visual Studio Express2013のWindows Formを使っています
0719デフォルトの名無しさん2014/09/28(日) 23:18:23.53ID:4VbBw7JL
>>716
・DLLプロジェクトとWebプロジェクトなど
 Expressが別に用意されてるやつが
 同一ソリューションに混在できない
・プラグインが使えない
とか
0720デフォルトの名無しさん2014/09/28(日) 23:37:47.20ID:mSKe5dpE
>>718
treeView.Nodes.Findだとだめだよな・・・
自分で全Node見ていくしかないんじゃね
見つけたらtreeView.SelectedNodeに入れてやってfocus
0721デフォルトの名無しさん2014/09/29(月) 00:05:07.00ID:qys/q/RJ
>>716
Visual StudioはUltimate意外はカスだからUltimate買ったほうがいいよ
07227162014/09/29(月) 22:39:34.90ID:MGWneuYg
拡張機能、DLLプロジェクト、WEBプロジェクト、プラグイン

どれも規模が大きい開発で使いそうですね
私の環境だと、あくまで小規模なので、どれもいまいちピンときません。
使って無い機能です。
でもアルティメートだと個人では金額的に買えませんね。

DLLプロジェクトって、C++とかの話でしょうか?
0723デフォルトの名無しさん2014/09/30(火) 00:08:46.75ID:UwnALeYj
>>722
Webとバッチ処理、GUIフォームで
DB接続管理、定数管理、便利関数を使い回したいとか

プラグインはたとえばSVNとか
2013はGIT対応したけれども小規模ならまだSVNのほうが使いやすいかも

あとコード分析っEXPRESSにあったっけ?
0724デフォルトの名無しさん2014/09/30(火) 00:31:12.24ID:n2CqrkFq
>>720
ぜんぶのノードのテキストを読み込んでIndexOfでやりました
意外と少ない行で収まったのでよかった
0725デフォルトの名無しさん2014/09/30(火) 01:07:37.29ID:1InWWpxE
EEだとM$製のSQLサーバーしかGUIサポートしてない
コードを自動ソートしてくれるようなアドインが使えない
不満っていったらこれぐらいだなー
0726デフォルトの名無しさん2014/09/30(火) 08:08:58.95ID:Q/bq5bOq
>>725
MySQL使えない
0727725訂正2014/09/30(火) 08:09:23.79ID:Q/bq5bOq
>>725
MySQL使えないのは残念
0728デフォルトの名無しさん2014/09/30(火) 21:36:01.88ID:2TWN+lyf
そんなの使う?
0729デフォルトの名無しさん2014/09/30(火) 21:42:17.04ID:TrQNGngF
個人でMySQL採用するメリットはあまりないけど、社内システムだとSQL Serverのライセンス代ケチる例はままある
0730デフォルトの名無しさん2014/09/30(火) 21:55:55.58ID:qpIGxrw7
Windowsだけで完結するならMSSQLでいいだろうけど・・・
0731デフォルトの名無しさん2014/09/30(火) 22:11:35.11ID:75GPQvwI
あんまり現実的な話じゃないけど、標準の配列の最大長って2GBじゃん
でも、配列のインデックスはint型で、int.MaxValue = 2GB - 1 だから実質2GBの配列って宣言不可能?
0732デフォルトの名無しさん2014/09/30(火) 22:18:52.97ID:enG7bkWb
0から2GB-1までだと2GB個の要素があるわけだが
0733デフォルトの名無しさん2014/09/30(火) 22:26:33.11ID:qpIGxrw7
1要素の大きさを1バイト以上にすればもっといくw
0734デフォルトの名無しさん2014/09/30(火) 22:35:40.47ID:itWl9ssf
ふと気になってx64で試したら1配列につき2GiBちょっと手前でOutOfMemoryになった
byte[]なら2G個だしint[]なら0.5G個
それを10個確保することはできるんだが
0735デフォルトの名無しさん2014/09/30(火) 22:53:13.54ID:75GPQvwI
>>732
配列の宣言でint.MaxValue+1を使えなきゃ2GB確保できなくね?

var array = new int[int.MaxValue];
だと2GB-1個なわけだし
0736デフォルトの名無しさん2014/09/30(火) 23:00:53.07ID:75GPQvwI
ちょっと勘違いしてたわ
配列の最大長の他にオブジェクト1個の制限にも2GBがあるのな
0737デフォルトの名無しさん2014/09/30(火) 23:27:24.10ID:2xIMsJb6
>>729
ライセンス気にするなら MySQL は色々ややこしいから、PostgreSQL の方がいいや
0738デフォルトの名無しさん2014/09/30(火) 23:28:44.59ID:y2Aa6mdd
WPFの勉強のためサイトを巡っていたら

ListBox1.IsEnabled = !ListBox1.IsEnabled;

という記述を見たのですが、
!はどういう意味なのでしょうか?

皆目見当もつきません。
0739デフォルトの名無しさん2014/09/30(火) 23:30:37.04ID:fHAbPVyL
知らないほうが幸せだぞ
0740デフォルトの名無しさん2014/09/30(火) 23:34:28.78ID:itWl9ssf
WPFの勉強サイトで直接UI要素のプロパティ触ってるとは珍しいな
ttp://msdn.microsoft.com/ja-jp/library/f2kd6eb2.aspx
0741デフォルトの名無しさん2014/09/30(火) 23:35:22.47ID:p4Jys04g
初心者スレなんだから答えてやれよ

>>738
! 演算子 (C# リファレンス)
http://msdn.microsoft.com/ja-jp/library/f2kd6eb2.aspx
0742デフォルトの名無しさん2014/10/01(水) 00:13:02.10ID:e3lccIk+
こういうとき
ListBox1.IsEnabled ^= false;
を使うんだがどっちのが正しいんだ
0743デフォルトの名無しさん2014/10/01(水) 00:41:10.09ID:yKyMekZC
>>742
falseじゃなくてtrueじゃね?
0744デフォルトの名無しさん2014/10/01(水) 00:45:52.80ID:gepRxEaK
ファクトリメソッドパターンがよくわからん
基本クラスを継承したサブクラスを用意するまではわかるけど
使い方がわからない

public void Print(Factory subFac)
{
this.factory=subFac;
factory.Print();
}
こんな感じ?
これなら直接サブクラスを利用したほうがよくない?
public void Print()
{
subFac.Print();
}
でよくない?
よくわからない
0745デフォルトの名無しさん2014/10/01(水) 01:25:21.63ID:8RBgwhnR
>>742
拡張メソッド使ってトグルするメソッドを追加するのが正解。
0746デフォルトの名無しさん2014/10/01(水) 01:49:00.38ID:a/0Pjuck
>>744
わからないならまだ必要じゃないってこと
0747デフォルトの名無しさん2014/10/01(水) 05:16:12.75ID:Y9kqsxXt
>>742
ListBox1.IsEnabled != ListBox1.IsEnabled;
これでいけない?
0748デフォルトの名無しさん2014/10/01(水) 05:25:23.26ID:Y9kqsxXt
間違えた
listBox1.Enabled = !listBox1.Enabled;
こうだ
0749デフォルトの名無しさん2014/10/01(水) 05:30:41.82ID:Y9kqsxXt
ごめん
寝起きとVB.netプロジェクトをC#へ変換作業で型のゆるさとENDだSUBだで
疲れててたので流れ見てなかった

>>742
それはあまりしないほうがいいだろ
状態を反転したいなら>>738と書くほうがわかりやすい
0750デフォルトの名無しさん2014/10/01(水) 16:19:07.83ID:gepRxEaK
戻り値が違うメソッドを持つクラスをそれぞれサブクラス化するのってどうすんの?
>>744のように
this.factory=subFac;
をやると基底クラスのメソッドが呼ばれて困る

基底クラスにそれぞれ戻り値が違う抽象メソッドを作ると
サブクラス化する意味ないし

データをList<>型とDataTable型で返したいだが
もしかしてインタフェースでも抽象化クラスでもそのメソッドは定義できない?
0751デフォルトの名無しさん2014/10/01(水) 16:26:23.25ID:s7TGI1jH
factory methodパターンは最近のC#ではほとんどの場合ラムダ式で十分になってる気がする

List<T>とDataTableのどっちかが返される処理があったとして、それをどうやって受け取るのよ
0752デフォルトの名無しさん2014/10/01(水) 16:54:14.46ID:gepRxEaK
受け取ったものは
DataGridView.DataSource=db.ReadAll();
な感じで渡すだけ

確かにラムダで事足りる感じかも
でもなんか気持ち悪いんですよねラムダって
0753デフォルトの名無しさん2014/10/01(水) 17:11:35.08ID:s7TGI1jH
ならobject返すようにすれば良いじゃん
0754デフォルトの名無しさん2014/10/01(水) 18:31:38.54ID:lbzjQWG/
internal interface IFoo
{
 void Method();
}

public class Bar : IFoo
{
 internal void Method(){}  // コンパイルエラー。publicにしないといけない
}

IFooの存在を外部が知らないのに
なんでIFooのメンバーメソッドは必ずpublicにしないといけないの?
もしかして「明示的に実装」すればいいんですか??

public class Bar : IFoo
{
 void IFoo.Method(){}  // OK
}

つか「明示的な実装」ってなに?
0755デフォルトの名無しさん2014/10/01(水) 18:35:33.19ID:hBS8HSul
外部に公開しないインターフェースをそもそも実装する意味があるのか?
0756デフォルトの名無しさん2014/10/01(水) 18:37:44.52ID:s7TGI1jH
> IFooの存在を外部が知らないのに
> なんでIFooのメンバーメソッドは必ずpublicにしないといけないの?
そういう言語仕様だから

> もしかして「明示的に実装」すればいいんですか??
それでいいならそうすればいい

> つか「明示的な実装」ってなに?
インターフェイス型からでないとアクセスできないようにする、インターフェイスメンバの実装方法

>>755
プログラムの都合上まとめて扱いたいとかあるでしょ
0757デフォルトの名無しさん2014/10/01(水) 18:41:55.87ID:hBS8HSul
自作クラスでインターフェース集にするにしてもそのクラスの外で使うなら公開するだろ?
インターフェースを置くクラスの中で済むならインターフェースにしなくてもメソッドのままでもいいような
0758デフォルトの名無しさん2014/10/01(水) 19:22:36.12ID:HmsrWBF6
構築ジェネリック型に非ジェネリックインターフェイス付けるって常套手段に必要
0759デフォルトの名無しさん2014/10/01(水) 20:37:26.47ID:lbzjQWG/
明示的な実装
→インターフェイス型からでないとアクセスできない
→インターフェイス型が公開されてない場合は隠蔽できる

ってことでOKですかね
パラメータの型もinternalでOKなのでこれが希望の動作でした。
0760デフォルトの名無しさん2014/10/01(水) 21:40:50.78ID:sDopVjNi
SHDocVw.InternetExplorer ie = null;
ie = new SHDocVw.InternetExplorer();
string url = "http://uxnko.com/";;
ie.Navigate(url, null, null, null, null);


for ( int i = 0 ; i < 10 ; i++)
{
//ここで、ページのロードが完了するまで待機するけれども
//10秒経っても表示されていない場合には抜ける。
★ ここにどういうコードを記述すれば良いでしょうか?

i = 0;

}
0761デフォルトの名無しさん2014/10/01(水) 21:45:12.66ID:HmsrWBF6
TaskにしてWaitとかEventWaitHandle使ってポチポチやるとか
0762デフォルトの名無しさん2014/10/01(水) 21:50:20.01ID:sDopVjNi
>>761

for ( int i = 0 ; i < 10 ; i++)
{

//この中で判定したいのです。

i = 0;

}
0763デフォルトの名無しさん2014/10/01(水) 22:05:31.82ID:6sRgXTmo
最近C#触り始めてwpfアプリケーション作ろうかと思ってるんですけど

C#扱ううえで何か大切なこととか必須な概念とかあったら教えてください
0764デフォルトの名無しさん2014/10/01(水) 22:06:17.03ID:BBZiGnKb
for文の意味(意図)は?
0765デフォルトの名無しさん2014/10/01(水) 22:08:51.08ID:gNoQ9GhW
738ですが、論理否定演算子だったのですね。

ON OFFスイッチのように使えるとか目からうろこでした。

ありがとうございます。
0766デフォルトの名無しさん2014/10/01(水) 22:21:27.34ID:GWwntwD3
>>762
こんなんでいいんだっけ・・・

string url = "http://uxnko.com/";;
bool completed = false;

void ie_DocumentComplete(object pDisp, ref object URL) {
 if (URL.ToString() == url) {
  completed = true;
 }
}
private void button1_Click(object sender, EventArgs e) {
 SHDocVw.InternetExplorer ie = null;
 ie = new SHDocVw.InternetExplorer();
 ie.Navigate(url, null, null, null, null);
 ie.DocumentComplete += ie_DocumentComplete;

 int i = 0;
 for (; i < 10; i++) {
  if (completed) {
   break;
  }
  System.Threading.Thread.Sleep(1000);
 }

 if (i >= 10) {
  MessageBox.Show("みれねーよ");
 }
 else {
  MessageBox.Show("もんだいない");
 }
}
0767デフォルトの名無しさん2014/10/01(水) 22:28:38.00ID:W3RtXEoN
>>766
それUIがフリーズするから最低の悪手
続きの処理はDocumentCompleteの中でやれ
07687622014/10/01(水) 22:31:40.62ID:vNGBGmYS
>>766 >>767
うーん。。。
フリーズするんですか?

試してみます!
0769デフォルトの名無しさん2014/10/01(水) 22:32:23.34ID:BBZiGnKb
>>762 に for の中で判定したいってあるからUIフリーズしてもいいんじゃね?
for の意味は不明だが
0770デフォルトの名無しさん2014/10/01(水) 22:39:18.17ID:W3RtXEoN
どうしてもforを使いたいなら>>766をこう直せばフリーズしないよ
private async void button1_略
略
await Task.Run(() => {
int i = 0;
for (略
略
}
});

if (i >= 10) { 略
0771デフォルトの名無しさん2014/10/01(水) 22:45:39.75ID:gNoQ9GhW
見よう見まねで下記のようなコードを書き
<UserControl x:Class="WpfDummyDialog.ConfirmDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";>
<Grid>
<Rectangle Fill="Gray" Opacity="0.5" />
<Border Width="300" Height="150" CornerRadius="20" Background="Chocolate" Padding="10">
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TextBlock Text="処理中" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</DockPanel>
</Border>
</Grid>
</UserControl>

<Window x:Class="WpfDummyDialog.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
xmlns:WpfDummyDialog="clr-namespace:WpfDummyDialog"
Title="Window1" Width="400" Height="300">
<Grid>
<WpfDummyDialog:ConfirmDialog x:Name="_confirm" Visibility="Collapsed" />
</Grid>
</Window>

_confirm.Visibility を切り替えて処理中ダイアログを作ったのですが、
どのような処理を書けば、処理中にダイアログが出現して、処理後に
ダイアログが消えるようにできるでしょうか?
BackgroundWorkerやDispatcherを色々試したのですが、
「別スレッドに所有されているため...」と怒られてしまいます。

よろしくお願いします。
0772デフォルトの名無しさん2014/10/01(水) 23:13:50.81ID:GWwntwD3
>>771
よくわからんけど
770さんのようにGUIかたまりなくないなら

private async void Button_Click(object sender, RoutedEventArgs e) {

 this._confirm.Visibility = System.Windows.Visibility.Visible;

  await Task.Run(() => {
   //やりたいこと
  });

 this._confirm.Visibility = System.Windows.Visibility.Collapsed;
}

じゃないん
.NET4なら
this._confirm.Visibility = System.Windows.Visibility.Visible;
Task.Factory.StartNew(() => {
//やりたいこと
System.Threading.Thread.Sleep(5000);
})
.ContinueWith(
(t) => {
this._confirm.Visibility = System.Windows.Visibility.Collapsed;
}, TaskScheduler.FromCurrentSynchronizationContext());
0773デフォルトの名無しさん2014/10/01(水) 23:15:10.73ID:GWwntwD3
>System.Threading.Thread.Sleep(5000);
消すのわすれたじゃん
0774デフォルトの名無しさん2014/10/01(水) 23:23:14.04ID:gNoQ9GhW
>>772
お返事ありがとうございます。

さっそく試してみようと思います。

ただ、環境は.NET3.5なので、
Taskとか使えないです。

4.0なら良かったのになと思います。。。
0775デフォルトの名無しさん2014/10/01(水) 23:25:35.92ID:HmsrWBF6
Dispatcherのメソッドを使えばいい
0776デフォルトの名無しさん2014/10/01(水) 23:35:21.35ID:GWwntwD3
3.5でBackgroundWorkerならこうか

private BackgroundWorker worker = new BackgroundWorker();

private void Button_Click(object sender, RoutedEventArgs e) {

this._confirm.Visibility = System.Windows.Visibility.Visible;

worker.DoWork += worker_DoWork;
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
worker.RunWorkerAsync();

}

void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
this._confirm.Visibility = System.Windows.Visibility.Collapsed;
}

void worker_DoWork(object sender, DoWorkEventArgs e) {
//やいたいこと
System.Threading.Thread.Sleep(5000);
}
0777デフォルトの名無しさん2014/10/01(水) 23:35:57.10ID:GWwntwD3
またSleep消す前に書き込んじまった・・・
0778デフォルトの名無しさん2014/10/01(水) 23:36:03.45ID:kM7uhOo0
<Window x:Class="WpfDummyDialog.Window1" ...>
&nbsp; <Window.Resources>
&nbsp; &nbsp; <BooleanToVisibilityConverter x:Key="b2vConverter"/>
&nbsp; </Window.Resources>
&nbsp; <!-- 略 -->
&nbsp; &nbsp; &nbsp;<WpfDummyDialog:ConfirmDialog x:Name="_confirm"
&nbsp; &nbsp; &nbsp; &nbsp;Visibility="{Binding IsWorking, Converter={StaticResource b2vConverter}}" />

class SampleVM : INotifyPropertyChanged {
&nbsp; &nbsp; public bool IsWorking {
&nbsp; &nbsp; &nbsp; &nbsp; get { return this.m_IsWorking; }
&nbsp; &nbsp; &nbsp; &nbsp; set {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (this.m_IsWorking != value) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.m_IsWorking = value;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.OnPropertyChanged("IsWorking");
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; }
&nbsp; &nbsp; // PropertyChangedイベントとOnPropertyChangedの実装は略
}

で、new Window1してるところでWindow1のDataContextにSampleVMを突っ込んで、
あとは表示切り替えたくなったところでSampleVMのIsWorkingをtrueに設定する
0779デフォルトの名無しさん2014/10/01(水) 23:55:11.41ID:HAiFBDfS
async/await 使い始めたら、もう4.5以前には戻れないや
0780デフォルトの名無しさん2014/10/02(木) 00:05:04.34ID:cNjk8Lbj
>>779
C#5.0と.NET Framework4.5がごちゃごちゃになってないか
ある意味正しいが・・・
0781デフォルトの名無しさん2014/10/02(木) 00:42:47.66ID:gJSza5Nt
async内で同期ファイル入出力関数するのと
非同期ファイル入出力関数使うのとどう違うの?
0782デフォルトの名無しさん2014/10/02(木) 01:27:19.10ID:N8qwuwR/
負荷が違う
0783デフォルトの名無しさん2014/10/02(木) 03:31:22.49ID:p39T/bAP
性器表現
0784デフォルトの名無しさん2014/10/02(木) 04:13:23.94ID:9LVEJsKx
複数のソリューション間で自分のユーティリティ関数などをまとめたプロジェクトを
拡張させながら使いたいのですが、新しくソリューションを作ったときなど
そのプロジェクトを勝手に追加してくれるような設定はできますか?

そんなに使う頻度が多くはないので、
とりあえず新しい関数作っておいて
後でユーティリティープロジェクトにまとめればいいやとか思っちゃうと、
とりこぼしちゃうんですよね。
0785デフォルトの名無しさん2014/10/02(木) 04:51:18.80ID:dvfR9n6Q
プロジェクトテンプレートを自作すればいけるんじゃね?
http://www.atmarkit.co.jp/fdotnet/dotnettips/535myprojecttemplate/myprojecttemplate.html
0786デフォルトの名無しさん2014/10/03(金) 00:34:13.07ID:lhUdsJSE
ありがとうございます!
試してみますー
0787デフォルトの名無しさん2014/10/04(土) 07:18:11.14ID:vX3YqJpJ
>>776
試してみましたが、ダメでした。

WPFは、シングルスレッドモデルを採用しているから、
マルチスレッドにすると「別スレッドに所有されているため...」と
出るのかなと思っているのですが、どうすれば良いのか解りません。

不可能では無いと思うのですが。。。
0788デフォルトの名無しさん2014/10/04(土) 07:56:31.93ID:b1ClcSwe
>>787
WinFormsやWPFではマルチスレッド自体がダメなのではなくUIスレッド以外からUIを弄ることがダメ
BackgroundWorkerはそれが考慮されていて、DoWorkはワーカースレッドで呼び出されるからUI触れないけど
ProgressChangedやRunWorkerCompletedはUIスレッドで実行されるからUI触ってもいい
0789デフォルトの名無しさん2014/10/04(土) 16:30:23.74ID:OI76W/mm
くそ、vs2013EEだとプロジェクトのテンプレート作れないのか!
なんかいろいろ機能が減ってるなー
0790デフォルトの名無しさん2014/10/04(土) 16:32:08.10ID:OI76W/mm
あ、あったわww
おどかしやがってwww
0791デフォルトの名無しさん2014/10/04(土) 20:55:36.25ID:iR8R0Hr7
IList は、ICollection、IEnumerable を継承していますが、
そもそも ICollection が IEnumerable を継承してるので、
IList がわざわざ IEnumerable を継承してる理由が気になりました。
親インターフェイスの更に親を継承するメリットまたはルールがあるのでしょうか?
よろしくお願いいたします。
0792デフォルトの名無しさん2014/10/04(土) 21:03:25.27ID:Rwz0Tmh5
>>791
IListのソース見ればICollectionのみになっているよ
http://referencesource.microsoft.com/#mscorlib/system/collections/ilist.cs
リファレンスで明示しているだけじゃない?
07937912014/10/04(土) 23:10:54.58ID:iR8R0Hr7
>>792
MSDN で
public interface IList : ICollection, IEnumerable
と書いてるのは、明示してるだけっぽいですね。
ありがとうございました。
0794デフォルトの名無しさん2014/10/05(日) 16:48:43.73ID:1+6ntIpv
プログラミング初心者で、C#の本買おうと思うんだけど、何がいい?
0795デフォルトの名無しさん2014/10/05(日) 16:53:03.09ID:TMfSLNtW
マジレスすると本は要らない
ぐぐって自分で情報探せ。その過程が基礎勉強になる
0796デフォルトの名無しさん2014/10/05(日) 16:53:44.43ID:cZeU51UR
CSharp Language Specification.docx
0797デフォルトの名無しさん2014/10/05(日) 17:22:16.95ID:FUXuY2e6
そいつマルチだよ
0798デフォルトの名無しさん2014/10/05(日) 19:37:23.08ID:S9WGNRrQ
>>794
なんでもいいけど薄くて簡単なのがいいと思うよ。795が言ってるようにググって調べるのが普通になるから、入り口だけならサクッと読み終えるのがよい。
0799デフォルトの名無しさん2014/10/05(日) 20:23:04.46ID:bGi6T1gy
CとかC++の時は本買って勉強したけど、C#はWebで十分だった。
最初に一通り.net frameworkにどんな名前空間とかクラスが有るか目を通しておけば、
使い方はぐぐればいいし。
0800デフォルトの名無しさん2014/10/05(日) 20:28:02.69ID:Rj3pESVx
今doubleとDateTImeが混在したデータを
ジェネリクス(Dictionary<string,T>)で取り扱いたいと考えているのですが
型パラメータとして例えばdoubleを指定してしまうとDateTImeは扱えないですよね

Dictionary<string,object>に放り込めばとりあえず動くと思うのですが
型パラメータとしてdoubleもしくはDateTimeを指定する方法はありませんか

よろしくお願いいたします
0801デフォルトの名無しさん2014/10/05(日) 20:46:47.86ID:cZeU51UR
出来合いの型では無理だからTupleとかを使う必要がある
専用の型を作るなら共用体って手も

[StructLayout(LayoutKind.Explicit)]
struct DoubleOrDateTime
{
[FieldOffset(0)]
public readonly double DoubleValue;
[FieldOffset(0)]
public readonly DateTime DateTimeValue;
[FieldOffset(8)]
public readonly bool IsDateTime;
}
0802デフォルトの名無しさん2014/10/05(日) 20:52:28.99ID:lD5ha8Ex
>>801
余程大量のデータを扱うとかでなければあえて共用体にする意味はないと思うんだけどw
0803デフォルトの名無しさん2014/10/05(日) 20:57:52.17ID:Rj3pESVx
Tupleってやつが扱いやすそうでよさそうですね
これを試してみようと思います
すいませんありがとうございました
0804デフォルトの名無しさん2014/10/05(日) 20:59:40.35ID:BWhErrhC
GC効率考えたら必要な処置でしょ
劇的に変わる場合もあるから侮れないよ
0805デフォルトの名無しさん2014/10/05(日) 21:26:01.96ID:cZeU51UR
MSのガイドラインに構造体は16バイト未満にしとけって項目があってね
0806デフォルトの名無しさん2014/10/05(日) 21:51:01.53ID:+85pEGas
>>803
Tupleは「値の組」だから明らかに間違い
っていうか値の組として使う場合でもTupleは読みにくいだけだからやめろ
0807デフォルトの名無しさん2014/10/05(日) 22:11:26.78ID:T+Pyexmg
共用体も十分読みにくい、というかバグの元になる可能性を持ってると思うが
0808デフォルトの名無しさん2014/10/05(日) 22:25:39.49ID:lD5ha8Ex
それをいうならそもそも本当にdoubleとDateTimeを混在させる必要があるのか疑問ではある。
0809デフォルトの名無しさん2014/10/05(日) 22:31:16.84ID:cZeU51UR
801の糞コードはともかく、適切にカプセル化された型のメモリレイアウトを使用側が意識する必要はないよ
共用体であることが問題になるってこともない
0810デフォルトの名無しさん2014/10/05(日) 22:32:14.66ID:jxtia/i3
HTMLの<a>タグのリンクを取得しようと以下の
コードを実行すると、特定の要素の場合に以下のエラーが出てしまいます。
try catchで囲まずともこれを回避(判定)するうまい判定方法はありませんか?


【問題のコード】
foreach (mshtml.IHTMLElement i_ele in mshtml_ec)
{
try
{
i_ele.getAttribute("href")'
}
catch(Exception ex)
{
【エラー】
threw an exception of type 'System.Runtime.InteropServices.COMException'
continue;

}
}
0811デフォルトの名無しさん2014/10/05(日) 22:49:09.18ID:ecfyL29T
tagNameがAかどうか判定するとかgetElementsByTagNameするとか
0812デフォルトの名無しさん2014/10/05(日) 23:01:33.66ID:jxtia/i3
>>811
上のコードで既にこういう抽出をしているのです。。。
それにも関わらずエラーが出る場合があるんですよね。

mshtml_ec = div.getElementsByTagName("a");

ここで "a" と指定するのと "A" と指定するのとでは

mshtml_ec に返って来る値は異なるのでしょうか。同じ筈なんですが。。。謎
0813デフォルトの名無しさん2014/10/06(月) 03:15:44.61ID:gqpKCM12
HTMLの規格上はどうなのかしらんが、
すべての<A>タグにHREF属性があるとはかぎらんだろ

つかそもそもどのブラウザクラスつかってるんだよ
0814デフォルトの名無しさん2014/10/06(月) 10:37:42.07ID:n9a1vo98
Skypeで(A) と入力すると顔文字になってしまいます。
顔文字を入力したいのではなく、
普通に文字として(A)を文面に入れたいのですが
何か設定方法があるのでしょうか?
0815デフォルトの名無しさん2014/10/06(月) 10:56:35.70ID:Bqdlcfw1
何を思ってここで聞いたの?
0816デフォルトの名無しさん2014/10/06(月) 22:06:01.17ID:5L7V4ReU
>>814
に誰か答えてやれよ
0817デフォルトの名無しさん2014/10/06(月) 22:39:05.12ID:OSvmh2nt
>>814
【P2P電話】「Skype」その52
http://anago.2ch.net/test/read.cgi/software/1405060164/
0818デフォルトの名無しさん2014/10/08(水) 03:55:15.34ID:n5SXiiCT
CalculateとCompute
どのようにして使い分けていますか?
0819デフォルトの名無しさん2014/10/08(水) 07:46:47.18ID:N/3g07YY
>>818
クラス名・変数名に迷ったら書き込むスレ。Part24
http://peace.2ch.net/test/read.cgi/tech/1390230345/
0820デフォルトの名無しさん2014/10/08(水) 13:30:05.78ID:XHiy9Jjo
>>818
使い分け以前にどっちもまず使わないよね普通。
getで用が足りるし。

強いて言えば算出ていることを強調したい場合にcalculateを使うのはありだと思うけど。
0821デフォルトの名無しさん2014/10/08(水) 16:17:30.46ID:Mr3CuVyx
用が足りないから別の名前を付けようとしてるんだろ

個人的な感覚だが
Calculateは「数式を計算して値を返す」的な意味合いを感じるので
引数を与えると値を算出して戻り値で返す関数っぽい
Computeはもっと範囲の広い、処理全般を指しそうに思える
0822デフォルトの名無しさん2014/10/08(水) 17:30:07.63ID:n5SXiiCT
>>821
ありがとうございます
Calculateは電卓のような機能をもった関数に使うことにします
0823デフォルトの名無しさん2014/10/08(水) 17:42:00.15ID:+qoLuiEy
入門書はちょっと齧って変数覚えた瞬間バカみたいな計算ツール量産しだしたからか全く技術が上がらないよ
classとか戻り値とかの練習プログラム書いたほうがいいのかな
0824デフォルトの名無しさん2014/10/08(水) 17:42:57.70ID:5a7mAS48
他人が利用するライブラリを作ると鍛えられるぞ
0825 ◆QZaw55cn4c 2014/10/08(水) 18:43:47.99ID:0/yzM00L
>>823
確かに5年ほど宿題を量産したが全然スキルはあがらなかったね‥
0826デフォルトの名無しさん2014/10/08(水) 18:48:11.15ID:nI8zrZND
車輪の再開発といわれようと既存のツールの模倣やそれを
上回るものなど作ってみないとスキルは付かないよ
0827デフォルトの名無しさん2014/10/08(水) 19:50:32.87ID:N/3g07YY
技術があがるとかどうでもいくね?
作りたいものがじゃんじゃん作れればいいっしょ
そのうちスキルがついてくる

もちろん仕事ならシラネ
0828デフォルトの名無しさん2014/10/08(水) 20:44:47.58ID:Pgiut6rP
やはり大きいプログラムを作らないと設計とはなんぞやという話には入れない
0829デフォルトの名無しさん2014/10/08(水) 20:51:36.09ID:eZe0by7Q
各種フレームワーク向けのコンポーネントを実装すると該当ライブラリの知識がついてデザパタにも強くなる
0830デフォルトの名無しさん2014/10/08(水) 21:04:36.62ID:tsZBmQpQ
ソースつきで規模が大きくなくバグだらけのフレームワークを使うと勉強になるよ
MFCまじオヌヌヌ
0831デフォルトの名無しさん2014/10/08(水) 22:20:07.95ID:qB3VYvLo
ぶっちゃけお前ら自分のスキルがあると思ってるが
大学院の専門家のスキルの方が上


所詮お前ら低学歴だろ
0832デフォルトの名無しさん2014/10/08(水) 22:21:35.47ID:0/yzM00L
>>828
C/C++ で500ステップ以下では話にならないようだね‥今後長編にトライしたいが、アマチュアベースでどれくらいの規模を目指せばいい?
いや >>827 が正論だね‥作りたいもの‥なんだろう?
0833デフォルトの名無しさん2014/10/09(木) 00:23:19.12ID:SgahCzoa
>>831
やつら知識だけでスキルがないのがほとんど
0834デフォルトの名無しさん2014/10/09(木) 01:07:53.93ID:Bn1wfzyn
プログラムは土方の仕事だぜ
お坊ちゃんはカナヅチで指つぶさないうちに家に帰って宿題しとけ
0835デフォルトの名無しさん2014/10/09(木) 01:52:44.13ID:WNfOQB2S
@ITのスタティックおじさんがモデルの小説とその読者のコメントを読んだ時に思ったのは、
あの「高学歴はプライドばかり高くて使えない」っていうほとんど根拠がない高学歴への
ルサンチマンがあんなに支持されるほど、この業界低学歴の奴が増えてるんだなと。
0836デフォルトの名無しさん2014/10/09(木) 03:31:55.77ID:rnq5JbmG
>>835
あの話の肝って学歴じゃなくね?
現場の時代の流れを追うことを放棄した上司とか
そういうレイヤーの話だと思ったんだけど
0837デフォルトの名無しさん2014/10/09(木) 10:23:04.80ID:4UYOLoGK
>>835
これのことか!?

記事
http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html

小説
http://el.jibun.atmarkit.co.jp/pressenter/2010/11/1-828a.html
http://el.jibun.atmarkit.co.jp/pressenter/2010/11/2-54cd.html
http://el.jibun.atmarkit.co.jp/pressenter/2010/11/3-bc3f.html
http://el.jibun.atmarkit.co.jp/pressenter/2010/12/4-a74c.html
http://el.jibun.atmarkit.co.jp/pressenter/2010/12/5-7fc3.html
http://el.jibun.atmarkit.co.jp/pressenter/2010/12/6-77b8.html
http://el.jibun.atmarkit.co.jp/pressenter/2010/12/7-28-5748.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/01/8-7115.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/01/9-bf58.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/01/10-af90.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/01/11-ead7.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/02/12-ae9d.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/02/13-61a8.html
http://el.jibun.atmarkit.co.jp/pressenter/2011/02/post-6b95.html
0838デフォルトの名無しさん2014/10/09(木) 11:38:40.84ID:Eea3XLKn
>>831
突然どうした?
0839デフォルトの名無しさん2014/10/09(木) 12:08:00.07ID:uNKLKboE
enum Foo
{
 Min,

 Hage,
 Hoge,
 Moge,
 ....,

 Homo = Hoge,  //←これを後からなんとなくここに追加しちゃう

 Max, 
}

int max = (int)Foo.Max; // 3

これって罠じゃね?
0840デフォルトの名無しさん2014/10/09(木) 12:12:45.78ID:SxO2Qdze
今時Maxとか定義しちゃうのはちょっと
0841デフォルトの名無しさん2014/10/09(木) 12:23:57.64ID:yo/O9W+N
>>839
3になるようなことしてるお前がアホなだけで罠でも何でもないんじゃね?
一瞬、バージョン管理してなくて定数の更新が反映されない問題かと思っちゃったぜ
0842デフォルトの名無しさん2014/10/09(木) 21:19:37.59ID:yuIP1TaU
MinとMaxっている?

[Flags]ならAll=~0でいいんだけど
0843デフォルトの名無しさん2014/10/09(木) 21:39:36.94ID:PedOr8Xr
列挙型にMinやMaxを付けるのはガイドライン違反だね
0844デフォルトの名無しさん2014/10/10(金) 18:36:38.68ID:OpKqoeIe
System.AddInでのセキュリティに関する質問です

MyHost.exe
RawLibrary.dll (完全信頼のアクセスが必要)
MyLibary.dll (↑の安全なラップ)
MyAddIn.dll (部分信頼のAppDomain上で作動)
Pipelines諸々

こんな感じの構成で、MyAddInから直接RawLibraryを呼ぶことは出来ないが、
MyLibaryを介して操作出来るようにするには、どこをどうすればいいんでしょうか?
0845デフォルトの名無しさん2014/10/11(土) 16:30:17.04ID:b7Mln+VM
C#で配列を使って、その中に変数を入れたいと思います。
その格納した変数を一個ずつ別のルーチンで使用します。

しかし、最初に配列に変数を格納するときに、その変数が何個あるか読めません
ループの中でそれを格納しいく仕組みです

2件かもしれないし、1000件かもしれません。
こういった場合、配列は最初に
int[] a = new int[5];
といったように、5個つかえるように指定しなければなりません
しかし、今回は、1000個格納する可能性もあるのっで、
int[] a = new int[1000];
となりますが、リソースを食ってしまいそうです。
こういった場合変数格納はどういった方法がいいのでしょうか?
0846デフォルトの名無しさん2014/10/11(土) 16:34:47.96ID:qfHZLil+
List<int>を使う。追加すると自動的にサイズを変えてくれる、動的配列というやつ
List<T>で検索したら出てくる
0847デフォルトの名無しさん2014/10/11(土) 16:35:48.49ID:qGYvKsgJ
>>845
つList<int>
0848デフォルトの名無しさん2014/10/11(土) 16:54:56.80ID:nMlC9xnx
まず遅延評価できるか検討したら?
List<T>知らないレベルだと難しいだろうが
08498452014/10/11(土) 17:03:58.37ID:b7Mln+VM
>>846
>>847
>>848
遅延評価についても調べてみます

Thank you!
0850デフォルトの名無しさん2014/10/11(土) 20:42:11.89ID:m7t1xuYN
<ListBox ItemsSource="{Binding PeopleList}">

public partial class MainWindow : Window {
public ObservableCollection<string> PeopleList{get;set;}
public MainWindow() {
InitializeComponent();
PeopleList = new ObservableCollection<string>();
DataContext = this;
PeopleList.Add("alice");
PeopleList.Add("bob");
}}
こんなようにListBoxに表示させたいときpublicと{get;set;}両方書かないとデータが表示されませんでした。なぜですか?
0851デフォルトの名無しさん2014/10/11(土) 20:48:08.70ID:nMlC9xnx
publicじゃないとプロパティが公開されないし、set;がないとコンパイルエラーになるから
setに関してはprivateをつける手もある

public ObservableCollection<string> PeopleList { get; private set; }
0852デフォルトの名無しさん2014/10/11(土) 21:06:38.30ID:olDhqMGp
>>851
あれ?これザムル側でエラーにならなかったっけ?セッターがないとか言われる気がするけど。
0853デフォルトの名無しさん2014/10/11(土) 21:12:54.71ID:nMlC9xnx
>>852
その手のエラーが出るのはBindsTwoWayByDefaultがTrueになってるTextBox.Textとか
ItemsSourceは大丈夫
0854デフォルトの名無しさん2014/10/11(土) 21:14:13.71ID:olDhqMGp
>>853
そうかごめんなさい。
失礼しました。
0855デフォルトの名無しさん2014/10/11(土) 21:14:52.23ID:nLciC8aS
バインドは双方向と読み込みだけとか設定あるからなあ
0856デフォルトの名無しさん2014/10/11(土) 21:21:11.99ID:VQ3viUJo
ジェネリックってやつか!最近勉強しだぜ
0857デフォルトの名無しさん2014/10/11(土) 21:22:47.25ID:nLciC8aS
XMLシリアライザーに突っ込むクラスも設定がおかしいと例外はかれるしな
楽できる機能はおおむねゆるい設定じゃないとダメって印象
0858デフォルトの名無しさん2014/10/13(月) 06:42:38.67ID:+UmC91w2
Hoge[][]
Hoge[,]
List<List<Hoge>>

それぞれの違いと使用例を教えて下さい
0859デフォルトの名無しさん2014/10/13(月) 07:56:56.31ID:TEwcKFwB
T[]とList<T>
・T[]は固定長
・List<T>は見かけの要素数とデータ格納用の配列を持ってて、要素数が足りなくなると別の大きな配列に入れ替える
⇒要素数が一定でシフトの発生しない場合や配列しか受け取らないようなメソッドに配列を使う

T[][]とT[,]
・全データを一括で持つか、行単位で1次元配列として分けるかの違い
・T[][]は各行の長さを変えられるけど初期化に繰り返し処理がいる
・アクセス速度はT[,]のが速いがインスタンスのサイズが大きくなるのでLOHの可能性が高い

個人的にはT[][]なんか滅多に使わないけどT[,]を蛇蝎のごとく嫌ってる人もいて微妙
原始的だけどSZ配列+幅情報が一番汎用的な気もする
0860デフォルトの名無しさん2014/10/13(月) 08:03:28.50ID:7f6VqfaZ
知らんがな
0861デフォルトの名無しさん2014/10/13(月) 08:21:56.69ID:R99qWLrl
http://ufcpp.net/study/csharp/st_array.html#multid
Hoge[ , ]とHoge[][]の構造上の差は、ここの比較イメージがわかりやすいかもしれない

>原始的だけどSZ配列+幅情報が一番汎用的な気もする
そんなに汎用性あるか・・・?
少なくともC#でそういう仕組みのものが直接提供されていない以上
このスレで質問する初心者に勧めるものじゃないと思うが
0862デフォルトの名無しさん2014/10/13(月) 08:41:01.32ID:TEwcKFwB
多次元配列は各種ライブラリのIOとしてあまり考慮されてないって意味での「汎用性」ね
自アセンブリ内で完結するなら気にせず使えばいいと思う
0863デフォルトの名無しさん2014/10/13(月) 08:41:35.46ID:j90eBv3o
アクセス速度は2番目の添字に連続アクセスするだけならT[][]の方が速いぞ
1番目の添字も毎回変わるような場合は配列の配列だと間接アクセスが増えて効率悪くなるけど
0864デフォルトの名無しさん2014/10/13(月) 08:56:14.62ID:VoMmfcCG
T[,] → ポインタ演算
T[][] → ポインタのポインタ演算

そんな性能違うのん?
0865デフォルトの名無しさん2014/10/13(月) 09:07:49.59ID:j90eBv3o
>>864
基本的に配列の連続アクセスは一次元の方が最適化が効いて速い
for (int i=0;i<a.Length;i++) for(int j=0;j<a[i].Length;j++) use(a[i][j]);
の形なら、ボトルネックになる内側のループは結局一次元配列に対するループなので速い
さすがにa[i][j]のa[i]は毎回参照外しするんじゃなくてキャッシュされるよ
0866デフォルトの名無しさん2014/10/13(月) 09:29:07.93ID:HMQ6z8sD
T[,]も低次元側は連続しているから変わらんだろう。
0867デフォルトの名無しさん2014/10/13(月) 09:30:34.51ID:j90eBv3o
>>866
最適化の問題だって言ってるでしょ
0868デフォルトの名無しさん2014/10/13(月) 10:16:24.69ID:HMQ6z8sD
高次元側がループ内で不変なら原理的には一次元アクセスと変わらんはずだが、
具体的にどういう最適化の違いがあるの?
0869デフォルトの名無しさん2014/10/13(月) 10:19:56.80ID:j90eBv3o
>>868
ILにSZ配列専用の命令がある
0870デフォルトの名無しさん2014/10/13(月) 10:40:03.21ID:HMQ6z8sD
なるほど、実際に数十%も差が出るんだな。
http://schima.hatenablog.com/entry/20091118/1258518836
0871デフォルトの名無しさん2014/10/13(月) 11:05:16.63ID:4es499Rm
>>870
だからと言ってわざわざ1列に並べる気にはなれんわな
この手の性能議論を鵜呑みにしてループはforが一番早いから!と言って頑なにforeach使わない人とか少なくないし・・・
0872デフォルトの名無しさん2014/10/13(月) 11:16:15.34ID:2drFpBnP
極普通のフォームアプリケーションで、よくあるプロダクトキーの入力設定したい。
この場合、入力用のフォーム作るのがいいのかな

それとも、よく使われるテンプレートってありますか?
0873デフォルトの名無しさん2014/10/13(月) 11:28:43.06ID:VoMmfcCG
尻ません
0874デフォルトの名無しさん2014/10/13(月) 15:11:05.97ID:4LEVj/AJ
"リバーシ" での Windows ストア アプリ機能の使用 - Windows app development
http://msdn.microsoft.com/ja-jp/library/windows/apps/jj712233.aspx

ここでIGameインタフェースでは
IList<IList<State>> Board { get; set; }
と定義して、インスタンス化するときはGameクラスで
Board = new State[RowCount][];
のようにジャグ配列を使っています
Hoge[,]だとToList()メソッドがないことが関係しているんでしょうか?
0875デフォルトの名無しさん2014/10/13(月) 15:19:23.10ID:s1C0DJmM
さあ。
っていうか、上で逆のこと言ってる人がいるけど、そもそも多次元配列って普通はあまり使わないよそもそも。
俺もエクセルのオートメーション以外で使ったことない。
0876デフォルトの名無しさん2014/10/13(月) 15:22:28.26ID:0QLRZB3e
多次元配列はIList<T>を実装していないんでしょ
IListは実装してるけど

C#1.0から2.0に移る過程でいらないから放って置かれたんだな
0877デフォルトの名無しさん2014/10/13(月) 19:58:52.74ID:5uLcTVye
2012-05-29 00:00:00 +0900

を
2012年5月29日 00時00分00秒
としたい。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/203dateparse/dateparse.html
使ってもうまくいかないのだけど、どうやればいいでしょうか?
0878デフォルトの名無しさん2014/10/13(月) 20:12:39.27ID:TEwcKFwB
DateTimeOffset使ったら
0879デフォルトの名無しさん2014/10/13(月) 20:17:10.76ID:U2eHNo6B
>>877
こことそのサブの項目に目を通す。
まったく難しくない。
http://msdn.microsoft.com/ja-jp/library/26etazsy%28v=vs.110%29.aspx
0880デフォルトの名無しさん2014/10/13(月) 20:24:54.96ID:VoMmfcCG
書式設定ってなんか前時代の遺物みたいな仕様だよな
Cのprintfとかみたいなのを引きずる意味があるのか

もっと現代的にできなかったものか
08818772014/10/13(月) 20:32:43.01ID:5uLcTVye
>>878
>>879
>>880

Thanks
0882デフォルトの名無しさん2014/10/13(月) 21:14:24.66ID:4LEVj/AJ
 public class Direction
 {
  List<Func<int,int,Space>> Directions;

  public Direction(int row,int column)
  {
   Directions = new List<Func<int, int, Space>>();
   Directions.Add(Up(row,column) );//←ここで引数エラーになります。
  }

  public Space Up(int row,int column)
  {
   row -= 1;
   return new Space(row, column);
  }
 }
0883デフォルトの名無しさん2014/10/13(月) 21:23:19.48ID:R99qWLrl
エラーメッセージをまずは読め

Directionsの要素の型はFunc<int, int, Space>であってSpaceではない
そこには Direction.Add(Up)とだけ書けばいい
0884デフォルトの名無しさん2014/10/13(月) 21:32:50.43ID:4LEVj/AJ
戻り値のSpaceを引数に渡していることになるんだ
ありがとう
0885デフォルトの名無しさん2014/10/13(月) 22:19:57.08ID:P7wkOe8D
やりたいこと引数にXML とURLを渡して、
その結果から、datatableを作成したいと考えています。

この処理が長いので、別クラスにしたいです。
引数にXMLとURLで、返す値は、datatable と行ったことは出来るのでしょうか?


フォーム上のプログラム

function(postのXML,url)






function クラス

・入力
postのXML,url

・出力
datatable

これは、return databable;
とすればいいのでしょうか?
0886デフォルトの名無しさん2014/10/13(月) 22:48:44.05ID:jZxRKtQH
xmlの内容、urlの内容をdatatableに突っ込めば?どんなスキーマか知らんけど
0887デフォルトの名無しさん2014/10/14(火) 00:58:33.95ID:H4CFmhAR
C#でゲームってUnityしかないの?
相互運用でダイレクトXはちと辛いか
0888デフォルトの名無しさん2014/10/14(火) 02:59:41.31ID:0VoKz3YK
ポリモーフィズムとかいろいろ使って簡潔に書かれているコードほど読むのに時間がかかるね
0889デフォルトの名無しさん2014/10/14(火) 03:01:38.33ID:RZWbQNJx
それがお前の簡潔の定義なら、そんな簡潔捨てちまえ

初心者が言うシンプル(笑)スマート(笑)じゃあるまいし
0890デフォルトの名無しさん2014/10/14(火) 03:05:25.02ID:0VoKz3YK
>>874のソース見ているんだけど
どこで石を置けるか判定しているのかさっぱりわからんの
0891デフォルトの名無しさん2014/10/14(火) 04:16:37.14ID:t5fH7arr
>>887
XNAとかMonoGameとかSharpDXとかある
まあ確かに最近は猫も杓子も馬鹿の一つ覚えのようにUnityで
それ以外のやつらの存在が霞みがちだが
0892デフォルトの名無しさん2014/10/14(火) 05:03:45.84ID:BVjyeKaO
IsValidMoveSpaceじゃね?ちょっと見
0893デフォルトの名無しさん2014/10/14(火) 08:06:07.91ID:0VoKz3YK
>>892
そこみたいですね、ちょっと見でわかるってすごい
理解するのに何時間もかかった
でも何故こんなに細切れに複数のメソッドにわけるんでしょうか
単純に見やすくするため?
それにIsValidMoveSpaceを静的メソッドを使っている理由がわかりません
わざわざboardを引数で渡したりしてるし・・・
将来的に別クラスで定義させるためかな?
0894デフォルトの名無しさん2014/10/14(火) 20:59:00.29ID:Pgs1s2Or
http://msdn.microsoft.com/ja-jp/library/debx8sh9(v=vs.110).aspx
にある Stream newStream = myHttpWebRequest.GetRequestStream ();
のところで、ポストできるサーバーがないとエラーになってしまいます。
このエラーを TRY CATCHでは無く、TRY 中でなんとかしてひろいたのですが、どうやればいいのでしょうか?
0895デフォルトの名無しさん2014/10/14(火) 21:03:52.40ID:cvEuiIpj
tryブロックネストすればいいよ
0896デフォルトの名無しさん2014/10/14(火) 21:03:59.48ID:NDmWndw5
ちょっと意味が分からない
tryは多段にできるけどそういうこと?
try {
&nbsp; &nbsp; Stream newStream;
&nbsp; &nbsp; try {
&nbsp; &nbsp; &nbsp; &nbsp;newStream = req.GetRequestStream();
&nbsp; &nbsp; } catch (...) {
&nbsp; &nbsp; &nbsp; &nbsp;...
&nbsp; &nbsp; }
&nbsp; &nbsp; ...
}
0897デフォルトの名無しさん2014/10/14(火) 21:36:21.64ID:4u/bmfXf
すいませんSystem.AddInのセキュリティについて質問した>>844ですが、無理なのでしょうか?

ちょっと簡略化して例えば、

MyHost.exe
MyLibary.dll (完全信頼を要求し、決まったファイルのみを読み書きする)
MyAddIn.dll (部分信頼のAppDomainでFileIO使用禁止)
Pipelines諸々

AddInに好き勝手にファイル操作はしてほしくないが、MyLibraryを通してならいいよというイメージなのですが
AppDomainの完全信頼のアセンブリにMyHostとMyLibraryを追加、後者にAllowPartiallyTrustedCallers属性を追加
これで行けるかと考えたのですがMyLibaryでSecurityExceptionが発生します
0898デフォルトの名無しさん2014/10/15(水) 00:23:55.32ID:/A+Ycmot
ウィンドウ内にいろんな画像を大量に表示させたいんだけど
ベースとなるオブジェクトはPanelがいいの?
んでPanelのGraphicsを生成してそいつに画像を乗せるのが定石?

Graphics g= Panel1.CreateGraphics();

for(int i = 0; i < 10; i++){
g.DrawImage(img, x, y, img.Width, img.Height);
0899デフォルトの名無しさん2014/10/15(水) 00:24:33.26ID:/A+Ycmot
タブ+Enter押しちゃった・・・
0900デフォルトの名無しさん2014/10/15(水) 01:25:17.70ID:hysjMGvQ
>>898
適切な回答が欲しければ要件は詳細に書く。
いい加減な質問にはいい加減にしか答えようがない。
0901デフォルトの名無しさん2014/10/15(水) 01:28:43.70ID:tciblAto
>>898
OpenGL
0902デフォルトの名無しさん2014/10/15(水) 08:18:05.42ID:tcLFVAdr
>>898
WPF
0903デフォルトの名無しさん2014/10/15(水) 08:53:30.65ID:Mz70dzpQ
こうやっていい加減に答えたくてうずうずしてる奴がいっぱい群がってくるから
要件は詳細に書いたほうがいいね
0904デフォルトの名無しさん2014/10/15(水) 11:42:44.14ID:v6NXSltG
>>898
とりあえずそのコードだとウィンドウの再描画時に消えるよ
0905デフォルトの名無しさん2014/10/15(水) 15:34:46.35ID:2R9TmenV
>>898
WebBrowser
0906デフォルトの名無しさん2014/10/16(木) 12:32:57.93ID:+7NVe3BF
datatable の列削除で最も早い方法を教えて下さい。
SQLでいうと、
ALTER TABLE test_table DROP COLUMN 削除したいコラム
にあたります
0907デフォルトの名無しさん2014/10/16(木) 13:43:49.77ID:6zTGqYum
考えなおせ お母さんは泣いているぞ
0908デフォルトの名無しさん2014/10/16(木) 13:49:51.45ID:rvFRd6iT
Columns.Remove/RemoveAtでいいじゃないの
09099062014/10/16(木) 16:37:25.91ID:+7NVe3BF
>>908

Thank you.
下記にも説明ありました。
ttp://stackoverflow.com/questions/75123/remove-columns-from-datatable-in-c-sharp
0910デフォルトの名無しさん2014/10/17(金) 22:44:13.16ID:a5wn0fVq
最近、Silverlightを始めたのですが、WPF感覚で作ったら
あっさりWEBアプリとして動いたのでビックリしました。

ローカルアプリとWEBアプリを、同じ感覚で作れるって
結構凄くて便利だと思うのですが、なぜSilverlightは
オワコン扱いなのでしょうか?
0911デフォルトの名無しさん2014/10/17(金) 22:48:32.62ID:RHuqairb
今更プラットフォーム毎にプラグインのたぐい入れさせるとか古いわー
html5+JavaScriptで大体済むんだからむしろローカルアプリもこれでいくのがいいわー
とかそんなん
たまたまブラウザに乗ってたのがJavaScriptというのが悲劇だよな
0912デフォルトの名無しさん2014/10/17(金) 22:55:54.89ID:GOPRB/Wa
>>910
Flash対抗だったものだけど普及する前にモバイルが台頭して
html5とモバイルのネイティブアプリが優勢になったのさ
0913デフォルトの名無しさん2014/10/17(金) 23:02:22.56ID:hygHBCT2
ストア通さないでアプリ配布されたら儲からないから
FlashやSilverlightなんて使えないようにしてる
0914デフォルトの名無しさん2014/10/17(金) 23:16:03.71ID:TuXIYpHM
WinFormsが使えるならまだしもWPFなんて元々ほとんど使われてないんだから
WPFと同じ感覚で作れますと言っても宣伝にならないし、
WinForms感覚で作りたいならASP.NETのWebFormsという優秀な子がいる
ニーズがないんだよ
0915デフォルトの名無しさん2014/10/17(金) 23:30:58.21ID:GOPRB/Wa
WPFやSLの構造ってブラウザの構造の持込だからな
XAML=HTML
C#など=javascript
cssに相当するものも存在するし
0916デフォルトの名無しさん2014/10/17(金) 23:31:02.09ID:g7QKTwjj
>>913
それHtml5も同じじゃないの
0917デフォルトの名無しさん2014/10/18(土) 00:06:07.42ID:5eObO2aR
html5はソース丸見えだからな
まあ.netはリバースエンジニアリングしやすいだろといわれるとそれまでだが
0918デフォルトの名無しさん2014/10/18(土) 05:21:24.37ID:z8db1sck
html5はmsが管理できないから放置するしか無いわな
0919デフォルトの名無しさん2014/10/18(土) 07:37:52.41ID:GqR4PR9W
Webアプリでフロントのソースが見えるのは問題にならんだろ
たかがビューのソースが見えるだけだぞ?
フロントのソースが見えるとロボットを作ってサービスを悪用するのが容易ではあるが、
それはクライアントとサーバー間のインターフェイスが統一されていて扱いやすいことの裏返しでもある
0920デフォルトの名無しさん2014/10/18(土) 07:43:06.47ID:sKVK4DBV
JSは幾らでも難読化できるし、HTMLもUIフレームワークで動的生成すると自然にクッソ汚くなるから心配ない
0921デフォルトの名無しさん2014/10/18(土) 07:57:01.90ID:oMy4xH7m
エンガチョ
0922デフォルトの名無しさん2014/10/18(土) 08:28:50.95ID:hIPbxheZ
WinForm愛好家=ドカタ
0923デフォルトの名無しさん2014/10/18(土) 08:39:17.76ID:GqR4PR9W
それを言うならWebでもデスクトップ感覚で作りたいなんてそれこそドカタらしい発想だと思うけどな
Webフレームワークの一個や二個は使えるようになっとけよ
0924デフォルトの名無しさん2014/10/18(土) 09:01:41.65ID:CJKU74eu
html5+JavaScriptが主流になっちゃったけど開発がなー
MS製品というかVisualStudioが楽すぎて他の環境がかったるすぎる
0925デフォルトの名無しさん2014/10/18(土) 12:54:52.49ID:AiF0yQSm
そもそもhtml5ってほんとに使われてるか?
PCはいまだフラッシュ スマホはネイティブアプリで虚空に漂ってないか
0926デフォルトの名無しさん2014/10/18(土) 12:59:15.15ID:7J55/Oed
html5自体はもう相当のサイトが使ってるんじゃない?
section要素とか適当なページのソース開いても必ず含まれてるとすら感じるレベル
フラッシュ代替としてどうかは知らん
0927デフォルトの名無しさん2014/10/18(土) 13:42:05.36ID:1ym1tiKm
>>924
>VisualStudioが楽すぎて他の環境がかったるすぎる
禿同するわ
0928デフォルトの名無しさん2014/10/18(土) 14:39:04.00ID:l/ZwH6UN
リソース解放のusingって
こういうnewのときだけに使うの?
using (Foo foo = new Foo())
{
}
こういうメソッドで取得みたいのでは使ってはダメ?
using (Foo foo = FooFactory.createFoo())
{
}
0929デフォルトの名無しさん2014/10/18(土) 14:41:26.86ID:5eObO2aR
>>928
後者はImageオブジェクトからGraphicsを取得した際なんかで良く使う
http://stackoverflow.com/questions/4154648/preventing-outofmemoryexception-with-gc-addmemorypressure
0930デフォルトの名無しさん2014/10/18(土) 14:41:37.24ID:bur1GAQf
1024個のデータを折れ線表示したいのですが高速に描画出来る方法はないでしょうか
oxyplotというのを試そうとしましたが
コントロールを追加するためにdllを読み込んだところ、
OxyPlot.WindowsForms.dllには、ツールボックスに配置できるコンポーネントが何もありません
と出てできませんでした
0931デフォルトの名無しさん2014/10/18(土) 14:47:21.28ID:7J55/Oed
とりあえずChartコントロール使ってみたら
0932デフォルトの名無しさん2014/10/18(土) 15:03:12.94ID:l/ZwH6UN
>>929
ありがとう
メソッドがnullを返却する場合でもusingでくくって大丈夫かな
0933デフォルトの名無しさん2014/10/18(土) 15:17:43.93ID:bur1GAQf
>>931
とても実用的な速度ではなかったです
0934デフォルトの名無しさん2014/10/18(土) 16:26:36.42ID:edoMpshD
>>933
>>900
0935デフォルトの名無しさん2014/10/18(土) 16:29:23.37ID:5eObO2aR
基本的には描画を止めてaddrang系のまとめて突っ込むって方法取らないと
大量のデータの処理は間に合わんよ
後は仮想化?
0936デフォルトの名無しさん2014/10/18(土) 16:38:08.68ID:THqqqqi/
DirectXかOpenGL使えば?1000点の折れ線なんて10msもかからんよ。
0937デフォルトの名無しさん2014/10/18(土) 16:45:58.19ID:5eObO2aR
自分でGraphicsで書いてもいいんじゃね?
Linesもあるし
0938デフォルトの名無しさん2014/10/18(土) 18:47:01.06ID:9N+qrC2m
WPFなら速いよ
0939デフォルトの名無しさん2014/10/18(土) 19:20:14.12ID:bur1GAQf
>>937
ありがとうございます
これで出来ました
0940デフォルトの名無しさん2014/10/18(土) 21:18:28.90ID:+tyzGHur
>>932
OK
nullならなにもしない
つか試せば分かる

>>939
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、
0941デフォルトの名無しさん2014/10/18(土) 21:51:17.61ID:l/ZwH6UN
>>940
ありがとうございました
0942デフォルトの名無しさん2014/10/18(土) 23:05:26.09ID:aI4jMMSJ
>>939
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、
0943デフォルトの名無しさん2014/10/18(土) 23:14:36.20ID:zDU0b//I
>>938
WPFはこういうのどうやっても糞遅いよ。
過去に散々実験したから絶対間違いない。
とは言っても1000点程度の折れ線なら10msのオーダーだと思うけど。

GDI+のGraphics.DrawLinesって与える点の数が2未満だと例外投げるお馬鹿仕様なんだよね。
1点以下または空の配列なら何も描画しない仕様の方が使いやすいと思うんだが、なんでこんな要らんことするのか。
0944デフォルトの名無しさん2014/10/18(土) 23:19:26.49ID:XM+6Nb20
基本try catchの文化だし何も描画しないっていう挙動も正直どうかと思うよ
0945デフォルトの名無しさん2014/10/18(土) 23:44:50.37ID:zDU0b//I
何が基本かさっぱり分からんけど、必要もない例外を投げる仕様はお馬鹿としか言いようがない。
点なしや1点は多点の特殊ケースを考える方が自然だし、その方が使いやすい。
少なくともそれを問答無用で例外を投げる(間違いとみなす)のはおかしい。
0946デフォルトの名無しさん2014/10/19(日) 00:34:13.28ID:QGjrnvoD
TryDrawLinesが欲しいってことか
0947デフォルトの名無しさん2014/10/19(日) 00:36:47.51ID:WgY9Tq0K
自分で作れや・・・
0948デフォルトの名無しさん2014/10/19(日) 00:40:00.64ID:FPgApT/T
自分で作ったほうがよかろう
例外処理はどうしても重くなるからな
0949デフォルトの名無しさん2014/10/19(日) 02:00:53.54ID:f5Hg7b2l
俺は線分を描くのに一点だけ与えようとは思わないのでどうでもええ
てか例外出るって今知ったわ
0950デフォルトの名無しさん2014/10/19(日) 02:37:36.89ID:sVtqNbj4
線を描けと言いながら
線の要件を満たさない引数を渡すほうが悪い
0951デフォルトの名無しさん2014/10/19(日) 02:38:54.99ID:QxqVqA7R
お、引数足らんから点打っときますわ
でok
0952デフォルトの名無しさん2014/10/19(日) 02:44:46.01ID:dYMEKjkN
というかそれも設計段階の仕様の一つ
MSの中の人が考えた仕様は例外じゃ!

あわせましょう
0953デフォルトの名無しさん2014/10/19(日) 02:53:24.19ID:sVtqNbj4
部下に指示を出すケースに照らし合わせれば
「すみません、いただいた情報では線は描けませんが」と報告が上がってくるのが
もっとも穏当で筋の通った流れだろう
それとも「それぐらい自分で考えろ」って言い捨てる?
0954デフォルトの名無しさん2014/10/19(日) 02:58:36.90ID:sVtqNbj4
ごめん、>>953は例えとして微妙だし
上司部下がどうのとか要らぬフレームのもとになりそうだから忘れてほしい
すまんかった
0955デフォルトの名無しさん2014/10/19(日) 03:05:01.02ID:WgY9Tq0K
そんな情緒不安定な書込されると不安になるわ
0956デフォルトの名無しさん2014/10/19(日) 03:19:58.11ID:dYMEKjkN
>>953
実際のところはすごい階層の組織になってて処理するのはおそらく末端だろうけど
むかーしのロジックの書き方のように末端がこれでは線がかけませんって報告を
伝言ゲームで返すほうがいいのか?
それとも点を書くのがいいのか?

ダイレクトにこれは書けませんって返ってきてもいいと思うけどな

Cでエラー処理書くとなるとリターンコードをひたすら階層分返してたんだぞ
0957デフォルトの名無しさん2014/10/19(日) 03:21:15.08ID:gAtBbPfl
GDI+に文句があるのならGDI+を使わなければいいのに、と思う
0958デフォルトの名無しさん2014/10/19(日) 04:08:03.05ID:lKnJZ0BO
プロプライエタリな実装なら使えない糞実装も商業的理由で消えず
強制される場合だってあるし、その上金まで払ってるんだ。
文句の一つでも言わせてやろうよ。
0959デフォルトの名無しさん2014/10/19(日) 04:43:44.54ID:ZBVPXUuk
通常Graphics.DrawLinesメソッドを使おうとする人は必ず複数の線分を描きたいと考えてる人であって
複数の線分の情報を変数に格納できずに誤ってメソッドに引数として渡してしまったら例外出てほしいだろ
1点以下orナルの引数で何も描写しないことを望む奴は早々いないよ
通常は設計の段階で線分を引く必要ない状況で分岐のコードを書くし
0960デフォルトの名無しさん2014/10/19(日) 07:17:50.82ID:I8zMPvcx
まあ >>945 の言い分もわからなくはないが、いちいちこんなところであげつらうほどのことじゃないだろ
0961デフォルトの名無しさん2014/10/19(日) 09:38:01.01ID:5cbEIqOp
VC#2010とPostgreSQLの組合せって、ありですか?
0962デフォルトの名無しさん2014/10/19(日) 09:57:50.16ID:pzY+Dfmp
>>961
無しの理由も無いだろう
0963デフォルトの名無しさん2014/10/19(日) 11:38:34.45ID:U9zncy/O
>>956
つまりこう言いたいんだろ
階段を登って降りるのが面倒だから
下にマットを並べて窓から飛び降りればいいじゃんて

登る前にあらかじめマットを並べとくんだろ
0964デフォルトの名無しさん2014/10/19(日) 13:00:35.68ID:WgY9Tq0K
点が1つまたは0の時に例外が返ってきて欲しい奴って多分いないと思うぞ

例外かよくっそめんどくせえ・・・ってなってtry catchして無視するか
気付かずにそのままにされて後で大問題になるかの2択だろう
0965デフォルトの名無しさん2014/10/19(日) 13:02:21.26ID:FPgApT/T
>>964
点が1つまたは0の時ってわかってるんなら、手前ではじけばいいじゃん(´・ω・`)
0966デフォルトの名無しさん2014/10/19(日) 13:03:29.67ID:dYMEKjkN
>>963
そもそも「線の連なり」を表現するためのものに1点以下なんて突っ込むのは例外でいいよ
上のほうで想定しとけってレベル
0967デフォルトの名無しさん2014/10/19(日) 13:13:21.18ID:pRVsX1zF
「n個の点を結ぶ線」ならわざわざn=0,1を特別扱いしたくないがな。
0968デフォルトの名無しさん2014/10/19(日) 13:14:39.93ID:dYMEKjkN
俺俺仕様通したければ自分で全部構築しろ
できあいのもの利用するんだからあわせろ
0969デフォルトの名無しさん2014/10/19(日) 13:17:37.34ID:p/KWa0Ks
>>967
こういう考え方が理解できるかどうかはプログラマとしての適性の最小要件を満たすかどうかの
判定に使えそうだ。

それでいくとこのスレやっぱりダメな奴多いんだなw
0970デフォルトの名無しさん2014/10/19(日) 13:18:52.99ID:dYMEKjkN
プログラマとしてダメとかじゃねえだろ
.netで相当楽してるしvsあれば楽できてるのにこんな重箱の隅つつくようなことで
ぐちぐち言ってるほうが糞だわ
0971デフォルトの名無しさん2014/10/19(日) 13:20:30.36ID:dYMEKjkN
すげーループの中でtryしないきゃいけないならそれは個別で考えればいいだけの話で
マイコンでプログラムやってるわけじゃねえしぐだぐだいう暇があったらコード書け
0972デフォルトの名無しさん2014/10/19(日) 13:26:41.80ID:FPgApT/T
まったりできぬ者は死すべし
0973デフォルトの名無しさん2014/10/19(日) 16:01:19.68ID:f5Hg7b2l
たぶんこのスレなら、俺以外は死んでも誰も困らないと思うわ
というわけで死んどけよ
0974デフォルトの名無しさん2014/10/19(日) 16:16:42.74ID:VogVAmE7
いろんな考えの奴がいて、いろんなことが起きる
って考えれない奴はプログラミングだけじゃなく人間社会に向かない
0975デフォルトの名無しさん2014/10/19(日) 17:35:48.30ID:lj912BXJ
中学生か。
個別の問題を一般論にすり替えて何か言ったつもりになってるのなら馬鹿そのもの。
0976デフォルトの名無しさん2014/10/19(日) 20:33:23.89ID:QGjrnvoD
考え方の問題じゃね?
Graphics.DrawLinesが線を1本以上引くって仕様なら例外投げるのが普通だし
0977デフォルトの名無しさん2014/10/19(日) 20:41:43.01ID:ttAUwWX6
GDI+的には点は面積を持たない数学的な点だから描画できないのよね
0978デフォルトの名無しさん2014/10/19(日) 21:09:02.65ID:G7zRYyk+
>>976
これだな
0979デフォルトの名無しさん2014/10/19(日) 21:10:42.71ID:4AgBlLkw
>>977
そうなのよね
点に見せたければ2点を与えてその距離を同じか隣にしないと
見た目点にならないからそもそも「点を描画してくれる」という仕様はありえない
0980デフォルトの名無しさん2014/10/19(日) 21:32:59.35ID:cXTiIqkF
プログラマの適性っていうより以前に数学ができなかった奴なんだろうね。

平面上の点の列を順に結ぶ連続する線分、って聞いたときに、>>967が言うように
点の数が0と1の場合も含めて一般化する考え方が理解できない奴って。
0981デフォルトの名無しさん2014/10/19(日) 21:38:08.86ID:4AgBlLkw
というかまあそもそも内部でどうしてるかを深く学んで無いと仕方ない面はあるけどね
bitmap画像のような単なるピクセル系の座標に点打ってるつもりの人も居れば
内部的に数学的な処理をしたあと投影してるというのもあるというのを理解してなければどうしようもない
0982デフォルトの名無しさん2014/10/19(日) 21:42:03.20ID:cmOHQxCN
DrawLinesで点が一個だったらキャップの向きが不定になるだろうが
0983デフォルトの名無しさん2014/10/19(日) 22:49:00.98ID:Br+UTkRc
>>980
負け惜しみのついでにスレ立てといて
便利君よ
0984デフォルトの名無しさん2014/10/19(日) 23:47:59.16ID:UMKfUW2G
殆どの用途だと描画データの多少の欠陥で一々エラーが返るのは鬱陶しいだけで
「余計なことすんな」と言う気持ちもわかるが、CADみたいに欠陥が許されない用途もあるから
エラーにする他無いんだろうな
0985デフォルトの名無しさん2014/10/19(日) 23:59:22.47ID:ES7BEL/1
過去スレたどることすらめんどくさいが、
始点と終点N個の引数にしろよ
0986デフォルトの名無しさん2014/10/20(月) 00:00:31.52ID:QkxWZYWv
このスレで騒ぐくらいならMSにメールでもしろよ
0987デフォルトの名無しさん2014/10/20(月) 00:09:52.08ID:exxFMbgq
例外投げるのは単に実装の都合だと思うがな。
描画対象が存在しない場合をエラーとする意図があるなら、サイズが0の図形や
空文字列の描画もすべてエラーにしてるだろう。
0988デフォルトの名無しさん2014/10/20(月) 00:27:11.11ID:/31eN32g
>>984
それは倒錯そのもので、自分で書いてるように、点の数が1以下の場合をエラーとみなすかどうかは
個々のアプリケーションの事情によるのだから、ライブラリが勝手に判断するのは
余計なお世話としか言いようがない。
0989デフォルトの名無しさん2014/10/20(月) 00:29:28.48ID:Yk5yHT0x
>>988
エラーとしてみなすと設計者が判断したのならif文書くだけだろ
それかtryするか

嫌なら全部自分で書けって
ラッパーにすぎないんだし
0990デフォルトの名無しさん2014/10/20(月) 00:29:30.94ID:aJxqBXTU
>>988
その理屈だと.NETが投げる例外の大半は余計なお世話ということだな
0991デフォルトの名無しさん2014/10/20(月) 00:29:33.37ID:SvqxHshl
2点に挟まれた直線が線分と考えれば0と1の時点で線分が作れないから例外吐くって正しい動作に思えるんだが、
線分の定義言葉遊びになるからこれ以上は何も言わない
0992デフォルトの名無しさん2014/10/20(月) 00:33:21.87ID:QkxWZYWv
彼らは
仕様に違反したら例外出すことに文句があるのではなく
仕様そのものに文句があるんでしょう
MSに抗議なさい、ここで愚痴っていても始まらないでしょう
0993デフォルトの名無しさん2014/10/20(月) 00:38:27.95ID:/31eN32g
>>911
線分ならね。
連続する線分となると話が違う。

っていうか、このスレ数学オンチ多いんだねw
0994デフォルトの名無しさん2014/10/20(月) 00:40:58.14ID:/31eN32g
>>990
>>975
本当馬鹿だな。
0995デフォルトの名無しさん2014/10/20(月) 00:51:16.17ID:7Nd6IXAf
ここは初心者スレだからバカが多いのはしょうがない

例えばゼロで除算すると例外が起きるが、
俺はtryで囲むことなんてしないし、ゼロ除算結果が7777になるっていう意味不明仕様でも構わない。
そもそもゼロで除算が起きるようなコード書かないから。

それとおんなじでどんな処理でも仕様が決まってればどうでもいい。MSDNにも多いが実際の挙動と仕様が異なるのは勘弁
0996デフォルトの名無しさん2014/10/20(月) 00:58:23.01ID:gu/ytobq
>>994
バカなのはあなたでしょ
ライブラリはアプリケーションの都合で選ぶもの
ライブラリの仕様が気に入らなえれば自分が選ばなければいい
文句を言うのは勝手だけれど、言う相手が違うよ
0997デフォルトの名無しさん2014/10/20(月) 01:00:15.17ID:XrE7a2ru
俺俺ライブラリ作ってそれでおしまいじゃん
何と戦ってるんだか…
0998デフォルトの名無しさん2014/10/20(月) 01:30:07.86ID:lmOXLRBn
>>980
はよ次スレ立てろ役立たずのクソカス
0999デフォルトの名無しさん2014/10/20(月) 05:01:50.81ID:l5ztyas0
うめ
1000デフォルトの名無しさん2014/10/20(月) 05:04:32.70ID:l5ztyas0
千
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。