ふらっと C#,C♯,C#(初心者用) Part139
レス数が950を超えています。1000を超えると書き込みができなくなります。
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/ >>850
ダブルクリックで最後の点+終了なら多分難しくない
MouseDownのイベントのe.Locationでコントロール上の座標を変数に格納する
前回の格納された座標があればそこから2点間の直線を描く
画像、印刷(GDI+)編メニュー https://dobon.net/vb/dotnet/graphics/index.html
線を描く https://dobon.net/vb/dotnet/graphics/drawline.html bool 編集モード =false;
bool 線を引いてるか =false;
Point 前のポイント =new Point();
こういうのを使っていけばいいんじゃないかな
クリックしたら
編集モードで線を引いてない(最初の点)なら点を表示
編集モードで線を引いてるなら前のポイントから今のクリック場所まで線を引く
ちゃんとやるならListに座標を記録 >>850
ヒマだったから書いてみた。ダブルクリックで画像初期化
//新しいWinフォームをDrawlinetestとして作ってForm1.csに以下の内容を差し替え
using System.Drawing;
using System.Windows.Forms;
namespace Drawlinetest
{
public partial class Form1 : Form
{
PictureBox pbox = new PictureBox();
Point pt = new Point(-1, -1);
public Form1()
{
InitializeComponent();
pbox.Location = new Point(0, 0); pbox.Size = new Size(500, 500);
this.Controls.Add(pbox); this.ClientSize = pbox.Size;
pbox.Image = new Bitmap(pbox.Width, pbox.Height);
pbox.MouseDown += MD;
}
private void MD(object sender, MouseEventArgs e)
{
Point p = e.Location;
if (e.Clicks > 1) { pbox.Image = new Bitmap(pbox.Width, pbox.Height); return; }//ダブルクリックで画像リセット
int x = pbox.Width - 1, y = pbox.Height - 1;
if (pt.X < 0 || pt.X > x || pt.Y < 0 || pt.Y > y) { pt = p; return; }
Graphics g = Graphics.FromImage(pbox.Image);
g.DrawLine(Pens.Black, pt.X, pt.Y, p.X, p.Y);
pbox.Refresh(); g.Dispose(); pt = p;
}
}
} この程度ならいいんじゃね
いちいちidone開くのもかったるいし 暇だから書いてみたけど何もおもろないなw
public class PolygonalLineEditor
{
private List<Point> mPoints = new List<Point>();
public Pen Pen { get; set; }
public bool Clolsed { get; private set; }
public Control TargetControl { get; private set; }
public PolygonalLineEditor(Control target)
{
TargetControl = target;
Pen = new Pen(Brushes.Black);
TargetControl.Paint += TargetControl_Paint;
TargetControl.MouseClick += TargetControl_MouseClick;
TargetControl.DoubleClick += TargetControl_DoubleClick;
}
private void TargetControl_MouseClick(object sender, MouseEventArgs e)
{
if (Clolsed) return;
mPoints.Add(e.Location);
TargetControl.Invalidate();
}
private void TargetControl_DoubleClick(object sender, EventArgs e)
{
if (mPoints.Count < 2) return;
Clolsed = true;
} private void TargetControl_Paint(object sender, PaintEventArgs e)
{
if (mPoints.Count < 2) return;
e.Graphics.DrawLines(Pen, mPoints.ToArray());
}
}
>>854
どうせこの手のコードはイデオンじゃ実行できないしねw スレと全然関係ないけど、今ふと思って検索してみたらIDEONEの読みがマジでイデオンだと
勘違いしてる人が結構おって笑ったw シンタックスハイライトとかの問題でいったんだけどまあいいや >>858
読み方はしらないが笑われて腹立ったので全方位にミサイルぶちまけてやる。 >>849
使ってるVSが古くてinが使えないの・・・orz >>858
IDE+ONEだとわかった上で読んでるに決まってるだろ まあ>>858がどんなところを検索して見て言ってるのかよくわからんけど、そう言う事をいちいち指摘して優越感に浸るちっちぇー奴だと言うことはわかった >>852
>>853
>>856
ありがとうございます。明日書いてみます。 文字数を正確にカウントしたい場合、文字コードも意識しないとだめでしょうか?
今まで気にしてなかったのですが、どうするのがベストなのでしょうか? 正確な文字数の定義によるのと違いますか?
何が正確な文字数なのかオープンにしたままどうするのがベストって言われても誰も答えられないと思う
「彳亍」とか「プ」とかを1とカウントしたいとか? >>873
目的次第
文字のレンダリングに使うのでない限り、多くの場合は普通にLengthを使ったほうがうまくいく 他の言語に比べるとc#スレはいつも人いるな。おかしいな。android開発っつたらjava,kotlinだしiosはswiftだし、サーバーサイドでも.netの存在感そこまである訳じゃないし。
これからwpfやuwpでデスクトップアプリ作ってやろうというやつ多いのか? それとも5chはおっさんが多いからおっさん世代ようはwindows パソコン世代が多くc#学んだ人多いからスレ賑わってるのか?
問題は新規ユーザーの質問する側が少なくて答える方が大量にいるというw スマホアプリでC#はunityいるんだから多いでしょ 趣味ならC#?
フォームアプリ簡単に作れるしIDEが最強だし 長い間VB6で開発していた連中がやっとこさ移る先としてはVB.netかc#が多いんじゃないかなと思う。
なので底辺が多い。俺は底辺だ。 >>883
IDEのインストールが簡単ってのも大きいと思う スレ違いだと釘を刺しつつ乗っかるけど、今この板で一番勢いがあるのは何とExcel VBAのスレ。
別に茶化すつもりでもなんでもなく、ちょっと前にそのスレで「驚いた」って素直な感想を書いたら
被害妄想全開で食って掛かってくる奴が大勢いて面食らったw RADによるformアプリケーション作成
これが便利すぎるからC#が使われているんだろ RADってなんだよ
おまえそれが言いたかっただけだろ オレのバイトしてる工場のタッチパネルの中のソフトのアイコンもフォームアプリのやつだな >>889
Rapid Application Development 日本語めちゃ使ってる。
日本特有の物事を扱うにあたって無理に英訳しても幸せがない。 ウォーターフォールって否定されるようになったよな
前は大正義くらいの勢いだったのに 米国では内製が基本だから、見積り工数を大きくオーバーしても少々不具合出しても自己責任なので問題ない
そのため厳格なウォーターフォールに拘る必要がなく、決まった枠で確実に作り上げるよりもデリバリーの早さを重視する開発プロセスに移行している
一方ジャップアイランドではいまだに受託開発が中心だからウォーターフォール脱却は不可能よ
「工数枠内でベストを尽くしますが、完成は保証しません」
君が客ならこんなこと抜かすベンダーに仕事任せられるかな? >>895
そっか、使えるんだな
でも怒られそう… お前が権力を握れば怒られない
(ただし裏でクソクソ言われるだろうけど) 全く不具合が発生せず、何かあっても全部自己解決出来るのなら怒られない 日本語識別子、自分が使って書くのは嫌だけど人が書いたのを読むのは全然問題ないよ。
入力しづらいだけで読みづらいわけじゃないから
ただ英語でちゃんとした命名ができない人は日本語能力にもちょっと不安を感じるねw MVCがわかりません
どのサイト見ても概念とか考え方しか書いてない
一般的なWEB構成でいう
M=Webアプリ(サーバー)
V=html+CSS(ブラウザ)
C=Javascript(ブラウザ)
役割はこういうイメージであってますか? もともとボヤっとしたもんやからなんでもええねんMVCて そうなんですか
C#でフレームワークはMVCを使用するって言ってるとこあるけど
これはASPのMVCを使うよって事なのかな Mは処理
Vは見える化
Cは押したボタンからどんなMをするか振り分けること >>910
そうなると>>907のイメージであってますよね? >>907
仮にそうだったとしてそれに当てはめて何か使いたい式があるのかい? 設計モデルのこと聞くのにこのスレで引っ張られてもgdgdにしかならないと思うな >>909
WPFを使うよって可能性もあるのでは? MVC は、Rails が基本。
これをやっていないと、理解できないだろう
各フレームワークの本は、以下に書いてある
Ruby 初心者スレッド Part 64
https://mevius.5ch.net/test/read.cgi/tech/1535797516/267 そもそもMVCってのがかなり大きな概念だからな
ただ、文脈によっては特定のフレームワーク指してたりすることもあるけど
発祥はSmalltalkだったと思うけど、Railsが基本とかやってないと理解できないとかもうね
最近はRubyも必死に普及活動しないとだめなのかね フレームワークを流行らせたのは、Rails
だから、それ以降のフレームワークは、すべて影響を受けている >>918
いやもっと前だな。
WordStar とか WordMasterは既にその概念で実装されている ASP.NETのWebAPIでセッションって使えますか?
使えないとしたら、RESTfullで認証はどうやるのでしょうか? >>923
そもそもセッションと認証は別の概念なんだが
認証はRESTったって単にHTTPなんだから、基本認証でも何でもいいだろ
RESTfulでセッションってなら設計が間違ってる気がするけど、普通にASP.NETのセッション使えたはず >>924
>>925
>>927
>>930
ありがとうございます
それらのキーワードについて調べます >>876
横レスだけどこれ勉強になった。ありがとう
ただそこの例だとConsole.WriteLineで"\uD842\uDF9F"が表示できないのと
「叱る」をそのままコピペして入力してしまうとサロゲートペア扱いにならずどちらも2文字になってしまう
他で見た「ほっけ」の漢字(魚偏に花。ここでは表示されない)を使ってフォームのTextboxで確認できた あれ?書けるじゃん
コード書いて質問しようとしたんだが
サーバーが受け付けないとか?設定変わったとか? >>1「コードを貼る場合は」参照
関係ないかもしれんが、前も何かの記号、確かバックスラッシュ(\)が書けなくなったことがあった コードを書くような真面目な内容ならteratailやstackoverflowでやる
そうじゃないなら5ch 以前は書けたんだけどなあ?
言葉で説明するのが面倒だからコード書きたかったんだけど
書けないならまあいいや
もう少し自力で調べる 5chに書くなら文字数が多すぎると書き込めないんじゃなかったか C#でshortの配列をushortの配列として扱うにはどうしたらいいのでしょう?
ushortの配列を確保してそこにブロックコピーすればいいのですが、コピーせずに扱いたいです
Cでの例
short data[1000];
data[0] = -3;
ushort out = ((ushort*)data)[0] >>946
C#でも共用体は作れるので、それでやるのが正攻法だろうね >>946
ポインタ使うかSpan<>使う
いずれにせよunsafeは避けられない ありがとう
short[] data = new short[1000];
data[0] = -3;
data[1] = -5;
ushort out1;
ushort out2;
unsafe
{
fixed (short* p = data)
{
out1 = *(ushort*)&p[0];
out2 = *(ushort*)&p[1];
}
} >>949
fixedブロックの中は
ushort* p2 = ( ushort * )p;
out1 = p2[ 0 ];
out2 = p2[ 1 ];
の方が完結。
その使い方ならunsafe使わずキャストするだけで良い気がするけど
ushort out1 = (ushort)data[0];
ushort out2 = (ushort)data[1]; 初心者な質問で申し訳ありませんが
if 〜else if〜で50個くらい分岐作りたいんだけど
これは上に書いたのから順に条件判別するんですかね?
てことは出現確率の高い条件から順に上から書いていけば
全体に早いシステムができるってことですかね?
それはswitch 〜case〜でも同じですか? レス数が950を超えています。1000を超えると書き込みができなくなります。