Es tut mir leid, ich habe nur etwas geschrieben, um meinen Standpunkt zu verstehen.C# Warum ist die Größe von (konstant) nicht definiert
Hier ein aktuelles Beispiel-Code ist:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CacheScratch
{
class Class1
{
public const int a = 0xABAC;
int test()
{
return sizeof(a);
}
}
}
Wenn ich ein const haben, warum bekomme ich den Fehler: Severity Code Beschreibung Projektdatei Zeilenunterdrückung Staat CS0233 Fehler ‚a‘ nicht über ein vordefinierte Größe, daher kann sizeof nur in einem unsicheren Kontext verwendet werden (in Erwägung ziehen mit System.Runtime.InteropServices.Marshal.SizeOf)
Warum brauche ich einen Marshal für eine Variable fester Größe?
Ihr Code ist nicht in der Nähe zu kompilieren. Sie referenzieren eine nicht vorhandene Variable, Sie verwenden kein Typargument und '0xA4B4' passt nicht in einen kurzen. –
https://msdn.microsoft.com/en-us/library/eahchzkf(v=vs.120).aspx –
sizeof nimmt einen Typ in C#, kein beliebiger Ausdruck. –