Har mitt i allt börjat bygga PowerShell classer
Mina tre första är Continent, Country och Person.
Tänk på att detta är min första utgåva av dessa classer och det kan bli så att jag kommer justera dem lite mera innan jag är helt nöjd.
#Class Person, object with Person
class Person {
#Hidden properties
hidden [String] $Firstname #Firstname for person
hidden [String] $Lastname #Lastname for person
#Constructor
Person(){}
#Constructor
Person([String] $Firstname, [String] $Lastname){
$this.Firstname = $Firstname
$this.Lastname = $Lastname
}
#Write to cli method
[void] WriteToCli(){
Write-Host "##### DATA to CLI - Start #####"
Write-Host "Firstname:" $this.Firstname
Write-Host "Lastname:" $this.Lastname
Write-Host "##### DATA to CLI - End #####"
}
#Get method
[String] getFirstname(){
return $this.Firstname
}
#Get method
[String] getLastname(){
return $this.Lastname
}
#Get method
[String] getDisplayname(){
$str = $this.Firstname + " " + $this.Lastname
return $str
}
#Set method
[void] setFirstname([String] $Firstname){
$this.Firstname = $Firstname
}
#Set method
[void] setLastname([String] $Lastname){
$this.Lastname = $Lastname
}
#compare method
[boolean] compare([Person] $person){
$bool = $true
if($this.getFirstname() -ne $person.getFirstname()){
$bool = $false
}
if($this.getLastname() -ne $person.getLastname()){
$bool = $false
}
return $bool
}
}
#Class Country, object with Country
class Country {
#Hidden properties
hidden [String] $Name #Country name
hidden [Continent] $Continent #Continent object for this country
hidden [String] $A2 #Country name with 2 letter
hidden [String] $A3 #Country name with 3 letter
#Constructor
Country(){}
#Constructor
Country([String] $Name, [Continent] $Continent, [String] $A2, [String] $A3){
$this.Name = $Name
$this.Continent = $Continent
$this.A2 = $A2
$this.A3 = $A2
}
#Write to cli method
[void] WriteToCli(){
Write-Host "##### DATA to CLI - Start #####"
Write-Host "Name:" $this.Name
Write-Host "Continent:" $this.Continent.getName()
Write-Host "A2:" $this.A2
Write-Host "A3:" $this.A3
Write-Host "##### DATA to CLI - End #####"
}
#Get method
[String] getName(){
return $this.NAme
}
#Get method
[Continent] getContinent(){
return $this.Continent
}
#Get method
[String] getA2(){
return $this.A2
}
#Get method
[String] getA3(){
return $this.A3
}
#Set method
[void] setName([String] $Name){
$this.Name = $Name
}
#Set method
[void] setContinent([Continent] $Continent){
$this.Continent = $Continent
}
#Set method
[void] setA2([String] $A2){
$this.A2 = $A2
}
#Set method
[void] setA3([String] $A3){
$this.A3 = $A3
}
#compare method
[boolean] compare([Country] $country){
$bool = $true
if( !(
$this.getContinent().compare($country.getContinent())
)){
$bool = $false
}
if($this.getName() -ne $country.getName()){
$bool = $false
}
if($this.getA2() -ne $country.getA2()){
$bool = $false
}
if($this.getA3() -ne $country.getA3()){
$bool = $false
}
return $bool
}
}
#Class Continet, object with Continent
class Continent {
#Hidden properties
hidden [String] $Name #Continent name
#Constructor
Country(){}
#Constructor
Country([String] $Name){
$this.Name = $Name
}
#Write to cli method
[void] WriteToCli(){
Write-Host "##### DATA to CLI - Start #####"
Write-Host "Name:" $this.Name
Write-Host "##### DATA to CLI - End #####"
}
#Get method
[String] getName(){
return $this.NAme
}
#Set method
[void] setName([String] $Name){
$this.Name = $Name
}
#compare method
[boolean] compare([Continent] $continent){
$bool = $true
if($this.getName() -ne $continent.getName()){
$bool = $false
}
if($this.getName() -ne $continent.getName()){
$bool = $false
}
return $bool
}
}
Tydligen blir inte formateringen den bästa när man lägger kod i wordpress, men det får duga.