2012-04-18 48 views
7

Theo Microsoft: "Cửa sổ ngay lập tức được sử dụng tại thời điểm thiết kế để gỡ lỗi và đánh giá biểu thức, câu lệnh thực thi, giá trị biến in, v.v."Cửa sổ ngay lập tức ở chế độ thiết kế

Lưu ý rằng thông báo "ở thời gian thiết kế". Tôi cũng đã đọc các phát biểu khác trên web về hiệu ứng này.

Tuy nhiên, khi ai đó hỏi tại sao họ nhận được "Biểu thức không thể được đánh giá trong khi ở chế độ thiết kế". lỗi, mọi người luôn nói rằng nó chỉ hoạt động trong chế độ gỡ lỗi.

Tôi có thể hiểu một số điều sẽ không hoạt động trong chế độ thiết kế khi chúng tham chiếu các mục như giá trị hộp văn bản. Nhưng tôi thực sự không hiểu tại sao tôi phải thiết lập một điểm dừng, chạy ứng dụng của tôi, và chờ cho nó đến được điểm ngắt, chỉ để tìm hiểu xem 1 + 1 là gì.

Tôi thừa nhận thất vọng khi tôi đến từ Visual Basic 6.0. Ở đó tôi có thể in 1 + 1 và nhận 2 trong khi ở chế độ thiết kế. Tôi cũng có thể gọi các chức năng công cộng và nhận câu trả lời trong khi ở chế độ thiết kế.

Tất cả điều này xuất phát từ tìm kiếm câu trả lời của tôi để nhập chuyển đổi. Vì tôi không thể tìm thấy câu trả lời trên web, tôi đã quyết định cách nhanh nhất và dễ nhất là chỉ cần kiểm tra một số câu lệnh REAL QUICK trong cửa sổ ngay lập tức để xem cái nào hoạt động.

.NET có lùi lại một bước khi sử dụng cửa sổ ngay lập tức không?

+1

nó không làm việc trong chế độ thiết kế nhưng đó là khó xử. Đọc http://msdn.microsoft.com/en-us/library/f177hahy(v=vs.100).aspx để biết ý tưởng về các giới hạn. Sau đó thư giãn với một ly cocktail gin và nước chanh. –

+0

VB6 là một ngôn ngữ thông dịch trong khi trong IDE. Nếu bạn ủng hộ loại tương tác này thì bạn nên tìm kiếm một ngôn ngữ sử dụng một trình thông dịch, không phải là một trình biên dịch như VB.NET. Python, Ruby, hầu hết mọi ngôn ngữ động đều thực sự. –

+0

Igby, bạn đã có giải pháp tốt nhất. Điều này chủ yếu là một ý niệm và ý nghĩ về một thức uống rất hấp dẫn. :-) –

Trả lời

0

Với tôi, tôi có thể làm bất cứ điều gì bạn đã đề cập trong cửa sổ ngay lập tức trong Visual Studio 2008, như tìm ra tổng của 1 + 1 hoặc tìm ra độ dài "sdfd". Chiều dài, vv có thể được thực hiện từ cửa sổ ngay lập tức. Vì vậy, nó không phải là một bước lùi trong .NET.

1

Tóm lại, nó phụ thuộc vào ngữ cảnh của ứng dụng của bạn, nghĩa là, giải pháp nào bạn hiện đã chọn trong Solution Explorer và loại dự án của nó. ví dụ. Các dự án Web, sẽ không đánh giá các biểu thức ngay lập tức tại thời điểm thiết kế vì nó cần thiết lập môi trường đó, tuy nhiên, các dự án kiểu thư viện và giao diện điều khiển sẽ.

MSDN states:

"Khi thiết lập bối cảnh để đánh giá biểu hiện thời gian thiết kế, Visual Studio tham chiếu dự án hiện đang được chọn trong Giải pháp Explorer. Nếu không có dự án được chọn trong Solution Explorer, Visual Studio cố gắng để đánh giá Nếu hàm không thể được đánh giá trong ngữ cảnh hiện tại, bạn sẽ nhận được thông báo lỗi. Nếu bạn đang cố gắng đánh giá hàm trong một dự án không phải là dự án khởi động cho giải pháp d bạn nhận được lỗi, hãy thử chọn dự án trong Solution Explorer và thử đánh giá lại. "

Tuy nhiên, nếu bạn đang ở trong dự án web, bạn sẽ cần phải đạt điểm ngắt để đánh giá biểu thức trong Cửa sổ ngay lập tức.

This may be covered in other answers

3

Tôi hiểu sự thất vọng của bạn. May mắn thay sự phát triển của Roslyn (trình biên dịch C# mã nguồn mở của Microsoft) được phép có một cái gọi là "Windows tương tác" trong Visual Studio.Bạn cần phải cài đặt Roslyn và sau một số bước thiết lập dễ dàng, bạn có thể đánh giá các biểu thức C# trong cửa sổ đó: https://github.com/dotnet/roslyn/wiki/Interactive-Window

Rất khác với Cửa sổ ngay lập tức vì vòng lặp REPL có thể bị cô lập, nhưng có vẻ như bạn thậm chí có thể tương tác với dự án của bạn trong chừng mực nào: Can the C# interactive window interact with my code?

này ngày trở lại thậm chí đến 2011-2012, và nó là một phần mặc định của Visual Studio 2015 CTP1 kể từ cuối năm 2015: View -> Other Windows -> C# Interactive

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