程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#應用反射挪用類型成員示例

c#應用反射挪用類型成員示例

編輯:C#入門知識

c#應用反射挪用類型成員示例。本站提示廣大學習愛好者:(c#應用反射挪用類型成員示例)文章只能為提供參考,不一定能成為您想要的結果。以下是c#應用反射挪用類型成員示例正文


創立類: class後跟類名,個中類名的首字母必需要年夜寫。實例化時,經由過程new辦法實例化。在c#中有結構器,結構器與類同名。在ruby中,結構器為initialize辦法。當經由過程new辦法實例化一個類對象後,會主動挪用initialize辦法,把new中的參數傳遞給initialize辦法停止初始化。在c#中的域,在ruby中稱為實例變量,界說時前邊加@前綴,表現是一個實例變量。

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end
end
 
c1=Customer.new("Tom",20)

拜訪器

實例變量只能經由過程實例辦法來拜訪。假如要拜訪它們可以供給辦法拜訪器。在c#中稱為屬性,Java中也是界說辦法來表現屬性。

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end
    
    def name
      @name
    end
    def age
      @age
    end
end

以上界說了兩個辦法x,y,它們可以讀@x,@y實例變量。這就界說了讀屬性辦法。假如要停止賦值操作,還要界說寫屬性辦法:

    def name=(v)
      @name=v
    end
    def age=(v)
      @age=v
    end

要留意的是:

c1=Customer.new("Tom",20)
c1.name="Jhon"

只要在實例中能力如許應用寫屬性。假如在類中,不克不及經由過程name=value如許來取代@name=value。但可以經由過程self來如許應用:self.name=value
Ruby供給了簡化界說屬性辦法:attr_reader和attr_accessor。後邊跟符號,會主動創立同名的讀寫屬性。

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end 
 
    attr_reader :name,:age
    attr_accessor:name,:age
end
c1=Customer.new("Tom",20)
puts c1.name,c1.age
c1.name="Jhon"
c1.age=30
puts c1.name,c1.age

類變量,常量,類辦法
類變量以@@開首;常量經由過程[類名+::常量名]停止拜訪;類辦法在實例辦法辦法名前加類名。在界說類辦法時,可以采取一種方法:

class<<self
       def 辦法
       end
end

那末,這個辦法就是一個類辦法:

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end
    class <<self
      def showName
        'ok'
      end
    end
end
 
puts Customer.showName

辦法的拜訪性
public:私有的,默許情形下類中的辦法是私有的,可以用在任何處所。結構辦法initialize為公有的。
private:公有的,類外部應用的,只能被類或子類的實例辦法所挪用。只能經由過程self隱式挪用,不克不及經由過程一個對象顯示挪用。一個公有辦法m,只能經由過程m挪用,而不克不及經由過程o.m或self.m挪用。
protected:受掩護的,類外部或子類外部應用的辦法。與公有的差別是:除self隱式挪用外,還可以經由過程該類對象顯示挪用。
可以經由過程以下辦法來聲明辦法的拜訪性:

#拜訪性 private protected public
  private
  def private_method
    puts "private method testing"
  end
  protected
  def protected_method
    puts "protected method testing"
  end
  
  public:protected_method

工場辦法
應用new辦法公有,然後經由過程類辦法創立實例

class Fruit
  private_class_method:new
  def Fruit.CreateFruit
    new Fruit
  end
end
f=Fruit.CreateFruit

模塊module

module感化之一是做為名字空間用。挪用類時與挪用常量雷同:兩個冒號
另外一感化是作為混入。經由過程include把模塊中的實例辦法包括到其它類中。感到功效像C#中的名字空間引入。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved