- 博客(28)
- 收藏
- 关注
原创 nvm的安装路径下找到settings.txt文件,如果没有,可以新建一个,其实这个文件可以理解为nvm的配置文件。打开settings.txt后,添加下面的2行代码,就设置成了国内的服务的源
在nvm的安装路径下找到settings.txt文件,如果没有,可以新建一个,其实这个文件可以理解为nvm的配置文件。有了这样的信息,我们很容易可以想到这是由于网络原因引起的问题,由于node源都是国外的服务,所以我们只需要将node和npm的源设置成国内的服务的源就可以了。添加这两行后,再通过nvm安装node就不会再报错了。windows上通过nvm管理。
2024-09-15 17:34:51 135
原创 WinForms中,`DataGridView`的`CellContentClick`事件和 `CellClick`事件
在这个修改后的代码中,我们将`dataGridView1_CellContentClick`事件替换为`dataGridView1_CellClick`事件,并在`InitializeDataGridView`方法中添加了对`CellClick`事件的订阅。这样,无论点击单元格的哪个部分,都会触发`dataGridView1_CellClick`事件,从而显示所在行的`plc.Name`。// 使用CellClick事件。Description = $"描述{i}"Name = $"名字{i}",
2024-09-10 20:56:15 453
原创 WPF的**逻辑树**和**可视树**。
在WPF中,你可以通过代码访问和操作逻辑树和可视树,类似于在前端中操作DOM。例如,你可以使用`VisualTreeHelper`类来遍历可视树,或者使用`LogicalTreeHelper`类来遍历逻辑树。- 可视树是逻辑树的一个扩展,它包含了所有可视元素的详细信息,包括控件的渲染和布局信息。在这个示例中,`TraverseLogicalTree`方法递归地遍历逻辑树,并输出每个元素的类型名称。在WPF中,这个概念被称为**逻辑树**和**可视树**。它类似于前端中的DOM树,表示页面的结构。
2024-09-10 20:52:08 702
原创 命令可以不通过数据绑定进行配置
2. **MainViewModel**:这是视图模型类,包含一个 `ClearTextCommand` 属性,该属性是一个 `RelayCommand` 实例。1. **RelayCommand**:这是一个简单的命令实现,实现了 `ICommand` 接口。4. **代码隐藏文件**:在代码隐藏文件中,我们创建了视图模型实例,获取了命令,并将命令附加到按钮上。3. **XAML**:在 XAML 中,我们没有使用数据绑定,而是直接在代码隐藏文件中处理命令。在代码隐藏文件中,我们将命令直接附加到按钮上。
2024-07-03 22:01:53 464
原创 有框架和没框架的Command
第一段代码中,`RelayCommand` 是自定义实现的,而第二段代码中,`RelayCommand` 是使用 `GalaSoft.MvvmLight.Command` 库中的实现。- 第一段代码中,`RelayCommand` 是自定义实现的,而第二段代码中,`RelayCommand` 是使用 `GalaSoft.MvvmLight.Command` 库中的实现。因此,这两段代码在功能上是等效的,只是 `RelayCommand` 的实现方式不同。
2024-06-30 15:05:41 440
原创 局部 `DataContext`
为了确保的新 ViewModel 不会影响现有绑定到 `MainViewModel` 的其他属性,可以使用 `MonitorPage` 作为 `UserControl` 的局部 `DataContext`,而不覆盖整个 `UserControl` 的 `DataContext`。1. **不要在整个 `UserControl` 设置 `DataContext`**,而是在需要显示时间的 `TextBlock` 上设置局部 `DataContext`。-- 在这里设置局部 DataContext -->
2024-06-29 15:11:29 780
原创 容忍操作符 ! 和 条件操作符 ?
并不等效,它们在行为上有重要的区别。时不会抛出异常,而是简单地不执行。不会做任何事情,也不会抛出异常。这个操作符告诉编译器,你确信。,并且在这种情况下不会执行。的主要区别在于它们处理。时,你告诉编译器你确信。方法,也不会抛出异常。方法,也不会抛出异常。则会导致运行时异常。
2024-06-28 08:55:52 182
原创 使用和不使用框架依赖注入的注入方式
下面将为展示四个完整的控制台例子,分别展示如何在使用依赖注入框架和不使用依赖注入框架的情况下,进行属性注入和方法注入。Console.WriteLine("订单已完成,状态已更新");Console.WriteLine("订单已完成,状态已更新");Console.WriteLine("订单已完成,状态已更新");Console.WriteLine("订单已完成,状态已更新");这四个例子分别展示了在使用和不使用依赖注入框架的情况下,进行属性注入和方法注入的方法。
2024-06-27 11:51:48 625
原创 为什么你这个类型没写过.Sum()可是你可以用?
虽然你自定义的类型没有直接定义`Sum`方法,但通过LINQ扩展方法,你可以轻松地对集合进行操作。即使`Product`类型本身没有定义`Sum`方法,但由于我们使用了LINQ扩展方法并提供了一个选择器函数`p => p.Price`,我们依然可以对其进行求和操作。1. 我们定义了一个名为`Product`的自定义类型,其中包含`Name`和`Price`属性。3. 使用LINQ的`Sum`方法计算产品列表中所有产品价格的总和。2. 然后,我们创建了一个包含几个`Product`对象的列表。
2024-06-26 15:48:51 321
原创 if(a is B{ bb : a})又是什么?
if (a is B { bb: a })` 的意思是检查对象 `a` 是否是类型 `B`,并且如果是,将其属性 `bb` 的值赋给变量 `a`。- 使用模式匹配检查 `obj` 是否是类型 `A`,如果是,则提取其 `aa` 属性值并赋给变量 `aaValue`。- 使用模式匹配检查 `obj` 是否是类型 `B`,如果是,则提取其 `bb` 属性值并赋给变量 `bbValue`。- 创建两个对象 `obj1` 和 `obj2`,分别为类型 `A` 和 `B` 的实例。### 示例运行结果。
2024-06-26 10:42:53 289
原创 这个a?.XX()是什么?
如果对象为 `null`,则整个表达式的结果为 `null` 或 `default`,并且不会引发 `NullReferenceException`。如果 `person` 为 `null`,则 `name` 也为 `null`。- 将 `person` 赋值为一个新的 `Person` 对象,并再次使用空条件运算符访问 `Name` 属性和调用 `DisplayGreeting` 方法。- 定义一个 `Person` 类型的变量 `person` 并将其初始化为 `null`。### 示例运行结果。
2024-06-26 10:36:11 367
原创 Exception 带个when怎么回事?
异常过滤器 (`when` 子句) 在性能上可能稍微优于传统的 `if` 检查,因为 `when` 子句在异常发生时会立即进行过滤,而不会进入 `catch` 块。- 第二个代码片段稍微冗长一些,因为它在 `catch` 块内部使用了 `if` 语句来检查条件,并在不满足条件时重新抛出异常。- 第二个代码片段的可读性稍差,因为它在 `catch` 块内部使用了 `if` 语句,并且需要重新抛出异常。- 第一个代码片段更简洁,因为它直接在 `catch` 语句中使用了 `when` 子句来过滤异常。
2024-06-26 10:29:46 413
原创 关于表达式形式switch的例子
`static string GetDayType(DayOfWeek day) => day switch {...}`: 定义一个方法 `GetDayType`,它使用 `switch` 表达式来根据输入的 `day` 值返回一个字符串。- `static string GetSeason(int month) => month switch {...}`: 定义一个方法 `GetSeason`,它使用 `switch` 表达式来根据输入的 `month` 值返回一个字符串。
2024-06-26 10:18:31 664
原创 一些使用 `DataSet` 的示例方法
在现有代码的基础上,您可以添加一些使用 `DataSet` 的方法,作为 `LocalDataAccess` 类的 helper 方法。- 这个方法演示了如何使用 `DataSet` 和 `DataAdapter` 更新数据库的数据。该方法使用 `SQLiteCommandBuilder` 自动生成 `INSERT`、`UPDATE` 和 `DELETE` 命令,并将 `DataSet` 中的更改提交到数据库。每个表的数据保存在 `DataSet` 的不同 `DataTable` 中。
2024-06-24 16:42:45 556
原创 一个简单的依赖注入容器的 优化版本
通过上述优化,我们提高了代码的类型安全性和灵活性,并且实现了单例的生命周期管理。同时,构造函数注入的方式使得代码更容易测试和维护。如果有更多复杂的需求,可以考虑引入生命周期管理、属性注入等高级功能,但这些优化已经展示了手动实现依赖注入的一些核心理念和最佳实践。
2024-06-21 17:45:49 131
原创 一个手动实现依赖注入的示例,包括了配置依赖关系和注入属性。
通过以上步骤,我们手动实现了一个简单的依赖注入容器,并使用它来注入 `MainViewModel` 和 `Command`。虽然这种方式比使用现成的 DI 框架更繁琐,但它展示了依赖注入的基本原理,并且不依赖外部库。如果不用现成的依赖注入框架和包,你可以手动实现依赖注入。以下是一个手动实现依赖注入的示例,包括了配置依赖关系和注入属性。首先,你需要一个简单的依赖注入容器来管理服务的创建和生命周期。### 4. 确保 `Command` 类实现了 `ICommand` 接口。### 1. 手动配置依赖关系。
2024-06-20 23:02:58 466
转载 AAA系统
http://blog.csdn.net/zhoujunyi/article/details/2045208AAA系统的简称:认证(Authentication):验证用户的身份与可使用的网络服务;授权(Authorization):依据认证结果开放网络服务给用户;计帐(Accounting):记录用户对各种网络服务的用量,并提供给计费系统。AAA-----
2012-11-15 16:22:36 891
转载 程序中通过wap联网方式访问网络
http://bbs.csdn.net/topics/360145225用户的联网方式大致有 wap net wifi 三种. 使用android包中提供的函数,HttpConnection只能使用net和wifi,wap方式无法访问. 问? 如何让程序可以通过wap访问网络?对我有用[0] 丢个板砖[0] 引用 | 举报 |
2012-11-15 14:33:43 644
转载 iOS5 ARC学习笔记
http://blog.csdn.net/favormm/article/details/7023322iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章。现在我们看看
2012-11-11 11:38:24 368
转载 IOS atomic与nonatomic,assign,copy与retain的定义和区别
http://blog.csdn.net/mars2639/article/details/7352540atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。 atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全。
2012-11-11 10:54:07 283
转载 很多地方都有个__MACOSX文件夹,是干什么的,备份吗?
__MACOSX应该是由操作系统生成,以便容易和快速搜索压缩目录~~这是mac下zip打包的一个特点这是一个预览方式(或者你认为是缩略图也行)可以无视他直接用包里内容就好
2012-11-11 10:12:05 14168
转载 arc模式下的一些属性介绍
http://www.cocoachina.com/bbs/read.php?tid=101987&page=1这些内容没看太懂,有空要细看
2012-11-11 02:28:53 289
转载 如果爱,请深爱:10大iOS开发者最喜爱的类库
http://www.csdn.net/article/2012-11-07/2811587-pop-ios-dev-library摘要:库是开发的根本,从页面到APP客户端,所有的设计都离不开它,但面对市面上鱼龙混杂的库,如何选择合适又好用的库?对开发新手来说,这是个问题。本文基于各方观点,选出了10大iOS开发者最爱的库。该10大iOS开发者最喜爱的库由“iOS
2012-11-11 02:26:57 380
转载 为什么有很多图片命名为*@2x.png
[UIImage imageNamed:@"xxx.png"] 或者xib里iPhone4会自动找*@2x.pnginitWithContentOfFile:pathToImage 这种不会 四代机器纵横分辨率都翻倍就是这原因 iphone5 分辨率1136x640像素iphone4 分辨率960x640iphone3 分
2012-11-11 02:22:31 4167
转载 Android里神奇的dp
http://blog.csdn.net/eggcalm/article/details/7006378今天偶然间问了同事一个关于dp单位的问题,然后由这个问题引发的一连串的问题彻底颠覆了我关于dp的理论体系。我那个问题是这样的:既然dp的本质是物理尺寸,为什么不用cm或者mm等传统长度单位替代?然后他回答我dp是和像素密度无关的。。。我对这个回
2012-11-05 14:23:39 332
原创 手机屏幕——分辨率
VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。Android 2.2HVGA即VGA(640*480)的一半,分辨率为(480*320),(3:2宽高比)QVGA240*320分辨率版本:一般用于小屏手机 像三星盖世Mini
2012-11-02 10:03:53 323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人