Properties and Encapsulation
Auto Properties
Auto properties store simple public state without writing a separate field.
property
A property exposes a named value on an object.
Auto Properties
AutoProperties.cs
Replay: real traced execution (multi-file project)
using System;
class Book
{
public string Title { get; set; } = "";
public int Pages { get; set; }
}
class Program
{
static void Main()
{
string title = "Guide";
Book book = new Book();
book.Title = title;
book.Pages = 48;
Console.WriteLine($"title={book.Title}");
Console.WriteLine($"pages={book.Pages}");
}
}
using System;
class Book
{
public string Title { get; set; } = "";
public int Pages { get; set; }
}
class Program
{
static void Main()
{
string title = "Primer";
Book book = new Book();
book.Title = title;
book.Pages = 48;
Console.WriteLine($"title={book.Title}");
Console.WriteLine($"pages={book.Pages}");
}
}
using System;
class Book
{
public string Title { get; set; } = "";
public int Pages { get; set; }
}
class Program
{
static void Main()
{
string title = "Manual";
Book book = new Book();
book.Title = title;
book.Pages = 48;
Console.WriteLine($"title={book.Title}");
Console.WriteLine($"pages={book.Pages}");
}
}
title ← Guide, book ← Book, book.Title ← Guide, book.Pages ← 48
10{11 static void Main()12 {13 string title→ Guide = "Guide"; //@title="Primer", "Manual"14 Book book→ Book = new Book();15 book.Title→ Guide = titleGuide;16 book.Pages→ 48 = 48;1718 Console.WriteLine($"title={book.TitleGuide}");19 Console.WriteLine($"pages={book.Pages48}");20 }outputtitle=Guide pages=48
title ← Primer, book ← Book, book.Title ← Primer, book.Pages ← 48
10{11 static void Main()12 {13 string title→ Primer = "Primer";14 Book book→ Book = new Book();15 book.Title→ Primer = titlePrimer;16 book.Pages→ 48 = 48;1718 Console.WriteLine($"title={book.TitlePrimer}");19 Console.WriteLine($"pages={book.Pages48}");20 }outputtitle=Primer pages=48
title ← Manual, book ← Book, book.Title ← Manual, book.Pages ← 48
10{11 static void Main()12 {13 string title→ Manual = "Manual";14 Book book→ Book = new Book();15 book.Title→ Manual = titleManual;16 book.Pages→ 48 = 48;1718 Console.WriteLine($"title={book.TitleManual}");19 Console.WriteLine($"pages={book.Pages48}");20 }outputtitle=Manual pages=48