Tag: 静态

我们可以在ASP.NET中为pagemethod和webmethod使用相同的数据表吗?

我正在尝试创建一个新的网页,我需要显示近10个不同的网格视图和图表。 Gridview在pageload事件中绑定,并且通过调用WebMethod使用jquery-ajax方法(使用amcharts以及highcharts)显示图表。 最初我实现页面的方式是在执行gridview(用于显示网格视图数据)和webmethods(用于绘制图表)的同一组存储过程之后。为此页面执行两次相同的sps(一个用于网格,另一个用于图表) )。执行获取数据需要10个sps。 因此,为了提高页面性能,我创建了这样的静态数据表 static DataTable Report1; 并且像这样捆绑了gridview。 private void gvbindReport1() { try { Report1 = new DataTable();//refreshed datatable DataSet ReportDS1 = objmvbl.GetReportGraph(ClientID, date_From, date_To); if (ReportDS1.Tables.Count > 0) { Report1 = ReportDS1.Tables[0];//bindinding data to static datatable } GdReport.DataSource = Report1; GdReport.DataBind(); } catch (Exception ex) { Log.Errlog(“Error Occured in gvbindReport1 : ” + […]

ColdFusion中静态方法的等价物是什么?

在C#中,我创建了静态方法来帮助我执行简单的操作。 例如: public static class StringHelper { public static string Reverse(string input) { // reverse string return reversedInput; } } 然后在控制器中,我会通过简单地使用: StringHelper.Reverse(input); 现在我正在使用ColdFusion和Model Glue,我想做同样的事情。 但是,似乎ColdFusion中没有静态方法的概念。 如果我像这样创建一个CFC: component StringHelper { public string function Reverse(string input) { // reverse string return reversedInput; } } 我是否可以通过在控制器中创建StringHelper实例来调用此方法,如下所示: component Controller { public void function Reverse() { var input = event.getValue(“input”); […]

在TPL中返回一个空的静态任务是一种不好的做法?

有些情况下,我希望有条件地运行任务。 我使用某种类似的扩展方法: public static class MyTaskExtension{ private static Task theEmptyTask = Task.Factory.StartNew(() => {}); //This is the question public static Task ContinueWith(this Task task, Task continuationTask, Func condition) { if condition(){ … do the work } return theEmptyTask; } } 我的期望是,theEmptyTask已经完成,所以基本上如果我不想做任何事情我只返回这个任务,而不是null或一个新的空任务。 我觉得这种方法应该有一些小问题。 有人能看到吗?

非静态类中静态方法的重点是什么?

我无法通过以下代码了解潜在的错误: class myClass { public void print(string mess) { Console.WriteLine(mess); } } class myOtherClass { public static void print(string mess) { Console.WriteLine(mess); } } public static class Test { public static void Main() { myClass mc = new myClass(); mc.print(“hello”); myOtherClass moc = new myOtherClass(); moc.print(“vhhhat?”); //This says I can’t access static method in non […]

为什么覆盖C#中的静态方法

protected static new void WhyIsThisValidCode() { } 为什么允许覆盖静态方法? 除了bug之外什么也没有,它根本不会像你想象的那样起作用。 参加以下课程。 class BaseLogger { protected static string LogName { get { return null; } } public static void Log(string message) { Logger.Log(message, LogName); } } class SpecificLogger : BaseLogger { protected static string LogName { get { return “Specific”; } } } 这是和,代码 SpecificLogger.Log(“test”); 是的,但它不会通过查看代码来实现您的想法。 它使用LogName […]

如何在实际需要之前初始化C#静态类?

我有一个带静态构造函数的静态类,需要一些时间(10-15秒)来执行并完全初始化类。 为了提高性能,我决定将这个静态类显式初始化,而不是在第一次需要它时,以便在实际需要使用时准备好。 我的第一个想法是为类创建一个Initialize()方法,但由于我已经有了一个静态构造函数,这个方法除了是调用显式初始化类而不访问任何类的方法之外似乎不需要做任何其他事情。其他公共方法或财产。 拥有一种不直接做任何事情的方法对我来说似乎并不合适。 然后我想我可以将代码从静态构造函数移动到这个Initialize()方法中,但是我还希望在首次需要时初始化类并且没有显式调用Initialize()方法。 总而言之,我希望遵守以下标准: 我想允许显式初始化静态类(可能通过使用公共Initialize()方法)。 我不想在不需要它时访问类上的任何其他公共方法或属性,即使这会初始化静态类。 如果该类尚未显式初始化,我仍然希望在首次需要时初始化它(即访问其他公共方法或属性时,意图使用它们提供的function或数据)。 这是一个帮助类,使用Singleton设计模式对我的目的来说不是必需的。 对于用C#编写的静态类,遵循上述标准的正确方法是什么? 这也适用于其他编程语言(例如Java),但我个人对使用C#编写的解决方案感兴趣。

为什么c#编译器在具有动态参数的调用站点检查方法的“静态”?

为什么C#编译器不告诉我这段代码无效? class Program { static void Main(string[] args) { dynamic d = 1; MyMethod(d); } public void MyMethod(int i) { Console.WriteLine(“int”); } } 对MyMethod的调用在运行时失败,因为我试图从静态方法调用非静态方法。 这是非常合理的,但为什么编译器在编译时不认为这是一个错误? 以下内容无法编译 class Program { static void Main(string[] args) { dynamic d = 1; MyMethod(d); } } 所以尽管动态调度,编译器确实检查MyMethod存在。 为什么不validation“静态”?

静态构造函数和Singleton类

我有一个实现Singleton设计模式的对象缓存。 我对单例的方法总是在首次访问属性时延迟加载静态实例。 public static Widget { get { if(instance==null) instance = new Widget(); return instance; } } 但是,我知道这种方法不是线程安全的,并且实例检查为null会导致效率低下。 在实例化静态实例的类上实现静态构造函数是否明智? 据我所知,只要第一次静态属性访问发生,就会调用静态构造函数。 这是否有效,它是否会提供超过当前延迟加载方法的任何好处,或者更好地探索代理实现,还是使用锁来强制它是线程安全的? public static Widget { get { if(instance==null) { lock(padlock) { if(instance==null) instance = new Widget(); } } return instance; } } 我对静态构造函数没有很多经验,所以如果它是延迟加载属性的相同或更差的实现,不要想要实现这个想法。 干杯,加里

在C#中,静态构造函数是为每个对象初始化运行的,还是只运行一次?

在我的类我有一个字符串对象的静态字典,其中包含大量的项目(它从一个文件中读取并初始化它们)我写了一个静态构造函数,这需要几秒钟,但我想做一次为了更快,因为我在ASP.Net中这样做,我希望我的网站不要有这个开销,我该怎么办? 如果这个构造函数为每个对象运行,那么我正在考虑一些方法,但我想我必须在用户运行的网站的每个页面中运行此方法,所以我想再次它会是相同的,我是对的吗? 什么是初始化一大组变量的解决方案? 谢谢

静态变量初始化

今天我与同事讨论并得出以下几点。 如果一切正确或需要进行一些修改,请点亮一些光。 如果未在类中定义静态构造函数,则在使用静态字段之前对其进行初始化。 当在类中定义静态构造函数时,静态字段在其使用之前或作为(之前)实例创建的一部分初始化。 如果在静态方法中没有访问静态字段并且调用静态方法。 只有在该类中定义了静态构造函数时,才会初始化静态字段。 如果可能的话,应该避免在类中使用静态构造函数。