标签: static-methods

将方法转换为静态方法时的内存使用

我开始使用ReSharper的,它表明,当一个方法可以进行静态的.将几百种方法转换为静态方法会在很长一段时间内增加内存占用量吗?

c# static-methods garbage-collection

10
推荐指数
2
解决办法
3534
查看次数

返回内部类的静态方法

我真的不明白为什么下面的getMyClass2方法不能是静态的,为什么它不是有效的Java代码?

public class MyClass
{
    private class MyClass2
    {
        public String s1 = "";
        public String s2 = "";
    }

    private MyClass2 myClass2;

    private static MyClass2 getMyClass2()
    {
        MyClass2 myClass2 = new MyClass2();
        return myClass2;
    }

    public MyClass()
    {
        myClass2 = getMyClass2();
    }
}
Run Code Online (Sandbox Code Playgroud)

java static-methods inner-classes

10
推荐指数
1
解决办法
4316
查看次数

静态方法中的继承

为什么以下代码打印"Main"?

public class Main
{
    public static void method()
    {
        System.out.println("Main");
    }

    public static void main(String[] args)
    {
        Main m = new SubMain();
        m.method();
    }
}

class SubMain extends Main
{
    public static void method()
    {
        System.out.println("SubMain");
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行时,m指向一个实例Submain,因此它应该在概念上打印"SubMain".

java inheritance static-methods

10
推荐指数
2
解决办法
1万
查看次数

Python中的静态和实例方法

我可以将Python方法同时定义为静态和实例吗?就像是:

class C(object):
    @staticmethod
    def a(self, arg1):
        if self:
            blah
        blah
Run Code Online (Sandbox Code Playgroud)

所以我可以用它们来调用它:

C.a(arg1)
C().a(arg1)
Run Code Online (Sandbox Code Playgroud)

目的是能够运行两组逻辑.如果作为实例方法访问,它将使用实例变量并执行操作.如果作为静态方法访问,它将不会.

python static-methods descriptor instance-methods

10
推荐指数
1
解决办法
4423
查看次数

ASP.NET静态类和asp.net会话

是否有人能够解释或指向解释静态类和方法的范围如何与ASP.NET用户会话的范围交互的文章.

以下是解释我问题的更具体情况:

  1. 用户A登录到asp.net网站.
  2. 在做某事时,用户A使用静态方法初始化某些数据.
  3. 用户B登录到同一个asp.net网站.
  4. 用户B命中相同的静态方法.

一旦用户B命中数据,数据是否已经初始化?

如果用户A的asp.net会话在用户B访问网站之前到期,该怎么办?

asp.net static-methods static-classes

10
推荐指数
2
解决办法
6185
查看次数

无法在静态方法内调用Response.Redirect

您好我正在尝试使用aspx页面中的ajax运行webmethod.基本上我想用一个查询字符串重定向到另一个aspx页面,但我想这样做<a href>,因为它是jquery菜单的一部分.

根据我的学习,我只能使用ajax来调用静态webmethods,但我可以从我的静态函数中重定向.

visual studio用红线标记它:"非静态字段方法或属性System.Web.HttpResponse.Redirect(string)需要一个对象引用"

这是ajax调用:

function redirect_to_profile() {
    $.ajax({
        type: "POST",
        url: "personal_profile.aspx.cs.aspx/redirect_to_profile",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (res) {
           alert("success");
        },
        error: function (res, msg, code) {
            // log the error to the console
        } //error
    });
}
Run Code Online (Sandbox Code Playgroud)

这是一个href:

<a  onclick="redirect_to_profile()">Personal Profile</a>
Run Code Online (Sandbox Code Playgroud)

这是personal_profile.aspx中的webmethod

[WebMethod]
public static void redirect_to_profile()
{

    dbservices db=new dbservices();
    string user = HttpContext.Current.User.Identity.Name;
    string id = db.return_id_by_user(user);

    HttpResponse.Redirect("personal_profile.aspx?id="+id);
}
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net ajax static-methods

10
推荐指数
1
解决办法
2万
查看次数

Shared和Static有什么区别?

我是一名C#开发人员,但我今天继承了一个传统的VB应用程序,其中包含0个文档.我已经开始阅读代码并每5秒引用一次VB关键字列表.

我想我不明白之间的区别SharedStatic.

阅读这篇文章:https://stackoverflow.com/a/1980293/1189566

它指出:

VB没有static,它有shared

但是你可以在上面链接的关键字列表中看到,Static是一个保留关键字.它看起来Static只适用于字段,Shared可以在方法字段上?

我想最终我只是希望有人可以扩展我链接的答案,为VB菜鸟提供更多细节.

例如,说我有这个

public class MyClass
    Dim myVar as Integer = 1

    public shared sub UpdateMyVar()
        myVar = 2
    end sub
end class

public class MyOtherClass
    Dim cOne = New MyClass()
    Dim cTwo = New MyClass()

    cOne.UpdateMyVar()
    txtMyTextBox.Text = cTwo.myVar.ToString()
end class
Run Code Online (Sandbox Code Playgroud)

请原谅任何语法问题.假设此代码编译.我已经开始在一个半小时前开始浏览代码了.

cTwo.myVar12?我猜是2因为Shared似乎影响了一个类的所有实例?这似乎非常危险.

c# vb.net static static-methods shared

10
推荐指数
1
解决办法
1万
查看次数

包含对象实例的静态方法,是不是错了?

我正在使用字符串类的扩展方法.在该扩展方法中,我创建了一个StringBuilder实例.

这是代码:

    public static string GetPlainTextFromHtml(this string htmlString)
    {
        StringBuilder sb = new StringBuilder();
        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(htmlString);

        foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//text()"))
        {
            string text = node.InnerText;
            if (!string.IsNullOrEmpty(text))
                sb.Append(text.Trim());
        }

        return sb.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

它有效但我关心内存管理.静态方法没有实例化,所以如果我在静态方法中实例化一个对象会发生什么.假设我将此静态方法称为100次,内存中是否有100个StringBuilder实例副本?

它会导致内存泄漏吗?当静态方法执行终止时,垃圾收集器是否处置对象实例?

c# static-methods garbage-collection

10
推荐指数
3
解决办法
5987
查看次数

静态函数是否等效于C#中的静态Func成员?

看起来静态方法静态Func字段相同.我错过了什么,或者它们本质上是可以互换的(相同的足迹等)?

静态属性最终与另外两个示例相同,除了它包括"get"访问器的(最小)开销.

也许有点毫无意义,毫无顾忌地要问......但我喜欢理解"幕后"发生了什么,即使它并不是立即相关的.

可以肯定的是:我不打算将所有静态方法切换为lambda表达式(并让我的同事疯狂).但是,可能存在一些合理的情况,其中静态变量比编写方法更有意义.或许相反:说服某人使用静态方法而不是lambda表达式来使代码更具可读性或其他

另外,我很好奇是否有更好的方法来调查这些问题

我的考试

我将这个简单的例子放入LINQPad(v4.57.02,"使用/ optimize +编译"):

void Main()
{
    var hold = "this is the thing. it returns true";
    var held = "this is the one that returns false";

    Console.WriteLine(One.Check(hold));
    Console.WriteLine(One.Check(held));

    Console.WriteLine(Two.Check(hold));
    Console.WriteLine(Two.Check(held));
}

// Define other methods and classes here
class One
{
    public static bool Check(string value)
    {
        return value != null && value.Contains('.');
    }
}

class Two
{
    public static Func<string, bool> Check = v => v != …
Run Code Online (Sandbox Code Playgroud)

c# methods lambda static static-methods

10
推荐指数
1
解决办法
1066
查看次数

键入返回类实例的静态方法

如何键入返回实例对象的静态方法?

import typing

class foo(object):

  @staticmethod
  def getOne() -> foo:
    return FooRegister().get()
Run Code Online (Sandbox Code Playgroud)

FooRegister包含 的所有实例foo。但是,如果我按所示输入它,python 会抱怨,因为foo尚未定义。

键入此内容的正确方法是什么?

python static-methods types type-hinting

10
推荐指数
0
解决办法
1377
查看次数