小编Sye*_*yed的帖子

是.net系统范围内的垃圾收集器还是应用程序范围内的垃圾收集器?

在与我的同事讨论期间,我怀疑.net中的垃圾收集器是在系统范围内还是在应用程序范围内工作.

意味着每个具有自己的GC的应用程序是否会影响系统性能?

我对此有点困惑.

.net c# garbage-collection

12
推荐指数
3
解决办法
2842
查看次数

如何在C#中使用XPath检索最后一个节点?

我有以下部分xml文件.

<UN N="@U1">
    <DT N="24/06/2011">
        <PN N="@P1">
            <TM N="02:24:11">
                <JB T="GP">
                    <A>notepad</A>
                    <Z>Notepad</Z>
                    <N>Untitled - Notepad</N>
                    <J>1;0;1;1;0;0</J>
                    <C>0.00500;0.09500;0.03500</C>
                    <S>1;0;1;1</S>
                    <P>0;0</P>
                    <F>0</F>
                </JB>
            </TM>
        </PN>
    </DT>

    <DT N="23/06/2011">
        <PN N="@P1">
            <TM N="02:38:49">
                <JB T="PAGP">
                    <A>notepad</A>
                    <Z>Notepad</Z>
                    <N>Untitled - Notepad</N>
                    <J>1;1;1;1;0;1</J>
                    <C>0.00500;0.09500;0.03500</C>
                    <S>1;1;0;0</S>
                    <P>1;1</P>
                    <F>0</F>
                </JB>
            </TM>               
        </PN>
    </DT>

    .....
    .....

</UN>
Run Code Online (Sandbox Code Playgroud)

我需要得到PN N = @ P1的最后一个节点.

样本查询将不胜感激.

提前致谢.

c# xml xpath

6
推荐指数
2
解决办法
5957
查看次数

如何分配INotifyPropertyChanged的PropertyChanged事件?

我有以下代码,它工作正常.

public partial class MainWindow : Window
{
    Person person;

    public MainWindow()
    {
        InitializeComponent();

        person = new Person { Name = "ABC" };

        this.DataContext = person;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        person.Name = "XYZ";
    }
}

class Person: INotifyPropertyChanged
{
    string name;

    public string Name
    { 
        get
        {
            return name;
        } 
        set
        {
            name = value;
            OnPropertyChanged("Name");
        } 
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string strPropertyName)
    {
        if(null != PropertyChanged)
        {
            PropertyChanged(this, 
                            new PropertyChangedEventArgs(strPropertyName));
        } …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf interface inotifypropertychanged

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

何时在WPF中使用TemplateBinding和TemplatedParent

我对TemplateBinding和TemplatedParent感到困惑.我已经通过这个链接 WPF TemplateBinding vs RelativeSource TemplatedParent

但我怀疑何时使用TemplateBinding和TemplatedParent?

提前致谢.

wpf datatemplate controltemplate

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

即使我们没有在 WPF 中按下“Alt”键,访问键也被选中

我有带有工具栏的 WPF 应用程序。在工具栏中,我有一些用户控件作为工具。

我已经为每个控件设置了访问密钥,它工作正常。

问题是:如果我点击一个用户控件(它由按钮和标签组成,我已经为按钮设置了访问键),给定的任务就完成了,但是当我按下任何访问键而不按“Alt”键时,它就会得到被选中。

有任何想法吗?

wpf wpf-controls access-keys

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

垂直滚动条包括WPF中ListView的标题

我有一个列表视图绑定到源.它工作正常.我已经设置了ScrollViewer.VerticalScrollBarVisibility ="Auto",因此如果没有空间来显示项目,它应该显示滚动条.

到目前为止它工作正常.它显示垂直滚动条,但它也包括GridViewColoumn的标题.看起来很奇怪.

那么如何只显示内容的垂直滚动条,而不是标题?

任何想法都会有所帮助.

wpf listview

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

运行时如何知道哪个类包含C#应用程序中的Main方法?

我知道对于C#中的Console/Windows应用程序,"Main"方法是运行应用程序的入口点.

如果我们的应用程序中有数百个类,运行时将如何检测哪个类包含运行应用程序的"Main"方法?

c# program-entry-point

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

当我给MyObject obj = new MyObject()时发生了什么

MyObject obj = new MyObject();
Run Code Online (Sandbox Code Playgroud)

我知道'new'关键字将调用构造函数并初始化托管堆中的对象.

我的问题是CLR如何做到以下.

  1. 如何通过CLR执行上述行?
  2. 如何通过CLR为对象分配记忆?
  3. CLR如何确定对象的大小?
  4. 如果没有空间为堆中的对象分配内存,CLR将如何知道它?

.net c# clr garbage-collection

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

哪个是性能最佳的:带XPath的XPathNavigator vs带有查询的Linq到Xml?

我有一个应用程序,我使用XPathNavigator迭代节点.它工作正常.

但我想知道如果我使用LINQ to Xml ....

  1. 我会得到什么好处(性能,可维护性)?

  2. 有了XPath,LINQ到Xml的性能如何?

我正在使用C#.net,VS 2010,我的.xml是中等大小.

c# xmldocument .net-4.0 linq-to-xml xpathnavigator

4
推荐指数
2
解决办法
6246
查看次数

是不是破坏了c#界面的设计原则?

当我用谷歌搜索有关界面的相关主题时,我从MSDN网站上找到了这个:

例如,接口可能声明具有get访问器的属性.实现接口的类可以使用get和set访问器声明相同的属性. 来自MSDN

现在我有一个疑问.当我们特别提到该属性应该只读时(在接口中只有'get'访问者)为什么它也允许实现'set'访问器?

c# interface

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

调用Dispose方法会清除并压缩.Net中的内存吗?

我对.Net中的Dispose和Finalize方法有如下想法。如果我错了,请纠正我。

Dispose:实现IDisposable接口,并在Dispose方法中删除未使用/不受管理的代码。如果开发人员要立即删除,则开发人员需要手动调用它,否则GC将在调用资源时对其进行处置。

Finalize:GC调用时将释放未使用的托管代码,如果实现了IDisposable,则将调用Dispose方法释放非托管资源(通常)。

问题是:当我们使用Dispose方法处置资源时,内存将立即释放并压缩(就像GC一样)吗?

.net garbage-collection idisposable finalizer

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

可以收集枚举变量垃圾吗?

通常,所有引用类型在没有引用时都是垃圾回收.枚举变量怎么样?它是否会被垃圾收集,即使它超出范围(意味着它没有被引用更多)?

c# enums garbage-collection

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