7

Tôi bắt đầu sử dụng C# Interactive và thích thực tế là tôi có thể duyệt và khám phá một số chức năng API như tôi thực hiện với Immediate mà không cần chạy và gỡ lỗi chương trình của mình.Có thể tự động xuất ra giá trị trong C# Interactive (REPL) như ngay lập tức không?

Vấn đề là nó không ra các thông tin như trước mắt không, trừ khi tôi làm một lệnh với một tên biến:

> string.Format("{0,15}", 10m);   //hit enter, here there is no output 
> var a = string.Format("{0,15}", 10m); //hit enter so... 
> a          // hit enter and... 
    "  10"       //...here the value is shown 
> 

Có cách nào để làm cho C# Interactive đầu ra các giá trị trong mỗi lần đánh giá như Immediate làm (Và không viết thêm mã cho điều đó như Console.Write)?

Trả lời

12

Có, để xuất kết quả của biểu thức được đánh giá chỉ đơn giản là không đặt dấu chấm phẩy ở cuối. Trong ví dụ của bạn, thay vì điều này:

string.Format("{0,15}", 10m); 

làm điều này:

string.Format("{0,15}", 10m) 

See the documentation

+0

Wow. Làm thế nào tôi đã bỏ lỡ nó. Cảm ơn. –

5

Khi bạn kết thúc với một tuyên bố (ví dụ như kết thúc với ;), mà bạn phải khi tuyên bố các biến, bạn không nhận được bất kỳ đầu ra nào vì nó chỉ có tác dụng phụ.

Khi bạn hoàn thành với biểu thức (ví dụ: không kết thúc bằng ;), bạn sẽ nhận được kết quả của biểu thức đó. Một cách giải quyết là:

var a = string.Format("{0,15}", 10m); a 

Thông báo a như là một biểu ở cuối, bạn sẽ nhận được giá trị của nó được in ra.


Cá nhân, cho các đoạn đa dòng Tôi muốn thử nghiệm, tôi thường có một biến res:

object res; 
// code where I set res = something; 
using (var reader = new System.IO.StringReader("test")) 
{ 
    res = reader.ReadToEnd(); 
} 
res 

Các overhead gõ xảy ra một lần mỗi thị giác phiên Studio, nhưng sau đó tôi chỉ cần sử dụng Alt + để chọn một trong các mục trước.

+0

Tuyệt. Cảm ơn. Nhưng câu trả lời được thực hiện bởi @Crowcoder là giống như những gì tôi đang tìm kiếm. Được thăng hạng. –

+1

Ok, bây giờ tôi hiểu câu hỏi của bạn đơn giản hơn so với tuyên bố. Tôi trả lời trên cơ sở mà bạn dự định lưu trữ giá trị trong một biến và in nó, thay vì chỉ in nó. – acelent

+0

Xin lỗi vì sự nhầm lẫn. –

Các vấn đề liên quan