小编IAb*_*act的帖子

何时使用Expression

我想确定要使用什么......

我需要IEnumerable<TSource>将一个函数传递给将实体成员的值写入文件的函数.这是IEnumerable的样子:

var persons = new[] {
    new Person {
        RecordID = 0,
        PersonFName = "Joe",
        PersonMName = "",
        PersonLName = "Smith",
        PersonZip="75227"
    }, 
    new Person {
        RecordID = 1,
        PersonFName = "Mary",
        PersonMName = "Hada",
        PersonLName = "Lamb",
        PersonZip="75217"
    }};
Run Code Online (Sandbox Code Playgroud)

将IEnumerable传递给读取每个实体的函数以便读取每个字段值的最佳方法是什么?

我以为我会用以下东西:

void WriteData<TSource>(Expression<IEnumerable<Person>> expression)
{
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我无法找到解释如何确定何时应该使用Expression而不仅仅是传递IEnumerable的资源.然后,我如何创建反映的表达式persons

理想情况下,似乎我会像这样调用WriteData:

WriteData(persons); 
Run Code Online (Sandbox Code Playgroud)

我是否朝着正确的方向前进?

c# .net-4.0 expression-trees

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

如何在不需要实例化该类型的对象的情况下获取类型的属性名称?

我有一个要求,我需要一种"类型安全"的方式来访问属性名称,而不实际实例化一个对象来获取属性.举一个例子,考虑一个方法,该方法将IMyObject列表作为参数,并使用表示属性名称的字符串(IMyObject中存在的属性).

方法实现将获取列表并使用传递的属性名称访问列表中的所有对象...出于某种原因,我们将不再详述!

现在,我知道您可以使用实例化对象来执行此操作,例如...

Dim x as MyObject = nothing
Dim prop As PropertyInfo = PropHelper.GetProperty(Of MyObject)(Function() x.MyProperty)
Run Code Online (Sandbox Code Playgroud)

我的帮助方法使用反射来获取属性的名称作为字符串 - 有很多例子在网上飞来飞去!

但我不想创建这个毫无意义的对象,我只想做像MyObject.MyProperty这样的事情!Reflection允许您在不声明该类型的对象的情况下迭代类型属性和方法...但我想访问特定属性并检索其名称的字符串版本而不进行迭代,并且不声明该类型的对象!

这里的要点是虽然我试图将属性名称作为字符串...这是在运行时完成的...在编译时,我希望这是类型安全的,所以如果有人更改属性名称,编译将破裂.

任何人都可以帮忙完成这个任务!?!

vb.net reflection types properties

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

编译为机器代码的编译器是否需要在汇编中编写?

排除将一种高级语言转换为另一种语言的编译器,编译为机器代码的编译器是否需要用汇编编写?

compiler-construction programming-languages machine-code low-level

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

如何使用DayOfWeek枚举来标记流程周期?

在app.config中,我提供了一个循环字符串值:"Monday","Tuesday",......,"Daily".从那个值我想分配一个<Flags()>枚举.简单地使用DayOfWeek并不能让我将过程标记为日常例程.是否有一个可用的.Net类确实提供星期几作为标志?

与此同时,我设计了以下内容:

<Flags()> _
Public Enum enumExportCycle As Integer
    Monday = DayOfWeek.Monday
    Tuesday = DayOfWeek.Tuesday
    Wednesday = DayOfWeek.Wednesday + 1
    Thursday = DayOfWeek.Thursday + 4
    Friday = DayOfWeek.Friday + 11
    Saturday = DayOfWeek.Saturday + 26
    Sunday = DayOfWeek.Sunday + 64
    Daily = Monday Or Tuesday Or Wednesday Or Thursday Or Friday Or Saturday Or Sunday
End Enum
Run Code Online (Sandbox Code Playgroud)

感觉有点hackish,我正在寻找一个更好的方式.

vb.net enums dayofweek

0
推荐指数
1
解决办法
2070
查看次数

如何获取某些文件集的大小?

例如.我有文件夹"MyFolder"我希望获得文件名为" *D.*" 的所有文件的大小

有一个简单的方法来做到这一点?

(PS我知道整个文件夹,我可以使用TotalSize()来获取它的大小,但是我的约束怎么样?)

c# file-io .net-4.0

0
推荐指数
1
解决办法
111
查看次数

继承打印两次,但从而开始

嘿家伙我不知道当我从主要的代码启动我的控制台时,它打印项目两次不确定,因为我根本没有循环方法:

        FoodProducts FoodProd1 = new FoodProducts("FP001", "Meat", 15.99, 200, 100, "Australia");
        FoodProducts FoodProd2 = new FoodProducts("FP002", "Bread", 2.99, 150, 50, "Italy");

        FoodProd1.Print();
        FoodProd2.Print();

class FoodProducts : Products
{

    private string origin;

    public FoodProducts(string id, string name, double price, int soldCount, int stockCount, string origin)
        : base(id, name, price, soldCount, stockCount)
    {
        this.origin = origin;
        //Need to find out why this code prints both lines and not in single line and why it starts from Product 2 when it is printed …
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
124
查看次数

tkinter 网格和框架没有调整大小框架

class input_data(Tkinter.Tk):
    def __init__(self):
        Tkinter.Tk.__init__(self);
        self.resizable(width=False,height=False);
        self.geometry('500x500');
        t = ['frame','input_text'];
        for i in t:
            eval('self.'+i+'()');
def frame(self):
    self.f = Tkinter.Frame(self,width=200,height=200,bg='cyan');
    self.f.grid(row=0,column=0);

def input_text(self):
    self.e = Tkinter.Entry(self.f);
    self.e.grid(row=0,column=0);  

root = input_data();
root.mainloop();
Run Code Online (Sandbox Code Playgroud)

代码看起来不错,但框架不适合指示的dedida,但如果你这样做,请在下面的代码中

import Tkinter as tk

class SimpleApp(object):
    def __init__(self, master, **kwargs):
    title = kwargs.pop('title')
    frame = tk.Frame(master, borderwidth=5, bg = 'cyan', **kwargs)
    frame.grid()
    button = tk.Button(frame, text = title)
    button.grid(sticky = tk.SE)
    frame.rowconfigure('all', minsize = 200)
    frame.columnconfigure('all', minsize = 200)

def basic():
    root = tk.Tk()
    app = SimpleApp(root, title …
Run Code Online (Sandbox Code Playgroud)

python grid tkinter frame

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

如何使用字符串值正确查找(并最终更改)img src属性?

我有以下HTML:

<img id="unique.name.status" class="icon" src="OffStatus.png" alt="OFFLINE" />
Run Code Online (Sandbox Code Playgroud)

在某些时候客户端刷新,我可能需要更改图像srcalt使用id"unique.name.status".首先,我必须能够找到特定的图像,目前,我正在undefined使用以下代码获取值:

statusimageId = "#" + user_id + ".status";
alert(statusimageId); // confirmed valid: '#unique.name.status'

statusimageSource = $(statusimageId).attr("src");   // returns 'undefined'
alert(statusimageSource);
Run Code Online (Sandbox Code Playgroud)

注意:user_id是从JSON返回的值

html javascript jquery

0
推荐指数
1
解决办法
43
查看次数

从用户控件制作选项卡

我有问题.我遇到了很多错误,当我尝试从用户控件添加标签时,这让我很烦.这是代码

public Form1 f1 { get; private set; }

private void button1_Click(object sender, EventArgs e)
{
    TabPage tp = new TabPage { };
    tp.Text = "NewTab";
    tp.Controls.Add(new b());
    f1.tabControl1.TabPages.Add(tp);  //>>> errors here
}
Run Code Online (Sandbox Code Playgroud)

图片了解更多细节:代码没有显示错误

运行时错误

c# tabcontrol winforms

0
推荐指数
1
解决办法
90
查看次数

线程和套接字编程

我需要看一些使用套接字发送和接收消息的线程示例.我几乎是新手.我谷歌但是没有有用和简单的例子给初学者.你能帮我解决这个问题吗?

java eclipse multithreading

-2
推荐指数
1
解决办法
515
查看次数