UfcppSample icon indicating copy to clipboard operation
UfcppSample copied to clipboard

http://ufcpp.net/ 向けのサンプル

Results 48 UfcppSample issues
Sort by recently updated
recently updated
newest added

C# 12 時点で preview feature。オプション指定必須。 https://github.com/ufcpp-live/UfcppLiveAgenda/issues/74#issuecomment-1633665906 ```cs using System.Runtime.CompilerServices; var c = new C(); c.InterceptableMethod(1); // (L1,C1): prints "interceptor 1" c.InterceptableMethod(1); // (L2,C2): prints "other interceptor 1" c.InterceptableMethod(2); // (L3,C3):...

C# 13.0

ブログにでも書く? C# 入門の雑記? ```cs using System.Runtime.CompilerServices; var p = new Private(); GetValue(p) = 99; Console.WriteLine(p); // 99 // アクセス制限無視してメンバーにアクセスする手段を用意したらしい。 // 今まではリフレクション(IL Emit)でやりたい放題やってたけども、 // AOT (リフレクションをソースジェネレーターで置き換えたい)で困るからって。 // // ランタイム側で UnsafeAccessor 属性付きの...

C# 12.0

[null 許容参照型4ページ目](https://ufcpp.net/study/csharp/resource/nullablereferencetype/?p=4)のアノテーション属性の利用例の中にあるAllowNull属性の例が実際と異なっているようです。 記載されている説明では、 > [TextWriter.NewLine](https://docs.microsoft.com/ja-jp/dotnet/api/system.io.textwriter.newline) は get で null を返すことはありません。 しかし、「null を set すると [Environment.NewLine](https://docs.microsoft.com/ja-jp/dotnet/api/system.io.textwriter.newline) を使う」という仕様があって、set だけが null 許容です。 そこで、以下のように、set にだけ AllowNull が付いています。 となっていますが、.NET Source Browserで見ることできる[現状のコード](https://source.dot.net/#System.Private.CoreLib/src/libraries/System.Private.CoreLib/src/System/IO/TextWriter.cs,108)ではAllowNull属性はsetではなくプロパティ側についていました。 現在のAllowNull属性の[定義](https://learn.microsoft.com/ja-jp/dotnet/api/system.diagnostics.codeanalysis.allownullattribute)では`AttributeTargets`に`Method`が含まれていないため、setだけにAllowNull属性を指定すること自体ができないはずです。preview段階のソースなどを参考にした例がそのまま残ったりしてしまっているのではないでしょうか?

[unsafeページのマネージ型のポインターセクション](https://ufcpp.net/study/csharp/sp_unsafe.html#pointer-of-managed-types)に以下の記述があります。 > ただ、こういう「推奨はされないけども最終手段として使える回避策」が必要になることもまれにあります。 これまでのようにエラーになってしまうと、もっと醜悪でもっと危険な手段を取らないと最終手段の回避策すら取れません。 (例: Unsafe クラスその1、 その2、 その3) ここで、例とある3つのリンク先は以下のようになっています。 |文面|リンク先| |-|-| |Unsafe クラスその1|https://ufcpp.net/blog/2018/12/unsafe/| |その2|https://ufcpp.net/blog/2018/12/unsafegarantee/| |その3|https://ufcpp.net/blog/2018/12/unsafegarantee/| その2とその3のリンク先が同一です。おそらく別のリンクが入る箇所だと思います。

いつも参考にさせてもらっています。 [[TOP](https://ufcpp.net/) [C# によるプログラミング入門](https://ufcpp.net/study/csharp/) [[相互運用] 複合型のレイアウト](https://ufcpp.net/study/csharp/interop/memorylayout/)](https://ufcpp.net/study/csharp/interop/memorylayout/#auto-layout) を見ながら sizeof 演算子で構造体サイズを確認しているときに気付いたのですが、 本文には「12バイトのレイアウトになります。」とありますが、LINQPad で動かしてみたら16バイトになりました。 Auto だから処理系によってレイアウトが違うから?と一瞬考えましたが レイアウト図の A・C で4バイトとある箇所が実際には8バイトになるので計16バイトになるのではと思います。 ただし、試していませんが 32bit 処理系で動かしたら A・C が4バイトになって計12バイトになるような気がします。

## 要望 https://ufcpp.net/study/csharp/list_versions.html ↑こういう一覧ページ、更新してほしいという要望あり。 ## 実情 * そのページ、日刊PVは index ページの1% (100分の1)程度 * C# 7.x の時のカオスどうしようか迷う * .NET 5 以降、年次リリースで .NET と C# の足並みもそろってて、そこまで図示要るかわからず * 明確なテーマがある年の方が少ないので、どこをピックアップするといいのか迷う * Visual Studio との紐づけは、今となってはやめた方がいいかも *...

https://ufcpp.net/blog/2022/2/ref-field/ csharplang/pull/6338 csharplang/issues/6337 - [x] 記法としてはフィールドの型に ref 付けるだけ - [x] ref struct にだけ持てる - [x] これの安全性を保障するために、ref struct に対する escape analysis にちょっと手が入ってる - scoped (↑ の修正前と同じ挙動を得るために使う) - [ ] 引数 -...

C# 11.0

以下の辺りをまとめて「新機能の実装方法」みたいなページを1つ作ってもいいかも - [DIM ランタイム側の修正](https://ufcpp.net/study/csharp/oo_interface.html?p=5#runtime-feature) - [RuntimeFeature クラス](https://ufcpp.net/blog/2018/12/runtimefeature/) - [小ネタ 構文糖衣と、そうではない構文と](https://ufcpp.net/blog/2016/12/tipsgeneratedil/) - [ModReq](https://github.com/ufcpp/UfcppSample/tree/master/Demo/2020/ReadModReq) 話の流れ: - C# は C# コード → (C# コンパイラー) → IL → (JIT コンパイラー/.NET Runtime) → ネイティブ コード...

[「小ネタ string型のマーシャリング」](https://ufcpp.net/blog/2016/12/tipsstringmarshal/) や [Build Insider の記事の「Unicodeと、C#での文字列の扱い」](https://www.buildinsider.net/language/csharpunicode/02) で、「C# の `string` は COM の `BSTR` と互換性がある」とされていますが、互換性がないのではと思いました。 理由は、[Microsoft による `BSTR` の説明](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/automat/bstr)によると、`BSTR` の先頭に格納される長さ (Length prefix) は、「Unicode の文字列長 (UTF-16 の符号単位 = 2 バイト単位)」ではなく、「**バイト数**」となっているからです。実際に `SysAllocString(L"aαあ")` を実行して...

pptxとかzipとかのファイル、昔は直起き+直リンクしてたけど、今使ってるCMSは直置きできない。 バックアップ的に https://github.com/ufcpp/UfcppSample/tree/master/Chapters/ufcpp2000 には置いてある。 CMS移行時、C# 以外のページは「PV、全体の1割程度だしまあ別にいいか」と割り切った。 けどまあ、ちょくちょく「リンク切れです」issueが経つ。 いい加減、サイトをクロールしてpptxとかの一覧作ってちまちま直した方がいいかも。