En setter ( engelsk setter , även setting method , modifying method , mutator ) är en metod som används i objektorienterad programmering för att tilldela ett värde till ett inkapslat fält , till exempel genom att behandla ogiltiga tilldelningar . Implementeras ofta tillsammans med en getter- metod som låter dig få värdet av ett klassfält.
Java-exempel:
offentlig klass ScheduleTask { privata int timmar ; public void setHours ( int hours ) { if (( hours >= 0 ) && ( hours < 24 )) this . timmar = timmar ; } }Här, för att ändra det dolda fältet hours, måste du använda en inställare setHourssom säkerställer att den endast tar giltiga värden.
I C# , på grund av syntaktiska egenskaper (kontext nyckelord setoch value - används endast i sättaren), används en annan teknik oftare:
public class ScheduleTask { privata int timmar ; public int Hours { set { if ( ( värde >= 0 ) && ( värde < 24 ) ) { timmar = värde ; } } } }I det här fallet är det också möjligt att använda den genom en offentlig metod, eftersom set { ... }C#-kompilatorn faktiskt omvandlar konstruktionen till en klassmetod.
Settaren i VB.NET måste ha WriteOnly-modifieraren om gettern inte är implementerad:
Public Class Foo Privat m_Data As Integer 'Privat datafält Public Property Message As Integer 'Auto-implementerad egenskap sedan VB 10.0 Public WriteOnly Property Data As Integer 'Public WriteOnly Property Set ( Value As Integer ) m_Data = Value End Set End Property End Class