Почему метод Enum HasFlag нуждается в боксе?

Я читаю "C # через CLR" и на странице 380 имеется примечание о следующем:

Note The Enum class defines a HasFlag method defined as follows

public Boolean HasFlag(Enum flag);

Using this method, you could rewrite the call to Console.WriteLine like this:

Console.WriteLine("Is {0} hidden? {1}", file, attributes.HasFlag(FileAttributes.Hidden));

However, I recommend that you avoid the HasFlag method for this reason:

Since it takes a parameter of type Enum, any value you pass to it must be boxed, requiring a memory allocation ."

Я не могу понять это смелое утверждение - почему & quot;

any value you pass to it must be boxed

flag тип параметраEnum, который является типом значения, почему будет бокс? «Любое значение, которое вы передаете ему, должно быть помечено в рамке» должно означать, что бокс происходит, когда вы передаете тип значения параметруEnum flag, право?

Ответы на вопрос(6)

Ваш ответ на вопрос