Colleen  Little

Colleen Little

1603427607

C# 10 First Look: Constant string interpolation

Constant string interpolation looks to be set for C# 10—let’s take a look.

C## 9 is finally here, everybody.

This summer, we took a look at most of its core features. We looked at init-only features, records, pattern matching, top-level programs, and target typing and covariant returns.

Now, we can look forward to C## 10 (what is also referred to as C## Next). You probably think I’m crazy to be writing about C## 10 so early—and I am!—but there’s a feature slated for C## 10 that looks all set to go, constant string interpolation—a request that’s been hanging out on GitHub since 2015. Fred Silberberg from the Roslyn team says that it’s implemented in a feature branch and will likely be part of C## 10. As a matter of fact, if you head over to SharpLab, there’s a C## Next: Constant Interpolated Strings branch you can play with that’s been out there since … October 18, 2020.

While it’s madness to write about a new language feature so early, I don’t think it’s too crazy to talk about this specific feature. It’s super easy to implement so I don’t see that part changing too much—only when it gets shipped.

We’ll discuss the following content in this post.

  • An absurdly quick example
  • Why can’t I do that now?
  • What about culture impacts?
  • Wrap up

Heads up! This should go without saying, but things may change between now and the C## 10 release date. In other words: 🤷‍♂️.

An absurdly quick example

These days—in C## 9 or earlier, that is—if you want to merge constant strings together, you will have to use concatenation, and not interpolation (or remove them as const variables altogether).

A common use is with paths. In current times, you have to do this if you are working with constant strings:

const string myRootPath = "/src/to/my/root";
const string myFilePath = myRootPath + "README.md";

With constant string interpolation, you can do this:

const string myRootPath = "/src/to/my/root";
const string myWholeFilePath = $"{myRootPath}/README.md";

Constant interpolated strings would be super convenient when working with attribute arguments. Let’s say you want to flag a method with the ObsoleteAttribute. Try this:

[Obsolete($"Ooh, don't use me. Instead, use {nameof(MyBetterType)}.")]

Why can’t I do that now?

When I learned about string interpolation back in C## 6, I was excited to think I’d never have to do concatenation again—so this is a bummer. Why can’t I do it, anyway?

If you try to use constant string interpolation in C## 9, you’ll get this error back:

error CS0133: The expression being assigned to 'myFilePath' must be constant

When you use string interpolation, the interpolated strings end up getting converted to string.Format calls. Once you understand that point, you’ll see it as:

const string myFilePath = string.Format("{0}/README.md", myRootPath);

While it may look like a constant at compile time, it isn’t because of the string.Format invocation. Of course, concatenation works fine since as there’s hardly any magic gluing two string literals together.

#csharp #programming #developer

What is GEEK

Buddha Community

C# 10 First Look: Constant string interpolation
Tamale  Moses

Tamale Moses

1624240146

How to Run C/C++ in Sublime Text?

C and C++ are the most powerful programming language in the world. Most of the super fast and complex libraries and algorithms are written in C or C++. Most powerful Kernel programs are also written in C. So, there is no way to skip it.

In programming competitions, most programmers prefer to write code in C or C++. Tourist is considered the worlds top programming contestant of all ages who write code in C++.

During programming competitions, programmers prefer to use a lightweight editor to focus on coding and algorithm designing. VimSublime Text, and Notepad++ are the most common editors for us. Apart from the competition, many software developers and professionals love to use Sublime Text just because of its flexibility.

I have discussed the steps we need to complete in this blog post before running a C/C++ code in Sublime Text. We will take the inputs from an input file and print outputs to an output file without using freopen file related functions in C/C++.

#cpp #c #c-programming #sublimetext #c++ #c/c++

Dicey Issues in C/C++

If you are familiar with C/C++then you must have come across some unusual things and if you haven’t, then you are about to. The below codes are checked twice before adding, so feel free to share this article with your friends. The following displays some of the issues:

  1. Using multiple variables in the print function
  2. Comparing Signed integer with unsigned integer
  3. Putting a semicolon at the end of the loop statement
  4. C preprocessor doesn’t need a semicolon
  5. Size of the string matters
  6. Macros and equations aren’t good friends
  7. Never compare Floating data type with double data type
  8. Arrays have a boundary
  9. Character constants are different from string literals
  10. Difference between single(=) and double(==) equal signs.

The below code generates no error since a print function can take any number of inputs but creates a mismatch with the variables. The print function is used to display characters, strings, integers, float, octal, and hexadecimal values onto the output screen. The format specifier is used to display the value of a variable.

  1. %d indicates Integer Format Specifier
  2. %f indicates Float Format Specifier
  3. %c indicates Character Format Specifier
  4. %s indicates String Format Specifier
  5. %u indicates Unsigned Integer Format Specifier
  6. %ld indicates Long Int Format Specifier

Image for post


A signed integer is a 32-bit datum that encodes an integer in the range [-2147483648 to 2147483647]. An unsigned integer is a 32-bit datum that encodes a non-negative integer in the range [0 to 4294967295]. The signed integer is represented in twos-complement notation. In the below code the signed integer will be converted to the maximum unsigned integer then compared with the unsigned integer.

Image for post

#problems-with-c #dicey-issues-in-c #c-programming #c++ #c #cplusplus

What is difference between String and string in C#

Are you confused about System.String and string in C#? What is the difference between String and string in C#? And how to choose between string and System.String? In this article, I am going to show you all the differences between string and System.String in C## with code examples. .

What is the difference between System.String and string in C#?

Basically, there is no difference between string and String in C#. “string” is just an alias of System.String and both are compiled in the same manner. String stands for System.String and it is a .NET Framework type. “string” is an alias in the C## language for System.String. Both of them are compiled to System.String in IL (Intermediate Language), so there is no difference.

#c# #string #string and string

Abigale  Yundt

Abigale Yundt

1601154060

How to Check String or String View Prefixes and Suffixes in C++20

Up to (and including) C++17 if you wanted to check the start or the end in a string you have to use custom solutions, boost or other third-party libraries. Fortunately, this changes with C++20.

See the article where I’ll show you the new functionalities and discuss a couple of examples.

_This article was originally published at _bfilipek.com.

Intro

Here’s the main proposal that was added into C++20:

C++

std::string/std::string_view .starts_with() and .ends_with() P0457

In the new C++ Standard, we’ll get the following member functions for std::string and std::string_view:

C++

constexpr bool starts_with(string_view sv) const noexcept;

constexpr bool starts_with(CharT c ) const noexcept;

constexpr bool starts_with(const CharT* s ) const;

And also for suffix checking:

C++

constexpr bool ends_with(string_view sv )const noexcept;

constexpr bool ends_with(CharT c ) const noexcept;

constexpr bool ends_with(const CharT* s ) const;

As you can see, they have three overloads: for a string_view, a single character and a string literal.

Simple example:

C++

const std::string url { "https://isocpp.org" };

// string literals

if (url.starts_with("https") && url.ends_with(".org"))

    std::cout << "you're using the correct site!\n";

// a single char:

if (url.starts_with('h') && url.ends_with('g'))

    std::cout << "letters matched!\n";

You can play with this basic example @Wandbox

#tutorial #iot #c++ #visual c++ #vc++ #c++20 #string view prefixes #string view suffixes

Layne  Fadel

Layne Fadel

1622066880

What Employers Exactly Look for in a C/C++ Job Description

Nine times out of ten, you will come across a job ad that lists C/C++ as a skill requirement.

No matter the company, the job title, or the salary, you will likely find that the job description lists C/C++ as a required skill. Better yet, they want you to have 10+ years of experience using these technologies.

Why are these two languages from the 70s and 80s required for modern-day software developer positions?

Some will joke and say it’s because the employers are looking for candidates over the age of 50. Others will say it’s because the HR hiring managers have a lukewarm IQ that led them to copy and paste whatever Google listed as popular programming languages.

The bottom line is that anyone at any level in their software development career will come across this requirement for any job under the sun, be it as a software engineer, web developer, game programmer, or app developer. With so many different companies looking for this skill for any number of positions, it begs the question: what are recruiters actually looking for when they list C/C++ in a job description?

At this point, it’s pure speculation as to what recruiters really want. However, a few good explanations can help future software developers wisely navigate the omnipresent C/C++ requirement.

Employers Are Looking for You To Fill Any Number of Roles Within a Company.

Having an understanding of C and C++ allows you to fill any number of roles within a company.

Employers will often include C/C++ as a skill requirement as part of a broad job description to find candidates who could fulfill any number of positions or job requirements under the software developer umbrella. Often, employers are looking for someone who can do any of the following:

  • Someone who can work with systems administration tasks.
  • Someone who can maintain existing C/C++ code.
  • Someone who can do heavy academia-related coding work.
  • Someone who can be a game developer.
  • Someone who can work with Android NDK apps.
  • Someone very comfortable with memory management.

All of the tasks above can be done using more modern programming languages, yet are often taken over or completed using C or C++. C and C++, while ancient languages in terms of the speed at which technology modernizes, are still relevant for many different tasks that you may come across as a developer.

#software-development #programming #c #c++ #c/c++