我的任务是将解决方案从VB转换为C#.有22个项目和数百个课程,所以我决定研究转换器.我最终选择了SharpDevelop,这是一个带有转换器的IDE.我在每个项目上运行它,并且有很多错误需要修复,但是我应该能够通过它们并希望能够解决它们.我遇到的主要问题是摘要日志.我有数百行各类阅读:
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
-- line 0 col 0: Case labels with binary operators are unsupported : Equality
Run Code Online (Sandbox Code Playgroud)
我已经看了这个,但我没有找到一个很好的解释,它的真正含义或如何纠正它.我发现的大多数是注释代码行,如下所示:
// ERROR: Case labels with binary operators are …Run Code Online (Sandbox Code Playgroud) Visual Studio和SharpDevelop都没有设置委托来以相同的方式处理事件.它们的设置方式略有不同.这使得很难在一个地方使用VS而在另一个地方使用#Develop(在同一个项目中).
例如,在VB中,Visual Studio执行以下操作:
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Run Code Online (Sandbox Code Playgroud)
而......
Friend WithEvents OK_Button As System.Windows.Forms.Button
Run Code Online (Sandbox Code Playgroud)
因此,声明控件,不仅具有不同的范围(这也可能是一个问题,但不是这篇文章的主题),但是有一个问题.然后,handle子句将事件处理程序分配给它.
在#Develop中,它是这样完成的......
Sub OK_ButtonClick(sender As Object, e As EventArgs)
End Sub
Run Code Online (Sandbox Code Playgroud)
和......
Private button1 As System.Windows.Forms.Button
Run Code Online (Sandbox Code Playgroud)
然后,在InitializeComponent方法中
AddHandler Me.button1.Click, AddressOf Me.OK_ButtonClick
Run Code Online (Sandbox Code Playgroud)
关于这一点最烦人的事情是,即使它以一种方式完成,另一种ide将重做它,具有重复声明,当然还有编译时错误.
有没有人知道解决这个问题的方法,某种方式来自定义默认处理程序?即使它只是某种方式可以关闭它们,所以它可以手动输入?
令人难以置信的令人敬畏的AvalonEdit WPF TextEditor控件似乎缺乏一个重要的功能,或者至少我无法弄明白.给定偏移量和长度,使用HighlightColor突出显示TextDocument中的该部分.简单吧?
显然不是.我有RTFM,关于"语法突出显示"的文档让我更加困惑.有人在SharpDevelop论坛上问了同样的问题,我恐怕无法理解Herr Grunwald的回答.
这是我的尝试,使用DocumentHighlighter类(当然它不起作用):
textEditor1.Text = "1234567890";
HighlightingColor c = new HighlightingColor() { FontWeight = FontWeights.ExtraBold };
DocumentHighlighter dh = new DocumentHighlighter(textEditor1.Document, new HighlightingRuleSet());
HighlightedLine hl = dh.HighlightLine(1);
hl.Sections.Add(new HighlightedSection() { Color = c, Offset = 1, Length = 3 });
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮忙!
我想创建一个软件,用户可以在几种语言之间进行选择.
作为一个开始,我想学习如何处理国际化,因为我以前从未这样做过.
作为IDE我使用SharpDevelop或#develop,但你会拼写它.我想使用C#和WPF,因为我现在也在学习XAML/WPF.
所以我在ShardDevelop中创建了一个新的WPF项目.在主窗口上,我创建了一个ComboBox和一个TextBlock.
ComboBox获得两个条目:"德语"和"英语".textBlock应该显示"Hallo Welt!" 或"Hello World!",具体取决于所选的语言.
现在是我陷入困境的部分.我想每种语言都是XML/XAML-Style(有道理)的单独文件.这些文件在哪里以及如何加载它们及其内容以便加载所选语言的文本?
我发现了几个例子,但都是一些关于创建资源的DLL,并使用一些奇怪的程序进行反编译它们放回一个CSV文件......我不明白,是不是有一个更简单的方法?
我采取了下一步.现在通过"{StaticResource Strings.MainForm.hwText}"加载TextBlock的Text.它现在看起来像这样:
<TextBlock Text="{StaticResource Strings.MainForm.hwText}" />
Run Code Online (Sandbox Code Playgroud)
我还为德语创建了一个ResourceDictionary,为英语创建了一个ResourceDictionary,它们都定义了我在TextBlock中使用的键.
在Application.Resources Part i中,默认情况下加载一个ResourceDictionary.
现在的问题是:如何在运行时"卸载"这个词典并将其替换为另一个词典?
当然我使用ComboBox的SelectionChange-Event,但我在那里做什么?
问题解决了!!感谢kmatyaszek
虽然我根据我的需要改变了事件处理程序的代码:
Uri baseUri = new Uri(AppDomain.CurrentDomain.BaseDirectory);
Uri uri = new Uri(baseUri,"Languages\\lang."+((sender as ComboBox).SelectedItem as ComboBoxItem).Tag.ToString()+".xaml");
if(File.Exists(uri.LocalPath) || File.Exists((uri = new Uri(baseUri,"Languages\\lang.de-DE.xaml")).LocalPath)){
ResourceDictionary dict = new ResourceDictionary();
dict.Source = uri;
this.Resources.MergedDictionaries.Add(dict);
}
Run Code Online (Sandbox Code Playgroud) 我要在我的Linux机器上尝试C#.您是推荐SharpDevelop作为我的IDE还是仅仅是Notepad +编译器?
我在我的机器上(在辅助驱动器上)安装了f#的副本,当我尝试启动F#交互式提示时,它说它找不到fsi.exe.我需要在某处或某些地方复制某些文件吗?
我试图在ICSharpCode TextEditor中选择文本行.以及使文本框转到特定行.该应用程序是在Windows 2010中使用C#构建的Windows窗体应用程序.
我使用文本编辑器的原因是代码突出显示和行号等.
我真的没有太多使用Windows窗体的经验,所以任何帮助将不胜感激.我的守则如下:
textEditorControl.Text = "long file string with line breaks";
textEditorControl.VRulerRow = 10; //Example row selection
Run Code Online (Sandbox Code Playgroud) 所以我正在学习VB.NET,我有点这个新手问题,我无法在网络上的任何地方找到答案.

这个程序应该是反制的.每次单击该按钮时,标签都应该更新.这是每次单击按钮时我的MouseClick Listener代码:
Sub Button2MouseClick(sender As Object, e As MouseEventArgs)
Dim starter As String
Dim int1 As Integer
Dim int2 As Integer
Dim ender As String
starter =label2.Text
int1 = CInt(starter)
int2 = (int1 + 1)
ender = CStr(int2)
label2.Text = ender
End Sub
Run Code Online (Sandbox Code Playgroud)
该计划有效,但这是问题所在.它只能工作到9号.一旦它应该显示"10"只是显示1,当它应该显示11,12,13,14,15,16,17,18和19时,它只显示"1"(第一个数字).
我在sharpdevelop中创建了一个asp.net项目.我想开始看看如何调试,我已经被卡住了.我如何运行ASP.NET项目?它只是说它配置为DLL.我如何将其作为网页启动.我看到"在网址中启动浏览器",但我如何在网页中获取代码或者我用它来做什么?也可以像我在MSVS中那样调试吗?

在SharpDevelop中编译Windows应用程序时如何写入控制台?我想看看在某种方法中生成哪些随机数用于调试目的.