我怎样才能让我的无效公开在任何地方使用

Posted

技术标签:

【中文标题】我怎样才能让我的无效公开在任何地方使用【英文标题】:How can i make my void public to use everywhere 【发布时间】:2019-05-24 15:05:15 【问题描述】:
public void Tarih()

     var baslangicTarih = DateTime.Today.AddDays(-20).Add(new TimeSpan(0, 0, 0));
     DateTime bitisTarih = DateTime.Now.Date.Add(new TimeSpan(0, 0, 0));
     TimeSpan Sonuc = bitisTarih - baslangicTarih;

但是当我尝试在另一个 void 上使用“baslangicTarih”时:

Btn1_Click
    if (result.StartDate!= null)
    
        baslangicTarih = result.StartDate;
        bitisTarih = result.EndDate;
    

上面写着“CS0103 C# The name does not exist in the current context”。

如何在另一个 void 上使用 baslangicTarihbitisTarih(不添加类)?

【问题讨论】:

【参考方案1】:

变量在上下文方法中可用。要访问任何地方,请在类中声明它们

public class MyClass

     public DateTime baslangicTarih ;
     public DateTime bitisTarih;

     public void MyMethod()
     

         if (result.StartDate!= null)
         
             this.baslangicTarih = result.StartDate;
             this.bitisTarih = result.EndDate;
         

【讨论】:

我在代码中到处使用这两个。所以我不想输入“DateTime baslangicTarih ; DateTime bitisTarih;”每次我使用。我想公开日期时间并在任何地方使用它。【参考方案2】:

因为您已在该方法范围内定义了这些变量,并且在该方法之外无法访问它们。您需要的是为此的类级别字段。例如:

public class MyClass

   // now variables are at class level scope
   // all methods can access them now
   DateTime baslangicTarih;
   DateTime bitisTarih;

  public void MethodA()
  
     baslangicTarih = DateTime.Now;
     bitisTarih = DateTime.Now;

  

  public void MethodB()
  
     baslangicTarih = DateTime.Now;
     bitisTarih = DateTime.Now;
   

【讨论】:

我不明白。 你需要阅读 c# 的基础知识,然后尝试一些实用的东西 请解释不起作用,这无助于解决您的问题 这只是不工作,错误消失了,但代码不工作。 请修改您的问题或更好地提出新问题,因为现在这是一个新问题

以上是关于我怎样才能让我的无效公开在任何地方使用的主要内容,如果未能解决你的问题,请参考以下文章

不完整类型的无效使用,前向声明不起作用

如何让我的帖子暂时不公开?

java.util.Observable 是不是在任何地方使用?

java.util.Observable 是不是在任何地方使用?

忽略无效问题的 NOSONAR 标记仍显示为问题

在任何地方使用我的 AsyncTask 类中的变量