Skip to content

Commit

Permalink
Add example to doc for UnsafeAccessor (#88040)
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronRobinsonMSFT authored Jun 26, 2023
1 parent de6955b commit 5ca6826
Showing 1 changed file with 14 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,20 @@ public enum UnsafeAccessorKind
/// Return type is considered for the signature match. modreqs and modopts are initially not considered for
/// the signature match. However, if an ambiguity exists ignoring modreqs and modopts, a precise match
/// is attempted. If an ambiguity still exists <see cref="System.Reflection.AmbiguousMatchException" /> is thrown.
///
/// By default, the attributed method's name dictates the name of the method/field. This can cause confusion
/// in some cases since language abstractions, like C# local functions, generate mangled IL names. The
/// solution to this is to use the <code>nameof</code> mechanism and define the <see cref="Name"/> property.
///
/// <code>
/// public void Method(Class c)
/// {
/// PrivateMethod(c);
///
/// [UnsafeAccessor(UnsafeAccessorKind.Method, Name = nameof(PrivateMethod))]
/// extern static void PrivateMethod(Class c);
/// }
/// </code>
/// </remarks>
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public sealed class UnsafeAccessorAttribute : Attribute
Expand Down

0 comments on commit 5ca6826

Please sign in to comment.