相关疑难解决方法(0)

使用单一方法的类 - 最佳方法?

假设我有一个用于执行单个功能的类.执行该功能后,可以将其销毁.有没有理由更喜欢这些方法之一?

// Initialize arguments in constructor
MyClass myObject = new MyClass(arg1, arg2, arg3);
myObject.myMethod();

// Pass arguments to method
MyClass myObject = new MyClass();
myObject.myMethod(arg1, arg2, arg3);

// Pass arguments to static method
MyClass.myMethod(arg1, arg2, arg3);
Run Code Online (Sandbox Code Playgroud)

我故意对细节模糊不清,试图获得针对不同情况的指导方针.但我并没有考虑像Math.random()这样的简单库函数.我正在考虑更多执行某些特定复杂任务的类,但只需要一个(公共)方法来执行它.

c# java oop static-methods

165
推荐指数
6
解决办法
8万
查看次数

40
推荐指数
5
解决办法
3万
查看次数

是否所有不使用实例变量的方法都应标记为static

假设我有一个这样的类:

public class Car {

    private double distanceDriven;

    public void drive(double miles){
        distanceDriven += miles;
    }

    public void driveInCanada(double kilometer){
        distanceDriven += convertToMiles(kilometer);
    }

    private double convertToMiles(double km){
        return km*0.621371192;
    }   
}
Run Code Online (Sandbox Code Playgroud)

你可以看到convertToMiles:

  • 不使用任何实例变量
  • 只在课堂内使用

它应该被声明为静态吗?这根本不会改变函数的功能(见上文).我认为它可能会影响:

  • 可读性
  • 性能
  • 其他?

convertToMiles功能应该是这样的:

    private double convertToMiles(double km){
Run Code Online (Sandbox Code Playgroud)

要么

    private static double convertToMiles(double km){
Run Code Online (Sandbox Code Playgroud)

java static coding-style

28
推荐指数
2
解决办法
3130
查看次数

在C#中,标记类静态的目的是什么?

在C#中,标记类静态的目的是什么?

如果我有一个只有静态方法的类,我可以将该类标记为静态.为什么我要将类标记为静态?如果所有方法都是静态的,并且我打算永远不会添加非静态方法,我是否不想将类标记为静态?

我环顾四周,看到了一些类似的问题,但没有一个像这样.

.net c# class-design

24
推荐指数
4
解决办法
1815
查看次数

C#静态类为什么要用?

可能重复:
何时在C#中使用静态类

我将我的类设置为静态很多,但我不确定何时使用静态或不使用静态或不同之处.

有人可以解释一下吗?

c# static class

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

为什么使用静态类?

我对静态类和静态方法有疑问.从MSDN我理解"静态类和类成员用于创建可以在不创建类实例的情况下访问的数据和函数."

因此,如果我们不想将一个类与一个实例相关联,我们将把它作为静态.这是唯一的优势吗?任何人都可以指导我在静态类的实时场景.

类中的一些时间(不是静态的)我发现了静态方法.静态方法在实际中为实例提供了多少优势/性能优势.

c# static static-classes

8
推荐指数
2
解决办法
3517
查看次数

用于数据库访问的静态类的ASP.NET MVC指南

我在ASP.NET应用程序(使用Entity Framework)中使用MVC模式的方式如下:

1)我的Models文件夹包含所有EF实体以及我的ViewModel

2)我有一个Helpers文件夹,我存储为特定应用程序创建的类.

3)在我的Helpers文件夹中,我有一个名为的静态类MyHelper,其中包含使用EF访问数据库的方法.

namespace myApp.Helpers
{
    public static class MyHelper
    {
        public static async Task<ProductVM> GetProductAsync(int productId)
        {
            using (var context = new myEntities())
            {
                return await context.vwxProducts.Where(x => x.ProductId == productId).Select(x => new ProductVM { A = x.A, B = x.B }).FirstOrDefaultAsync();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

4)我的控制器然后在必要时调用这些函数:

namespace myApp.Controllers
{
    public class ProductController : Controller
    {

        [HttpGet]
        public async Task<ActionResult> Index(int productId)
        {
            var productVM = await MyHelper.GetProductAsync(productId);
            return …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework

8
推荐指数
1
解决办法
8141
查看次数

何时使用静态类和方法?

我有一个普遍的问题......我什么时候应该使用静态类或静态方法?我知道可以在不实例化的情况下调用静态方法的想法......静态类只应该用于静态方法吗?...但是它是否还存在任何性能问题...什么时候它们应该优先于实例方法和类?如果有人可以简单地提及我何时应该选择使用它们以及何时应该避免使用它们?

oop static-methods static-classes

7
推荐指数
1
解决办法
6088
查看次数

是否使用静态类

可能重复:
何时在C#中使用静态类

我将编写代码,其中我需要只保存方法的类.我认为让类静态是个好主意.一些高级程序员认为不要使用静态类.我没有找到任何理由不使用静态类的理由.有人可以用C#语言知道使用静态类有什么害处.静态类使用是否需要比创建类的对象更多的内存?我会清楚我的班级没有单一领域,因此也没有财产.

有关详细信息,我还将解释代码.

我们有产品需要对图表设置进行XML处理.我们从类库中的XML文件中读取对象,该类保存与图表相关的属性.现在我有两个Layers,第一个是产品第二类库和XML相关的操作.实际上,高级程序员需要独立的类来读写XML.我让这个类静态.

在另一种情况下,我有chartData类.在那个类我想要的方法,比如Line of Axis,图表系列是否有效.此外,图表的颜色是否以ARGB格式或纯色名称存储.他们不希望这些方法在同一个项目中.现在我可以使类静态或创建对象.

.net c# c#-4.0

7
推荐指数
2
解决办法
6583
查看次数

何时在实例类上使用Static类的指南?

可能重复:
何时在C#中使用静态类

有人可以提供指南,关于何时创建静态类的标准检查点以及何时创建实例类.

基本上我在编写代码时看到的很多次,使用静态类和方法可以完成同样的事情,并且我对许多事情感到困惑.

到目前为止,我知道以下检查点:

  1. 如果考虑对象只能在整个应用程序中存在一次,那么它将处于"静态"状态

  2. 如果方法不在其中使用任何字段变量,那么它可以是静态方法.

c# oop static instance

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