小编red*_*man的帖子

VS2008 C#编译器错误:语言不支持"'.''

我从VS2008中的C#编译器收到此错误.谷歌搜索它没有任何用处.我以前从未见过这个错误.任何人都可以对此有所了解吗?

有问题的代码行是我定义的类的实例化:

Frame frame = new Frame( // various arguments...
Run Code Online (Sandbox Code Playgroud)

是的,构造函数存在.如果没有,那将是一个完全不同的错误.没有其他编译错误.这是项目中实例化此类的唯一点.在这一点上,我比任何事物都更好奇.

(编辑) 通过请求,类构造函数定义:

这是我打电话的那个:

public Frame(int startTime, int length, byte commandId)
Run Code Online (Sandbox Code Playgroud)

另一个将对象作为参数.该对象包含其他构造函数提供的数据:

public Frame(Command command)
Run Code Online (Sandbox Code Playgroud)

引用的Command类在引用的单独程序集中定义,并且编译时没有错误.

c# visual-studio-2008

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

双重调度和替代方案

我试图找到一种更好的方法来处理一些不断增长的if构造来处理不同类型的类.这些类最终是包含不同值类型(int,DateTime等)的包装器,带有一些额外的状态信息.因此,这些类之间的主要区别在于它们包含的数据类型.虽然它们实现了通用接口,但它们也需要保存在同类集合中,因此它们还实现了非通用接口.类实例根据它们所代表的数据类型进行处理,并且它们的传播在此基础上继续或不继续.

虽然这不一定是.NET或C#问题,但我的代码是在C#中.

示例类:

interface ITimedValue {
 TimeSpan TimeStamp { get; }
}

interface ITimedValue<T> : ITimedValue {
 T Value { get; }
}

class NumericValue : ITimedValue<float> {
 public TimeSpan TimeStamp { get; private set; }
 public float Value { get; private set; }
}

class DateTimeValue : ITimedValue<DateTime> {
 public TimeSpan TimeStamp { get; private set; }
 public DateTime Value { get; private set; }
}

class NumericEvaluator {
 public void Evaluate(IEnumerable<ITimedValue> values) ...
}
Run Code Online (Sandbox Code Playgroud)

我提出了两个选择:

双重发货 …

.net c# double-dispatch

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

Remoting和丢失频道接收器

我遇到了一个远程异常:

"此远程处理代理没有通道接收器,这意味着服务器没有正在侦听的注册服务器通道,或者此应用程序没有合适的客户端通道与服务器通信."

我找到的博客文章最好地解释了原因:

第二种情况更加模糊.这发生在客户端调用服务器,服务器返回对象引用,然后客户端对服务器上引用的对象进行调用的情况.如果引用的对象位于服务器上的辅助AppDomain中,则可能抛出上述异常.如果出现问题,那是因为频道注册仅适用于调用RegisterChannel且未在辅助AppDomain中注册的频道的AppDomain.返回到客户端的对象引用指向辅助AppDomain中的对象,而不是指向主AppDomain中的代理,因此客户端和辅助AppDomain之间没有通道,调用可以通过该通道.解决方案:在引用对象所在的辅助AppDomain中注册通道.

这确实适合我的场景,因为我有一个服务将插件加载到单独的appdomains中.对象实例(在所有程序集引用的程序集中定义的接口的实现)在辅助应用程序域中创建并由服务引用(跨应用程序域,因此服务具有代理引用).然后,该服务将这些代理引用返回给应用程序.应用程序和服务之间存在已注册的通道,但插件和应用程序之间没有任何通道.

我认为代理就足以跨越appdomain边界.我真的必须在插件和应用程序之间创建通道吗?这似乎不对,所以我必须遗漏一些东西.

.net remoting appdomain

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

检测透明代理与实际对象引用?

给定一个对象引用,是否可以以编程方式确定对象是在当前appdomain中创建的,还是代理另一个appdomain中的对象?

.net c# remoting

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

XNA计时如何工作?

XNA如何保持一致且精确的60 FPS帧速率?此外,如何在不将CPU固定在100%的情况下保持如此精确的时序?

c# xna

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

属性的不雅/不当使用?

我有一个类,我用它作为对象的描述符.在该描述符中,有几个Type类的引用要针对涉及该对象的不同操作进行实例化.我正在考虑将这些引用拉出来并用描述符类中的属性替换它们.

由此:

class MyDescriptor : BaseDescriptor {
    public Type Op1Type { get; }
    public Type Op2Type { get; }
}
Run Code Online (Sandbox Code Playgroud)

对此:

[Op1(typeof(foo))]
[Op2(typeof(bar))]
class MyDescriptor : BaseDescriptor {
}
Run Code Online (Sandbox Code Playgroud)

我很少使用属性.这会被认为是对他们的不当使用吗?

c# attributes

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

使用Reflection.Emit从另一个对象获取属性值

这是我第一次尝试使用Reflection.Emit.我正在为提供的对象动态构建代理.代理将任何公共属性访问传递到提供的对象.我收到的错误是:

对象'ProxyObject'上的属性访问器'AccessorName'引发了以下异常:尝试通过方法'ProxyObject.get_AccessorName()'访问方法'NS.CoreObject.get_AccessorName()失败.

从我可以假设和收集,这将是由于自动生成的属性getter方法是私有和隐藏.但是我如何解决这个问题MethodBuilder呢?

根据Create DynamicMethod的帖子为属性赋值?,你可以通过声明方法与目标模块"关联"来使用DynamicMethod,但我需要构建一个完整的类.是否有通过Reflection.Emit可以实现的等效"关联"?

这是我正在尝试执行的基本操作,因此我确信它是直接且简单的,我不知道.

.net reflection.emit

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

.NET事件,线程和消息

我知道事件处理程序在调用该事件的任何线程上执行.我进一步理解只需要从创建控件的线程更新表单控件.我假设UI线程是为此问题创建表单的线程.

如果事件是发布消息的结果,例如绘制消息,那么处理程序是否与原始线程分离?如果这是真的,那么任何线程都可以调用失效操作,并且结果绘制将始终出现在UI线程上,因为它是处理表单消息的那个.

这是它在凌晨2点左右在我脑海中映射出来的方式,在我旁边有一个长长的空小吃碗.请澄清并纠正,以便我能够正确理解工作中的机制.

.net events multithreading

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

想要在不使用.NET安装数据库引擎的情况下使用数据库

我正在为应用程序添加一个小的增强功能.为用户提供过滤和排序的能力将是很好的,而无需编写已经在数据库引擎中实现的大量代码.但是,我无法为这一小部分功能安装完整的数据库环境.

我确实有一个针对CSV文件使用Jet引擎的实现.这为我提供了所需的查询功能.但是,(Jet引擎)在Vista 64上不起作用.我已经读过有一些解决方法,但是实现变通方法会增加你不那么便携的可能性,我想避免这种情况.

如果我想要数据库引擎的完整查询功能,即使我查询CSV文件,我是否仍然坚持在每个用户的机器上安装它?该应用程序目前是xcopyable,并且在删除后不留下足迹,我想保持这种方式.

在我写这篇文章时,我想到了XML文件和XPath,但我不认为这将是解决这个问题的最优雅的解决方案.XPath很慢,文件会很大,我想为我处理多个并发.我这么问.

.net database

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

多线程同步的正确模式?(C#)

我有两个线程引用相同的变量 - UI线程和计时器线程.因此,我在两个线程的锁定语句中包装了对它的访问.定时器线程的访问具有优先级 - 如果它使用变量并且UI线程也想要访问,我希望UI线程的操作完成,但仅在定时器线程的操作完成之后.

但是,计时器线程可以委托回UI线程,因此UI线程需要自由处理.为了适应这种情况,我让UI线程启动第三个线程来处理它的操作,以便它(第三个线程)可以等待定时器操作完成并且UI线程可用.锁定发生在第三个线程中.

我应该使用哪种正确的模式进行这种同步?

c# multithreading synchronization

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

WPF:隐藏的父母和可见的孩子

截至昨晚,我决定开始学习WPF,并阅读了大量的在线教程和书籍.这是一个巨大的转变.

令我着迷的一个特性是隐式属性值继承.我知道在WinForms世界中,如果控件不可见,则任何子控件都不可见.正如预期的那样,在WPF世界中似乎也是如此.我想知道如果显式设置子控件的Visibility属性将允许一个不可见的父和可见子,但它没有.

这是WPF中可能实现的吗?你有一个隐藏着可见孩子的容器控件吗?这更像是一种好奇心而非任何事情.我仍然试图把我的一些东西包裹在我正在阅读的内容中.

wpf

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

如何在WPF自定义控件中填充集合控件?

我正在学习在WPF中创建自定义控件的细节.到目前为止我理解的概念:

  1. 代码定义了控件的行为.
  2. 模板定义了控件的外观和视觉方面.
  3. 您可以将模板的元素绑定到基础控件对象的属性.

如果模板有多个集合控件,例如StackPanels,如何绑定它们以便它们由底层集合填充?我的第一个倾向是利用DataContext每一个StackPanel,但我无法使它工作.我觉得我错过了一个可以解决这个问题的关键概念.

wpf binding wpf-controls

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