Intereting Posts
Почему я не могу делиться состоянием сеанса между двумя веб-приложениями с помощью StateServer? Что мне не хватает? Ошибка TransactionScope в .NET? Дополнительная информация? Как проверить документ XML? Можно ли вернуть поле «id» после вставки LINQ? Экспорт сертификата X.509 БЕЗ частного ключа Пакет HTML Agility Parsing с верхними и нижними тегами? VB.NET vs C # integer division Расположение журналов трассировки, где их просматривать Как вызвать метод частных COM-интерфейсов, определенных в базовом classе? в чем разница между списком и словарем в c # Чтение изображения с веб-сервера в прокси-сервере C # Вызов метода для статического classа с указанием его имени типа и имени метода в виде строк В самообслуживании OWIN Web API, как запустить код при выключении? Инициализация поля ThreadStatic по-прежнему вызывает исключение NullReferenceException Как реализовать Triple DES в C # (полный пример)

Помощь в исправлении ошибок в C # “Аргумент ref или out должен быть назначаемым”

Вот блок кода, с которым у меня возникают ошибки:

public static bool Flash(Form form) { return (Win2000OrLater && FlashWindowEx(ref Create_FLASHWINFO(form.Handle, 15, uint.MaxValue, 0))); //A ref or out argument must be an assignable variable } public static bool Flash(Form form, uint count) { return (Win2000OrLater && FlashWindowEx(ref Create_FLASHWINFO(form.Handle, 3, count, 0))); //A ref or out argument must be an assignable variable } private static extern bool FlashWindowEx(ref FLASHWINFO pwfi); public static bool Start(Form form) { return (Win2000OrLater && FlashWindowEx(ref Create_FLASHWINFO(form.Handle, 3, uint.MaxValue, 0))); //A ref or out argument must be an assignable variable } public static bool Stop(Form form) { return (Win2000OrLater && FlashWindowEx(ref Create_FLASHWINFO(form.Handle, 0, uint.MaxValue, 0))); //A ref or out argument must be an assignable variable } private static bool Win2000OrLater { get { return (Environment.OSVersion.Version.Major >= 5); } } 

Сообщение об ошибке:

Аргумент ref или out должен быть назначаемым

Что касается ваших первых ошибок, вам нужно ввести FlashWindow в качестве переменной, например,

Это:

 public static bool Flash(Form form) { return (Win2000OrLater && FlashWindowEx(ref Create_FLASHWINFO(form.Handle, 15, uint.MaxValue, 0))); //A ref or out argument must be an assignable variable } 

будет выглядеть так:

 public static bool Flash(Form form) { if (Win2000OrLater) { FLASHWINFO fi = Create_FLASHWINFO(form.Handle, 15, uint.MaxValue, 0); return (FlashWindowEx(ref fi)); } return false; } 

Вам нужна назначаемая переменная для параметра ref или out.

 FLASHWINFO fwi = Create_FLASHWINFO(form.Handle, 15, uint.MaxValue, 0); FlashWindowEx(ref fwi);