2017-12-11 10 views
0

私の関数InlogLeerling()を.csファイルLogin.csからMainPage.xaml.csに呼び出すことに本当にかかわっています。他の.csファイルからC#関数を呼び出せません

私はすべてを試してみましたが、すでにいくつかの回答がありましたが、私のプロジェクトでどのように働くのか分かりません。私は機能InlogLeerling()を呼び出すと、私はここでエラーThere is no argument given that corresponds to the required formal parameter 'mainpage' of 'Login.InlogLeerling(MainPage)'

を取得し、私は私のLogin.cs

そしてMainPage.xaml.cs

namespace VerlofXamarin 
{ 
    public partial class MainPage : ContentPage 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 

     public Login login; 

     public string pu_LeerlingLog 
     { 
      get { return LoginLog.Text; } 
      set { LoginLog.Text = value; } 
     } 

     public string pu_LeerlingGebruikersnaam 
     { 
      get { return LeerlingGebruikersnaam.Text; } 
     } 

     public string pu_LeerlingWachtwoord 
     { 
      get { return LeerlingWachtwoord.Text; } 
     } 

     public void LoginKlik(Login login) 
     { 
      this.login = login; 
      login.InlogLeerling(); 
     } 

に使っていたコードである私はすでにたくさんのことを試してみました。

答えて

2

あなたはあなたのコードに2つの問題を抱えている - ここで参照 です。

  1. あなたのクラスの外からプライベートメンバーを呼び出すことはできません。したがって、あなたのメソッドを公開する
  2. あなたのメソッドは、タイプMainPageのパラメータが必要です。

    public void LoginKlik(Login login) 
    { 
        this.login = login; 
        login.InlogLeerling(this); 
    } 
    

別にこれらから、あなたがshouldn't publicilyフィールドを公開:だからあなたはまさにあなたのエラー状態である、それを提供する必要があります。あなたは、彼らが同じクラスではないので、メソッドを呼び出すことができなくなります

public MainPage MainPage { get; private set; } 
0

:代わりにあなたがあなたのクラスLogin外で読み込まれ、あなたのクラスと以内に変更することができますパブリックプロパティを使用します。 privftのアクセス修飾子を指定すると、クラス内でのみアクセスできます。あなたはより多くのアクセスをさせていただきたいと思い 場合があります:

保護 - 保護されたメンバーはそのクラス内と派生クラスのインスタンスからアクセス可能です。

内部 - 内部型またはメンバーは、同じアセンブリ内のファイル内でアクセスされている(すなわち、同じコンパイルされたプログラム。)

公共。 - 。パブリックアクセスは最も許容的なアクセスレベルです。制限はありません

そのため、内部または公共を使用すると(より大きなアスペクトで必要なものに依存します)、プロジェクトの他のクラス内でこのメソッドにアクセスできます

関連する問題