يجب أن يكون هذا التعبير نوع 'وحدة'، ولكن لديه نوع 'ConsoleKeyInfo "

StackOverflow https://stackoverflow.com/questions/324947

سؤال

وأردت فقط أن نتوقف في تطبيق F # حدة، لذلك كتبت:

وConsole.ReadKey ()

ولكن هذا يعطي تحذير: This expression should have type 'unit', but has type 'ConsoleKeyInfo'.

وماذا يمكنني أن أفعل لإصلاح هذا؟

هل كانت مفيدة؟

المحلول

والحل:

Console.ReadKey() |> ignore

شرح: Console.ReadKey() بإرجاع كائن من النوع 'ConsoleKeyInfo' ولكن كنت تستخدم على أنها بيان دون تعيين قيمة الإرجاع إلى أي شيء. لذا F # يحذرك أنك تجاهل قيمة. ignore يأخذ أي نوع والعوائد شيء. يمكن تعريف مثل هذا:

let ignore _ = ()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top