Replace arguments with Span in methods?
Should I replace all my array (such as byte[], char[], and string[]) parameters in my synchronous methods with Span (such as Span<byte>, Span<char>, and Span<string>)?
Example:
public void Foo(byte[] bytes)
With:
public void Foo(Span<byte> bytes)
Replace arguments with Memory in async methods?
Should I replace all my array (such as byte[], char[], and string[]) parameters in my asynchronous methods with Memory (such as Memory<byte>, Memory<char>, and Memory<string>)?
Example:
public async Task FooAsync(byte[] bytes)
With:
public async Task FooAsync(Memory<byte> bytes)
Replace return type with Span in methods?
Should I replace all my array (such as byte[], char[], and string[]) return types in my methods with Span (such as Span<byte>, Span<char>, and Span<string>)?
Example:
public byte[] Foo()
With:
public Span<byte> Foo()
Hmm...
- Are arrays as method arguments undesired? Is Spanfavored?
- Are arrays as return types undesired? Is Spanfavored?
I've read a couple of articles about Span, ReadOnlySpan and Memory but find it all a bit difficult to grasp for my puny little mind. Is there any rule of thumb or imbeciles guide to Span?
 
    