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


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

C#, C♯, C#相談室 Part51



1 名前:デフォルトの名無しさん [2009/02/04(水) 23:26:55 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part50
pc11.2ch.net/test/read.cgi/tech/1229661915/l50

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

792 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:29:24 ]
ワッケワッカラン♪

793 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:39:49 ]
誰かスレのためにクラス・コンストラクタ・メソッド・インスタンスをわかり易くまとめろよ。
そういう基本的な部分があいまいな人かなりいると思うぞ。
俺は今から風呂入ってくる。

794 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:41:09 ]
そうだな
風呂でじっくり纏め上げて来い

795 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:47:35 ]
さすがにそのレベルは半年ROMってろカスとしか言えんわ

796 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:02:35 ]
でも自分がその半年ROMってろのカスのレベルの時に
半年ROMってろカスって言われたらむかつくだろ?

797 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:07:46 ]
半年ROMる暇があったら、まともな本を読んで理解を深めてください。

798 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:21:49 ]
C#以前の問題だろ…

799 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:26:46 ]
でも半年ROM中にまともな本読んで理解を深めていて質問したくなったら困るだろ?

800 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:32:09 ]
円を書きたいんです。
描画の仕方詳しく教えて下さい。
ぐぐってもうまくいきません



801 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:33:00 ]
日本語でおk

802 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:33:41 ]
>>800
よくわからないけど、これを試してみたら?
youryella.wankuma.com/Library/Extensions/Control/Default.aspx

803 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:40:35 ]
>>800
Console.WriteLine("○");

804 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:41:44 ]
>>801>>803は質問にすら答えられない低脳かつ荒らしかつ穀潰しかつNEET

805 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:51:04 ]
まずは質問の仕方を勉強してからこようね^^

806 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:54:50 ]
質問に答えられなかったらレスしなくていいんだよ^^

807 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:59:28 ]
>>800
Rect theRect;
PenSize(2,2);
SetRect(theRect,20,20,70,70);
FrameOval(theRect);

808 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:05:18 ]
800は釣りだろ

809 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:09:53 ]
ttp://developer.apple.com/DOCUMENTATION/mac/QuickDraw/QuickDraw-60.html#MARKER-9-90

810 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:11:13 ]
スレ違いのレスをしてる荒らしがたくさんいまちゅね



811 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:16:46 ]
>>810
でもさ、>>800みたいな超基本みたいな質問する人ってなんだかな、って気がしない?
こんなことぐらい、本の4,5冊でも見れば簡単にわかるだろうに。

812 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:23:03 ]
そしてこれをきっかけに初心者スレが建ち
そこで同じようなレスが繰り返され
さらなる初心者スレが建つことが繰り返されるのであった

813 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:34:40 ]
>>811
4,5冊もいらんだろw

もし4,5冊読まないと分からないような問題だとしたら
ここで質問するべき問題だと思うんだが。

814 名前:786 mailto:sage [2009/03/17(火) 23:38:25 ]
すまない…Pythonスレと間違えてたw

815 名前:デフォルトの名無しさん [2009/03/17(火) 23:57:19 ]
APIを叩いたことないやつはこれだから困る

816 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:02:32 ]
ニーモニックを知らない若造が何を言うか

817 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:14:11 ]
>>803はとんち的には100点

818 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:29:40 ]
>>817
実際にそれが現実解ってこともなくはないしなw

819 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:42:54 ]
お前ら冷たすぎ

>>800
円を描画するんなら、Controlの派生クラスの中でGraphicsクラスを使えばいい。
例えばこんな感じ。
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawString("円", Font);
}

820 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:43:54 ]
下らないネタをいつまでも引っ張りすぎ



821 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:55:10 ]
略して下ネタ

822 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 09:26:04 ]
ManagedDirectXつかってシューティングを作っているのですが、
何らかの描画命令(たとえばfont.DrawText)を1フレームに300回くらいやると、
描画命令の増加に従って徐々にFPSが落ちていきます。
描画命令をコメントアウトすると治るのでそれ以外が原因になっているとは考えにくいです。
また、テクスチャの有無やアルファの有効無効、頂点数にも影響されないようです。
デバイスの初期化はこうやっています
Direct3D.PresentParameters param = new PresentParameters();
param.Windowed = true;
param.SwapEffect = SwapEffect.Discard;
param.MultiSample = MultiSampleType.EightSamples;
device = new Direct3D.Device(0,Microsoft.DirectX.Direct3D.DeviceType.Hardware, wind,CreateFlags.HardwareVertexProcessing, param);
device.RenderState.CullMode = Cull.None;
device.RenderState.Lighting = false;
device.RenderState.AlphaBlendEnable = true;
device.SetTextureStageState(0, TextureStageStates.AlphaOperation, (int)Microsoft.DirectX.Direct3D.TextureOperation.Modulate);
device.SetTextureStageState(0, TextureStageStates.AlphaArgument1,(int)Microsoft.DirectX.Direct3D.TextureArgument.TextureColor);
device.SetTextureStageState(0, TextureStageStates.AlphaArgument2,(int)Microsoft.DirectX.Direct3D.TextureArgument.Current);
device.RenderState.SourceBlend = Blend.SourceAlpha;
device.RenderState.DestinationBlend = Blend.InvSourceAlpha;
D3DTex.Direct3DDevice = device;
verts = new CustomVertex.TransformedColoredTextured[10];
vertexBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColoredTextured), 5000, device, 0, CustomVertex.TransformedColoredTextured.Format, Pool.Managed);
sprite_ = new Sprite(device);
ClientSize_ = wind.ClientSize;
どうかご教授願います。

823 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:09:17 ]
多数の描画すれば、描画待ちでフレームレートが
悪化するのは、この手の処理では常識だと思います。

824 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:12:52 ]
あとfont.DrawTextは重い

825 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:36:57 ]
>>823
それはそうなんですが、表示してるのはただのスプライト(4頂点)なんです。
C2DにGeforce8600GTをつんでいるのに400スプライトで15FPSもでないのできっと何かが悪いのだとは思いますが・・・。
スプライトの描画部はこうなってます。これより前にテクスチャの設定や頂点の設定があります。
Draw2Dは使っていません。

triは描画する三角形の数で四角いスプライトなので通常2を設定。
if (device == null) return;
GraphicsStream stm = vertexBuffer.Lock(0, 0, 0);
stm.Write(verts);
vertexBuffer.Unlock();
device.SetStreamSource(0, vertexBuffer, 0);
device.VertexFormat = CustomVertex.TransformedColoredTextured.Format;
device.DrawPrimitives(ptype, 0, tri);
cPolygon += tri;

826 名前:デフォルトの名無しさん [2009/03/19(木) 11:46:11 ]
スプライト一枚ごとにそんなことやってたら遅いに決まってる
可能な限り同じテクスチャでまとめて書き込んでまとめて描画しろ

827 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:46:41 ]
GraphicsStream stm = vertexBuffer.Lock(0, 0, 0);
stm.Write(verts);
vertexBuffer.Unlock();

↑この処理を400回やってるなら重くなって当り前かと
DrawPrimitiveで描いてるって事はGRAMをロックしてんだろ?

何れにせよDrawPrimitivesを数百回呼び出したら重い
数百枚のスプライトをオンメモリ上に1つのプリミティブで作成しといて
CPU側で座標指定してDrawPrimitiveUpとかやれば大分違うと思う

Managed DirectXはよく知らないけど

828 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:48:20 ]
DrawTextなどを300回って書いといてそりゃねーだろ

バッチ処理は基本だが、にしても遅すぎるな
マネージコードのGCが暴れている可能性もあるからCLRProfilerとかで要調査

829 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:48:51 ]
お、便乗しよっと

「メモリのロック」の意味がよくわかりません
必要な呪文程度に思ってます
このロックとは具体的にはどういう動作をしてるんでしょうか?


830 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:51:28 ]
>>826-827
なるほど。
DrawPrimitivesの小口多数実行とDrawTextのやりすぎの複合要因だったんですね・・・。
テクスチャごとに1回ずつDrawPrimitivesを実行し、DrawTextの使用を見直してみます。

お答えくださった皆様、本当にありがとうございました。
改良に取り組んでみます!



831 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:06:36 ]
>>829
そこ今から俺が触るからおまえら触るなよ!!
ってこと

832 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:14:45 ]
少し便乗して

テクスチャ毎に描画というのは各頂点をGraphicsStreamに書き込んで

DrawPrimitives(PrimitiveType.TriangleList,0,(描画するテクスチャの場所*2));
で良いのですか?

833 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 13:12:45 ]
>>831
ググればすぐにわかるだろうにw
ttp://www.stackasterisk.jp/tech/dotNet/csharp07_04.jsp


834 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 13:29:17 ]
メモリのロックってマルチスレッド絡みの処理だったのかw
理解しました、ありがとう

835 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 20:17:12 ]
下記いずれかのデータを大量にListに格納する場合、速度面等からいうと
どちらを選択した方が良いのでしょうか。格納するデータが増えることは
無いので拡張性を考慮する必要はありませんが、ググってもイマイチ分からず…。

・KeyValuePair<string,string>
・Key,Valueのstringを持ったクラス

836 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 20:30:13 ]
Dictionary

837 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 20:32:15 ]
なんで実測してみないんだ?

838 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:06:17 ]
大量のデータから対象を素早く取り出したいならHashtable一択
.NET2.0以降のHashtable実装はDictionaryクラス

詳しく知りたいなら「データ構造とアルゴリズム」でぐぐればいいよ

839 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:16:08 ]
まあ待てインデックスでのアクセスだけでいいのかも知れん
簡単にHashtable/Dictionaryを挙げるのは早計だ

840 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:19:07 ]
>>839
>>835



841 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:22:40 ]
純粋に>>835の質問に答えると後者だな
KeyValuePairは構造体だから出し入れ遅いよ

842 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 07:57:03 ]
2147483647個以上の値を格納できるListみたいなのは
自作するしかない?

843 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:01:54 ]
DB使えよwwww

844 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:12:59 ]
本当にそんな物が必要なのかどうか検討するところからだな。

845 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:16:32 ]
今List型で動いてるプログラムがあるんだが、
「メモリを50GB積むからこのデータを処理できるようにしてくれ」
って要求が来たんだ。

846 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:21:31 ]
50Gとかw

847 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:43:44 ]
単純計算で一オブジェクトあたり25b使えるわけだけど、
そのやり方は上手くいかないと思うわwww

IList<T>インターフェイスを提供するDBオブジェクト自作したほうがいいよwww

848 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:50:10 ]
>>847
DBってディスクに書き込むイメージがあったんだがそうでもない?
金(50GBのメモリ分)がかかっても速いほうがいいんだが。

849 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:53:55 ]
でかいRAMDISKつくってそこにDBおけばいいんじゃね?

850 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:57:42 ]
DBについて勉強してくる
ありがと。



851 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:43:19 ]
でもどっかの企業が全部オンメモリにするデータベースを運用しているっていう話を聞いたことがある。

852 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:44:45 ]
そりゃおらくる

853 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:54:42 ]
SQLiteやMySQLがオンメモリモードもってたとおもった。

854 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:45:42 ]
配列なら添え字にlongが使える。
このため64bitの.NET Frameworkなら4GB越えの配列を扱える。
32bitの.NET Frameworkでもlongが使えるが、intの範囲を使い切る前にmemory不足に陥る。
64bitの.NET FrameworkならListなどのコレクションもトータルで4GB以上使えるが、
添え字がint限定なのでそれが上限になる。


855 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:51:31 ]
すべてのユーザーが毎回50GB相当のデータを要求するわけではないんでしょ
OSのディスクキャッシュとかDBのメモリキャッシュに50GBメモリを活用してもらえば、
十分なパフォーマンスが出ると思うがね

856 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:23:45 ]
>>855
十分なパフォーマンスが要件ではなく、
メモリで動作することなんじゃね?
要件定義を間違えるとそうなる。

857 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:41:19 ]
しかし、仕事でDBを使うはいつものことだが、21億件のデータを突っ込んだことはないなw
一体何をしようとしてるんだ。

858 名前:842 mailto:sage [2009/03/20(金) 14:56:58 ]
シミュレーション系です。

859 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:46:13 ]
あー・・・ってそういうのもC#でやるもんなのか

860 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:51:47 ]
ものにもよるだろうけど生産性との兼ね合いでそれもありじゃね?
まぁ自分的にはF#を使いたいと子だが



861 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:06:16 ]
要素へのアクセスが添字だけですむなら、ただの配列の方がいいけどね。
普通にC#で書いたプログラムを、64bit環境で実行すればよい。

862 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:18:41 ]
円をformの中でピンポンの様に動かしたいんですがどうすればよいのかご教授下さい。
周期的に座標を変化させていけばいいのか、他になにか方法があるのか・・
現在までのソースを示しておきます。
namespace circ
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();

}

void MainFormPaint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;

Pen pen = new Pen(Color.Green, 1);
g.DrawEllipse(pen, 60, 60, 30, 30);

}
}
}


863 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:40:59 ]
何言ってんのお前?

864 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:08:26 ]
>>862
Forms アプリなら Timer 使え。


865 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:52:33 ]
Managed DirectXでコーディングしていrのですが、
ランタイムが入っていない場合の動作を定義するにはどうしたらよいのでしょうか?

FileNotFoundExceptionがthrowされることはわかったのですが、
どの時点でtry catchするべきかよくわかりません・・・。

using System・・・
(略)
using Microsoft.DirectX.Direct3D;
using Direct3D = Microsoft.DirectX.Direct3D;

    Direct3D.Device = null;
try
{
    Direct3D.Device = new Direct3D(なんとか);
}
catch(Exception e)
{
    System.Diagnostics.Debug.MessageBox.Show(e.ToString());
}
のような書き方をすると、
newをしくじった時のcatchはできるんですがDevice型自体を宣言できなった時にcatchするにはどのようにコーディングすればよいのでしょうか?

866 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:59:06 ]
System.Reflection.Assembly.GetModule()

867 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:00:56 ]
>>866
うおおおお
ああああありがとう!!!

868 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:33:51 ]
>>862
ピンポンの動きはよく分からんが、
こんな感じのものを作りたい?
using System;
using System.Drawing;
using System.Windows.Forms;
namespace circ {
public class MainForm : Form {
Timer timer;
int x;
int y;
public MainForm() {
Paint += new PaintEventHandler(MainForm_Paint);
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = 500;
timer.Enabled = true;
}
void MainForm_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawArc(Pens.Green, x, y, 10, 10, 0, 360);
}
void timer_Tick(object sender, EventArgs e) {
x = (x + 10) % Width;
y = (y + 20) % Height;
Invalidate();
}
}
}

869 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 10:09:56 ]
>>868
ありがとう御座います。

動きの基本はそれです。
頂いたソースをベースに以下の仕様を考えています。

@スタート時、円は二個
A円の動きは直線
Bスタート時二個円の直進方向は異なる
C壁にぶつかって跳ね返る
D二個の円がぶつかると円が1個増える。
E増えた円も直線動作を行う。
F繰り返し

円同士がぶつかる判定と円を増やしていくにはどうしたらいいんでしょうか?




870 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 10:18:29 ]
1.お互いの円の中心が半径の2倍より近づいていたら衝突したと見なす
2.円をList<円>等で保持しておいて、衝突したら新しい円を追加する



871 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 11:10:16 ]
なんつーかやりたいこととやれることのギャップが激しすぎるんじゃねーの?
全部ココで質問するつもりか?

872 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 11:14:12 ]
このスレの連中はみんな初心者だろ

873 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 11:21:49 ]
ふらっとすれもうなくなったんだっけ?

874 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 11:23:28 ]
あるよ

ふらっとC#,C♯,C#(初心者用) Part39
pc11.2ch.net/test/read.cgi/tech/1237051173/

875 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:46:36 ]
まさかとは思うがこれ宿題じゃないだろうな

876 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:47:58 ]
宿題スレもあるね!

C#,C#の宿題片付けます。
pc11.2ch.net/test/read.cgi/tech/1197620454/l50


877 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:48:18 ]
宿題じゃなく春休みの課題です

878 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:58:29 ]
どう見ても宿題です。有り難うございました。

879 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 17:01:24 ]
質問です。課題と宿題の違いってなんですか?

880 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:36:28 ]
辞書ひけやゴミ



881 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:20:32 ]
Tooltipの表示タイミングはそのままに、Tooltip.Showを使わずに
表示位置を制御する方法はないでしょうか。
↓でも議論されていますが、具体的な方法が分かりません…。

ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=1692&KLOG=10

882 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:39:38 ]
デフォルトだと、マウス位置がベースになるんだっけか。
となると、それを誤魔化すか、デフォルトの動作をフックして、
位置を指定して表示するしかないでしょ。

883 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:51:50 ]
Showを使っても問題ないんですが、表示タイミングだけは
準拠したいという所なんです…。良い方法ないものでしょうか。

884 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:59:44 ]
表示されるタイミングで、何かのメッセージが来るだろうから、
そいつを握りつぶしつつ、Show() すればいいんじゃね?

885 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:38:37 ]
今ラジアンで角度を処理するクラスを作っているのですが、次のような動作をさせたいんです
1.値を代入したときは値を正規化してからいれる(負値だったら正値に、2π以上だったら2πで剰余算)
2.値を参照するときはそのまま参照
3.floatと同じように扱える
プロパティを使って実装すると次のようになりますが
  class RegularizedAngle
  {
    private float InAngle;
    public float Angle
    {
      get { return Angle; }
      set
       {
         //Angleが負値だったら正値に
         if (Angle < 0) Angle = PIx2 + Angle;
         //Angleが2π以上だったら2πで剰余算
         Angle %= (float)(Math.PI * 2f);
       }
    }
   }
これを普通のfloatと同じように扱いたいんです。
たとえば
RegularizedAngle Ang = (float)(Math.PI * 2f);   //すなわち6.28・・・の代入
Ang += 1;                         //代入したとき内部で正規化がおこなわれて1になる。

Ang += Ang;
//これで2になる?こんなかんじで見た目を組み込み型みたいにしたいんです。
しかし上記のプロパティをつかった方法だとアクセスするときに
Ang.Angle としなければなりませんし、宣言するときにはnewが必要です
組み込み型へのオーバーライドとかでできるのでしょうか?



886 名前:885 mailto:sage [2009/03/22(日) 13:54:58 ]
>>885
ですがすいません。初心者スレに移動します。
>>885は無視してください。

887 名前:デフォルトの名無しさん [2009/03/23(月) 01:16:27 ]
C#でrubyのWWW::Mechanizeみたいなネットワーク系のライブラリありますか?

888 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 01:48:39 ]
Mechanizeがネットワーク系とは思わないが、
あとC#じゃなくて.NETのコンポーネントだけど
System.Windows.Forms.WebBrowserが同等かな。
(もしくはWPFでそれに相当する物)
もちろんもっと低レベルのものもあります。

889 名前:887 [2009/03/23(月) 02:04:56 ]
ありがとうございます
見てみます

890 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 18:23:08 ]
Vista、VisualStdio2008で開発しているのですが、

hProcess.PriorityClass = ProcessPriorityClass.BelowNormal;

このように外部プロセスの優先度を変更しようとするコードをF5「デバッグ開始」で実行すると、エラーが発生し、
エラーメッセージは「アクセスが拒否されました。」となっています。
また、Ctrl+F5「デバッグなしで開始」で実行すると、問題なく動きます。
デバッグありでこのコードを動かすことはできないのでしょうか?



891 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 20:14:28 ]
>>890
とりあえず VS(devenv) を昇格起動してみな

892 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 20:50:03 ]
>>891
レスありがとうごいます。
昇格起動とは管理者権限で実行ということでしょうか?

AdministratorでログインしUACをオフ、devenv.exeを右クリックから管理者として実行を選択しましたが、
依然として「アクセスが拒否されました」になってしまいます。。。






[ 続きを読む ] / [ 携帯版 ]

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

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