Por que o método HasFlag do Enum precisa de boxe?

Eu estou lendo "C # via CLR" e na página 380, há uma nota dizendo o seguinte:

Nota A classe Enum define um método HasFlag definido da seguinte forma

public Boolean HasFlag(Enum flag);

Usando esse método, você pode reescrever a chamada para Console.WriteLine desta forma:

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

No entanto, eu recomendo que você evite o método HasFlag por esse motivo:

Como é necessário um parâmetro do tipo Enum, qualquer valor que você passar para ele deve ser encaixotado, exigindo uma alocação de memória "

Eu não consigo entender essa afirmação em negrito - por que "

qualquer valor que você passar para ele deve ser encaixotado

oflag tipo de parâmetro éEnum, que é um tipo de valor, por que haveria boxe? O "qualquer valor que você passar para ele deve ser encaixotado" significa que o boxe acontece quando você passa o tipo de valor para o parâmetroEnum flag, certo?

questionAnswers(6)

yourAnswerToTheQuestion