Listing 3-1. Pusta klasa Plane
Ten przykład rozpoczyna się w wierszu 18. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu EmptyClass.
Listing 3-2. Dodawanie właściwości
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu PropertiesWithErrors.
Listing 3-3. Stosowanie właściwości klasy Plane
Ten przykład rozpoczyna się w wierszu 13. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu PropertiesWithErrors.
Listing 3-4. Deklarowanie właściwości publicznej
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu PublicProperties.
Listing 3-5. Deklarowanie prywatnej metody set właściwości
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu PrivatePropertiesWithErrors.
Listing 3-6. Definiowanie konstruktora
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu Constructors.
Listing 3-7. Zastosowanie konstruktora
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu Constructors.
Listing 3-8. Właściwość określająca prędkość, której wartość można zmieniać
Ten przykład rozpoczyna się w wierszu 20. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu CalculatedProperties.
Listing 3-9. Właściwość, której akcesory get i set zawierają kod
Ten przykład rozpoczyna się w wierszu 27. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu CalculatedProperties.
Listing 3-10. Zamiana właściwości rzeczywistej i obliczanej
Ten przykład rozpoczyna się w wierszu 20. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu AlternativeCalculatedProperties.
Listing 3-11. Stosowanie właściwości udostępniających informacje o prędkości samolotu
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu CalculatedProperties. Ten sam kod można także znaleźć zaczynając do wiersza 11. w pliku Program.cs należącym do solucji AirTrafficControl.sln umieszczonej w katalogu AlternativeCalculatedProperties.
Listing 3-12. Tworzenie własnej prostej właściwości
Ten przykład rozpoczyna się w wierszu 21. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ManualPropertyWithField.
Listing 3-13. Przechowywanie wartości przelicznika w polu
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ConversionFactorField.
Listing 3-14. Definiowanie wartości stałej
Ten przykład rozpoczyna się w wierszu 21. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ConstConversionFactor.
Listing 3-15. Nieprawidłowy kod używany do debugowania programu
Ten przykład rozpoczyna się w wierszu 23. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu BadDebugCode.
Listing 3-16. Niewłaściwy sposób definiowania właściwości tylko do odczytu
Ten przykład rozpoczyna się w wierszu 9. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu WrongReadOnlyProperty.
Listing 3-17. Lepsza, lecz jeszcze niedokończona właściwość tylko do odczytu
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu IncompleteReadOnlyProperty.
Listing 3-18. „Chytry”, lecz źle napisany kod do debugowania
Ten przykład rozpoczyna się w wierszu 23. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu IncompleteReadOnlyProperty.
Listing 3-19. Pole tylko do odczytu
Ten przykład rozpoczyna się w wierszu 18. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ReadOnly.
Listing 3-20. Nazwane opcje utworzone przy użyciu stałych typu int
Ten przykład rozpoczyna się w wierszu 10. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ConstOptions.
Listing 3-21. Typ wyliczeniowy określający kierunek lotu
Ten przykład stanowi kompletną zawartość pliku DirectionOfApproach.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu Enums.
Listing 3-22. Właściwość typu wyliczeniowego
Ten przykład rozpoczyna się w wierszu 40. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu Enums.
Listing 3-23. Jawne określanie typu i wartości typu wyliczeniowego
Ten przykład stanowi kompletną zawartość pliku DirectionOfApproach.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ExplicitEnum.
Listing 3-24. Zapisywanie referencji w zmiennej
Ten przykład rozpoczyna się w wierszu 13. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu RefsVsValues.
Listing 3-25. Kopiowanie referencji z jednej zmiennej do drugiej
Ten przykład rozpoczyna się w wierszu 17. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu RefsVsValues.
Listing 3-26. Operowanie na jednym obiekcie przy użyciu dwóch zmiennych
Ten przykład rozpoczyna się w wierszu 20. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu RefsVsValues.
Listing 3-27. Kopiowanie wartości, a nie referencji
Ten przykład rozpoczyna się w wierszu 27. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu RefsVsValues.
Listing 3-28. Typ wartościowy
Ten przykład stanowi kompletną zawartość pliku PolarPoint3D.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu WrongValueType.
Listing 3-29. Wywoływanie jednego konstruktora z innego
Ten przykład rozpoczyna się w wierszu 4. pliku PolarPoint3D.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu DeferToDefaultCtor.
Listing 3-30. Wielokrotne stosowanie tego samego kodu inicjującego
Ten przykład rozpoczyna się w wierszu 4. pliku PolarPoint3D.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu SharingCtorCode.
Listing 3-31. O jeden konstruktor za daleko
Ten przykład rozpoczyna się w wierszu 22. pliku PolarPoint3D.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu TooManyCtors.
Listing 3-32. Zastosowanie własnego typu wartościowego we właściwości klasy
Ten przykład rozpoczyna się w wierszu 46. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ValueTypeProperty.
Listing 3-33. Implementowanie jednej wersji metody przeciążonej przy użyciu innej
Ten przykład rozpoczyna się w wierszu 56. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu OverloadedMethod.
Listing 3-34. Parametr o określonej wartości domyślnej
Ten przykład rozpoczyna się w wierszu 52. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu DefaultParamValues.
Listing 3-35. Zastosowanie inicjalizatora obiektu
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ObjectInitializer.
Listing 3-36. Dostosowanie klasy Plane do wykorzystania inicjalizatorów obiektów
Ten przykład rozpoczyna się w wierszu 7. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ObjectInitializerOnly.
Listing 3-37. Zastosowanie samego inicjalizatora obiektu
Ten przykład rozpoczyna się w wierszu 13. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ObjectInitializerOnly.
Listing 3-38. Udostępnienie dodatkowej właściwości
Ten przykład rozpoczyna się w wierszu 44. pliku Program.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ObjectInitializerOnly.
Listing 3-39. Metoda
Ten przykład rozpoczyna się w wierszu 53. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu Methods.
Listing 3-40. Jawny dostęp do składowych
Ten przykład rozpoczyna się w wierszu 53. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu ExplicitMemberAccess.
Listing 3-41. Wykrywanie samolotów znajdujących się zbyt blisko siebie
Ten przykład rozpoczyna się w wierszu 77. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu StaticMethods.
Listing 3-42. Stan statyczny
Ten przykład rozpoczyna się w wierszu 4. pliku Program.cs należącego do solucji StaticFieldsAndProperties.sln umieszczonej w katalogu StaticFieldsAndProperties.
Listing 3-43. Konstruktor statyczny
Ten przykład rozpoczyna się w wierszu 9. pliku Plane.cs należącego do solucji AirTrafficControl.sln umieszczonej w katalogu StaticConstructor.
Listing 3-44. Nierozważne określenie kolejności inicjalizatorów pól statycznych
Ten przykład rozpoczyna się w wierszu 6. pliku Program.cs należącego do solucji BadStaticFieldInit.sln umieszczonej w katalogu BadStaticFieldInit.