一堆自定义C#代码片段,让你开发效率飞涨

SharpBoxes 是一款用于 Visual Studio 的扩展,作者为本人

该扩展旨在提高开发效率。它为开发人员提供了一组日常使用频率较高的代码片段,让你在编写代码时能够更快地插入常用的代码段。通过安装这个扩展,你可以使用快捷键轻松插入一大段代码,而无需手动编写。只需输入几个关键字,即可获得所需的代码,从而大大提高你的工作效率。此外,SharpBoxes 还支持内嵌式和包裹式插入代码,让你在开发过程中更加灵活地使用代码¹。

如果你是一个经常使用 Visual Studio 的开发者,不妨试试 SharpBoxes 扩展,看看它是否能够满足你的需求。你可以在 Visual Studio Marketplace 上找到并安装这个扩展¹。


参考资料及下载链接
¹: SharpBoxes - Visual Studio Marketplace
也可通过直接在VS中搜索下载
在这里插入图片描述

以下为具体介绍

安装完后,第一次启动,一定要以管理员权限启动VS

After installation, start it for the first time, be sure to start VS with administrator privileges.

Also Develop: SharpBoxes-已开源
同人开发:SharpBoxes-已开源
介绍博客:SharpBoxes-已开源

  • 集成了一些常用的方法; 如通用的缓存静态操作类、常用的Wpf的ValueConverters、内置的委托类型、通用的反射加载dll操作类、Wpf的ViewModel、Command、Navigation、Messenger、部分常用UserControls(可绑定的PasswordBox、PlaceHolderTextBox、HighlightTextBlock等),以及Wpf一些常用的后台数据绑定方法 其他是一些通用的扩展方法类

Visual Studio 扩展代码片段

  • Visual Studio 扩展代码片段
    • CSharp代码片段
      • 检查文件是否存在
      • 检查文件夹是否存在包裹
      • 带Index的Foreach
      • 插入文档摘要
      • 快速创建方法
      • 快速创建类
      • 快速创建Int属性
      • 快速创建Double属性
      • 快速创建String属性
      • 快速创建List属性
      • 快速MessageBox
      • 快速创建带TryCatchFinally方法
      • 快速Null检查
      • 快速生成带有消息通知的属性
      • 快速生成ReadLine
      • 快速生成StopWatch
      • 快速生成Student类(带模拟数据)
      • 快速生成结果状态类(通用返回值)
      • 快速生成Task.Run包裹
      • TryCatchFinally包裹
      • 带属性修改回调的依赖属性
      • 带属性修改回调的附加属性
    • Xaml代码片段
      • 快速生成DoubleAnimation
      • 快速生成ItemTemplate
      • 快速生成mscorlib命名空间
      • 快速生成包URI语法
      • 快速生成Resources
      • 快速生成Style

CSharp代码片段

检查文件是否存在

fileexist

if (System.IO.File.Exists(""))
{}

检查文件夹是否存在

direxist

if (System.IO.Directory.Exists(""))
{}

带Index的Foreach

forwithitem

for (int index = 0; index < collection.Count; index++)
{var item = collection[index];
}

插入文档摘要

hddoc

/** Title:* Author:* Date:* Purpose:** Revisions:* 1.*/

快速创建方法

method

public int GoWork(string p)
{}

快速创建类

cc

public class MyClass
{public MyClass(){}
}

快速创建Int属性

pi

public int p { get; set; }

快速创建Double属性

pd

public double p { get; set; }

快速创建String属性

ps

public string p { get; set; }

快速创建List属性

pl

public List<int> p { get; set; }

快速MessageBox

mberror

MessageBox.Show("","Error",MessageBoxButton.OK,MessageBoxImage.Error
);

mbinfo
mbwarn

快速创建带TryCatchFinally方法

methodWithTryCFg

public int GoWork(string p)
{try{}catch (Exception ex){// Exception handling code}finally{// Cleanup code}
}

快速Null检查

nullcheck

if (null == null)
{
}

快速生成带有消息通知的属性

propchanged

private string myProperty;
public string MyProperty
{get{return myProperty;}set{myProperty = value;OnPropertyChanged(myProperty, value);}
}

快速生成ReadLine

cr

快速生成StopWatch

swg

var sw = Stopwatch.StartNew();

快速生成Student类(带模拟数据)

stuclass

public class Student
{public string Name { get; set; }public int Age { get; set; }public string Address { get; set; }public static IEnumerable<Student> FakeManyStudents(int count){var students = new List<Student>();var names = GenerateRandomNumber(count).Select(s => s.ToString()).ToList();var addresses = GenerateRandomNumber(count).Select(s => s.ToString()).ToList();for (int i = 0; i < count; i++){students.Add(new Student{Name = "Student " + names[i],Age = 20 + i,Address = "Address " + addresses[i]});}return students;}private static List<int> GenerateRandomNumber(int count){var rd = new Random(Guid.NewGuid().GetHashCode());var result = new List<int>();for (int i = 0; i < count; i++){var number = rd.Next(1, 20);result.Add(number);}return result;}
}

快速生成结果状态类(通用返回值)

status

[DebuggerStepThrough]
public class Status
{public int Code = 0;public string Message = "运行成功";public bool Result = true;public Status(int code = 0, string message = null, bool result = false){Code = code;Message = message;Result = result;}public Status(string message){Message = message;}public Status(string message, bool result){Message = message;Result = result;}public static Status OkDef = new Status(0, "结果OK", true);public static Status NgDef = new Status(-1, "结果NG", false);public static Status Ng(string message) => new Status(message, false);public static Status Ok(string message) => new Status(message, true);public static implicit operator bool(Status d) => d.Result;public static implicit operator string(Status d) => d.ToString();public override string ToString(){return $"{Code},{Result},{Message}";}
}

快速生成Task.Run包裹

taskg

Task.Run(() =>{});

TryCatchFinally包裹

trycatchfinally

try
{}
catch (Exception ex)
{// Exception handling code}
finally
{// Cleanup code
}

带属性修改回调的依赖属性

propdpn

public string Title
{get { return (string)GetValue(TitleProperty); }set { SetValue(TitleProperty, value); }
}public static readonly DependencyProperty TitleProperty =DependencyProperty.Register("Title", typeof(string), typeof(Test), new PropertyMetadata(string.Empty, TitleChanged));private static void TitleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{if (d is TextBox control){}
}

带属性修改回调的附加属性

propan

public static string GetName(DependencyObject obj)
{return (string)obj.GetValue(NameProperty);
}public static void SetName(DependencyObject obj, string value)
{obj.SetValue(NameProperty, value);
}public static readonly DependencyProperty NameProperty =DependencyProperty.RegisterAttached("Name",typeof(string),typeof(Test),new PropertyMetadata(string.Empty, NameChanged));private static void NameChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{if (d is TextBox control) {}
}

Xaml代码片段

快速生成DoubleAnimation

anidouble

快速生成ItemTemplate

itemtemplate

快速生成mscorlib命名空间

nssys

xmlns:sys="clr-namespace:System;assembly=mscorlib"

快速生成包URI语法

pack

"pack://application:,,,/$TargetAssembly$;component/$Resource$"

快速生成Resources

res

快速生成Style

style

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3016878.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp picker组件的样式更改

不知道有没有小伙伴遇到过这个问题 我是各种穿透和层级都尝试了更改不了其样式 梳理一下 H5端 在全局app.vue下添加如下代码 .uni-picker-container .uni-picker-header{ background-color: $uni-color-pink; //picker头部背景色}.uni-picker-container .…

【C 数据结构-图】2. 图的存储结构

文章目录 【 1. 图的顺序存储结构 】1.1 基本原理1.2 顺序存储结构的 C 实现 【 2. 图的链式存储结构 】2.1 图的临接表存储结构2.1.1 临接表的 基本原理2.1.2 临接表的 链表节点2.1.3 邻接表 各结构体的C实现2.1.4 临接表 计算顶点的出度和入度邻接表计算 无向图的出度和入度邻…

传统汽车空调系统工作原理

1.首先讲一个概念 液体变成气体&#xff1a;吸热 气体变成液体&#xff1a;放热 2.在汽车空调系统中热量的传递的介质不是水&#xff0c;而是氟利昂&#xff0c;简称&#xff1a;“氟”。 3.传统式汽车空调结构如下 该三个部件位于车头进气口位置 该部位位于汽车驾驶车厢前方…

基于FPGA的累加器及数码管显示VHDL代码Quartus仿真

名称&#xff1a;基于FPGA的累加器及数码管显示VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; 累加器及数码管显示 1、可以通过按键输入1~9 2、数字输入后进行累加&#xff0c;将累加结果显示…

英语新概念2-回译法-lesson12

第一次翻译 &#xff08;稀巴烂&#xff09; Our neiborhood,Capitain Charles Alison,will sail from P. We will ______ in the _. He will sit in his small boat, Topsail,Topsail is a famous boat. It has been across the A many times. Alison will sail at 8 o’cloc…

微信报名活动链接怎么做

在数字营销日新月异的今天&#xff0c;微信作为拥有数亿用户的社交平台&#xff0c;早已成为品牌宣传的重要阵地。而微信报名活动链接&#xff0c;更是品牌吸引用户参与、提升活动影响力的关键工具。今天&#xff0c;就让我们一起探讨如何制作一个引人入胜的微信报名活动链接&a…

️测试问我:为啥阅读量计数这么简单的功能你都能写出bug?

前言 可乐他们团队最近在做一个文章社区平台,由于人手不够,后端部分也是由前端同学来实现,使用的是 nest 。 今天他接到了一个需求,就是在用户点开文章详情的时候,把阅读量 +1 ,这里不需要判断用户是否阅读过,无脑 +1 就行。 它心想:这么简单,这不是跟 1+1 一样么。…

电脑提示mfc140u.dll文件丢失了?怎么快速修复mfc140u.dll文件

当你的电脑提示你的mfc140u.dll文件丢失了&#xff0c;那么就要小心了&#xff0c;可能你的某些程序出问题了&#xff01;这时候需要我们去进行相关的修复&#xff0c;只有修复了这个mfc140u.dll文件&#xff0c;才能正常的使用某些程序。下面一起来了解一下mfc140u.dll文件吧。…

springboot3 集成spring-authorization-server (一 基础篇)

官方文档 Spring Authorization Server 环境介绍 java&#xff1a;17 SpringBoot&#xff1a;3.2.0 SpringCloud&#xff1a;2023.0.0 引入maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

C++细节,可能存在的隐患,面试题03

文章目录 11. C编译过程12. const vs #define12.1. 全局const vs 局部const 13. C内存分区14. C变量作用域14.1. 常量 vs 全局变量 vs 静态变量 15. C类型转换16. 函数指针17. 悬空指针 vs 野指针18. 为什么使用空指针&#xff0c;建议使用nullptr而不是NULL&#xff1f; 11. C…

C++ 递归函数

一 递归函数 递归函数(Recursive Function&#xff09;即自调用函数&#xff0c;即在函数体内有直接或间接地自己调用自己的语句。 大多数递归函数都能够用非递归函数代替。 例如&#xff1a;求两个整数a,b的最大公约数。 算法描述&#xff1a; 大多数递归函数都能用非递归…

frp内网穿透服务搭建与使用

frp内网穿透服务搭建与使用 1、frp简介 frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。frp工作原理 服务端运行&#xff0c;监听一个主端口…

经常发文章的你是否想过定时发布是咋实现的?

前言 可乐他们团队最近在做一个文章社区平台,由于人手不够,前后端都是由前端同学来写。后端使用 nest 来实现。 某一天周五下午,可乐正在快乐摸鱼,想到周末即将来临,十分开心。然而,产品突然找到了他,说道:可乐,我们要做一个文章定时发布功能。 现在我先为你解释一…

C语言常见的动态内存错误及几个经典笔试题以及c/c++内存开辟空间等的介绍

文章目录 前言一、常见的动态内存错误1. 对NULL指针的解引用操作2. 对动态开辟空间的越界访问3. 对非动态开辟内存使用free()4. 使用free释放一块动态开辟内存的一部分5. 对同一块动态内存多次释放6. 动态开辟内存忘记释放&#xff08;内存泄漏&#xff09; 二、几个经典笔试题…

自动驾驶学习1-超声波雷达

1、简介 超声波雷达&#xff1a;利用超声波测算距离的雷达传感器装置&#xff0c;通过发射、接收 40kHz、48kHz或 58kHz 频率的超声波&#xff0c;根据时间差测算出障碍物距离&#xff0c;当距离过近时触发报警装置发出警报声以提醒司机。 超声波&#xff1a;人耳所不能听到的…

【复杂网络】如何用简易通俗的方式快速理解什么是“相对重要节点挖掘”?

什么是相对重要节点&#xff1f; 一、相对重要节点的定义二、如何区分相对重要节点与重要节点&#xff1f;1. 相对重要性与节点相似性2. 识别相对重要节点的两个阶段第一阶段&#xff1a;个体重要性值的计算第二阶段&#xff1a;累积重要性值的计算 三、经典的相对重要节点挖掘…

护眼灯排名前十的品牌有哪几款?2024年主流的十大护眼灯品牌分享

在当今的教育环境中&#xff0c;学生们面临着相当沉重的学业压力。放学后&#xff0c;许多孩子便投入到无休止的作业之中&#xff0c;常常夜深人静时还未完成。作为家长&#xff0c;孩子的视力健康自然成为了我们心中的一块大石。夜间学习时&#xff0c;灯光的质量至关重要。标…

call, apply , bind 区别详解 及 实现购物车业务开发实例

call 方法&#xff1a; 原理 call 方法允许一个对象借用另一个对象的方法。通过 call&#xff0c;你可以指定某个函数运行时 this 指向的上下文。本质上&#xff0c;call 改变了函数运行时的作用域&#xff0c;它可以让我们借用一个已存 在的函数&#xff0c;而将函数体内的 th…

解决windows中的WS Llinux子系统(unbantu2204)访问网络失败问题?

一、问题描述 unbantu先前可以正常访问网络&#xff0c;后面用着用着发现上不了网了&#xff0c; 出现如下异常 Hmm. We’re having trouble finding that site.We can’t connect to the server at www.iqiyi.com.If you entered the right address, you can:Try again late…

每日一题 礼物的最大价值

题目描述 礼物的最大价值_牛客题霸_牛客网 解题思路 这是一个典型的动态规划问题。我们可以使用一个二维数组 dp[][] 来存储到达每个格子时可以获得的最大价值。状态转移方程为 dp[i][j] max(dp[i-1][j], dp[i][j-1]) grid[i][j]&#xff0c;表示到达当前格子的最大价值是从…