PowerShell 技能连载 - 使用类(构造函数 - 第五部分)

Class 也可以称为构造函数。构造函数是创建一个新对象的方法。构造函数只是和类名相同的方法。通过构造函数,可以更简单地创建事先为属性赋过值的对象。以下是一个例子:“Person”类定义了一个 person。

以下是一个构造函数,输入姓和名,以及生日。当一个对象实例化的时候,构造函数会被调用,并且事先填充好对象的属性:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#requires -Version 5.0
class Person
{
[string]$FirstName
[string]$LastName
[int][ValidateRange(0,100)]$Age
[DateTime]$Birthday

# constructor
Person([string]$FirstName, [string]$LastName, [DateTime]$Birthday)
{
# set object properties
$this.FirstName = $FirstName
$this.LastName = $LastName
$this.Birthday = $Birthday
# calculate person age
$ticks = ((Get-Date) - $Birthday).Ticks
$this.Age = (New-Object DateTime -ArgumentList $ticks).Year-1
}
}

有了这个类之后,您可以很方便地创建 person 对象的列表:

1
2
3
[Person]::new('Tobias','Weltner','2000-02-03')
[Person]::new('Frank','Peterson','1976-04-12')
[Person]::new('Helen','Stewards','1987-11-19')

结果类似如下:

1
2
3
4
5
FirstName LastName Age Birthday
--------- -------- --- --------
Tobias Weltner 16 2/3/2000 12:00:00 AM
Frank Peterson 40 4/12/1976 12:00:00 AM
Helen Stewards 29 11/19/1987 12:00:00 AM

PowerShell 技能连载 - 使用类(构造函数 - 第五部分)

http://blog.vichamp.com/2017/02/10/using-classes-constructors-part-5/

作者

吴波

发布于

2017-02-10

更新于

2022-07-06

许可协议

评论