tôi đã thử nghiệm với các modifier const
trong khi khám phá một loạt các C# hướng dẫn, và đặt một bó const
bổ ngữ trong một lớp học như thế này mà không thực sự sử dụng chúng ở bất cứ đâu:Khó hiểu cảnh báo về một lĩnh vực thập phân liên tục trong C#
class ConstTesting
{
const decimal somedecimal = 1;
const int someint = 2;
...
}
với lớp này, tôi nhận được cảnh báo sau đây (sử dụng csc):
ConstTesting.cs (3,19): CS0414 cảnh báo: các trường 'ConstTesting.somedecimal' được gán nhưng giá trị của nó không bao giờ được sử dụng
Điều tôi không hiểu là Tôi chỉ nhận được cảnh báo cho const decimal
. Các const int
không cho tôi bất kỳ cảnh báo, bất kể thứ tự hoặc bất cứ điều gì như thế.
Câu hỏi của tôi là, tại sao điều này xảy ra? Tại sao trình biên dịch csc của tôi lại cảnh báo tôi về một số const
ở vị trí đầu tiên, và nếu quan trọng hơn thì tại sao nó chỉ cảnh báo tôi về số const decimal
khi tôi viết const int
giống hệt như vậy? Sự khác biệt giữa int
và decimal
là gì?
Xin lưu ý:
-
- Tôi không có ReSharper
- Tôi đang sử dụng VS 2010
- Tôi chắc chắn 100% không phải 'const` đang được sử dụng bất cứ nơi nào trong mã của tôi.
Để tôi đoán. Một nơi nào đó trong đó '...' mã, bạn đang sử dụng 'someint' nhưng không phải' somedecimal'. Nó khá đáng ngạc nhiên, nhưng nếu bạn không sử dụng một giá trị bạn chỉ định bạn nhận được (chờ nó) .. một cảnh báo nói với bạn nó được gán nhưng không được sử dụng! Đáng ngạc nhiên, phải không? –
Tôi khá chắc chắn rằng tôi đang sử dụng không ở bất cứ đâu. – HavelTheGreat
Tôi khá chắc chắn bạn! Hãy thử 'public class Foo {const int bar = 2;}', bạn sẽ thấy. –