我正在尝试运行一个窗口,关闭它,然后运行第二个窗口,其方式类似于Windows窗体.
namespace WpfApplication1
{
public partial class App : Application
{
[STAThread]
public static void Main()
{
Application app = new Application();
//windowMain.Show();
app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
MainWindow windowMain = new MainWindow();
app.Run(windowMain);
Window1 window1 = new Window1();
window1.Show();
app.Run(window1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已将App.xaml属性中的Build Action从ApplicationDefinition设置为Page,但是当window1初始化时,程序会抛出异常.我究竟做错了什么?
编辑:我已按照第一个答案的建议修改了App.xaml中的xaml,并根据评论建议编辑了main.
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
ShutdownMode="OnExplicitShutdown">
<Application.Resources>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
但我仍然得到例外.
说我有以下内容:
public Class BooClass
{
public int field1;
public double field2;
public DateTime field3;
}
public List<BooClass> booList;
Run Code Online (Sandbox Code Playgroud)
那么例如如何使用booList.Find()在field3中获取具有最早时间的元素
编辑道歉,我打算公开所有字段以简化示例.我知道可以在linq中做到这一点,我想知道Find方法是否有简单的单行条件.
为什么无法打开泛型类型作为参数传递.我经常上课:
public class Example<T> where T: BaseClass
{
public int a {get; set;}
public List<T> mylist {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
让我们说BaseClass如下;
public BaseClass
{
public int num;
}
Run Code Online (Sandbox Code Playgroud)
然后我想要一种方法说:
public int MyArbitarySumMethod(Example example)//This won't compile Example not closed
{
int sum = 0;
foreach(BaseClass i in example.myList)//myList being infered as an IEnumerable
sum += i.num;
sum = sum * example.a;
return sum;
}
Run Code Online (Sandbox Code Playgroud)
然后我必须编写一个接口,只是为了将这一个类作为参数传递,如下所示:
public interface IExample
{
public int a {get; set;}
public IEnumerable<BaseClass> myIEnum {get;}
}
Run Code Online (Sandbox Code Playgroud)
然后必须将泛型类修改为:
public class …Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何替代Scala试图提供更强大的类型系统和语法.我知道Haskell之类的功能替代方案,但是有没有真正推动静态OO方面的事情,例如在Scala缺乏的领域,例如虚拟类,完全多重继承和更灵活的构造函数语法,静态合同检查,更强大的路径依赖,MyTypes,朋友修改器,头等类导入,或者可能是一些深奥的打字工具,我甚至没有想到/听说过.
OO和较小程度的静态这些天似乎并不流行.但是,让我感到震惊的是,现代计算机的强大功能使静态编译器的创建超越了前几十年编译器编写者的梦想.
我认为,因为我没有遇到过任何问题,所以我很可能不想在任何时间内删除生产代码.但即使他们仍然是非常多的学术语言,我仍然希望留意他们,也许还可以和他们一起玩.我特别想找到可能被称为Scala的左场替代品.因此,没有锡兰或科特林试图将简单优先于权力.这些天埃菲尔似乎没有去过任何地方.我遇到了gBeta和Ceasar但是如果有任何他们输给Scala的地方就无法解决问题.还有其他可能性吗?
如何在Scala中声明编译时常量?在C#中,如果你声明
const int myConst = 5 * 5;
Run Code Online (Sandbox Code Playgroud)
myConst以字面值25表示.是:
final val myConst = 5 * 5
Run Code Online (Sandbox Code Playgroud)
等价还是有其他机制/语法?
我想使用setComponentPopupMenu().但是Scala.Swing.Component似乎没有所有JComponent方法,尽管文档中引用了javax.swing.JComponent.所以我有点困惑.
在Scala中实现仿射变换的最佳方法是什么?标准库或Spire中似乎没有任何内容.AWT AffineTransformation类非常可变,我绝对不想改变Graphics2D类.编写自己的函数或者在返回值函数中包装Java类是否更有效,或者是否已经有一个合适的Scala库?
编辑:我不认为基本方程对代码来说太具挑战性.复杂性似乎是为90/180/270轮换添加特殊情况并处理int/double/float转换以获得全面的解决方案.
我经常根据需要生成一个集合来保存实例数据大小.在收集垃圾之前,消费者可能只迭代一次该集合.消费者不关心集合的顺序,不需要对它进行排序肯定不需要改变它或其任何元素.什么是Scala中最有效的类型安全集合?- 数组?
稍后编辑:我发现可能使用集合时可能存在很多情况.在可能的情况下使用套件或仅在真正需要设置功能时使用它们是否合适?
我可以在外部类中或在从外部类派生的类中扩展内部类/特征.我可以扩展外部类的特定实例的内部类,如下所示:
class Outer
{
class Inner{}
}
class OtherCl(val outer1: Outer)
{
class InnA extends outer1.Inner{}
}
Run Code Online (Sandbox Code Playgroud)
注意:即使这似乎编译得很好,产生了非常有趣的可能性:
trait OuterA
{ trait InnerA }
trait OuterB
{ trait InnerB }
class class2(val outerA1: OuterA, val outerB1: OuterB)
{ class Inner2 extends outerA1.InnerA with outerB1.InnerB }
Run Code Online (Sandbox Code Playgroud)
但这不会编译:
class OtherCl extends Outer#Inner
Run Code Online (Sandbox Code Playgroud)
据我所知,我正在尝试扩展一个参数化类,其中type参数是外部类的一个实例,所以有一些影响
class OtherCl[T where T is instance of Outer] extends T.Inner
Run Code Online (Sandbox Code Playgroud)
那么无论如何扩展一个内部类/特征,它在一个外部特征/类中而不引用外部特征/类?
我不想在没有外部类的实例的情况下实例化派生的内部类,只声明它的类型.
隐式转换似乎是Scala的一个主要且有争议的特性,而它们似乎在C#中的突出程度要小得多.它们在两种语言中有什么区别?有没有我在Scala中被迫使用implicits的地方,或者我总是可以选择是否希望转换是隐式的还是显式的,就像在C#中一样?通常在C#中,我喜欢明确地进行转换,以便维护程序员意图的类型检查,即使消费者是我自己.
我是否正确地说C#或Scala都不能隐式拆分或组合方法/函数参数?在def myMethod(v1:Int,v2:Int)中不接受Tuple2 [Int,Int]作为其参数列表,def yourMethod(v1:Tuple2 [Int,Int])将不接受两个整数作为其参数列表.据推测,语言设计者必须考虑隐式/显式参数分割/组合.当使用多个但相似的图形库的点结构时,我确实发现这个特性是可取的.