是否有一个以我可以依赖的方式显示统计数据的地方?例如谷歌/微软主页的屏幕尺寸统计数据?一个国际统计组织,检查多个网站,以提出更准确的数字?
我一直对Java和C#如何处理命名空间的概念感到困惑.
首先,一些编程语言中命名空间污染的例子:
using namespace std 对于C++.
业内人士对此表示不满,但在开始编程时,初学者仍然被教导要这样做.这是一个关于处理全局命名空间的建议的问题
import math.* 在Python中
在使用Python类时,我被告知不建议这样做,因为它污染了命名空间,并且首先允许访问数学库中的所有方法,Math.functionname但在编写具有重复名称的方法时可能会导致冲突.它显然导致了解释器的更多工作,因为它导入了所有函数,甚至那些未使用的函数.
问题:
在C#和Java中是否存在"命名空间污染"(即导入大量可能在编写方法时引发冲突的方法)(它们在很多方面类似)?为什么不?
当然,相关问题过于相似而无法提出另一个问题:
- 这是因为我们可能需要明确的@Override事情或某种预防措施?
- 它存在,但它不是一个东西,因为它不会像'使用命名空间std'那样造成太大的破坏,而且我不知道它对于学术课程中的软件开发是否相对较新?
例
我发现自己using在C#中有很多库,以避免为变量重命名命名空间,比如XElement
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//the ones above are auto-generated by Visual Studio, too
using System.Xml.Linq;
Run Code Online (Sandbox Code Playgroud)
我会避免System.Xml.Linq.XElement每次创建XElement时都要做.就像我们std::cout在C++中总是要做的一样
或者在我常见的Java中:import java.util.linkedlist甚至import java.util.*
如果我的课程在别处使用,这些会不会导致命名空间污染?或者是因为它们只会"污染"特定的类范围而不是其他可能导入或继承我的类的类?
我试着寻找答案,但找不到一个,但我可能会错误地搜索搜索.
编辑4/20/2015:
正如@RealSkeptic所提到的,事实证明也不鼓励Java通配符导入.资源
除了下面接受的答案和答案之外,Java和C#中的导入本身也包含在内,因此即使有人使用通配符类型的导入将未使用的方法名称添加到命名空间,它也不会影响其他类.在类级别上,如果名称中发生冲突,Java和C#编译器将引发错误,引用模糊的导入,并且在问题解决之前无法进一步编译(例如通过重命名函数).
我有一个包含40列和许多记录的DataFrame df.
DF:
User_id | Col1 | Col2 | Col3 | Col4 | Col5 | Col6 | Col7 |...| Col39
Run Code Online (Sandbox Code Playgroud)
对于除user_id列之外的每个列,我想检查异常值并删除孔记录,如果出现异常值.
对于每行的异常值检测,我决定简单地使用第5和第95百分位数(我知道它不是最好的统计方法):
编码我到目前为止:
P = np.percentile(df.Col1, [5, 95])
new_df = df[(df.Col1 > P[0]) & (df.Col1 < P[1])]
Run Code Online (Sandbox Code Playgroud)
问题:如何在不执行此操作的情况下将此方法应用于所有列(user_id除外)?我的目标是获取没有具有异常值的记录的数据帧.
谢谢!
我在多个目录中有很多Visual Studio项目解决方案(所有扩展名都是.sln),我想编写一个简单的批处理脚本,它将自动构建批处理文件中列出的所有解决方案.
我可以通过启动Visual Studio Command Prompt(这只是一个执行了以下命令的命令行实例)来手动构建解决方案
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
之后我通过调用以下方式构建项目:
devenv "path\to\solutionFile\projectSolution1.sln" /build Debug
这将构建项目(假设项目没有错误),我为我想要构建的每个项目进行冲洗和重复.
但是当我在一个名为的批处理文件中有以下内容时build.bat:
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
echo "Starting Build for all Projects with proposed changes"
echo .
devenv "path\to\solutionFile\projectSolution2.sln" /build Debug
devenv "another\path\to\solutionFile\projectSolution3.sln" /build Debug
devenv "yet\another\path\to\solutionFile\projectSolution4.sln" /build Debug
echo "All builds completed."
pause
Run Code Online (Sandbox Code Playgroud)
批处理脚本只执行第一行,并等到我输入exit其他行之前输入.基于我对批处理文件和所有StackOverflow问题所做的研究,我对此的理解是,cmd实际上调用了自己的另一个实例,vcvarsall.bat用于设置构建环境.
这不起作用,因为键入exit该devenv设置的实例并且之后的命令无法执行,因为devenv它不是可识别的命令(因为导出的路径将不再存在)
简而言之 …
我已经在 SO 上潜伏了很长时间,直到最近才决定建立一个帐户。我花了很多时间试图解决这个我一直没有询问的问题,但我就在这里。
我正在努力实现的目标:
我有一个字符串列表,例如:Mango、Banana、Melon(我们称之为水果),我想将其显示为 XAML (WPF) 中的表格,其中它在左侧和右侧显示为行值将是组合框,允许用户选择一个值。我目前陷入了这个问题的显示部分。我决定使用 DataGrid 来显示列表,后面的代码将执行数据绑定。
这是它的 XAML 部分:
<DataGrid x:Name="FruitDataGrid" Height="265" VerticalAlignment="Center" Margin="-7,8,-2,-6" HorizontalAlignment="Left" Width="1188" AutoGenerateColumns="False">
<!-- If AutoGenerateColumns was true only the length is displayed.-->
<DataGrid.Columns>
<DataGridTextColumn x:Name="fruitsDisplay" Header="Fruits" MinWidth="450" IsReadOnly="True" />
<DataGridComboBoxColumn Header="Number of Boxes" MinWidth ="200" CanUserResize="True" Width="*"></DataGridComboBoxColumn>
</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)
到目前为止,代码隐藏非常简单,经过多次尝试,这是最新的。
private void populateFruitList()
{
FruitDataGrid.DataContext = fruitDataTable;
//Binds a datatable instance to the datagrid, does not display anything.
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试:
将字符串列表转换为可观察集合或可枚举,然后执行 FruitDataGrid.itemsource =fruitsObservable;
上面的方法是有效的,只不过它只会显示每个字符串值的长度(如果 autogeneratecolumns 为 true),这不是我想要的。如果 autogeneratecolumns 为 false,那么我可以看到显示的行,但看不到字符串值。
我也尝试过使用DataView或DataGridView,但我未能在XAML中定义它,VS2012说没有这样的事情。
我一直在尝试按照 …
c# ×2
batch-file ×1
build-script ×1
c++ ×1
cmd ×1
datagrid ×1
datatable ×1
java ×1
namespaces ×1
outliers ×1
pandas ×1
python ×1
resolution ×1
screen ×1
viewport ×1
wpf ×1
xaml ×1