2012-02-29 10 views
8

Tôi đã đoạn mã sau trong một mô hình điểm:Visual Studio Xem cửa sổ không có tính đến usings tài khoản

public Point Location 
{ 
    get 
    { 
     var rangePixels = Range * PixelsPerMile; 
     var xCoordinate = OwnLocation.X * MapScale + rangePixels * Math.Cos(Theta); 
     var yCoordinate = OwnLocation.Y * MapScale - rangePixels * Math.Sin(Theta); 
     return new Point(xCoordinate, yCoordinate); 
    } 
} 

Một trong những usings ở phía trên cùng của tập tin mã là System, trong đó có Math.

Nếu tôi xem Math.Sin(Theta) trong cửa sổ Watch (bằng cách chọn mã, nhấp chuột phải và chọn "Add Watch"), tôi nhận được lỗi sau:

The name 'Math' does not exist in the current context

Những gì tôi muốn biết là:

  1. Hành vi dự kiến ​​/ mặc định này cho Visual Studio 2010? Tôi có thể thề rằng điều này không bao giờ được sử dụng để trở thành một vấn đề, nhưng có lẽ nó luôn luôn làm việc theo cách đó và tôi bằng cách nào đó không bao giờ nhận thấy.
  2. Nếu không có lỗi này bình thường, bất kỳ suy nghĩ nào về vấn đề có thể là gì? Có một triệu cài đặt trong Visual Studio, và tôi sẽ không biết bắt đầu từ đâu.

Tôi nên lưu ý câu hỏi này rất mơ hồ tương tự như this, nhưng tôi không gặp phải bất kỳ sự cố nào khi di chuột qua các biến cục bộ của mình và tôi không sử dụng PostSharp.

Sửa

Tôi chỉ cố gắng đặt lại tất cả các thiết lập Visual Studio của tôi ủng hộ để mặc định, và tôi vẫn nhận được lỗi tương tự. Nếu ai đó muốn thử một thử nghiệm đơn giản trong Visual Studio, tôi chỉ muốn biết nếu bạn gặp lỗi nếu bạn thêm đồng hồ cho Math.Sin(1).

Chỉnh sửa 2

Dưới đây là một vài ảnh chụp màn hình để hiển thị những gì tôi đang trải qua:

Adding Math.Sin(1) to watch

Showing error for Watch

Sửa 3

liên estingly, IntelliSense hoạt động nếu tôi gõ Math. vào cửa sổ Watch, nhưng nếu tôi hoàn thành các biểu hiện, tôi vẫn nhận được lỗi:

Showing intellisense working

Sửa 4

Để giải quyết câu hỏi BACON của:

  1. Tôi nhận được cùng một hành vi với QuickWatch và Immediate.
  2. Đóng và mở lại tất cả các cửa sổ không giải quyết được sự cố.
  3. Tôi đang sử dụng Visual Studio 2010 Professional (phiên bản 10.0.40219.1 SP1Rel)
  4. Tôi đã thử nhắm mục tiêu .NET 4.0 Client Profile và đầy đủ .NET 4.0. Không có sự khác biệt. Tôi đã tạo ứng dụng Console (thay vì ứng dụng WPF) nhắm mục tiêu .NET 4.0 Hồ sơ khách hàng, và cuối cùng, lỗi không xảy ra. Vì vậy, WPF có thể là một vấn đề (hoặc WPF với một số thư viện của bên thứ ba). (Sẽ kiểm tra trên đó ở bên cạnh.)
+0

Điều gì xảy ra nếu bạn thêm đồng hồ vào 'System.Math.Sin (1)'? – BACON

+0

@ BACON, hoạt động tốt. (Nó có thể là một nỗi đau mặc dù không gian tên sâu hơn.) – devuxer

+2

Xem nhanh và Cửa sổ ngay lập tức có biểu hiện giống nhau không? Nếu bạn đóng hoàn toàn tất cả cửa sổ Đồng hồ và mở lại chúng từ menu Gỡ lỗi, điều đó có ảnh hưởng gì không? Bạn đang sử dụng phiên bản Visual Studio 2010 nào? Bạn đã cài đặt Gói Dịch vụ 1 chưa? Điều này có xảy ra bất kể phiên bản .NET mà ứng dụng của bạn đang nhắm mục tiêu không? – BACON

Trả lời

6

Nó xuất hiện rằng thủ phạm là một thư viện của bên thứ ba mà thực hiện IL dệt (Fody.PropertyChanged).

Nếu tôi tạo dự án WPF mới mà không có thư viện này, tôi có thể sử dụng Math.Sin() trong cửa sổ Xem. Khi tôi cài đặt PropertyChanged, tôi bắt đầu nhận được lỗi "không có sẵn trong ngữ cảnh này".

Nhờ @BACON đã dẫn tôi đi đúng con đường để tìm ra điều này.

Dưới đây là một liên kết đến một vấn đề tôi đăng tải trên trang web PropertyChanged:

http://code.google.com/p/propertychanged/issues/detail?id=6&thanks=6&ts=1330494634

Sửa

Và sau đó, nó quay ra đây có lẽ là một lỗi trong Mono-Cecil, mà Sử dụng PropertyChanged:

https://github.com/jbevain/cecil/issues/90

1

Tôi đã làm điều này trong một ứng dụng thử nghiệm litte, trong các nhà xây dựng ..

enter image description here

Đang cố gắng để đưa một chiếc đồng hồ trên Math cho phép tôi nhìn thấy các giá trị của E và PI. Bạn không thể đặt một trên Sin. Đặt một trên val hoạt động tốt.

Vì vậy, không, tôi không nghĩ rằng điều đó khá bình thường, trừ khi bạn nhấp vào tên sai. Tức là, không phải là thay đổi, nhưng "Sin" phần ...

Đây là nơi tôi nhấn mạnh toàn bộ điều ...

enter image description here

+0

Cảm ơn, nhưng tôi cần biết điều gì sẽ xảy ra nếu bạn làm một chiếc đồng hồ cho 'Math.Sin (val)'. Làm một chiếc đồng hồ cho 'val' một mình không phải là vấn đề của tôi. – devuxer

+0

Hmm ... vâng, tôi đã nêu bật toàn bộ nội dung "Math.Sin (val)" và có đồng hồ, hiển thị giá trị là 0,84147 .... Xin lỗi vì đã không đọc câu hỏi này rất tốt. – pennyrave

+0

Chỉ cần thêm một chỉnh sửa cho câu hỏi của tôi, hy vọng sẽ làm cho nó rõ ràng hơn những gì tôi yêu cầu. – devuxer