[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/03 03:17 / Filesize : 222 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:30:18 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part40
pc12.2ch.net/test/read.cgi/tech/1239599317/

677 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:13:59 ]
ソリューションエクスプローラで
Form1csにForm1.Designer.csが付いてるようになってるけど、
自分で追加したClass1.csに他のソースファイルを付けるにはどうすればいいの?
ドロップできないし、partialにしてもそうならないんですが

678 名前:デフォルトの名無しさん [2009/06/19(金) 05:29:13 ]
コンボボックス内のアイテムを選択すると、指定したラベルが表示されるようにするにはどうしたらいでしょうか?
コンボボックスはDropDownListで使います。

679 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:36:50 ]
>>677
昔csprojファイルを直にいじったらできたような記憶がある
たしかこれと同じようにすればよかったと思う
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>

680 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:44:53 ]
>>678
ラベルを配列かList<Label>にでも入れといて
SelectedIndexChangedイベントが発生したら
そのインデックスに対応するラベルを表示

681 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:58:23 ]
>>679
<DependentUpon>で付けるみたいですね
ありがとうございました

682 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:06:55 ]
VS2008 SP1です。

INotifyPropertyChanged を実装したクラス「Sample」を
ジェネリックの List<Sample> に2個ほど入れ、
DataGridView の DataSource に突っ込んだところ
みごとにバインドされました。

しかし、コードでSampleクラスの値を変えても
DataGridView のフォーカスのある行しか値が更新されません。
すべての行(この場合2行)が更新されるにはどうすればよろしいでしょうか?


683 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:08:12 ]
>>682 のコードです。

class Sample : INotifyPropertyChanged
{
public Sample
{
}
private bool _count;
public bool Count
{
get { return _count; }
}
private DateTime _date;
public DateTime Date
{
get { return _date; }
}
public void Update()
{
_count++;
_date = DateTime.Now;

if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Count"));
PropertyChanged(this, new PropertyChangedEventArgs("Date"));
}
}
#region INotifyPropertyChanged メンバ
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}

684 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:09:44 ]
>>682 の実行コードです。



// 2つほど入れる
List<Sample> sampleList = new List<Sample>{ new Sample(), new Sample };



dataGridView1.DataSource = sampleList;



// スレッドで定期的に更新する
foreach (var item in sampleList)
{
item.Update();
}

685 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:56:41 ]
IBindingListが必要なんでList<T>の代わりにBindingList<T>を
あとスレッドでって言ってるけどInvoke/BeginInvokeは大丈夫か? データソースいじるときも同期が必要だぞ



686 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:35:28 ]
>>685
BindingListに変更し、Invokeメソッドで実行してみましたが、

PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Count"));

GUI上では DataGridView の現在選択中の行しか値は更新されませんでした orz

687 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:39:49 ]
>>685
いえ、全部の行が更新されています!
ありがとうございました!orz

688 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:42:53 ]
どうでもいいがそのInvokeじゃないぞ
Control.Invokeの方

689 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:53:33 ]
>>688
手順としては

1.Sample クラスでプロパティの変更を感知
2.?
3.DataGridView または DataGridView の所属する Form で
Control.Invoke(?) を呼び出す。

ということでしょうか?

690 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:01:42 ]
Updateの呼び出しそのものをInvoke経由で
バインディングされてるオブジェクトは扱いも慎重にしないとダメよ

691 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:16:33 ]
C#でのスレッド間同期制御について教えて欲しいんだけど、先にソースを。

//C#での実装(失敗、デッドロックする)
//※インデントに全角空白*2を使用
public class ThreadMain{
  private EventWaitHandle lockObj;
  public ThreadMain(EventWaitHandle lockObj){
    this.lockObj = lockObj;
  }
  public void run(){
    lock(lockObj){ //ここには入れない
      Console.WriteLine("sub in sync");
      lockObj.Set();
      Console.WriteLine("sub out sync");
    }
  }
}
public void test(){
  EventWaitHandle lockObj = new EventWaitHandle(false, EventResetMode.AutoReset);
  ThreadMain tm = new ThreadMain(lockObj);
  Thread t = new Thread(tm.run);
  lock(lockObj){
    t.Start();
    Console.WriteLine("main in sync");
    lockObj.WaitOne(); //ここで待機中の間だけlockObjを解放したい
    Console.WriteLine("main out sync");
  }
}

692 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:17:29 ]
//javaでの実装(期待通りに動く)
//※インデントに全角空白*2を使用
public class Test{
  public static class ThreadMain implements Runnable{
    private Object lockObj;
    public ThreadMain(Object lockObj){
      this.lockObj = lockObj;
    }
    public void run(){
      synchronized(lockObj){
        System.out.println("sub in sync");
        lockObj.notifyAll();
        System.out.println("sub out sync");
      }
    }
  }
  public static void main(String args[]) throws InterruptedException{
    Object lockObj = new Object();
    ThreadMain tm = new ThreadMain(lockObj);
    Thread t = new Thread(tm);
    synchronized(lockObj){
      t.start();
      System.out.println("main in sync");
      lockObj.wait(); //待機中はlockObjのモニタは解放されている
      System.out.println("main out sync");
    }
  }
}

693 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:18:59 ]
上(>>691)のプログラムで、
main in sync
sub in sync
sub out sync
main out sync
というシーケンスになるようにしたいんだけど、どうしたらいいだろう?

期待している動作は、メインスレッドがWaitOneに入るときlockObjのロックが解放されて、
サブスレッドがSet()して、さらにlock文から抜けた後、
mainがlockObjのロックを再獲得してWaitOneから復帰するようなイメージ。

Visual C# 2005 Express SP1 (.NET 2.0)

694 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:29:32 ]
lockとEventWaitHandleは全然別物なんだからそりゃうまくいくわけないな
lockはMonitorの糖衣構文だから、Monitor.WaitとMonitor.Pulseを使えば

695 名前:693 mailto:sage [2009/06/19(金) 11:29:40 ]
あ、待機はスピンロックでなければ、EventWaitHandle,lock以外でも良いです



696 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:30:38 ]
>>694
レスサンクス
ちょっとやってみる

697 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:38:20 ]
うほ出来た
Monitorクラスはlock文用のEnterとExitしか無いと思い込んでた^q^
>>694 ありがとう

(変更点)
//EventWaitHandle lockObj
Object lockObj

//lockObj.Set();
Monitor.Pulse(lockObj);

//lockObj.WaitOne();
Monitor.Wait(lockObj);

698 名前:デフォルトの名無しさん [2009/06/19(金) 13:30:18 ]
VC++のCTreeCtrl(MFC)
CTreeCtrl::GetEditControl
に相当する処理を、
C#のTreeView
で探しています(VS2005 .NET Framework 2)。
なんとかして、エディット コントロールのハンドルが欲しいんですが、
どうしたらいいか、わかる人おられませんか?


699 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:46:48 ]
道路標識みたいなアイコンのついたダイアログってどうやって出すんでしょう?
フォームを自作しなくても、既製の部品があると読んだ覚えがあるんですが、
どうしても思い出せません。

こういうやつです。
ttp://f.hatena.ne.jp/images/fotolife/o/os0x/20080512/20080512223830.png

700 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:53:41 ]
MessageBox.Show("text", "caption", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

701 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:54:07 ]
MessageBoxIcon

702 名前:699 mailto:sage [2009/06/19(金) 15:03:01 ]
ありがとうございます。助かりました。

703 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:10:51 ]
INTもクラスなんだなー
int x=new int();
x=12;
ってやってもちゃんとできるね。

704 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:26:27 ]
クラスじゃないです

705 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:58:00 ]
とりあえずINTとIntとintは違う物なので
きちんと書き分けないと話が通じなかったりするぞ



706 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:00:17 ]
object i = 3;

なんてこともできます。
実際はboxingでInt32に変換されてるだけですが。

707 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:04:58 ]
Int32に変換? 「から」だろ?

708 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:11:03 ]
class Program {
static void Main(string[] args) {
object i = 3;
Console.WriteLine(i.GetType().FullName);
}
}


709 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:12:57 ]


namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Func(ref int x){
x=10;
}

private void Form1_Load(object sender, EventArgs e)
{
int y;
this.Func(ref y);
}
}
}

これコンパイルできない
引数に10を代入する関数Func作ったが
this.Func(ref y)のyがグローバルとか意味輪からんことでてきてる
どうすればなおせる?

710 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:15:32 ]
エラー CS0165: 未割り当てのローカル変数 'y' が使用されました。

711 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:16:04 ]
refじゃなくてout使っとけ
それかyに初期値代入しとくか

つかエラーメッセージぐらいちゃんと書け

712 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:45:54 ]
豆知識
ダイアログがアクティブな状態でCtrl+Cを押すと
エラーメッセージがクリップボードに入るぞ

713 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 19:10:26 ]
常識だろjk

714 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 22:32:06 ]
練習として、例のごとくテキストエディタを作っているのですが、「切り取り」「コピー」「削除」の表示について質問です。
テキストが選択されている間のみ上記のメニューを選択できるようにしたいのですが、上手く表示されません。

具体的には、
TextBox内のテキストを選択している状態で編集メニューを開いても上記のメニューは選択できる状態にはならず、
右クリックでメニューを表示してから編集メニューを開くと上記のメニューが選択できる状態になります。
右クリックをした瞬間に何かを呼び出しているんでしょうか?

ちょっとわかりにくいでしょうか・・
ご教授願います。

715 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:23:00 ]
>>714
メニューを開かれるタイミングで調べるんじゃなくて、
TextBoxの選択が変わったときにメニューのプロパティを書き換えるんだ。



716 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:24:18 ]
メニューってContextMenuStripなのかMenuStripなのか
どっちにしろOpendイベントで判定すればいいと思うけど

717 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:06:17 ]
string[] line = text.Split('\n');
string[] cell = line.Split('\t');
と書いたとき、
for (int i = 0; i < line.Length; i++) {textBox[i].Text = lineView[i];}
みたいに行は書けるけど、[i]行目のcell[0]はなんて書けばいいのでしょうか?

718 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:08:21 ]
>string[] line = text.Split('\n');
>string[] cell = line.Split('\t');

どうみてもエラーです

719 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:23:29 ]
列数が固定(widthとする)なら

string[] cells = table.Split(new char[]{'\t','\n'},StringSplitOptions.None)

ここでx列y行はcells[x+y*width]

720 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:53:38 ]
なるほど。
cells[0] | cells[1] | cells[2]
cells[3] | cells[4] | cells[5]
と左から順番に設定するんですね!
これはすごい。
サンクス!!!


721 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:58:09 ]
あんまりアホなこと教えないであげてください

722 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:03:07 ]
微笑ましいじゃないか。

723 名前:714 mailto:sage [2009/06/20(土) 02:57:30 ]
>>715
できました!
ありがと〜

Opendイベントとやらも調べてみます

724 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:59:17 ]
どういたしまして

725 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:09:50 ]
スレチな質問なんですがどこで聞いたら良いのか分からないので
ここで質問させてください。

Visual Studio 2008 StdのC#でGUIなアプリケーションを作成しているのですが、
ファイルを参照するボタンに画像を貼り付けたいと思います。

凝った画像ではなく、エクスプローラの「ファイルを開く」メニューに表示
されているようなアイコンで構わないのですが、どこかで配布されているの
でしょうか?

それとも皆さん毎回オリジナルの画像を作っているのですか?



726 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:18:13 ]
初心者スレなのでアホな質問にも回答するが、スレ違いはお断り

727 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:27:21 ]
>>725
MDI親フォームのリソースファイルの画像を使うとか。

728 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:29:33 ]
シェルアイコンに微妙なセンスのアイコンがいっぱいある。

729 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:34:12 ]
>>726
すまんです。

>>727-728
Windowsのシステムアイコンを抜き出して使うと言うことでしょうか?
アイコンの抜き出し方は知ってますが、やはりまずいですよね?


ここで聞けというスレがあれば誘導していただけるとありがたいです・・・

730 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:36:04 ]
スレ違いだってわかってるなら汎用質問スレいけよカス

731 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:39:24 ]
c#とVB両方インスコしちゃったら
ソリューションファイル開くときに
VisualC#とVBどっちで開くか聞いてきてうざい
VBけしたほうがいい?

732 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:45:03 ]
>>731
>>726


733 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:57:11 ]
>>725
インスコ先探せばVS2008ImageLibraryってのが多分どっかにある。無くても確かMSDNから落とせる。
>>731
.slnの関連付けを変えればいい。

まあ、無駄レス付けるくらいなら答え付けてもいいんじゃねってことで。
どこで聞いていいのか分らんなら汎用スレがある。次からこっち行ってね。

スレ立てるまでもない質問はここで
pc12.2ch.net/test/read.cgi/tech/1240877154/

734 名前:727 mailto:sage [2009/06/20(土) 04:13:29 ]
>>729
ソリューションの新しい項目を追加でMDI親フォームを追加すると
アイコンついたボタンが最初からフォーム上にあるからその画像を使ったらって意味。
その画像の元はフォームのリソースファイルにある。

735 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 04:49:24 ]
Visual Studio 2008 Part 17
pc12.2ch.net/test/read.cgi/tech/1245309571/

こっち行け



736 名前:デフォルトの名無しさん [2009/06/20(土) 06:11:38 ]
>>730
お前もいい加減スルーを覚えろよクズ

737 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 06:19:20 ]
VS2003しか知らんが確かアイコン集が入っていたはず。
Common7フォルダだったかな?
最近は付いてないのかな?

738 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 06:34:03 ]
あるスレッドで設定した変数を他のスレッドでも使うにはどうしたらいいでしょうか?
具体的にはBackgroudWorkerで設定した変数をstaticの変数に入れたいのです
別のスレッドではstaticが共有されないみたいなので行き詰ってしまいました。お願いします

739 名前:デフォルトの名無しさん [2009/06/20(土) 06:45:42 ]
silverlightでデータベース上に存在するバイナリファイルを呼び出してウェブ上で再生したいんですけど、どうすればいいのか分かりません。
誰かやり方or良いサイト知ってれば教えてください
英語でも構わないっす

740 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:07:50 ]
>別のスレッドではstaticが共有されないみたい
そんなわけがない。
もしくは何か勘違いしてる。


741 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:24:41 ]
>>740
なにか言葉足らずだったかもしれません、すいません
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37022&forum=7
ここに共有されないと載っていたので
もう少しいろいろやってみます

742 名前:デフォルトの名無しさん [2009/06/20(土) 09:24:56 ]
C#初心者です。
ConvertとかString.Formatとか、特にnewで作成してないのに
使用できるクラスのメソッドがありますが、自分でもそんなクラスを作りたいのですが
どうすれば良いですか?

743 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:34:17 ]
public int Method(int value){...}

public static int Method(int value){...}

744 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:36:22 ]
>>741
お、おまえは何を言っているのだ??


745 名前:デフォルトの名無しさん [2009/06/20(土) 09:42:21 ]
742
クラスがpublicでなかったようです。解決しました。



746 名前:デフォルトの名無しさん [2009/06/20(土) 09:45:00 ]
>>743
ありがとうございます。メソッドをstaticにしてみます。

747 名前:738 mailto:sage [2009/06/20(土) 10:13:29 ]
public class userData
{
static public int a;
static public string b;
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
userData.a = 10;
userData.b = "abc";
}

private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
MessageBox.Show("a : " + userData.a + ",b : " + userData.b);
}

わかりにくくてすいません
こんな感じでaとbを表示させたいのですが、どこがいけないのでしょうか

748 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:19:36 ]
>>747
backgroundWorker1のRunWorkerCompleted イベントを作って、
その中で MessageBox.Show() を叩けば幸せになれるお。

749 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:25:41 ]
>>748
ありがとうございます
表示できましたが、このaとbをBackgroundWorker以外でも使いたいのですが、これだとだめですよね?

750 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:34:29 ]
>>749
俺はそういうことをしないようにしてるから、大正解の方法が分らんw
BackgroundWorkerの 「IsBusy プロパティが真の間は処理を待つ」とかかな?

751 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:35:57 ]
>>750
そんなこと言ったらビジーループで待ってしまうじゃないか

752 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:39:25 ]
>>750の補足

というか、BackgroundWorkerの処理完了後の動作はRunWorkerCompleted内に書けば全て解決。
button1は別スレッドを始動させるためだけのボタンと考えればいいんじゃないかな

>>751 本末転倒だなorzwww

753 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:55:32 ]
そもそもバックグラウンドで処理するってのがどういうことか全然分かってないのかな?


754 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:06:57 ]
順番に処理したいんなら普通に関数として呼ぶよな

755 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:07:11 ]
一定時間ごとに前のBackgroundWorkerで設定したa,bを使ってまた処理させるみたいな感じなんですが、ちょっとやってみます

>>753
別スレッドで処理するってことくらいしかわかりません



756 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:11:18 ]
>>754
結構時間がかかる処理なのでBackgroundWorkerでやってます

757 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:18:25 ]
お前のレベルだとちょっと危ないな。
共有データの更新タイミングの同期とか、
何も考えてないってか気をつけなきゃならないって事も
何も分かってないだろ?


758 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:22:21 ]
危ないだろうけど、でも必要ならやるしかない。
BackgroundWorkerの記事はネット上にあるはずだから、
自分で調べてどういうところに気をつければいいか勉強すればいいじゃない。

759 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:37:02 ]
>>756
どんなに時間がかかろうと、結果が出るまで次に進めなくて、
ただ待ってるだけならバックグラウンドにする意味ナッシング。

760 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:50:14 ]
>>747
public static volatile int a;
public static volatile int b;

a, b に volatile をつけると、あるスレッドで更新すれば別のスレッドに更新が伝わるようになる。

逆にvolatileのついていない変数では、あるスレッドで変更しても、その変更が別のスレッドにすぐに伝わるわけではない。


761 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:05:02 ]
ここにあるはずのサンプルプログラムがほしいのですが、
ページの中に「ソースの表示」とか「ダウンロード」ボタンが見あたりません。
どうやって入手すればいいんでしょう?
msdn.microsoft.com/ja-jp/library/ka7h9fze.aspx

762 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:23:23 ]
>>759
進めなくても、キャンセルくらいはできて欲しい
あと、処理中に描画が止まる糞設計もやめて欲しい

763 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:34:14 ]
>>760
適当なこと書くな。
だいたいこの場合だとvolatileとかいう問題じゃないだろ。


764 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:35:41 ]
>>761
なんでここに質問するの?バカなの?死ぬの?

765 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:47:08 ]
>>763
知らないならだまってればいいのに。



766 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:50:09 ]
>>726
だまってろよw

767 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:50:42 ]
単一のプロジェクト内で、特定の関数とかメソッドだけ
バックグラウンドにするメリットってあるの?
もちろん結果が出るまで待つ場合。

とりあえずバックグラウンドにするだけじゃ、
プロセスの優先順位は変わらないよね?

768 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:59:05 ]
今回のはvolatileとかいう問題じゃなくて、
aとbを同時に更新(あたかも)する必要がないか、
更新タイミングの同期はどうするのかって方向であって、
この例でvolatile云々言うのは大抵的外れ。


769 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:05:28 ]
だいたい、実質的にvolatileが要るのはもうちょっと状況が限られるよ。
必要な場合はあるけど、volatileつけないと別スレッドから見えないかっていうとそんなことはない。
まあ言い方に色々誤弊はあるけどね。


770 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:09:48 ]
>>761
ローカルのヘルプからたどればいいのに・・・
それにそこのリンクからもダウンロードできるじゃないか

そこのリンク→方法 : サンプルを表示およびダウンロードする→Microsoft Download Center にアクセスします。

771 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:11:03 ]
>>767
応答なしってタイトルバーに出たりするとユーザは不安になるもんだ
ちっとも経過を報告しないプログレスバーが行ったり来たりしてる方がマシ
キャンセルもできればなお良し

772 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:29:09 ]
CLR2.0では暗黙に全ての書き込みがvolatile書き込みな件

773 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:44:36 ]
double-checked lockingが使えるメモリモデルになってるって話か?

それ以上の意味なら、ソースが欲しい

774 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:46:03 ]
初心者ネタじゃないからよそに行け

775 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:53:56 ]
C#ではクラス名のあとに.をつけたら
いろいろ候補でるよね

Button1.って入力したら
ClickとかTopとかずらずらって。
あの候補のことなんていうんだっけ?



776 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:56:25 ]
入力候補

インテリセンスの機能だな。

777 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:55:37 ]
VS2008EEってセットアッププロジェクト作成機能ないの?

778 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 00:47:07 ]
プロジェクトをすべて保存にしたら
フォルダが
binとobjにわかれていて
それぞれにdebug releaseの二つに分かれてて
全部で4つの同じexeがあるんだが
なんでこんなことしてんの?
20MBのexeを4つも作られたら容量圧迫してかなわん。

bin/obj
debug release
どのexeが正しいexeなの?

779 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 00:52:51 ]
binが出力結果 objは中間ファイル置き場
DebugとReleaseは言わずもがな

780 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:53:10 ]
20MBもいくほうがおかしい。
容量圧迫ってどんだけきつきつでやってんだよ。


781 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:25:53 ]
exeが20MBって時点で、C#じゃなくてMFCアプリかなんかじゃね?

782 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:53:12 ]
ベクタライズ最適化という言い方は中途半端だったかもしれない。
gccにおけるauto-vectorazationのことで、一般的には自動ベクトル化と訳されているようだ。
gcc.gnu.org/projects/tree-ssa/vectorization.html

本質的にはループを展開して並列実行させることだからSIMDが無くても
複数のレジスタに分ける方法だってあるわけだが、
SIMDに対応してるならそれに越したことは無いだろうな。

783 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:55:19 ]
誤爆した。スマン。首吊ってくる。

784 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 09:27:29 ]
WebBrowserコントロールのDocumentTextプロパティでWebページを表示させているのですが
読み込むときに鳴るカチッという音を消したい場合はどうしたらいいでしょうか

785 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 09:37:05 ]
消せないっぽい。



786 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:30:38 ]
まじか。どもです

787 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:55:02 ]
OpenNew して、Document.Write すればいいらしい。
試してないからよくわからんが。

788 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 11:41:24 ]
>>787
そうするとページのURLが存在しないから、そのページはよくても
ほかのページにジャンプするときはフルパスのリンクが必要だな。
で、そのときにカチッと音が出る。

789 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 11:58:52 ]
>>787さんの方法でできました。ありがとうございました

790 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:12:23 ]
stringの扱いが分りません。 

変更できないらしいことは分ったんですが、
文字列の受け方がよくわかりません。

こういう場合は、どうすればいいんですか ><

sting param;

if ( xxxx )
param = "THEN"
else
param = "ELSE"



791 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:13:45 ]
それは変更してないじゃない。

792 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:17:06 ]
それだけだと普通にコードとしても意図としても成立してるが

793 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:24:08 ]
>>790
それでおk。
あとは
string param = (xxx) ? "THEN" : "ELSE";
とも書ける。

794 名前:790 mailto:sage [2009/06/21(日) 15:56:06 ]
レスありがとう

よくわからないから、今度はこうしてみたんですけど、
whileの外で使うと値が入ってないんです。><

main(){

char [] param = null;

while( xxxx ){
if ( xxxx ) then
param = THENストリング.ToCharArray();
else
 param = ELSEストリング.ToCharArray();
}

Console.WriteLine("Paramの中身", param);
}

795 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:58:32 ]
まずはデバッガの使い方覚えたほうがいい。



796 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 16:01:38 ]
>>795に同意
794は多分ループ内に入ってないんだろうなぁ

797 名前:デフォルトの名無しさん [2009/06/21(日) 16:03:20 ]
中途半端に隠さずに貼るなら全部貼れ
そしてどういう結果を期待してるのか書け

798 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:24:23 ]
> if ( xxxx ) then

thenって?

799 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:44:45 ]
webbrowserのリンクをクリックしたらデフォルトのブラウザで開かせたいのですが
red-treasure.com/report/?p=100
上のサイトにあるようなややこしいことしないとできませんか?

800 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:48:55 ]
この程度でややこしいってどんだけw

801 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:49:03 ]
何がどうややこしいのやら

802 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:59:14 ]
>>799
「デフォルトのブラウザーが何か」ってのはOS上のユーザー設定を参照しないといけないことだからなぁ。
そこのサイトのコードだけでできるってのは、十分シンプルだと思う。


803 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:36:32 ]
BeforeNavigate とかではダメなんか?

804 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:43:30 ]
すでに自分を起動していたら、古いほうのウィンドウを閉じて新しいウィンドウで処理する、というのはどう書くものですか?
Processで自分の名前を取得して終了メッセージを送ったら、(当然のように)自分も終了してしまいました…。
あたりまえか。
多重起動を禁止するのではなく、行いたいです。
アドバイスお願いします。


805 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:50:40 ]
基本的な考え方は多重起動禁止と同じだけどね
Mutex の代わりに EventWaitHandle 使う
新しいプロセスはイベント通知するだけでその後は普通に進める
前のプロセスはイベントを受け取ったら終了処理



806 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:13:06 ]
俺はMutex取得できた奴がサーバとしてSetPropでWHDLをプロパティ設定。
取得できなかった奴はクライアントとしてGetPropで見つけたWHDLに
WM_COPYDATAで起動パラメータの情報を送信して終了。
サーバはWM_COPYDATAで受け取った情報で処理。

って作ってた。1.1だったからなぁ。

807 名前:806 mailto:sage [2009/06/21(日) 21:17:10 ]
あ、古いほうを終了か。間違えた。すまん。

808 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:17:33 ]
古い方を閉じるならもう少し複雑になる。
同時に何個も起動したときにおかしなことにならないようにしないといけないから。

809 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:25:25 ]
WHDL ってなんだよ・・・ せめて hwnd とかだろ

810 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:27:17 ]
正直、古い方を閉じる理由ってなんなんだろ?

811 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:29:23 ]
ごめん、変数名をなんでかそう書いてたんで、そのまま追いかけて読んで
書いちゃったw >>WHDL

・・・マジ、なんでWHDLとか書いてたんだ?自分。

812 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:42:07 ]
古い方を閉じるなんてめちゃくちゃなUXだな

813 名前:デフォルトの名無しさん [2009/06/21(日) 22:02:33 ]
.NET や Java などでクラス複製のインターフェースの ICloneable がありますが
ICloneable に対するコピーの実装って
慣例的に シャロウコピー と ディープコピー のどっちなんでしょうか?
それとも特に決まってないのでしょうか?
よろしくお願いします

814 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:12:56 ]
特に決まってないな。
どっちかっていうとシャロウコピーな感じもある。


815 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:16:13 ]
てゆーかICloneableってまともに機能している場面って見たことねーんだが



816 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:22:20 ]
>>813
Javaは知らんが.NETでは特に決まってない。
Cloneは同じ内容だけど別物として振る舞うようなクローンを返せば、なんでもいい。
別にメンバが同じ値であったりそのコピーである必要はない。

817 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 23:44:16 ]
>>805
EventWaitHandleで、
dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=23906&rev=1&no=0&KLOG=2
のページを見つけて、そっくりおなじように実装してみたのですが、古い方は閉じるんだけど、新しいウィンドウも開かない状況です。
う〜む。なにがいけないんでしょう?
>>810
ビューアーのアプリケーションで、表示を自動/手動でリフレッシュしたいのです。外部から手動でリフレッシュするのには、新しいウィンドウを開くのがいちばん楽かと。
>>812
そ…そうかな…。
こういう場合って、どんなふうに実装します?
ところでUXってなに? User eXperience?


818 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 23:48:23 ]
>>817
そのウィンドウに更新ボタンを付けるのが一番素直な実装だと思うんだが?

819 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:06:00 ]
>>814-816
レスどうもです。
ICloneable について触れてるサイトを何度か見かけたのですが、
どれも MemberwiseClone をそのまま返却する実装をしてたので、
ちょいと気になってました。
ありがとうございました

820 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:32:00 ]
自分も更新ボタンがいいと思う。更新(R)、最新の情報に更新(R)・・・と一般的。
二つ目のアプリ実行っていったら、普通はMDIにドキュメント追加とかタブ追加
だから選択ミス。
いつも使ってる(だろう)アプリ見たら分かりそうだけどなぁ。
秀丸、サクラエディタ、VS、IE、Firefox、WinMerge・・・

821 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:53:49 ]
>>818、820
なるほど。更新ボタンですか…。
更新ボタンをつけたとして、外部のアプリケーションから手動で押す場合には、どういうメッセージを送ればよいんでしょう?
具体的にはコマンドラインから指示したいのです。
サーバー的なシステムで、アプリケーションの動いているマシンには、キーボードもポインティングデバイスもない(操作しにくい)ためです。
コマンドラインから開いているアプリケーションにメッセージを送ることってできるんですか?
これまでは、コマンドラインからおなじアプリケーションを実行してそれにメッセージを送信させようとしてはまってました。
「コマンドラインから」という条件は必須です。
メッセージを送るためのアプリケーションをもうひとつ作るのも考えたのですが、それならおなじアプリケーションで多重起動を監視するほうがよいかな、と考えて現在に至っています。


822 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:59:12 ]
>>821
質問する時は条件を後出しするなよ…

823 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:00:12 ]
>>821
まて、それでどうやって二番目のプロセスを起動しようとしている・・・?
どうやって コ マ ン ド ラ イ ン か ら 打 ち 込 む 気 だ。

ネット越しならポート開けて待ってて、誰かアクセスしてきたら更新しろ。

824 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:01:45 ]
>>821
コントロールされる側も自作アプリなんだから、
外部(ネットやシリアルポートなど)から操作できるように作っとけばいいじゃん。
適当にポート開けとくとかして。

825 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:04:50 ]
ボタン押すだけならハンドル取得してクリックイベントを送るだけ



826 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:08:15 ]
相手がWindowsマシンなのにマウスも何もついてなくて、
端末がコマンドラインオンリーてのもずいぶん時代錯誤なシステムだな
両方ともWindowsにしてリモートデスクトップでも使えば一発で解決する問題のような
そもそもどうやってログインしてるんだ?
電源が落ちたらどうするんだ

827 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:51:47 ]
>>826
っ MONO

828 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 02:09:48 ]
>>822
すみません。
>>823、824
ポート開けるなんてのは初心者なもので、まだ書けません…。
もうすこし勉強します。
>>825
時代錯誤かどうかはさておき、現実にそういうシステムなので。

ちなみに、次のようにして解決しました。
コマンドラインから起動するときに、
taskkill /im Program.exe
Program.exe
としました。

EventWaitHandleの使い方を覚えられなかったのは残念…。


829 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 05:46:05 ]
プログラムいくつか作っていくと、流用できるクラスが増えて
次のソフト作るの楽になるんだろうなと思ってやってきたけど
結局毎回一から全部作るんだよね
ファイル入出力関連何度作ったことか
やっぱ最初はこんなもの?

830 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 05:50:56 ]
汎用性を持たせられてないからだな

831 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 06:09:35 ]
汎用性ってすごく難しいよね
細かい機能使えるようにすると、元々あるクラス使えってことになるし
簡単に使えるクラスにすると、他のプログラムだと機能がたりなかったり
そもそも何をしているクラスなのかわからなかったりで

832 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:07:47 ]
16進数 1FF は 10進数 511なわけですが
プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが
こういうのを10進数511と変換するうまいやり方はないでしょうか?

833 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:10:02 ]
char[]に変換して、foreachでstringに変換して連結。

834 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:37:32 ]
byte[]に入れて、BitConverter.ToUInt16()

835 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:02:05 ]
>>833
>>834
それだと逆順になったままなんですが

FF01を511にする方法が知りたいんです



836 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:12:59 ]
良く分からんが、用意されてるメソッドで都合悪いなら自作すれば?

837 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:14:11 ]
それがわからないから聞いているんだけど?

838 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:19:17 ]
>>835
それ、普通に short で読み込んだら 511 にならない?
Mono か何かでビッグエンディアンな CPU 上で実行してたりする?

839 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:24:03 ]
文字列の "FF01" とか?

840 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:32:04 ]
>>835
普通逆順になるわけがないんだが、
お前いったいどんなプログラムで確認してる?


841 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:42:32 ]
>>838
なるわけないし、ushortじゃないと範囲超える

842 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:46:43 ]
>>840
どういう意味?

あるアプリをバイナリ編集したいんだけど
数値の部分だけがFF01と反転している
そのアプリのバイナリデータを取り込んで0x01FFつまり511とテキストボックスなんかに表示したいんだけど

843 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:47:01 ]
>ushortじゃないと範囲超える
くわしく

844 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:50:14 ]
>>843
short=0xFF01;
でやればわかる

845 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:53:40 ]
で、同じようにDWORDの数値も本来の数値に変換したいんだけど
簡単な方法ありますか?



846 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:54:44 ]
>>844
何言ってんだお前は。
今の値はそうじゃないだろw


847 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:55:38 ]
>>842

byte[] data = {0xFF, 0x01};
Console.WriteLine(BitConverter.ToInt16(data, 0));

512って出るだろ?
出たならお前の読み込むプログラムの方がおかしいってこった。

848 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:57:40 ]
ちがう511のまちがい。

>>845
これで分かるだろ。


849 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:04:45 ]
>>847
おおおおおおおおおすげーーーー
なんで逆さまなのに511って出るんだ・・・

850 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:06:28 ]
>>846
今の値がどうとかに関係なくWORDを読み込んで数値に変換するわけなんだからshortじゃだめでしょ

851 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:09:21 ]
>>834
結局これだったわけねww
ありがとう

852 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:15:19 ]
範囲外とか言い出すやつが何言っても無駄

853 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:17:55 ]
>>850
そもそも今の会話からは符号付きかありかなんて読み取れないのに、
いきなり、>>841とかいいだすお前がおかしいわ。


854 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:20:37 ]
こういうのは「バイトオーダー」とかのキーワードを知ってればすぐ答が見つかるんだよな
それを知らない時点で敗北決定

855 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:21:16 ]
>>832
>プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが
ここでちゃんとWORDデータを変換すると言っているんだから
できるひとは>>834がすぐ出るでしょ
WORDデータに対してshort持ってきちゃうなんて世間知らずもいいとこだ



856 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:22:42 ]
なん…だと…


857 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:24:15 ]
>ここでちゃんとWORDデータを変換すると言っているんだから
どこだよっ

>>832をどう見ても符号付きか否かは不明。


858 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:26:57 ]
どうかな。

859 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:30:36 ]
バイナリデータ2バイト(FF01)=WORD=ushort

860 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:32:04 ]
そもそも0xFF01はshortに収まらない

論破

861 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:37:24 ]
>>831
それはまだ蓄積や経験が足りない。わからなくなるのは管理が悪い。

名前の付け方に統一ルールを作り、長くなってもいいからわかりやすさを最優先に考える。
使い方をソースファイルの頭などにちゃんと書いておく。
過去の自分は他人。他人が見て使用法が理解できないソースは未来の自分にも理解できない。
「いちいち書くのがめんどくさい」「書かなくてもわかってる、覚えてる」は禁句。

まあ、35歳ぐらいになれば記憶力も衰えてくるし、10年以上の蓄積ができてるはずだから
身にしみてわかるようになるよ。
大多数の人間は経験から学ぶ愚者だからね。

862 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:42:49 ]
>>860
君おもしろいね

863 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:43:18 ]
大多数の回答者は本来のデータが0x01FFのリトルインディアンだと気づいているのに
見たまま0xFF01と解釈してるアホがいる
バイナリファイルをバイナリエディタで開いてみたことないんだろうな

864 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:49:20 ]
>>863
リトルインディアン?アメリカの子供に聞かせる歌でそんなのあったな

バイナリから取り込むわけだから、元データがOxFFFFの場合もあるかもしれないと
想定して作らないとだめでしょ?何で符号無しと決め付けるわけ?
思い込みは危険だよ

865 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:52:01 ]
リトルエンディアン 【little endian】
j-ken.com/category/all/data/637100/



866 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:57:27 ]
符号無しと決めつけてるのはushortじゃなきゃダメと主張してる人だな。
今の質問だとどっちか分からないから、shortではなくushortにしなきゃならない
ってのは正しいかどうか確証はない。
shortじゃなきゃならない可能性もあるんだから。

符号に気をつけろだけなら異論はないが。


867 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:03:21 ]
>>859
その解釈が、件のデータが符号付きか符号なしかという問題に対して何か意味を持つとは思えないな。

868 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:05:12 ]
何でそんなに符号に拘るの?そもそも符号って何よ・・・・
ushortじゃだめな理由なんてあるの?

869 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:16:18 ]
今北産業

870 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:18:20 ]
>>868
同じバイナリで表現される整数値の意味が変わるからだ。
知らないならC言語の初級からやりなおせ。

871 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:28:18 ]
>>870
なるほどそういうことか、難しいな

872 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:29:40 ]
C言語は関係ないよ。

873 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:37:59 ]
>>872
アホ

874 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:46:45 ]
>>869
符号がどうとか
聞かれてもいないことに答えようとしている
おせっかいがたくさん

875 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:51:34 ]
なんでもこういう事言って満足してるアホがいるが、
普通に質問への答えに関わる事として重要なことだってのも分からんのか、
単に何か言いたいだけなのか、何なんだろうな。




876 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:55:46 ]
ArrayListあるいは配列の中に入っているobjectを、
ToStringかけながらカンマ区切りで連結するのってどうやるんだろう?
できれば区切り文字はあとから変更できる形が望ましい。

.NET 3.5以降ならLinq付随のジェネリックテンプレートが使えるんだけど、
サポートOS(2000以降)の関係で.NET 2.0でお願いします。


877 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:58:59 ]
String配列生成
forでそれぞれToStringしながら配列に入れていく
String.Join

878 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:01:56 ]
ConvertAllだったかとString.Joinの組み合わせで。
あ、ConvertAllは配列にしてからじゃないとダメだったかな…

879 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:17:42 ]
>>877
なるほど……。そんな感じでやってみようかと思ったらStringBuilderを見つけて、
そっちで書いてみたら簡単だったのでコード片を載せておく。

IronPython.Runtime.List python_result;

var builder = new StringBuilder();
foreach(var e in python_result)
{
builder.Append(","+ e.ToString());
}
Console.WriteLine(builder.ToString().Substring(1));

>>878
対象がIronPython.Runtime.ListなんでConvertAllは使えないっぽいね……。


880 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:47:10 ]
パイソンは知らないんだが、ToArrayはないのかな?
ToArrayしてConvertAllしてJoinに渡す。

ってまあ別にベタで書いても全然構わないんだけど。

881 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:00:37 ]
IEnumeratorは返してくれるんだけど、ToArrayは無いのよね。
枯れたライブラリならともかく、
こんなホットなもの相手に中のコードはいじりたくない。


C#は巨大な.NETクラスライブラリの関係で
同じことをやるのに方法がたくさんあるから、最適な方法を探すのが大変ですね。

882 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:05:47 ]
Listって名前なのにIEnumerableのみかよwww

……XmlNodeListもそうなんだよな

883 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:31:14 ]
提示された情報だけでは符号付きか符号無しか判断できないし
別に型が確定しなくても今回の質問には答えられる。
ちょっと注意書きを入れれば済むことだから両方書けばいいだけ。
BitConverter.ToUInt16()  符号無し
BitConverter.ToInt16()  符号あり

884 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:35:02 ]
DataGridViewの一番左の項目に1,2,3と番号振りたいんだけどどうすればいいですか?
DataGridView.Rows[].Cells[0]のことではないです。

885 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:51:39 ]
>>884
DataGridView.CellPaintingで



886 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:54:05 ]
すいませんこれでいけました

DataGridView1.Rows[0].HeaderCell.Value

が、なぜか、マス目でいうと上から3つ目のところに表示されます
上から3つ目のマスが最初の行ということですか?
だとしたら、その上の行はなんなのか?あとインデックスって-1になるということ?
どうもよくわからない

887 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:00:27 ]
ハァ?
コーディングミスだろ。

www.dotup.org/uploda/www.dotup.org158297.png

888 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:08:24 ]
dataGridView1.ColumnCount = 6;

this.dataGridView1.Rows[0].HeaderCell.Value = "0";

Bthis.dataGridView1.Rows.Add("1","2","3","4","5","6");

やってるのはこれだけなんですが、行のヘッダは3マス目に0が入り
Bのデータはなぜか2マス目の行にデータが収まります
どうしてなんでしょうか?

889 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:24:38 ]
試しに新規プロジェクト作ってDataGridView貼り付けて
そのコードだけを書いたやつ実行してみなよ。

890 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:25:07 ]
>>888
人がわざわざ正しいやり方を示してくれているのに謝意も述べず、
自分勝手なやり方をしてそれがどういう結果をもたらすのか
自分で考えずに人に質問するような態度で、
答えを教えてもらえると思っているのか?

ちなみに887≠オレ

891 名前:887 mailto:sage [2009/06/22(月) 16:26:25 ]
初心者スレの割にキビシイっすね

892 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:41:56 ]
愛の鞭です

893 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 17:36:29 ]
飴ちゃんちょうだい

894 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:19:42 ]
バイトオーダー嫌って文字列で送った俺は勝ち組。

895 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:29:49 ]
数が少なく整数のみならそれが勝ちだね



896 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:01:33 ]
エンコードが違って文字化け

897 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:36:57 ]
コード以外の文字列はBASE64ヽ(´▽`)ノ検索無くてよかったよかった。

898 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:45:53 ]
そんな私はwebで公開

899 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:28:34 ]
byte[]に格納したバイナリデータをascii文字列にするにはどうすればいいですか?

900 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:33:02 ]
Convert.ToBase64Stringが手軽で鼻血が出る

901 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:33:06 ]
どんなバイナリをどんな文字列にしたいのさ

902 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:38:03 ]
31 30 30 25→100%
みたいな感じです

バイナリエディタのようなものを作ろうとしているので
stirlingは左バイナリデータで右側にShift-Jis, ASCIIなどを表示してますよね?
そういう感じのものを作りたい

903 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:48:11 ]
charにキャスト

904 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 04:01:56 ]
Encoding

905 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 04:04:34 ]
>>899
dobon.net/vb/dotnet/string/getencoding.html



906 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 05:36:19 ]
>>900
>>901
>>903
>>904
>>905
試してみますありがとう

907 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 09:47:01 ]
なぜかBio100%を思い出した

908 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 10:02:41 ]
どこからの連想か全く分からないが懐かしいな>Bio_100%

909 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:11:53 ]
俺がバイナリエディタを毎日のように使っていた時代と
Bio_100%の全盛期が重なってね。で、>>902から連想した。

あの頃はアセンブラが必須科目だったし、バイナリのデータ構造なんて
知ってて当たり前だった。ちょっと上の方で揉めてエンディアンの話とか。

910 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:16:26 ]
>>909
> 知ってて当たり前だった。
の割にはあまり刊行物では取り上げられなかったけどな。

911 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:21:59 ]
>>910
C/C++の入門書ならほぼ間違いなく取り上げてる話題なんだが、どうよ。

912 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:23:56 ]
>>911
悪い、勘違いした。
バイナリの構造って、たとえばPEヘッダとかそういうのだと思った。

913 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:31:43 ]
また話がそれかかってるので燃料投下する。

C#で作ったプログラムで他のモジュールを読み込む場合、
モジュールをサブディレクトリに置いた場合に
アプリケーション設定ファイル(*.exe.config)に
<probing privatePath="libs" />
といった形で検索パスを記入するが、他の方法はどういったものが挙げられるだろうか。
いいところ、悪いところなど教えてくれると助かる。

914 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:52:31 ]
>>913
API

915 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 14:05:15 ]
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html
を踏まえた上での話?



916 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 15:09:07 ]
確かにPEヘッダは資料が少なくて苦労した

917 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 15:18:16 ]
そういうのって、Linkers & Loadersが出るまでは、断片的な情報しか
手に入らなかったような気がするけど。

918 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:58:25 ]
漠然とした質問ですが、
アセンブリ情報のGUIDってなんですか?
なんのためにあるんでしょう。

919 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:23:06 ]
厳密名を定義するため

920 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:47:13 ]
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Url = textBox1.Text;
}

エラー 1 型 'string' を型 'System.Uri' に暗黙的に変換できません。

webBrouserのURLプロパティに文字列を渡したいのですがどうすればできますか?

921 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:49:35 ]
できません

922 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:52:30 ]
string型をUri型に変換するメソッドを使うよ
webBrowser1.Url = New Uri(textBox1.Text);

923 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:01:04 ]
>>919
何さらっと嘘書いてんだっ

924 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:11:56 ]
webBrowser1.Navigateでできました。
かなり前に使ったときは別の方法を取ったのですが…

もうひとつ質問なのですがJaneの板一覧とスレ欄の間にある移動可能な敷居?はなんという名前でしょうか?

925 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:15:12 ]
JaneはWinFormじゃないから同列には論じられないけどな
.NET 2.0のWinFormならSplitContainer



926 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:18:09 ]
>>925
ありがとう

927 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:35:14 ]
3週間経たずに埋まってしまいそうだな

928 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:33:30 ]
LINQでfromが複数ある場合の挙動ってどうなるんでしょう。
情報を調べても見つけれず、実際の動作調べてはみたものの、
状況次第で動作が変わっているようなのでちょっとキモチワルイです。

 var src = { "Hoge", "Hage", "Huge" };
 var dist1 =
   from p in src
   from q in src // pから取得した値以外をqの情報源にすると...
   select new { P=p, Q=q }; // {Hoge,Hage,Huge}x{Hoge,Hage,Huge} 全組み合わせ9通りに展開される
 var dist2 =
   from p in src
   from q in p // pから取得した値をqの情報源にすると...
   select q; // 全pの中の全qの数だけ展開される。つまりH,o,g,e,H,a,g,e,H,u,g,eの12個
        // {H,o,g,e,H,a,g,e,H,u,g,e} x {Hoge,Hage,Huge}の全組み合わせ36通りにはならない

929 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:46:24 ]
それぞれfrom...inの代わりにforeachで列挙してみれば分かると思うよ

930 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:48:02 ]
>>929
あぁ、なるほど、納得です。ありがとうございます。

931 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 03:31:23 ]
メソッド構文で書くとこう
var r1 = src.SelectMany(_ => src, (p, q) => new { p, q });
var r2 = src.SelectMany(p => p);
こちらのほうが実際の動作イメージはつかみやすいと思う。

932 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 04:32:33 ]
会社でWindows 2000の縛りがあって
いつまで経っても.NET 3.0〜3.5の世界に踏み込めないオレは
Linqなどグッジョブなテクノロジーがうらやましいぜ!

933 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:32:51 ]
こんな時間に起きている人ってプログラマーじゃないよね?
ホビーグラマーだよね?

934 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:33:59 ]
いつも5時に起きて23時に寝ていますよ

935 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:35:48 ]
そんな健康的なプログラマーがいるのか



936 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:39:57 ]
個人事業主ですが

937 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:56:36 ]
>>936
雇ってください。年収200万で何でもします

938 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:02:42 ]
ふらっとC#プログラマ始めました(初心者用) Part1

939 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:28:20 ]
>>937
個人投資家ですが、ほんとうに200万でいいですか?

940 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:34:06 ]
939はC#プログラマ(初心者)兼、個人付きメイドをゲットした。

941 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:36:54 ]
メイド服も着れと言われれば着ます。男ですけど。
子供の時は女の子に間違われていたのでカツラも用意していただければたぶん・・・
プログラミングは最近始めたので余りお役にいは立てません

942 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:43:12 ]
住民税+来年度の予定納税で 250万を超えることになって、
すでに死にかけですよ・・・orz

943 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:45:30 ]
金融から200マン借りてる俺よりマシ

944 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:25:24 ]
クラスは出来るだけ簡略化して多く作った方がいいとよく言われていますが
そうなんですか?

メソッドみたいな短い命令文をクラスにして大量に作るって感じでしょうか?

945 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:32:49 ]
>>944
そうではなく、情報同士の依存性をなるべく減らすべき、ということ。
そして情報同士の関係性を形作る設計は、デザインパターンと呼ばれてカタログ化されている。

もっとも、.NET クラスライブラリみたいな巨大なツールセットが最初からあるから、
そもそもそのような複雑なことを考えるまでも無くかなりのことができてしまうわけだが。



946 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:31:18 ]
>>944
問題は大きさとか数じゃなくて、ちゃん整理されているかどうかだよ。
どちらかと言えば簡略化すべきはクラスじゃなくてメソッドだな。
単純で確実に動くメソッドは再利用もしやすい。

947 名前:デフォルトの名無しさん [2009/06/24(水) 11:42:44 ]
Linqについてうまいことまとまってるサイトや書籍はないですか?
概論や入門レベルの情報はたくさん見つかるんですが、応用というか
「こういう事もできますよ」といった感じの

948 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:43:38 ]
>>945
>>946
なんか奥が深そうですね

話は変わるけどプログラムする人は頭良さそうだけど
よくテレビでやってる能力テスト(知識を必要とするクイズとかじゃなくて)などはいい点取れるの?
関連のある図形を選びなさいとかの問題だとすぐ解けそうだね

949 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:48:16 ]
気のせいだ

950 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:57:53 ]
昔IBMのプログラマー適性検査みたいなの受けたが
まさにその図形を選んだりする、子供の時やった知能テストみたいなやつだったな。

951 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:10:54 ]
すいませんC#で作ったソフトは、別途ランタイムが必要ですか?

952 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:18:43 ]
>>951
いるいる

VISTA以降ならいらない

953 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:28:46 ]
将来
.NetFrameWork6.7b以降が必要
なんてプログラムがでてきても

Vistaなら・・・Vistaならなんとかしてくれる!

954 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:30:05 ]
>>952−953
ご丁寧にありがとうございます
Cの勉強で頑張ってみたいと思います

955 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:30:24 ]
byte[] data=new byte[5000];
BitConverter.ToInt16(data,0);
これでバイナリデータを数値に変換できたんですけど

data[6]〜data[7]
だけを数値にしたい場合良い方法はないでしょうか?

必要なだけ空の配列に代入しながらするのは大変なのです
こんな感じでかなりの数があるので
data[8]〜data[10]
data[200]〜data[204]
data[1200]〜data[1204]

今はこんな感じで代入してます
num[0] = data[0x80];
num[1] = data[0x81];



956 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:32:54 ]
>>955
同じような処理は関数化すればいいでそ

957 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:35:22 ]
BitConverter.ToInt16(data, 6);
BitConverter.ToInt16(data, 8);
BitConverter.ToInt16(data, 200);
BitConverter.ToInt16(data, 1200);


958 名前:デフォルトの名無しさん [2009/06/24(水) 12:36:17 ]
Bufferクラス

959 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:36:23 ]
>>952
ウソ言うなやボケ。
XPであっても、VISTAであっても、7であってもランタイムは必要。
VISTAには2.0と3.0のランタイムがすでに入っているが1.1や3.5,4.0のランタイムは含まれていないので
別途インストールしないとだめ。

960 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:41:53 ]
>>956
private byte[] byteSpliter(byte[] data, int startIdx , int length)

なるほど、こんな感じかな?

>>957
これでいけましたw
それ以降全部数字に変換されると思ってました

ありがとうございます

961 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:02:51 ]
職業プログラマーの適性は協調性があること、
コミュニケーションができること。

あとは腰痛などの持病がないこと。

962 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:05:26 ]
プログラマは協調性が無く、女にモテなさそうだから就職しなかった

963 名前:デフォルトの名無しさん [2009/06/24(水) 13:11:25 ]
職業の性質上、元々問題がある奴が多いからそんな当たり前のことが言われてるだけだろ

964 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:15:02 ]
未経験でプログラミングのお仕事がやりたいんですけどどのスレで助言を頂けますか?

965 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:15:30 ]
助言を与える服がない



966 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:04:14 ]
うちはプログラマの1/4はバイトからスタート。
2年ぐらいやってもらって見込みがあれば社員にスカウト。
あとの3/4は新卒か転職組。
いきなり未経験でプログラマーの正社員は無理じゃね?

967 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:07:24 ]
マ板でやれ

968 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:07:53 ]
バイトでよければ情報誌にいろいろ出てる
うちも求人出してるし

969 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:10:05 ]
板違い

970 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:20:12 ]
スカウトとか言ってる企業はブラック間違いなし。

971 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:42:49 ]
35でプログラマ目指している俺がきましたよ

972 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:47:00 ]
帰れ

973 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:35:18 ]
ifを使って変数を比較したら何クロックぐらいですか?

974 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:38:05 ]
>>973
ケースバイケース

975 名前:973 mailto:sage [2009/06/24(水) 16:44:53 ]
変数の型によって等の条件によって違ってくるような気がしますが
平均的にはいくつぐらいになるのでしょうか 数十くらいですか?




976 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:45:03 ]
>>973はツンデレ保守わかる

977 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:45:04 ]
知らないなら黙っててください

978 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:46:34 ]
CPUのクロックを測定するスレがあるからそっちで聞いてみたら?
昔と違って並列で動作したり、C#レベルだとJITでの最適化などで
単純に測定できないことが分かると思うから。

979 名前:973 mailto:sage [2009/06/24(水) 16:48:24 ]
>>978
そうしてみます。
ありがとうございます。

980 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:50:21 ]
>>975
本気で聞いているの?
全体集合(比較可能な型の全ての集合)もわからないのに,平均ってなんぞい?

正確なクロック数はわからないけど,Step by Stepの利いていないCPUでWindows環境なら
数百万回くらい比較を行うループの実行時間とQueryPerformaceFrequencyからクロック時間が割り出せそう
もちろんスレッドのコンテキストスイッチなど目にも留まらぬ速さの場合

981 名前:973 mailto:sage [2009/06/24(水) 17:05:22 ]
本気で聞いています。
厳密なクロック数が知りたい訳ではなく
数十なのか、数百なのか、数千なのか、
そのぐらいのレベルで知りたいんですが。

982 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:10:49 ]
980の言うように回数こなして実測が一番現実的だと思うがね。

CPUの命令レベルだったらだったら0〜2クロック。
分岐予測を失敗したらストールで数十クロックとか。意味ないっしょ。
cmp EAX, EBX
jne   LABEL1

それからJITで特定の方向にしか分岐しないなら分岐命令自体が削除されることもある。

983 名前:973 mailto:sage [2009/06/24(水) 17:13:18 ]
すいません。
ありがとうございました。

984 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:13:54 ]
>>981
今のCPUはパイプラインだし多重キャッシュだし投機だし、正確に計るのは無理というか、
前提条件が足りなさすぎ。
とりあえずコードが最適化されてて変数の内容が32bit以下の整数値なら
レジスタに入ってるはずだからifは単純にCMP reg,reg、JE xxxxあたりに置き換えられて
合計で1.0クロック。
スレッドの遷移はifの数百倍以上のコストがかかるから外部から調べるのは困難。

詳しいことは、ここにCPUのマニュアルがあるから嫁。
INSTRUCTION LATENCY AND THROUGHPUTのところ
www.intel.com/products/processor/manuals/index.htm

985 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:24:53 ]
誰か実際にやってみれ
1億回ぐらいループ回して平均
該当部分の逆汗も頼むぜ



986 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:28:07 ]
なんか難しい話してるね
俺からしたら宇宙語だわ

987 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:28:53 ]
初心者スレでやるこっちゃないわな

988 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:29:14 ]
>>985
言い出しっぺの法則

989 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:29:49 ]
誰か次スレ立ててくれ
うちはずっと規制中で手も足も出ん

990 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:31:12 ]
[>>1]>>980を踏んだ人は新スレを建てて下さい。

C#, C♯, C#相談室 Part53
pc12.2ch.net/test/read.cgi/tech/1245150671/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
pc12.2ch.net/test/read.cgi/tech/1245384489/

991 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:41:47 ]
構造って作った後から重複をまとめて基本クラスにするのを繰り返すのが普通なんですか?
それとも最初から基本クラスから考えて派生を作っていくんですか?
最低でも書く前にこれはベースにまとめていくのがいいと思って構造を作っていって、出来あがってからコード化するのが限界だと思うんですが
最初からベースクラスから考えられる人っているんですか?いるとしたら日本語から英語を勉強した人が頭で考えるのが英語になるぐらいすごいんですが

992 名前:デフォルトの名無しさん [2009/06/24(水) 17:55:24 ]
いや基本的にそういう継承の使い方は間違い

993 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:12:14 ]
>>991
3行目から下、いらないと思うぞ。何が聞きたいのかポイントがボケる。

最初から継承ありきで考えるのは、大抵の場合、間違いのもと。

994 名前:デフォルトの名無しさん [2009/06/24(水) 18:18:31 ]
ある機能が重複するなら、その機能をクラスに括り出してそのクラスのインスタンスをそれぞれが持つようにする。継承は不要。
最近は継承よりもそういうやり方の方が良いとされてる。

995 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:26:20 ]
基本的には同じ動作だけど、個性を持たせたいとか
オセロ作るときに初級AI、中級AIのために必要だなって思ったよ
でも、継承しなくてもできることはできるんだよねー
このときは継承じゃなきゃだめだってのがよくわからない



996 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:29:22 ]
単純に同じ配列、リストに入れたいときくらいかなあ

997 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:35:47 ]
つinterface

998 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:37:45 ]
うめ

999 名前:デフォルトの名無しさん [2009/06/24(水) 18:38:59 ]
ポリモルフィズム使いたいときだけだな
実装の継承はまさに>>991のような難しさがあるから避けられる
そりゃControlみたいに完璧な設計ができるというならやればいい

1000 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:39:36 ]
継承は最後の手段って、あれは誰の言葉だっけ。マーティンファウラー?

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<222KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef