C# 静态类如何赋值,LINQ有关。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 静态类如何赋值,LINQ有关。相关的知识,希望对你有一定的参考价值。

原始类是这样写的:
public class test

public string ID get; set;
public string Num get; set;


赋值时使用的是枚举 IEnumerable 数据直接传递给2个参数
List<test> testdata = new List<test>();//首先实例化test类
testdata.add(new testID="数据",Num="数据") 遍历数据,并每行添加这样类型的数据。
所以在赋值以后,得到的数据是这样例子形式:
[0]:
ID="1"
Num="3"
[1]:...........
但这个数据类是非静态的,如果写成
public static class test

public string ID get; set;
public string Num get; set;

的时候就会说 List<test> testdata = new List<test>();错误: 静态类不能实例化
如果不实例化直接赋值,那该如何写赋值操作?
如果直接
test.ID ="数据"
test.Num ="数据"
来赋值的话,得到的不是我要的像上面类型的数据。

高手谁来帮帮我吧。。。。
用做静态类的原因是取出的数据是全局都要用的,如果我不用做全局变量,那我每使用一次数据就去要去SQL中取一次数据,一次10几万,程序运行时间过慢。。这就是要用全局变量的原因。。

额,还有这个是我临时写的
public static class test

public static string ID get; set;
public static string Num get; set;

这我也确实试过。。

静态类不能实例化.也不能有构造函数。而且成员分函数必须是静态的。静态类的调用方法如下:
在你的任意程序里,直接调用:
静态类不能实例化
test.ID
test.Num
按照你写的,new List<test>();这么声明是错误的。因为既然是静态类,test在第一次调用的时候已经生成了一个类test,这个类有2个静态变量,类型都是string。他们的地址都已经确定了。
如果你一定要写成静态的,可以这么写:
public static class test

public static List<string> ID = new List<string>();
public static List<string> Num = new List<string>();


调用的时候不用声明test类,直接使用类名调用,如下:
test.ID.add(数据);
test.Num.add(数据);

楼主可以试试,然后用foreach遍历test.ID和test.Num。

不知道为什么要写成静态类。一般来说,静态类都是有特殊用途的。按照你的要求,没必要写成静态类,因为没办法生成实例。
参考技术A 为什么test类一定要是静态的呢?这样一来不仅不能实例化,也不能往容器里面放啊……为什么给自己出这样的难题呢?

是有什么原因呢?

__________________
补充:

如果楼主是想把这10几万条数据缓存下来,而且是想通过静态类的方式来做的话,那应该是另外单独做一个静态类,比如叫做DataCache,它有一个List类型的静态成员变量(以及对应的属性)。初始化的时候,从数据库读取数据来把这个List类型的静态成员变量进行填充。而整个系统中就可以通过这个唯一DataCache静态类来获取缓存下来的那十几万个test对象了。

但是 test 这个类还是不能是静态的。楼主可以设想一下,既然有十几万条记录,每条记录都应该对应一个test的实例,也就是说会有十几万个test的实例对象。如果test是静态类,那如何能生出这十几万个实例出来呢?本回答被提问者采纳
参考技术B 静态类只能含有静态成员, 连构造函数都必须是静态构造函数.
你这个类没必要做成静态的, 也不应该是.
参考技术C public static class test

public string ID get; set;
public string Num get; set;


这个类编译能通过?
能问一下吗?因为我的编译器这样定义类就是错的,
到不了list哪

(51)C#里静态构造函数的两个作用

C#里静态构造函数的两个作用

静态构造函数主要有两个作用:

1)初始化一些所有类实例共享的状态。

2)创建单体类对象。

可以使用下面的例子来演示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp34

    class Animal
    
        // *静态构造函数只会在类第一次初始化时执行一次。
        // 
        // * 静态构造函数不能有任何访问控制符修饰
        // * 静态构造函数不能有任何参数输入
        static Animal()
        
            Console.WriteLine("Animal initialized");
        
        // 实例构造函数每次创建实例时执行
        public Animal()
        
            Console.WriteLine("Animal created");
        
        public static void Yawn()
        
            Cons

以上是关于C# 静态类如何赋值,LINQ有关。的主要内容,如果未能解决你的问题,请参考以下文章

(51)C#里静态构造函数的两个作用

(51)C#里静态构造函数的两个作用

如何使静态类中的所有方法在c#中的另一个静态类中可用

C#方法有关内容的总结--C#基础

如何强制继承类在 C# 中实现静态方法?

JAVA中静态变量如何动态赋值?