Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Sử dụng getch() trong lập trình C#

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Wink Sử dụng getch() trong lập trình C#

    Hôm nay, tự dưng Mr Pete vào YM hỏi mình "trong C#, có phương thức nào giả lập hàm getch() trong C không?"
    - "Tự mò trong MSDN đi pa"
    - "Tìm rồi, không có"
    Thế là bước chân lãng tử C# bắt đầu tìm đường giải quyết cái câu hỏi có vẻ hơi bị thừa này, tất nhiên là mình không được dùng Console.ReadLine() rồi, vì nó trả về kiểu string, còn getch() thì nó trả về char.
    Sau một hồi tìm kiếm, mình cũng tìm ra cách, đơn giản lắm, mọi người tham khảo chương trình console sau của mình thì sẽ hiểu ngay cả mà:
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. using System.Runtime.InteropServices;
    5.  
    6. namespace ConsoleApplication1
    7. {
    8.     class Program
    9.     {
    10.         [DllImport("msvcrt")]
    11.         static extern char _getch();
    12.         static void Main(string[] args)
    13.         {
    14.             Console.WriteLine("Chao anh em CViet");
    15.             _getch();  // hoac char ch = _getch();
    16.         }
    17.     }
    18. }

    Lâu lâu tìm về nguồn cội (C) cũng thấy vui,anh em nhỉ?

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Chi cho cực vậy, neverland87, dùng Console.ReadKey hay Console.ReadKey(true/false) không khỏe hơn à.
    Hạn chế call native api trong .NET, khi gọi, compiler phải sinh code thunk rồi .NET runtime phải làm rất, rất nhiều việc để chuyển từ .NET -> native -> .NET.

  3. #3
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi TQN Xem bài viết
    Chi cho cực vậy, neverland87, dùng Console.ReadKey hay Console.ReadKey(true/false) không khỏe hơn à.
    Hạn chế call native api trong .NET, khi gọi, compiler phải sinh code thunk rồi .NET runtime phải làm rất, rất nhiều việc để chuyển từ .NET -> native -> .NET.
    Em xin bổ sung, phương thức Console.ReadKey() trả về cấu trúc ConsoleKeyInfo, muốn trả về char (cho tương đương getch()) thì ta làm như sau:
    Visual C# Code:
    1.         static void Main(string[] args)
    2.         {
    3.             Console.Write("Hello world");
    4.             ConsoleKeyInfo ckf = Console.ReadKey(true);
    5.             char ch = ckf.KeyChar;
    6.         }

Các đề tài tương tự

  1. Hàm getch() trong C hoạt động như thế nào?
    Gửi bởi whamy04 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 34
    Bài viết cuối: 10-11-2014, 09:09 AM
  2. Cho hỏi lệnh tương đương với getch() trong C++
    Gửi bởi ashtxk trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 14-08-2011, 09:55 AM
  3. Bài tập C++ Sao không dùng được getch() trong C free?
    Gửi bởi kukopuka trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 29-07-2010, 10:25 PM
  4. Lệnh có chức năng như getch() trong J# là lệnh nào
    Gửi bởi vnnghia03 trong diễn đàn Thắc mắc chung
    Trả lời: 1
    Bài viết cuối: 06-12-2008, 12:28 AM
  5. Hàm nào tương trong C++ tương đương với getch()
    Gửi bởi the-misery trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 15-05-2008, 12:24 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn